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 ์ง€์›ํ•˜๊ธฐ
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 **๋กœ 1์—์„œ 65,335 ์‚ฌ์ด์˜ ์ƒ์œ„ ํฌํŠธ ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฌํŠธ๋Š” ๋ฌด์ž‘์œ„ ์ˆœ์„œ๋กœ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค; ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด -r์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ํŠน์ • ํฌํŠธ๋ฅผ ์„ ํƒํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค: 20-30,80,443,1024- (๋งˆ์ง€๋ง‰์€ 1024 ์ดํ›„ ์ „๋ถ€). ํ”„๋กœํ† ์ฝœ๋ณ„๋กœ ๊ทธ๋ฃนํ™”๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค: U:53,T:21-25,80,139,S:9. Nmap์˜ ์ธ๊ธฐ ํฌํŠธ ๋‚ด์—์„œ ๋ฒ”์œ„๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด: -p [-1024]๋Š” nmap-services์— ํฌํ•จ๋œ ํฌํŠธ ์ค‘ ํฌํŠธ 1024๊นŒ์ง€๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. **โ€“port-ratio **๋Š” 0๊ณผ 1 ์‚ฌ์ด์˜ ๋น„์œจ๋กœ ๊ฐ€์žฅ ํ”ํ•œ ํฌํŠธ๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

-sV ๋ฒ„์ „ ์Šค์บ”. ๊ฐ•๋„๋Š” 0์—์„œ 9๊นŒ์ง€ ์กฐ์ ˆ ๊ฐ€๋Šฅ, ๊ธฐ๋ณธ 7.

โ€“version-intensity ๊ฐ•๋„๋ฅผ ์กฐ์ ˆํ•ฉ๋‹ˆ๋‹ค. ๋‚ฎ๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๊ฐ€์žฅ ๊ฐ€๋Šฅ์„ฑ ๋†’์€ ํ”„๋กœ๋ธŒ๋งŒ ๋ณด๋‚ด๋ฏ€๋กœ UDP ์Šค์บ” ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-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 ||||all[,โ€ฆ]

โ€“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 ; โ€“max-hostgroup (๋ณ‘๋ ฌ ์Šค์บ” ๊ทธ๋ฃน ํฌ๊ธฐ ์กฐ์ •)

๋ณ‘๋ ฌ ์Šค์บ๋„ˆ ์ˆ˜๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ(Nmap์€ ๋„คํŠธ์›Œํฌ ์ƒํƒœ์— ๋”ฐ๋ผ ์ž๋™ ์ œ์–ด๋ฅผ ์ด๋ฏธ ํฌํ•จํ•˜๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์กฐ์ • ๊ถŒ์žฅ ์•ˆ ํ•จ): โ€“min-parallelism ; โ€“max-parallelism

RTT ํƒ€์ž„์•„์›ƒ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ณดํ†ต ๋ถˆํ•„์š”ํ•ฉ๋‹ˆ๋‹ค: โ€“min-rtt-timeout , โ€“max-rtt-timeout , โ€“initial-rtt-timeout

์‹œ๋„ ํšŸ์ˆ˜ ์ˆ˜์ •: โ€“max-retries

ํ˜ธ์ŠคํŠธ๋‹น ์Šค์บ” ์‹œ๊ฐ„ ์ˆ˜์ •: โ€“host-timeout

๊ฐ ํ…Œ์ŠคํŠธ ์‚ฌ์ด์˜ ์ง€์—ฐ์„ ๋Š˜๋ ค ๋А๋ฆฌ๊ฒŒ ํ•˜๋ ค๋ฉด: โ€“scan-delay ; โ€“max-scan-delay

์ดˆ๋‹น ํŒจํ‚ท ์ˆ˜ ์ˆ˜์ •: โ€“min-rate ; โ€“max-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๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. TCP ๋ฒ„์ „ ๊ฐ์ง€๊ธฐ(๋น„์—ฐ๊ฒฐํ˜•)์—์„œ๋Š” ๋™์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์— ์žˆ๋‹ค๋ฉด ๋น„ํ™œ์„ฑ IP๋ณด๋‹ค ํ™œ์„ฑ IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค(์•„๋‹ˆ๋ฉด ์œ ์ผํ•œ ํ™œ์„ฑ ํ˜ธ์ŠคํŠธ๊ฐ€ ๋‹น์‹ ์ธ ๊ฒƒ์ด ์‰ฝ๊ฒŒ ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค).

๋žœ๋ค IP ์‚ฌ์šฉ ์˜ˆ: nmap -D RND:10 Target_IP

-S IP Nmap์ด ๋‹น์‹ ์˜ IP๋ฅผ ์žก์•„๋‚ด์ง€ ๋ชปํ•  ๋•Œ ์‚ฌ์šฉ. ๋˜ํ•œ ๋‹ค๋ฅธ ๋Œ€์ƒ์ด ์Šค์บ”ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

-e ์ธํ„ฐํŽ˜์ด์Šค ์„ ํƒ

๋งŽ์€ ๊ด€๋ฆฌ์ž๋“ค์ด ์„œ๋น„์Šค ํŽธ์˜๋ฅผ ์œ„ํ•ด ํŠน์ • ํฌํŠธ์—์„œ ์˜ค๋Š” ๋ชจ๋“  ํŒจํ‚ท์„ ํ—ˆ์šฉํ•˜๋Š” ๊ทœ์น™์„ ๋‘ก๋‹ˆ๋‹ค(์˜ˆ: 20,53,67). ์ด๋Ÿฐ ์ทจ์•ฝ์ ์„ ์ฐพ๊ธฐ ์œ„ํ•ด Nmap์€ โ€“source-port ; -g (๋™๋“ฑ)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

โ€“data 16์ง„์ˆ˜ ํ…์ŠคํŠธ ์ „์†ก: โ€“data 0xdeadbeef ๋˜๋Š” โ€“data \xCA\xFE\x09

โ€“data-string ์ผ๋ฐ˜ ํ…์ŠคํŠธ ์ „์†ก: โ€“data-string โ€œScan conducted by Security Ops, extension 7192โ€

โ€“data-length Nmap์ด ํ—ค๋”๋งŒ ๋ณด๋‚ผ ๋•Œ ์ถ”๊ฐ€ ๋ฐ”์ดํŠธ ์ˆ˜๋ฅผ ๋žœ๋คํ•˜๊ฒŒ ์ฑ„์›Œ ์ „์†ก

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 ํ”„๋ก์‹œ ์‚ฌ์šฉ. ์ผ๋ถ€ ํ”„๋ก์‹œ๋Š” Nmap์ด ์›ํ•˜๋Š” ๋งŒํผ ๋งŽ์€ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๋ณ‘๋ ฌ์„ฑ ์กฐ์ •์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ: โ€“max-parallelism

-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 ๋ชฉ๋ก:

  1. Scipvuldb.csv | http://www.scip.ch/en/?vuldb
  2. Cve.csv | http://cve.mitre.org
  3. Osvdb.csv | http://www.osvdb.org
  4. Securityfocus.csv | http://www.securityfocus.com/bid/
  5. Securitytracker.csv | http://www.securitytracker.com
  6. Xforce.csv | http://xforce.iss.net
  7. Exploitdb.csv | http://www.exploit-db.com
  8. 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-dev

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

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>