작업환경 : Kali Linux(2019-amd64)
작업도구 : nmap(7.70+dfsg1-6 kali1)
작업 일시 : 2022-09-07
주제: 포트별 스캐닝 방법
PORT - 21(FTP)
- ftp 서비스 대상 nmap 스캔
nmap --script ftp-* -p 21 [targetIP]
옵션정리
- --script : 스크립트 ftp 서비스 지정
- -p : 포트 지정 옵션
결과 출력
PORT - 22(SSH)
- SSH 서비스 대상 nmap 포트 -sV 스캔
#Get version = 버전 정보 출력
nmap [targetIP] -p 22 -sV
옵션정리
- -p : 포트 지정 옵션
- -sV : 포트를 조사하여 서비스/버전 정보 출력
결과 출력 - 버전 정보 출력
- SSH 서비스 버전 출력 다른 방법
#Get banner = 배너 출력
nc [targetIP] 22
- 해당 코드는 nc를 통해 ssh의 배너를 출력하는 코드이다.
결과 출력
배너를 출력하는 코드라고 합니다.
제 버전대에서는 SSH의 버전 정보만 표시되네요
#get login banner
# 로그인시 확인가능한 배너 출력
# 배너설정파일 -> /etc/issue.net
ssh [USER_ID]@[targetIP]
ssh에 접속하여 배너를 출력합니다.
"Hi this is my kali linux server ;)" 이 배너는 제가 배너 설정 파일을 수정한 값입니다.
즉 배너와 버전 정보가 출력되는듯합니다.
# Check weak keys
# SSH 호스트 키를 출력하며 서버의 키와 공개 키를 표시합니다.
# full = 일부 지문이 아닌 전체 키
nmap -p 22 [targetIP] --script ssh-hostkey --script-args ssh_hostkey=full
nmap의 호스트 키와 공개키를 출력합니다.
ssh_hostkey의 출력 형식을 변경할 수 있습니다.
결과를 살펴보니 hostkey와 rsakey가 전부(full) 출력되었음을 확인할 수 있습니다.
그리고 글 본문에는 check weak key라는 옵션으로 소개되어있는데
key값을 출력해 취약성(무결성) 검사를 할 수 있기 때문인 듯합니다.
#check auth methods
# SSH서버가 지원하는 인증 방법을 반환합니다.
# 출력되는 결과는 SSH인증방법,지원되는 인증방법, 공개키, 비밀번호 4가지가 출력됩니다.
nmap -p 22 [targetIP] --script ssh-auth-methods --script-args="ssh.user=[USER_ID]"
root계정으로 접속 시 SSH 서버에 인증 가능한 방법을 출력합니다.
현재 root계정으로 접속할 경우 publickey(공개키)와 password(비밀번호) 두 방식이 출력되었습니다.
# User can ask to execute a command right after authentication before it’s default command or shell is executed
# 이는 ssh가 실행되고 바로 자신의 [command]를 실행해 결과를 불러온다는 의미
ssh -v [USER_ID]@[targetIP] [command]
저는 root로 로컬 호스트에 접속하면서 id 명령을 실행하도록 전달했습니다.
ssh에 접속되면서 id 명령이 실행되어 해당 결괏값이 출력됨을 알 수 있습니다.
# Check Auth Methods
# 인증 방법 확인
ssh -v [targetIP]
ssh 인증방법을 확인합니다.
인증 가능한 방법은 공개키와 암호 두 가지이고
현재는 암호로 인증되었고 다음 인증방법은 공개 키라는 뜻인 것 같습니다.
# Force Auth Method:
# 인증방식 강제변경
ssh -v [targetIP] -o PreferredAuthentications=publickey
공개키 방식으로 인증법을 변경했습니다.
현재 공개키가 손상된 상태라 공개키로 인증하다가 permission denied 에러가 발생하네요,,
# BruteForce
# 무차별대입
# SSH 인증을 위해 무차별 대입 공격을 진행하는 코드들
patator ssh_login host=[targetIP] port=22 user=root 0=/usr/share/metasploit-framework/data/wordlists/unix_passwords.txt password=FILE0 -x ignore:mesg='Authentication failed.'
hydra -l user -P /usr/share/wordlists/password/rockyou.txt -e s ssh://[targetIP]
medusa -h [targetIP] -u user -P /usr/share/wordlists/password/rockyou.txt -e s -M ssh
ncrack --user user -P /usr/share/wordlists/password/rockyou.txt ssh://[targetIP]
SSH 인증을 위한 무차별 대입 툴은 4가지를 이용했는데
저는 그중 첫 번째 patator 툴을 이용해봤습니다.
차마 다 해보기는 좀,,
그런데 위의 4가지 코드들 전부 단어 목록을 통해 수행되므로 무차별보다는 사전 대입에 비슷한 것 같은데
본문에서는 bruteforce로 나와있네요
제 암호는 단어 리스트에 추가되어있지 않아서 출력이 안되었습니다.
그래서 단어리스트에 제 암호를 추가한 후 다시 해보겠습니다.
첫 번째에 추가해놨더니 바로 제 암호가 출력되네요
제 암호는 자주 사용하는 거라 모자이크 처리되어있습니다
해당 사이트에 나와있는 포트별 스캔 방법 글을 참고해 21,22 포트에 대한 스캔 방법을 실습해보았습니다.
ssh에 대한 양은 그야말로 넘치고 넘치더군요
제 개인 서버에도 22번 포트를 열어놓으면 얼마나 다양한 스캔이 들어오던지,, 이유를 좀 알겠습니다.
자주 사용되는 툴인만큼 다양한 취약점이 존재하나 봅니다.
아무튼 다음 글은 나머지 포트들에 대한 스캔 방법을 실습해보고 오겠습니다.
그럼 감사합니다!
참고
'정보보안 > System Hacking' 카테고리의 다른 글
Wireshark를 이용한 Network snipping 모의해킹 (2) | 2022.11.15 |
---|---|
스캐닝 도구 - Sparta | Kali Linux | Port, nmap, nikto (0) | 2022.02.24 |
도메인 조회 툴 | Kali Linux | Host, nslookup, dnseum (0) | 2022.02.12 |
모의 해킹 취약점 정찰을 위한 패시브 스캐닝 - theharvester, Recon-ng (0) | 2020.10.08 |
[Hacking] - 첫 단계 정찰 패시브 스캐닝 (0) | 2020.10.04 |
댓글