Nmap ์์ฝ (ESP)
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24
๋งค๊ฐ๋ณ์
์ค์บํ IP
<ip>,<net/mask>: IP๋ฅผ ์ง์ ์ง์ -iL <ips_file>: IP ๋ชฉ๋ก ํ์ผ ์ฌ์ฉ-iR <number>: ๋๋ค IP ๊ฐ์.--exclude <Ips>๋๋--excludefile <file>๋ก ์ ์ธ ๊ฐ๋ฅ.
์ฅ๋น ํ์ง
๊ธฐ๋ณธ์ ์ผ๋ก Nmap์ ๋ค์์ผ๋ก ๊ตฌ์ฑ๋ discovery ๋จ๊ณ๋ถํฐ ์์ํฉ๋๋ค: -PA80 -PS443 -PE -PP
-sL: ๋น์นจํฌ์ ์ด๋ฉฐ ๋์ ๋ชฉ๋ก์ ๋์ดํ๊ธฐ ์ํด DNS ์์ฒญ์ผ๋ก ์ด๋ฆ์ ํด์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด www.prueba.es/24์ ๋ชจ๋ IP๊ฐ ์ฐ๋ฆฌ์ ๋์์ธ์ง ํ์ธํ ๋ ์ ์ฉํฉ๋๋ค.-Pn: ping ์๋ต. ๋ชจ๋ ํธ์คํธ๊ฐ ํ์ฑํ๋์ด ์๋ค๊ณ ํ์ ํ ๋ ์ ์ฉํฉ๋๋ค(๊ทธ๋ ์ง ์๋ค๋ฉด ๋ง์ ์๊ฐ์ด ์์๋ ์ ์๊ณ , ์ด ์ต์ ์ ๋นํ์ฑ์ด๋ผ๊ณ ์๋ชป ํ๋จํ๋ false negative๋ฅผ ๋ฐ์์ํฌ ์ ์์). discovery ๋จ๊ณ๋ฅผ ๊ฑด๋๋๋๋ค.-sn: ํฌํธ ์ค์บ ์์. ์ ์ฐฐ ๋จ๊ณ๋ ์ํํ์ง๋ง ํฌํธ ์ค์บ์ ํ์ง ์์ต๋๋ค. ๋น๊ต์ ์๋ฐํ๋ฉฐ ์๊ท๋ชจ ๋คํธ์ํฌ ํ์ง์ ์ ํฉํฉ๋๋ค. ๊ถํ์ด ์์ผ๋ฉด 80์ ACK(-PA), 443์ SYN(-PS), ๊ทธ๋ฆฌ๊ณ echo ์์ฒญ ๋ฐ Timestamp ์์ฒญ์ ๋ณด๋ ๋๋ค. ๊ถํ์ด ์์ผ๋ฉด ํญ์ ์ฐ๊ฒฐ์ ์์ฑํฉ๋๋ค. ๋์์ด ๋คํธ์ํฌ์ธ ๊ฒฝ์ฐ ARP(-PR)๋ง ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ์ต์ ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ์ต์ ์ ํจํท๋ง ์ ์ก๋ฉ๋๋ค.-PR: ARP ping. ๋ก์ปฌ ๋คํธ์ํฌ์ ํธ์คํธ๋ฅผ ๋ถ์ํ ๋ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ ping๋ณด๋ค ๋น ๋ฆ ๋๋ค. ARP ํจํท์ ์ฌ์ฉํ๊ณ ์ถ์ง ์๋ค๋ฉด--send-ip๋ฅผ ์ฌ์ฉํ์ธ์.-PS <ports>: SYN ํจํท์ ๋ณด๋ ๋๋ค. SYN/ACK ์๋ต์ด๋ฉด open(์ฐ๊ฒฐ์ ๋๋ด์ง ์๊ธฐ ์ํด RST๋ก ์๋ต), RST ์๋ต์ด๋ฉด closed, ์๋ต์ด ์์ผ๋ฉด unreachable. ๊ถํ์ด ์์ผ๋ฉด ์ ์ฒด ์ฐ๊ฒฐ ๋ฐฉ์์ด ์๋์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ํฌํธ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก 80์ ์ ์กํฉ๋๋ค.-PA <ports>: ์ด์ ๊ณผ ์ ์ฌํ์ง๋ง ACK๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋์ ์กฐํฉํ๋ฉด ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค.-PU <ports>: ๋ชฉ์ ์ ๋ฐ๋์ ๋๋ค. ๋ซํ์์ ๊ฒ์ผ๋ก ์์๋๋ ํฌํธ์ ๋ณด๋ ๋๋ค. ์ผ๋ถ ๋ฐฉํ๋ฒฝ์ TCP ์ฐ๊ฒฐ๋ง ๊ฒ์ฌํฉ๋๋ค. closed์ด๋ฉด port unreachable๋ก ์๋ต, ๋ค๋ฅธ ICMP๋ก ์๋ตํ๊ฑฐ๋ ์๋ต์ด ์์ผ๋ฉด destination unreachable๋ก ๋จ๊น๋๋ค.-PE, -PP, -PM: ICMP PING: echo reply, timestamp, addressmask. ๋์์ด ํ์ฑ์ธ์ง ํ์ธํ๊ธฐ ์ํด ๋ณด๋ ๋๋ค.-PY<ports>: ๊ธฐ๋ณธ์ ์ผ๋ก 80์ SCTP INIT ํ๋ก๋ธ๋ฅผ ๋ณด๋ ๋๋ค. INIT-ACK(open), ABORT(closed), ๋๋ ์๋ต ์์/ICMP unreachable(inactive)๊ฐ ์ฌ ์ ์์ต๋๋ค.-PO <protocols>: ํค๋์ ํ๋กํ ์ฝ ๋ฒํธ๋ฅผ ์ง์ ํฉ๋๋ค. ๊ธฐ๋ณธ์ผ๋ก 1(ICMP), 2(IGMP), 4(Encap IP)๋ฅผ ์ฌ์ฉํฉ๋๋ค. ICMP, IGMP, TCP(6), UDP(17) ํ๋กํ ์ฝ์๋ ํ๋กํ ์ฝ ํค๋๋ฅผ ๋ณด๋ด๊ณ , ๋๋จธ์ง์๋ IP ํค๋๋ง ๋ณด๋ ๋๋ค. ํค๋ ๋ณ์กฐ๋ก ์ธํด Protocol unreachable ๋๋ ๋์ผ ํ๋กํ ์ฝ์ ์๋ต์ด ์์ up ์ฌ๋ถ๋ฅผ ํ๋จํฉ๋๋ค.-n: DNS ๋น์ฌ์ฉ-R: ํญ์ DNS ์ฌ์ฉ
ํฌํธ ์ค์บ ๊ธฐ๋ฒ
-sS: ์ฐ๊ฒฐ์ ์๋ฃํ์ง ์์ ํ์ ์ ๋จ๊ธฐ์ง ์์ต๋๋ค(๊ถํ ํ์). ๊ธฐ๋ณธ ์ฌ์ฉ ๋ฐฉ์์ ๋๋ค.-sT: ์ฐ๊ฒฐ์ ์๋ฃํ๋ฏ๋ก ํ์ ์ด ๋จ์ง๋ง ๊ถํ์ด ์์ด๋ ์ฌ์ฉํ ์ ์์ต๋๋ค(๊ธฐ๋ณธ).-sU: ๋๋ฆฌ๋ฉฐ UDP์ฉ. ์ฃผ๋ก DNS(53), SNMP(161,162), DHCP(67,68)๋ฅผ ๊ฒ์ฌํฉ๋๋ค (-sU53,161,162,67,68): open(reply), closed(port unreachable), filtered(๋ค๋ฅธ ICMP), open/filtered(์๋ต ์์). open/filtered ๊ฒฝ์ฐ-sV๊ฐ ์ฌ๋ฌ ์์ฒญ์ ๋ณด๋ด์ด ๋ฒ์ ์ ํ์งํ๋ ค ์๋ํ๋ฉฐ ์๊ฐ์ด ํฌ๊ฒ ๋์ด๋ฉ๋๋ค.-sY: SCTP. ์ฐ๊ฒฐ ์๋ฆฝ ์คํจ๋ก ๋ก๊ทธ๊ฐ ๋จ์ง ์์ผ๋ฉฐ -PY์ ์ ์ฌํ๊ฒ ๋์ํฉ๋๋ค.-sN,-sX,-sF: Null, Fin, Xmas. ์ผ๋ถ ๋ฐฉํ๋ฒฝ์ ํต๊ณผํด ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค. ํ์ค ์ค์ ํธ์คํธ๋ SYN, RST, ACK ํ๋๊ทธ๊ฐ ์๋ ์์ฒญ์ RST๋ก ์๋ตํด์ผ ํ๋ค๋ ์ ์ ๊ธฐ๋ฐํฉ๋๋ค: open/filtered(์๋ต ์์), closed(RST), filtered(ICMP unreachable). Windows, Cisco, BSDI ๋ฐ OS/400์์๋ ์ ๋ขฐ์ฑ์ด ๋จ์ด์ง๋๋ค. Unix์์๋ ๋์ํฉ๋๋ค.-sM: Maimon ์ค์บ: FIN๊ณผ ACK๋ฅผ ๋ณด๋ ๋๋ค. BSD ๊ณ์ด์์ ์ฌ์ฉ๋๋ฉฐ ํ์ฌ๋ ๋ชจ๋ closed๋ก ๋ฐํ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.-sA, sW: ACK์ Window ์ค์บ. ๋ฐฉํ๋ฒฝ์ ํ์งํ๊ณ ํฌํธ๊ฐ ํํฐ๋ง๋๋์ง ์ฌ๋ถ๋ฅผ ํ๋จํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.-sW๋ open/closed๋ฅผ ์๋์ฐ ๊ฐ์ผ๋ก ๊ตฌ๋ถํฉ๋๋ค: open (RST, window != 0), closed (RST, window = 0), filtered (ICMP unreachable ๋๋ ์๋ต ์์). ๋ชจ๋ ์์คํ ์ด ๋์ผํ๊ฒ ๋์ํ์ง ์์ผ๋ฏ๋ก ๋ชจ๋ ํฌํธ๊ฐ closed๋ก ๋์ค๋ฉด ์๋ํ์ง ์๋ ๊ฒ์ ๋๋ค; ์ผ๋ถ๋ง open์ด๋ฉด ์ ์ ๋์์ ๋๋ค.-sI: Idle scan. ์กํฐ๋ธ ๋ฐฉํ๋ฒฝ์ด ์์ง๋ง ํน์ IP๋ก์ ํํฐ๋ง์ด ์์์ ์๊ณ ์๊ฑฐ๋ ์ต๋ช ์ฑ์ด ํ์ํ ๋ zombie ์ค์บ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค(๋ชจ๋ ํฌํธ์ ๋ํด ๋์). ๊ฐ๋ฅํ ์ข๋น๋ฅผ ์ฐพ์ผ๋ ค๋ฉด scrpit ipidseq ๋๋ exploit auxiliary/scanner/ip/ipidseq๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์ค์บ๋๋ IP ํจํท์ IPID ์ซ์์ ๊ธฐ๋ฐํฉ๋๋ค.--badsum: ์ฒดํฌ์ฌ์ ํ๋ฆฌ๊ฒ ๋ณด๋ด๋ฉด ํธ์คํธ๋ ํจํท์ ๋ฒ๋ฆฌ์ง๋ง ๋ฐฉํ๋ฒฝ์ ์๋ตํ ์ ์์ผ๋ฏ๋ก ๋ฐฉํ๋ฒฝ ํ์ง์ ์ฌ์ฉํฉ๋๋ค.-sZ: โWeirdโ SCTP ์ค์บ๋. cookie echo fragments๋ก ํ๋ก๋ธ๋ฅผ ๋ณด๋ด๋ฉด open์ด๋ฉด ๋๋กญ, closed์ด๋ฉด ABORT๋ก ์๋ตํด์ผ ํฉ๋๋ค. INIT๊ฐ ํต๊ณผํ์ง ๋ชปํ๋ ๋ฐฉํ๋ฒฝ์ ํต๊ณผํ ์ ์์ง๋ง filtered์ open์ ๊ตฌ๋ถํ์ง ๋ชปํฉ๋๋ค.-sO: IP ํ๋กํ ์ฝ ์ค์บ. ๋๋ก๋ ํ๋กํ ์ฝ์กฐ์ฐจ ๊ตฌ๋ถ๋์ง ์๋ ์๋ชป๋/๋น ํค๋๋ฅผ ๋ณด๋ ๋๋ค. ICMP protocol unreachable์ด ์ค๋ฉด closed, unreachable port๊ฐ ์ค๋ฉด open, ๋ค๋ฅธ ์ค๋ฅ๊ฐ ์ค๋ฉด filtered, ์๋ต์ด ์์ผ๋ฉด open|filtered๋ก ํ๋จํฉ๋๋ค.-b <server>: FTPhost โ> ๋ค๋ฅธ ํธ์คํธ์์ ๋์ ํธ์คํธ๋ฅผ ์ค์บํ ๋ ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ๋จธ์ ์ FTP์ ์ฐ๊ฒฐํด ํด๋น ๋จธ์ ์ด ์ค์บํ๋ ค๋ ํฌํธ๋ก ํ์ผ์ ๋ณด๋ด๋๋ก ์์ฒญํ๊ณ , ๊ทธ ์๋ต์ผ๋ก ํฌํธ ์ํ๋ฅผ ์ถ์ ํฉ๋๋ค. ํ์: [<user>:<password>@]<server>[:<port>]. ๋๋ถ๋ถ์ FTP ์๋ฒ๋ ์ด์ ์ด๋ฅผ ํ์ฉํ์ง ์์ ์ค๋ฌด์์๋ ๊ฑฐ์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค.
์ค์ ๋ถ์
-p: ์ค์บํ ํฌํธ๋ฅผ ์ง์ ํฉ๋๋ค. ์ ์ฒด 65,535 ํฌํธ๋ฅผ ์ ํํ๋ ค๋ฉด: -p- ๋๋ -p all. Nmap์ ์ธ๊ธฐ๋ ๊ธฐ๋ฐ์ ๋ด๋ถ ๋ถ๋ฅ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๊ธฐ๋ณธ์ผ๋ก ์์ 1000ํฌํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. -F(๋น ๋ฅธ ์ค์บ)๋ ์์ 100ํฌํธ๋ฅผ ๋ถ์ํฉ๋๋ค. **โtop-ports
-sV ๋ฒ์ ์ค์บ. ๊ฐ๋๋ 0์์ 9๊น์ง ์กฐ์ ๊ฐ๋ฅ, ๊ธฐ๋ณธ 7.
โversion-intensity
-O OS ํ์ง
โosscan-limit ์ ์ ํ OS ํ์ ์๋ ์ต์ ํ๋์ open ํฌํธ์ ํ๋์ closed ํฌํธ๊ฐ ํ์ํฉ๋๋ค. ์ด ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ง ์๊ณ ์ด ์ต์ ์ ์ค์ ํ๋ฉด OS ์์ธก์ ์๋ํ์ง ์์ต๋๋ค(์๊ฐ ์ ์ฝ).
โosscan-guess OS ํ์ง๊ฐ ์๋ฒฝํ์ง ์์ ๋ ๋ ๊ฐํ๊ฒ ์๋ํฉ๋๋ค.
์คํฌ๋ฆฝํธ
โscript
๊ธฐ๋ณธ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด -sC ๋๋ โscript=default
์ฌ์ฉ ๊ฐ๋ฅํ ํ์ : auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version, vuln
- Auth: ์ฌ์ฉ ๊ฐ๋ฅํ ์ธ์ฆ ์คํฌ๋ฆฝํธ ์ ๋ถ ์คํ
- Default: ๊ธฐ๋ณธ ๋๊ตฌ ์คํฌ๋ฆฝํธ ์คํ
- Discovery: ๋์์์ ์ ๋ณด ์์ง
- External: ์ธ๋ถ ๋ฆฌ์์ค ์ฌ์ฉ์ฉ ์คํฌ๋ฆฝํธ
- Intrusive: ๋์์ ๋ํด ์นจํฌ์ ์ด๋ผ ๋ถ๋ฅ๋๋ ์คํฌ๋ฆฝํธ ์ฌ์ฉ
- Malware: ์ ์ฑ ์ฝ๋๋ ๋ฐฑ๋์ด๊ฐ ์ฐ ์ฐ๊ฒฐ ๊ฒ์ฌ
- Safe: ๋น์นจ์ ์ ์คํฌ๋ฆฝํธ๋ง ์คํ
- Vuln: ์๋ ค์ง ์ทจ์ฝ์ ํ์ง
- All: ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ NSE ํ์ฅ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๋ถ ์คํ
์คํฌ๋ฆฝํธ ๊ฒ์ ์:
nmap โscript-help=โhttp-*โ -> http-๋ก ์์ํ๋ ๊ฒ๋ค
nmap โscript-help=โnot intrusiveโ -> ์นจํฌ์ ์ด ์๋ ๋ชจ๋ ๊ฒ
nmap โscript-help=โdefault or safeโ -> ๋ ์ค ํ๋ ๋๋ ๋ ๋ค์ ์ํ ๊ฒ๋ค
nmap โscript-help=โdefault and safeโ โ> ๋ ๋ค์ ์ํ ๊ฒ๋ค
nmap โscript-help=โ(default or safe or intrusive) and not http-*โ
โscript-args
โscript-args-file
โscript-help
โscript-trace โ> ์คํฌ๋ฆฝํธ ์งํ ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค
โscript-updatedb
์คํฌ๋ฆฝํธ ์ฌ์ฉ๋ฒ: nmap โscript Script_Name target โ> ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ๋ ์คํฌ๋ฆฝํธ์ ์ค์บ๋๊ฐ ํจ๊ป ์คํ๋๋ฏ๋ก ์ค์บ๋ ์ต์ ๋ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์์ ํ ๊ฒ๋ง ์คํํ๋ ค๋ฉด **โsafe=1โ**์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์๊ฐ ์ ์ด
Nmap์ ์๊ฐ ๋จ์๋ฅผ ์ด, ๋ถ, ms๋ก ์ง์ ํ ์ ์์ต๋๋ค: โhost-timeout ์ธ์๋ก 900000ms, 900, 900s, ๊ทธ๋ฆฌ๊ณ 15m๋ ๋ชจ๋ ๋์ผํ๊ฒ ๋์ํฉ๋๋ค.
Nmap์ ์ค์บํ ์ ์ฒด ํธ์คํธ๋ฅผ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด ๋ธ๋ก ๋จ์๋ก ๋ถ์ํ๋ฉฐ, ํ ๋ธ๋ก์ ๋ถ์์ด ๋๋ ๋๊น์ง ๋ค์ ๋ธ๋ก์ผ๋ก ๋์ด๊ฐ์ง ์์ต๋๋ค(์ฌ์ฉ์๋ ๋ธ๋ก์ด ์๋ฃ๋ ๋๊น์ง ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ง ๋ชปํจ). ์ด ๋๋ฌธ์ Nmap์ ํฐ ๊ทธ๋ฃน์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ ๋๋ค. ํด๋์ค C ๊ธฐ๋ณธ๊ฐ์ 256์ ๋๋ค.
์ด๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด โmin-hostgroup
๋ณ๋ ฌ ์ค์บ๋ ์๋ฅผ ์ ์ดํ ์ ์์ง๋ง(Nmap์ ๋คํธ์ํฌ ์ํ์ ๋ฐ๋ผ ์๋ ์ ์ด๋ฅผ ์ด๋ฏธ ํฌํจํ๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก ์กฐ์ ๊ถ์ฅ ์ ํจ): โmin-parallelism
RTT ํ์์์์ ์์ ํ ์ ์์ง๋ง ๋ณดํต ๋ถํ์ํฉ๋๋ค: โmin-rtt-timeout , โmax-rtt-timeout , โinitial-rtt-timeout
์๋ ํ์ ์์ : โmax-retries
ํธ์คํธ๋น ์ค์บ ์๊ฐ ์์ : โhost-timeout
๊ฐ ํ ์คํธ ์ฌ์ด์ ์ง์ฐ์ ๋๋ ค ๋๋ฆฌ๊ฒ ํ๋ ค๋ฉด: โscan-delay ; โmax-scan-delay
์ด๋น ํจํท ์ ์์ : โmin-rate
๋ง์ ํฌํธ๋ filtered ๋๋ closed ์ํ์์ ์๋ต์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. open ํฌํธ๋ง ๊ด์ฌ ์๋ค๋ฉด ์๋๋ฅผ ์ฌ๋ฆฌ๊ธฐ ์ํด: โdefeat-rst-ratelimit
Nmap์ ๊ณต๊ฒฉ์ฑ ์์ค ์ ์: -T paranoid|sneaky|polite|normal|aggressive|insane
-T (0-1)
-T0 โ> ํ ๋ฒ์ 1ํฌํธ๋ง ์ค์บํ๊ณ ๋ค์๊น์ง 5๋ถ ๋๊ธฐ
-T1 ๋ฐ T2 โ> ๋งค์ฐ ์ ์ฌํ์ง๋ง ๊ฐ๊ฐ ํ ์คํธ ๊ฐ 15์ด์ 0.4์ด ๋๊ธฐ
-T3 โ> ๊ธฐ๋ณธ ๋์, ๋ณ๋ ฌ ์ค์บ ํฌํจ
-T4 โ> โmax-rtt-timeout 1250ms โmin-rtt-timeout 100ms โinitial-rtt-timeout 500ms โmax-retries 6 โmax-scan-delay 10ms
-T5 โ> โmax-rtt-timeout 300ms โmin-rtt-timeout 50ms โinitial-rtt-timeout 250ms โmax-retries 2 โhost-timeout 15m โmax-scan-delay 5ms
Firewall/IDS
๋ฐฉํ๋ฒฝ/IDS๋ ํฌํธ ์ ๊ทผ์ ์ฐจ๋จํ๊ณ ํจํท์ ๋ถ์ํฉ๋๋ค.
-f ํจํท์ ๋ถํ (fragment)ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํค๋ ์ดํ 8๋ฐ์ดํธ ๋จ์๋ก ๋ถํ ํ๋ฉฐ ํฌ๊ธฐ๋ฅผ ์ง์ ํ๋ ค๋ฉด ..mtu๋ฅผ ์ฌ์ฉ(์ด ๊ฒฝ์ฐ -f๋ฅผ ์ฌ์ฉํ์ง ๋ง์ธ์). ์คํ์ ์ 8์ ๋ฐฐ์์ฌ์ผ ํฉ๋๋ค. Version scanners์ ์คํฌ๋ฆฝํธ๋ fragmentation์ ์ง์ํ์ง ์์ต๋๋ค
-D decoy1,decoy2,ME Nmap์ origin์ ๋ค๋ฅธ IP๋ก ์์ฅํ ์ค์บ์ ๋ณด๋
๋๋ค. ME๋ฅผ ๋ฆฌ์คํธ์ ๋ฃ์ผ๋ฉด Nmap์ด ํด๋น ์์น์ ๋น์ ์ ๋ฐฐ์นํฉ๋๋ค. ์์ ํ ์จ๊ธฐ๋ ค๋ฉด ๋น์ ์์ 5~6๊ฐ์ IP๋ฅผ ๋ฃ๋ ๊ฒ์ด ์ข์ต๋๋ค. RND:
๋๋ค IP ์ฌ์ฉ ์: nmap -D RND:10 Target_IP
-S IP Nmap์ด ๋น์ ์ IP๋ฅผ ์ก์๋ด์ง ๋ชปํ ๋ ์ฌ์ฉ. ๋ํ ๋ค๋ฅธ ๋์์ด ์ค์บํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
-e
๋ง์ ๊ด๋ฆฌ์๋ค์ด ์๋น์ค ํธ์๋ฅผ ์ํด ํน์ ํฌํธ์์ ์ค๋ ๋ชจ๋ ํจํท์ ํ์ฉํ๋ ๊ท์น์ ๋ก๋๋ค(์: 20,53,67). ์ด๋ฐ ์ทจ์ฝ์ ์ ์ฐพ๊ธฐ ์ํด Nmap์ โsource-port
โdata
โdata-string
โdata-length
IP ํจํท์ ์์ ํ ๊ตฌ์ฑํ๋ ค๋ฉด โip-options
๋ณด๋ด๊ณ ๋ฐ๋ ํจํท์ ์ต์ ์ ๋ณด๋ ค๋ฉด โpacket-trace ์ง์ . IP ์ต์ ์ฌ์ฉ ์์ ๋ฐ ์์ธํ ๋ด์ฉ์ http://seclists.org/nmap-dev/2006/q3/52 ์ฐธ์กฐ.
โttl
โrandomize-hosts ๊ณต๊ฒฉ์ ๋ ๋ช ๋ฐฑํ๊ฒ ๋ง๋ค๊ธฐ
โspoof-mac <MAC address, prefix, or vendor name> MAC ๋ณ๊ฒฝ ์: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2, Cisco
โproxies
-sP ARP๋ก ๋ก์ปฌ ๋คํธ์ํฌ์์ ํธ์คํธ ๋ฐ๊ฒฌ
๋ง์ ๊ด๋ฆฌ์๋ค์ด ํน์ ํฌํธ์์ ์ค๋ ๋ชจ๋ ํจํท์ ํ์ฉํ๋ ๋ฐฉํ๋ฒฝ ๊ท์น์ ๋ง๋ญ๋๋ค(์: 20,53,67). Nmap์ ์ด ํฌํธ๋ค๋ก ํจํท์ ๋ณด๋ด๋๋ก ์ง์ํ ์ ์์ต๋๋ค: nmap โsource-port 53 IP
์ถ๋ ฅ
-oN file ์ผ๋ฐ ์ถ๋ ฅ
-oX file XML ์ถ๋ ฅ
-oS file Script kiddies ์ถ๋ ฅ
-oG file Greppable ์ถ๋ ฅ
-oA file ๋ชจ๋ ์ถ๋ ฅ(-oS ์ ์ธ ํฌํจ)
-v level verbosity
-d level debugging
โreason ํธ์คํธ ์ํ์ ์ด์ ํ์
โstats-every time ์ฃผ๊ธฐ์ ์ผ๋ก ์งํ ์ํ ์ถ๋ ฅ
โpacket-trace ๋๊ฐ๋ ํจํท ๋ณด๊ธฐ, ํํฐ ์ง์ ๊ฐ๋ฅ(์: โversion-trace ๋๋ โscript-trace)
โopen open, open|filtered ๋ฐ unfiltered๋ง ํ์
โresume file ์์ฝ ์ถ๋ ฅ์ผ๋ก ์ฌ๊ฐ
๊ธฐํ
-6 IPv6 ํ์ฉ
-A ๋ -O -sV -sC โtraceroute ์ ๋์ผ
์คํ ์ค
Nmap ์คํ ์ค ์ต์ ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค:
v / V verbosity ์ฆ๊ฐ/๊ฐ์
d / D debugging ์ฆ๊ฐ/๊ฐ์
p / P packet tracing ์ผ๊ธฐ/๋๊ธฐ
? ๋ฐํ์ ์ํธ์์ฉ ๋์๋ง ํ๋ฉด ์ถ๋ ฅ
Vulscan
Nmap ์คํฌ๋ฆฝํธ๋ก, ์ป์ ์๋น์ค ๋ฒ์ ์ ์คํ๋ผ์ธ DB(๋ค๋ฅธ ์ค์ํ DB์์ ์์ง)์ ๋์กฐํ์ฌ ๊ฐ๋ฅํ ์ทจ์ฝ์ ์ ๋ฐํํฉ๋๋ค.
์ฌ์ฉํ๋ DB ๋ชฉ๋ก:
- Scipvuldb.csv | http://www.scip.ch/en/?vuldb
- Cve.csv | http://cve.mitre.org
- Osvdb.csv | http://www.osvdb.org
- Securityfocus.csv | http://www.securityfocus.com/bid/
- Securitytracker.csv | http://www.securitytracker.com
- Xforce.csv | http://xforce.iss.net
- Exploitdb.csv | http://www.exploit-db.com
- Openvas.csv | http://www.openvas.org
Nmap ํด๋์ ๋ค์ด๋ก๋ ๋ฐ ์ค์น:
wget http://www.computec.ch/projekte/vulscan/download/nmap_nse_vulscan-2.0.tar.gz && tar -czvf nmap_nse_vulscan-2.0.tar.gz vulscan/ && sudo cp -r vulscan/ /usr/share/nmap/scripts/
DB ํจํค์ง๋ค๋ ๋ค์ด๋ก๋ํ์ฌ /usr/share/nmap/scripts/vulscan/์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
์ฌ์ฉ๋ฒ:
์ ์ฒด DB ์ฌ์ฉ: sudo nmap -sV โscript=vulscan HOST_TO_SCAN
ํน์ DB ์ฌ์ฉ: sudo nmap -sV โscript=vulscan โscript-args vulscandb=cve.csv HOST_TO_SCAN
Nmap Service ์ค์บ์ x16 ๋นจ๋ฆฌ ํ๊ธฐ
to this post์ ๋ฐ๋ฅด๋ฉด /usr/share/nmap/nmap-service-probes ํ์ผ์ ๋ชจ๋ totalwaitms ๊ฐ์ 300์ผ๋ก, tcpwrappedms ๋ฅผ 200์ผ๋ก ์์ ํ๋ฉด service ๋ถ์ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
๋ํ, ๋ช
์์ ์ผ๋ก ์ ์๋ servicewaitms ๊ฐ ์๋ ํ๋ก๋ธ๋ ๊ธฐ๋ณธ๊ฐ 5000 ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์ ๊ฐ ํ๋ก๋ธ์ ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ nmap์ ์ปดํ์ผํ์ฌ ๊ธฐ๋ณธ๊ฐ์ service_scan.h์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
/usr/share/nmap/nmap-service-probes ํ์ผ์ totalwaitms ๋ฐ tcpwrappedms ๊ฐ์ ์ ํ ๋ณ๊ฒฝํ๊ณ ์ถ์ง ์๋ค๋ฉด, parsing code๋ฅผ ํธ์งํ์ฌ ํ์ผ ๋ด์ ์ด ๊ฐ๋ค์ ์์ ํ ๋ฌด์ํ๋๋ก ํ ์ ์์ต๋๋ค.
์ ํ๋ ํ๊ฒฝ์ฉ ์ ์ Nmap ๋น๋
ํ๋๋๋๊ฑฐ๋ ์ต์ํ๋ Linux ํ๊ฒฝ(์ปจํ ์ด๋, appliance)์์๋ ๋์ ๋งํฌ๋ Nmap ๋ฐ์ด๋๋ฆฌ๊ฐ ๋ฐํ์ ๋ก๋๋ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: /lib64/ld-linux-x86-64.so.2, libc.so) ๋ถ์กฑ์ผ๋ก ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ์ ์ผ๋ก ๋งํฌ๋ Nmap์ ์ง์ ๋น๋ํ๊ณ NSE ๋ฐ์ดํฐ๊น์ง ๋ฒ๋คํ๋ฉด ์์คํ ํจํค์ง ์ค์น ์์ด ์คํํ ์ ์์ต๋๋ค.
๊ณ ์์ค ์ ๊ทผ๋ฒ
- Docker๋ก ๊นจ๋ํ amd64 Ubuntu ๋น๋ ์ฌ์ฉ
- OpenSSL ๋ฐ PCRE2๋ฅผ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋น๋
- libpcap/libdnet ํฌํจ์ ์ฌ์ฉํด ์ ์ ์ผ๋ก ๋งํฌ๋ Nmap ๋น๋(๋์ ์์กด์ฑ ํํผ)
- ๋ฐ์ด๋๋ฆฌ์ ํจ๊ป NSE ์คํฌ๋ฆฝํธ ๋ฐ ๋ฐ์ดํฐ ๋๋ ํ ๋ฆฌ ๋ฒ๋ค๋ง
ํ๊น ์ํคํ ์ฒ ์๋ณ (์์)
uname -a
# If building from macOS/ARM/etc., pin the builder arch:
docker run --rm --platform=linux/amd64 -v "$(pwd)":/out -w /tmp ubuntu:22.04 bash -lc 'echo ok'
1๋จ๊ณ โ ํด์ฒด์ธ ์ค๋น
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
apt-get update && apt-get install -y --no-install-recommends \
build-essential ca-certificates curl bzip2 xz-utils pkg-config perl python3 file git \
automake autoconf libtool m4 zlib1g-dev
2๋จ๊ณ โ ์ ์ OpenSSL (1.1.1w) ๋น๋
OSSL="1.1.1w"
curl -fsSLO "https://www.openssl.org/source/openssl-$OSSL.tar.gz"
tar xzf "openssl-$OSSL.tar.gz" && cd "openssl-$OSSL"
./Configure no-shared no-zlib linux-x86_64 -static --prefix=/opt/ossl
make -j"$(nproc)" && make install_sw
cd /tmp
3๋จ๊ณ โ ์ ์ PCRE2 (10.43) ๋น๋
PCRE2=10.43
curl -fsSLO "https://github.com/PCRE2Project/pcre2/releases/download/pcre2-$PCRE2/pcre2-$PCRE2.tar.bz2"
tar xjf "pcre2-$PCRE2.tar.bz2" && cd "pcre2-$PCRE2"
./configure --disable-shared --enable-static --prefix=/opt/pcre2
make -j"$(nproc)" && make install
cd /tmp
4๋จ๊ณ โ ์ ์ Nmap (7.98) ๋น๋
NMAP=7.98
curl -fsSLO "https://nmap.org/dist/nmap-$NMAP.tar.bz2"
tar xjf "nmap-$NMAP.tar.bz2" && cd "nmap-$NMAP"
export CPPFLAGS="-I/opt/ossl/include -I/opt/pcre2/include"
export LDFLAGS="-L/opt/ossl/lib -L/opt/pcre2/lib -static -static-libstdc++ -static-libgcc"
export LIBS="-lpcre2-8 -ldl -lpthread -lz"
./configure \
--with-openssl=/opt/ossl \
--with-libpcre=/opt/pcre2 \
--with-libpcap=included \
--with-libdnet=included \
--without-zenmap --without-ndiff --without-nmap-update
# Avoid building shared libpcap by accident
sed -i -e "s/^shared: /shared: #/" libpcap/Makefile || true
make -j1 V=1 nmap
strip nmap
์์
- -static, -static-libstdc++, -static-libgcc๋ ์ ์ ๋งํฌ๋ฅผ ๊ฐ์ ํฉ๋๋ค.
- โwith-libpcap=included/โwith-libdnet=included๋ฅผ ์ฌ์ฉํ๋ฉด ์์คํ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํผํ ์ ์์ต๋๋ค.
- sed ์กฐ์ ์ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๊ณต์ libpcap ๋์์ ๋ฌด๋ ฅํํฉ๋๋ค.
๋จ๊ณ 5 โ binary ๋ฐ NSE ๋ฐ์ดํฐ ๋ฒ๋ค๋ง
mkdir -p /out/nmap-bundle/nmap-data
cp nmap /out/nmap-bundle/nmap-linux-amd64-static
cp -r scripts nselib /out/nmap-bundle/nmap-data/
cp nse_main.lua nmap-services nmap-protocols nmap-service-probes \
nmap-mac-prefixes nmap-os-db nmap-payloads nmap-rpc \
/out/nmap-bundle/nmap-data/ 2>/dev/null || true
tar -C /out -czf /out/nmap-linux-amd64-static-bundle.tar.gz nmap-bundle
๊ฒ์ฆ ๋ฐ ์ด์ ๋ ธํธ
- ์ํฐํฉํธ์์ file์ ์ฌ์ฉํ์ฌ ์ ์ ์ผ๋ก ๋งํฌ๋์ด ์๋์ง ํ์ธํ์ธ์.
- Nmap์ด ์ค์น๋์ง ์์ ํธ์คํธ์์ ์คํฌ๋ฆฝํธ ๋๋ฑ์ฑ์ ๋ณด์ฅํ๋ ค๋ฉด NSE ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ด๋๋ฆฌ์ ํจ๊ป ๋ณด๊ดํ์ธ์.
- static binary๊ฐ ์์ด๋ ์คํ์ AppArmor/seccomp/SELinux์ ์ํด ์ฐจ๋จ๋ ์ ์์ต๋๋ค; DNS/egress๋ ์ฌ์ ํ ์๋ํด์ผ ํฉ๋๋ค.
- ๊ฒฐ์ ๋ก ์ ๋น๋๋ ๋ถํฌ๋ช ํ โstaticโ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ๋ณด๋ค ๊ณต๊ธ๋ง ์ํ์ ์ค์ ๋๋ค.
์๋ผ์ด๋ (Dockerized)
๋น๋, ๋ฒ๋คํ, ์ํฐํฉํธ ์ ๋ณด ์ถ๋ ฅ
```bash docker run --rm --platform=linux/amd64 -v "$(pwd)":/out -w /tmp ubuntu:22.04 bash -lc ' set -euo pipefail export DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -y --no-install-recommends \ build-essential ca-certificates curl bzip2 xz-utils pkg-config perl python3 file git \ automake autoconf libtool m4 zlib1g-devOSSL=โ1.1.1wโ; curl -fsSLO โhttps://www.openssl.org/source/openssl-$OSSL.tar.gzโ
&& tar xzf โopenssl-$OSSL.tar.gzโ && cd โopenssl-$OSSLโ
&& ./Configure no-shared no-zlib linux-x86_64 -static โprefix=/opt/ossl
&& make -jโ$(nproc)โ && make install_sw && cd /tmp
PCRE2=10.43; curl -fsSLO โhttps://github.com/PCRE2Project/pcre2/releases/download/pcre2-$PCRE2/pcre2-$PCRE2.tar.bz2โ
&& tar xjf โpcre2-$PCRE2.tar.bz2โ && cd โpcre2-$PCRE2โ
&& ./configure โdisable-shared โenable-static โprefix=/opt/pcre2
&& make -jโ$(nproc)โ && make install && cd /tmp
NMAP=7.98; curl -fsSLO โhttps://nmap.org/dist/nmap-$NMAP.tar.bz2โ
&& tar xjf โnmap-$NMAP.tar.bz2โ && cd โnmap-$NMAPโ
&& export CPPFLAGS=โ-I/opt/ossl/include -I/opt/pcre2/includeโ
&& export LDFLAGS=โ-L/opt/ossl/lib -L/opt/pcre2/lib -static -static-libstdc++ -static-libgccโ
&& export LIBS=โ-lpcre2-8 -ldl -lpthread -lzโ
&& ./configure โwith-openssl=/opt/ossl โwith-libpcre=/opt/pcre2 โwith-libpcap=included โwith-libdnet=included โwithout-zenmap โwithout-ndiff โwithout-nmap-update
&& sed -i -e โs/^shared: /shared: #/โ libpcap/Makefile || true
&& make -j1 V=1 nmap && strip nmap
mkdir -p /out/nmap-bundle/nmap-data
&& cp nmap /out/nmap-bundle/nmap-linux-amd64-static
&& cp -r scripts nselib /out/nmap-bundle/nmap-data/
&& cp nse_main.lua nmap-services nmap-protocols nmap-service-probes nmap-mac-prefixes nmap-os-db nmap-payloads nmap-rpc /out/nmap-bundle/nmap-data/ 2>/dev/null || true
&& tar -C /out -czf /out/nmap-linux-amd64-static-bundle.tar.gz nmap-bundle
&& echo โ===== OUTPUT =====โ; ls -lah /out; echo โ===== FILE TYPE =====โ; file /out/nmap-bundle/nmap-linux-amd64-static || true
โ
</details>
## ์ฐธ๊ณ ์๋ฃ
- [Compiling static Nmap binary for jobs in restricted environments](https://www.pentestpartners.com/security-blog/compiling-static-nmap-binary-for-jobs-in-restricted-environments/)
- [Static Nmap Binary Generator (helper tool)](https://github.com/0x5ubt13/static_nmap_binary_generator)
- [OpenSSL sources](https://www.openssl.org/source/)
- [PCRE2 releases](https://github.com/PCRE2Project/pcre2/releases)
- [Nmap source tarballs](https://nmap.org/dist/)
> [!TIP]
> AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>HackTricks ์ง์ํ๊ธฐ</summary>
>
> - [**๊ตฌ๋
๊ณํ**](https://github.com/sponsors/carlospolop) ํ์ธํ๊ธฐ!
> - **๐ฌ [**๋์ค์ฝ๋ ๊ทธ๋ฃน**](https://discord.gg/hRep4RUj7f) ๋๋ [**ํ
๋ ๊ทธ๋จ ๊ทธ๋ฃน**](https://t.me/peass)์ ์ฐธ์ฌํ๊ฑฐ๋ **ํธ์ํฐ** ๐ฆ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**๋ฅผ ํ๋ก์ฐํ์ธ์.**
> - **[**HackTricks**](https://github.com/carlospolop/hacktricks) ๋ฐ [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.**
>
> </details>


