Notes / Network
네트워크 서비스 열거 (FTP·SSH·SMB·SMTP)
열린 서비스에서 버전·계정·공유·설정을 캐내 공격 입력을 만드는 서비스별 열거의 개념과 구문(FTP·SSH·SMB·SMTP)을 정리합니다.
목차
포트가 열려 있다는 것만으론 부족하다. 각 서비스에서 버전·익명 접근·계정·공유·설정을 캐내야 공략 입력이 나온다. 서비스마다 캐낼 것과 방법이 정해져 있다.
개념
- FTP(21): 익명 로그인 허용 여부, 쓰기 가능 디렉터리, 버전별 알려진 취약점, 평문 전송.
- SSH(22): 버전·지원 인증 방식(패스워드/키), 사용자 열거 가능 여부, 약한 자격증명.
- SMB(139/445): 널 세션, 공유 목록, 사용자·그룹, 정책, 버전별 취약점. 내부망에서 가장 정보가 많이 나오는 서비스.
- SMTP(25):
VRFY/EXPN/RCPT로 사용자 계정 존재 여부 열거, 오픈 릴레이.
공통 원칙: 버전 → 알려진 취약점, 익명/널 → 바로 정보, 계정 열거 → 인증 공격 입력.
공격·확인 구문
허가된 대상에서만.
FTP
nmap -sV -p21 --script ftp-anon target.example # 익명 접근
ftp target.example # anonymous / 임의 메일
SSH
nmap -p22 --script ssh2-enum-algos,ssh-auth-methods target.example
ssh-keyscan target.example # 호스트 키/버전
SMB (내부망 정보 금광)
nmap -p445 --script "smb-os-discovery,smb-enum-shares,smb-enum-users" target.example
enum4linux -a target.example | tee smb.txt # 공유·사용자·정책 종합
smbclient -L //target.example/ -N # 널 세션 공유 목록
crackmapexec smb target.example -u '' -p '' # 널 인증 확인
SMTP 사용자 열거
nc target.example 25
VRFY admin # 250/252=존재 추정, 550=없음
# 또는 소켓으로 VRFY 반복해 계정 목록 수집