본문 바로가기
정보보안/System Hacking

포트 별 스캔방법 실습 - nmap, port, 21, 22, ftp, ssh

by 우동이 2022. 9. 10.
300x250

작업환경 : 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 : 포트 지정 옵션

 

 

 

결과 출력

21ftp closed

 


PORT - 22(SSH)

  • SSH 서비스 대상 nmap 포트 -sV 스캔
#Get version = 버전 정보 출력
nmap [targetIP] -p 22 -sV

 

옵션정리

  • -p : 포트 지정 옵션
  • -sV : 포트를 조사하여 서비스/버전 정보 출력

 

결과 출력 - 버전 정보 출력

nmap ip -p 22 -sV = 서비스의 버전 정보 출력

 

 

  • SSH 서비스 버전 출력 다른 방법
#Get banner = 배너 출력
nc [targetIP] 22

 

  • 해당 코드는 nc를 통해 ssh의 배너를 출력하는 코드이다.

 

 

결과 출력

ssh 기본 배너 출력

배너를 출력하는 코드라고 합니다.

제 버전대에서는 SSH의 버전 정보만 표시되네요

 

#get login banner
# 로그인시 확인가능한 배너 출력
# 배너설정파일 -> /etc/issue.net
ssh [USER_ID]@[targetIP]

ssh에 접속하여 배너를 출력합니다.

 

ssh root@127.0.0.1

"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 -p 22 127.0.0.1 --script ssh-hostkey --script-args ssh_hostkey

 

nmap의 호스트 키와 공개키를 출력합니다.

ssh_hostkey의 출력 형식을 변경할 수 있습니다.

결과를 살펴보니 hostkey와  rsakey가 전부(full) 출력되었음을 확인할 수 있습니다.

 

그리고 글 본문에는 check weak key라는 옵션으로 소개되어있는데

key값을 출력해 취약성(무결성) 검사를 할 수 있기 때문인 듯합니다.

 

ssh_hostkey 의 지정가능한 출력옵션

 

#check auth methods
# SSH서버가 지원하는 인증 방법을 반환합니다.
# 출력되는 결과는 SSH인증방법,지원되는 인증방법, 공개키, 비밀번호 4가지가 출력됩니다.
nmap -p 22 [targetIP] --script ssh-auth-methods --script-args="ssh.user=[USER_ID]"

nmap -p 22 127.0.0.1 --script ssh-uth-methods --script-args="ssh.user=root"

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]

ssh -v root@127.0.0.1 id

저는 root로 로컬 호스트에 접속하면서 id 명령을 실행하도록 전달했습니다.

ssh에 접속되면서 id 명령이 실행되어 해당 결괏값이 출력됨을 알 수 있습니다.

 

 

# Check Auth Methods
# 인증 방법 확인
ssh -v [targetIP]

ssh -v 127.0.0.1

ssh 인증방법을 확인합니다.

root로 인증됨
publickey,password

인증 가능한 방법은 공개키와 암호 두 가지이고

현재는 암호로 인증되었고 다음 인증방법은 공개 키라는 뜻인 것 같습니다.

 

# Force Auth Method:
# 인증방식 강제변경
ssh -v [targetIP] -o PreferredAuthentications=publickey

 

ssh -v 127.0.0.1 -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로 나와있네요

patator ssh_login host=127.0.0.1 port=22 user=root 0=/usr/share/metasploit-framework/data/wordlists/unix_passwords.txt password=FILE0 -x ignore:mesg='Authentication failed.'

제 암호는 단어 리스트에 추가되어있지 않아서 출력이 안되었습니다.

그래서 단어리스트에 제 암호를 추가한 후 다시 해보겠습니다.

patator ssh_login host=127.0.0.1 port=22 user=root 0=/usr/share/metasploit-framework/data/wordlists/unix_passwords.txt password=FILE0 -x ignore:mesg='Authentication failed.'

첫 번째에 추가해놨더니 바로 제 암호가 출력되네요

제 암호는 자주 사용하는 거라 모자이크 처리되어있습니다

 

 


 

Ports - Pentest Book

nmap --script smb-enum-*,smb-vuln-*,smb-ls.nse,smb-mbenum.nse,smb-os-discovery.nse,smb-print-text.nse,smb-psexec.nse,smb-security-mode.nse,smb-server-stats.nse,smb-system-info.nse,smb-protocols -p 139,445 10.11.1.111 nmap --script smb-enum-domains.nse,smb-

pentestbook.six2dez.com

해당 사이트에 나와있는 포트별 스캔 방법 글을 참고해 21,22 포트에 대한 스캔 방법을 실습해보았습니다.

ssh에 대한 양은 그야말로 넘치고 넘치더군요

제 개인 서버에도 22번 포트를 열어놓으면 얼마나 다양한 스캔이 들어오던지,, 이유를 좀 알겠습니다.

 

자주 사용되는 툴인만큼 다양한 취약점이 존재하나 봅니다.

아무튼 다음 글은 나머지 포트들에 대한 스캔 방법을 실습해보고 오겠습니다.

그럼 감사합니다!


참고

 

 

ssh-hostkey NSE script — Nmap Scripting Engine documentation

Script Arguments Example Usage Script Output Script ssh-hostkey Script types: Categories: safe, default, discovery Download: https://svn.nmap.org/nmap/scripts/ssh-hostkey.nse Script Summary Shows SSH hostkeys. Shows the target SSH server's key fingerprint

nmap.org

 

Ports - Pentest Book

nmap --script smb-enum-*,smb-vuln-*,smb-ls.nse,smb-mbenum.nse,smb-os-discovery.nse,smb-print-text.nse,smb-psexec.nse,smb-security-mode.nse,smb-server-stats.nse,smb-system-info.nse,smb-protocols -p 139,445 10.11.1.111 nmap --script smb-enum-domains.nse,smb-

pentestbook.six2dez.com

300x250

댓글