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ããµããŒããã
- ãµãã¹ã¯ãªãã·ã§ã³ãã©ã³ã確èªããŠãã ããïŒ
- **ð¬ Discordã°ã«ãŒããŸãã¯ãã¬ã°ã©ã ã°ã«ãŒãã«åå ããããTwitter ðŠ @hacktricks_liveããã©ããŒããŠãã ããã
- HackTricksããã³HackTricks Cloudã®GitHubãªããžããªã«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 ã¯æ¬¡ãããªãæ€åºãã§ãŒãºãå®è¡ããŸã: -PA80 -PS443 -PE -PP
-sL: éäŸµå ¥åã§ãåå解決ã®ããã« DNS ãªã¯ãšã¹ããè¡ãã¿ãŒã²ãããäžèЧåããŸããäŸãã° www.prueba.es/24 ã®å š IP ã察象ãã©ãããç¥ãã®ã«äŸ¿å©ã§ãã-Pn: No pingããã¹ãŠãã¢ã¯ãã£ãã§ãããšåãã£ãŠããå Žåã«æçšã§ãïŒããã§ãªããšæéã倧ããæµªè²»ããå¯èœæ§ãããããŸãéã¢ã¯ãã£ããšèª€æ€åºããåœé°æ§ãçãããšããããŸãïŒãæ€åºãã§ãŒãºãç¡å¹ã«ããŸãã-sn: No port scanãåµå¯ïŒreconnaissanceïŒãã§ãŒãºå®äºåŸã«ããŒãã¹ãã£ã³ãè¡ããŸãããæ¯èŒçã¹ãã«ã¹ã§ãå°èŠæš¡ãªãããã¯ãŒã¯æ¢çŽ¢ã«åããŸããæš©éãããå Žå㯠ACK (-PA) ã 80 ã«ãSYN(-PS) ã 443 ã«éããecho ãš Timestamp ãªã¯ãšã¹ããéããŸããæš©éããªãå Žåã¯åžžã«æ¥ç¶ãå®äºããŸããã¿ãŒã²ããããããã¯ãŒã¯ã®å Žå㯠ARP(-PR) ã®ã¿ã䜿çšããŸããä»ã®ãªãã·ã§ã³ãšäœµçšããå Žåã¯ãä»ãªãã·ã§ã³ã®ãã±ããã ããéãããŸãã-PR: Ping ARPãèªãããã¯ãŒã¯å ã®ãã¹ãè§£ææã«ããã©ã«ãã§äœ¿çšããã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 replay, timestamp, addresmaskïŒãã¿ãŒã²ãããçããŠãããã確èªããããã«éãããŸãã-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) ãªã©ãå¿ç㯠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 ã«ã¯ãã£ã«ã¿ãããªãå Žåãå¿åæ§ãä¿ã¡ããå Žåã«ãŸã³ããå©çšããŠã¹ãã£ã³ããŸãïŒå šããŒã察象ïŒããŸã³ãåè£ã®æ¢çŽ¢ã«ã¯ ipidseq ã¹ã¯ãªããã exploit auxiliary/scanner/ip/ipidseq ã䜿ããŸãããã®ã¹ãã£ã³ã¯ IPID å€ã«åºã¥ããŸãã--badsum: ãã§ãã¯ãµã ãäžæ£ã«ããŠéä¿¡ããŸããæ¬æ¥ã¯ãã¹ãããã±ãããç Žæ£ããŸããããã¡ã€ã¢ãŠã©ãŒã«ãäœããã®å¿çãè¿ãããšãããããã¡ã€ã¢ãŠã©ãŒã«ã®æ€åºã«äœ¿ãããŸãã-sZ: âWeirdâ 㪠SCTP ã¹ãã£ããŒãcookie echo ãã©ã°ã¡ã³ãã§ãããŒããéããšãopen ã¯ç Žæ£ãclosed 㯠ABORT ã§å¿çããã¯ãã§ããINIT ãéããªããã¡ã€ã¢ãŠã©ãŒã«ãããæããããšããããŸãããfiltered ãš open ãåºå¥ã§ããªãæ¬ ç¹ããããŸãã-sO: IP ãããã³ã«ã¹ãã£ã³ãäžæ£ãŸãã¯ç©ºã®ããããéããå Žåã«ãããããã³ã«ããå€å¥ã§ããªãããšããããŸããICMP protocol unreachable ãæ¥ãã° closedãport unreachable ãæ¥ãã° openãå¥ã®ãšã©ãŒãªã filteredãç¡å¿çãªã open|filteredã-b <server>: FTP bounceãå¥ãã¹ãçµç±ã§ã¹ãã£ã³ãè¡ãããã«äœ¿çšããŸããå¥ãã·ã³ã® 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 ãã¹ãããšã«æ£ããã¹ãã£ã³ããã«ã¯å°ãªããšã 1 ã€ã® open ãš 1 ã€ã® 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â -> 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 ã¯ã¹ãã£ã³å¯Ÿè±¡ãã¹ããã°ã«ãŒãåãããŠãããã¯ããšã«è§£æããŸãã1 ãããã¯ã®è§£æãå®äºãããŸã§æ¬¡ã®ãããã¯ã«é²ãŸãããŠãŒã¶ã«ã¯ãã®ãããã¯ãè§£æããããŸã§æŽæ°ãå±ããŸãããããã«ãã倧ããªã°ã«ãŒããäœ¿ãæ¹ãå¹ççã§ããããã©ã«ãã§ã¯ã¯ã©ã¹ 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
1 ç§ãããã®ãã±ããæ°ã倿Žã§ããŸã: â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
ããŒããžã®ã¢ã¯ã»ã¹ã黿¢ããããã±ãããè§£æããŸãã
-f ãã±ããããã©ã°ã¡ã³ãåããŸããããã©ã«ãã§ã¯ãããåŸ 8 ãã€ãããšã«åå²ããŸãããµã€ãºãæå®ããã«ã¯ ..mtu ã䜿ããŸãïŒãã®å Žå -f ã¯äœ¿ããªãã§ãã ããïŒããªãã»ãã㯠8 ã®åæ°ã§ãªããã°ãªããŸãããVersion scanners ãš scripts ã¯ãã©ã°ã¡ã³ããŒã·ã§ã³ããµããŒãããŸããã
-D decoy1,decoy2,ME Nmap ã¯ã¹ãã£ã³å
ãä»ã® IP ã«åœè£
ããŠéä¿¡ããŸãããªã¹ãã« ME ãå
¥ãããšèªåã®äœçœ®ããã®äžã«æ¿å
¥ããŸããå®å
šã«ãã¹ã¯ããã«ã¯åã« 5ïœ6 åã®åœè£
ã眮ãã®ãè¯ãã§ããRND:
ã©ã³ãã IP ã䜿ãäŸ: nmap -D RND:10 Target_IP
-S IP Nmap ãããªãã® IP ãææã§ããªãå Žåã«æå®ããŸããå¥ã®ãã¹ããã¹ãã£ã³ããŠããããã«èŠããçšéã«ã䜿ããŸãã
-e
å€ãã®ç®¡çè
ã¯éçšäžã®çç±ã§ç¹å®ã®ããŒãããã¹ãŠéãã«ãŒã«ãäœãããšããããŸãïŒäŸ: DNS, FTPïŒããããæªçšããããã« Nmap 㯠âsource-port
âdata
âdata-string
âdata-length
IP ãã±ããã®ãªãã·ã§ã³ãå®å šã«èšå®ããã«ã¯ âip-options
éä¿¡/åä¿¡ãã±ããã®ãªãã·ã§ã³ãèŠããå Žå㯠âpacket-trace ãæå®ããŸããIP options ã䜿ã£ãäŸã«ã€ããŠã¯ 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 åé·åºŠ
-d level ãããã°ã¬ãã«
âreason host ãš state ã®çç±ã衚瀺
â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 åé·åºŠãäžãã / äžãã
d / D ãããã°ã¬ãã«ãäžãã / äžãã
p / P ãã±ãããã¬ãŒã¹ã®ãªã³/ãªã
? ã©ã³ã¿ã€ã ã€ã³ã¿ã©ã¯ã·ã§ã³ã®ãã«ã衚瀺
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 ãµãŒãã¹ã¹ãã£ã³ã x16 ã§é«éå
to this post ã«ãããšã/usr/share/nmap/nmap-service-probes å
ã®ãã¹ãŠã® totalwaitms å€ã 300 ã«ãtcpwrappedms ã 200 ã«å€æŽãããš nmap ã®ãµãŒãã¹è§£æãé«éåã§ããŸãã
ããã«ãç¹å®ã®ãããŒãã« servicewaitms ãå®çŸ©ãããŠããªãå Žåã¯ããã©ã«ãã§ 5000 ã䜿ãããŸãããããã£ãŠãåãããŒãã«å€ã远å ããããnmap ãèªåã§ã³ã³ãã€ã«ã㊠service_scan.h å
ã®ããã©ã«ãå€ã倿Žããããšãã§ããŸãã
/usr/share/nmap/nmap-service-probes å
ã® totalwaitms ã tcpwrappedms ã®å€ããŸã£ãã倿Žããããªãå Žåã¯ãparsing code ãç·šéããŠãããã®å€ãç¡èŠããããã«ã§ããŸãã
å¶éç°å¢åãã«éçãªã³ã¯ããã Nmap ããã«ã
ããŒãåãããç°å¢ãæå°éã® LinuxïŒã³ã³ãããã¢ãã©ã€ã¢ã³ã¹ïŒã§ã¯ãåçãªã³ã¯ããã 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 ã¿ãŒã²ãããç¡å¹åããŸãã
Step 5 â ãã€ããªãš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ããŒã¿ãbinaryãšäžç·ã«ä¿æããã
- éçãªbinaryã§ãã£ãŠããAppArmor/seccomp/SELinuxã«ãã£ãŠå®è¡ããããã¯ãããå¯èœæ§ããããDNSãegressã¯åŒãç¶ãæ©èœããå¿ èŠãããã
- Deterministic buildsã¯ãäžéæãªâstaticâ binariesãããŠã³ããŒãããããããµãã©ã€ãã§ãŒã³ã®ãªã¹ã¯ãäœæžããã
One-liner (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)ã確èªããŠãã ããïŒ
> - **ð¬ [**Discordã°ã«ãŒã**](https://discord.gg/hRep4RUj7f)ãŸãã¯[**ãã¬ã°ã©ã ã°ã«ãŒã**](https://t.me/peass)ã«åå ãããã**Twitter** ðŠ [**@hacktricks_live**](https://twitter.com/hacktricks_live)**ããã©ããŒããŠãã ããã**
> - **[**HackTricks**](https://github.com/carlospolop/hacktricks)ããã³[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)ã®GitHubãªããžããªã«PRãæåºããŠãããã³ã°ããªãã¯ãå
±æããŠãã ããã**
>
> </details>


