# Nmap Сканирование и идентификация сервисов ## Общий Обзор Сканирование сети при помощи пинг скана ``` nmap -n -sn 192.168.56.0/24 Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-05 06:54 EST Nmap scan report for 192.168.56.103 Host is up (0.00012s latency). Nmap scan report for 192.168.56.105 Host is up (0.0027s latency). Nmap done: 256 IP addresses (2 hosts up) scanned in 8.38 seconds ``` **Сканирование единичного хоста** ``` $ nmap 192.168.56.104 Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-05 07:16 EST Strange read error from 192.168.56.104 (104 - 'Connection reset by peer') Nmap scan report for 192.168.56.104 Host is up (0.50s latency). Not shown: 989 closed tcp ports (conn-refused) PORT STATE SERVICE 53/tcp open domain 88/tcp open kerberos-secs 135/tcp open msrpc 139/tcp open netbios-ssn 389/tcp open ldap 445/tcp open microsoft-ds 464/tcp open kpasswd5 593/tcp open http-rpc-epmap 636/tcp open ldapssl 3268/tcp open globalcatLDAP 3269/tcp open globalcatLDAPssl Nmap done: 1 IP address (1 host up) scanned in 15.28 seconds ``` **Сканирование определенного порта** ``` nmap 192.168.56.105 -p 22 -n tarting Nmap 7.93 ( https://nmap.org ) at 2023-03-05 08:59 EST Nmap scan report for 192.168.56.105 Host is up (0.00032s latency). PORT STATE SERVICE 22/tcp open ssh Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds ``` **Сканирование диапазона портов** ``` $ nmap 192.168.56.104 -p 1-1024 -n Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-05 09:02 EST Nmap scan report for 192.168.56.104 Host is up (0.00038s latency). Not shown: 1015 closed tcp ports (conn-refused) PORT STATE SERVICE 53/tcp open domain 88/tcp open kerberos-sec 135/tcp open msrpc 139/tcp open netbios-ssn 389/tcp open ldap 445/tcp open microsoft-ds 464/tcp open kpasswd5 593/tcp open http-rpc-epmap 636/tcp open ldapssl Nmap done: 1 IP address (1 host up) scanned in 1.94 seconds ``` **Определение ОС** Во время сканирования, с определением ОС, nmap не смог определить опрерационную систему, и отдал так называемый TCP/IP fingerprint: В документации написано,что такое бывает и они просят писать им в таких случаях, если известна версия операционки, также в доке есть информация чтобы разобартьсяс этим отпечатком, также рекомендуют сканировать с флагом -sV , но вообще странно, что он не смог идентифицировать Windows Server 2019 ![](https://i.imgur.com/ydrfKOR.png) ``` sudo nmap -O 192.168.56.104 Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-05 07:23 EST Nmap scan report for 192.168.56.104 Host is up (0.00044s latency). Not shown: 989 closed tcp ports (reset) PORT STATE SERVICE 53/tcp open domain 88/tcp open kerberos-sec 135/tcp open msrpc 139/tcp open netbios-ssn 389/tcp open ldap 445/tcp open microsoft-ds 464/tcp open kpasswd5 593/tcp open http-rpc-epmap 636/tcp open ldapssl 3268/tcp open globalcatLDAP 3269/tcp open globalcatLDAPssl MAC Address: 08:00:27:E4:71:55 (Oracle VirtualBox virtual NIC) No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ). TCP/IP fingerprint: OS:SCAN(V=7.93%E=4%D=3/5%OT=53%CT=1%CU=38100%PV=Y%DS=1%DC=D%G=Y%M=080027%TM OS:=640489E6%P=x86_64-pc-linux-gnu)SEQ(SP=106%GCD=1%ISR=10C%TI=I%CI=I%II=I% OS:SS=S%TS=U)OPS(O1=M5B4NW8NNS%O2=M5B4NW8NNS%O3=M5B4NW8%O4=M5B4NW8NNS%O5=M5 OS:B4NW8NNS%O6=M5B4NNS)WIN(W1=FFFF%W2=FFFF%W3=FFFF%W4=FFFF%W5=FFFF%W6=FF70) OS:ECN(R=Y%DF=Y%T=80%W=FFFF%O=M5B4NW8NNS%CC=Y%Q=)T1(R=Y%DF=Y%T=80%S=O%A=S+% OS:F=AS%RD=0%Q=)T2(R=Y%DF=Y%T=80%W=0%S=Z%A=S%F=AR%O=%RD=0%Q=)T3(R=Y%DF=Y%T= OS:80%W=0%S=Z%A=O%F=AR%O=%RD=0%Q=)T4(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0% OS:Q=)T5(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=80%W=0%S= OS:A%A=O%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R= OS:Y%DF=N%T=80%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N% OS:T=80%CD=Z) Network Distance: 1 hop OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 26.45 seconds ``` А вот сканирование с -sV, тут он уже определил хостнейм и ОС и расширенную информацию о запущенных сервисах ``` sudo nmap -O -sV 192.168.56.104 Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-05 07:27 EST Nmap scan report for 192.168.56.104 Host is up (0.00052s latency). Not shown: 989 closed tcp ports (reset) PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2023-03-05 23:27:17Z) 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: mydc.local0., Site: Default-First-Site-Name) 445/tcp open microsoft-ds? 464/tcp open kpasswd5? 593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0 636/tcp open tcpwrapped 3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: mydc.local0., Site: Default-First-Site-Name) 3269/tcp open tcpwrapped MAC Address: 08:00:27:E4:71:55 (Oracle VirtualBox virtual NIC) No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ). TCP/IP fingerprint: OS:SCAN(V=7.93%E=4%D=3/5%OT=53%CT=1%CU=40767%PV=Y%DS=1%DC=D%G=Y%M=080027%TM OS:=64048AB7%P=x86_64-pc-linux-gnu)SEQ(SP=FD%GCD=1%ISR=10B%TI=I%CI=I%II=I%S OS:S=S%TS=U)OPS(O1=M5B4NW8NNS%O2=M5B4NW8NNS%O3=M5B4NW8%O4=M5B4NW8NNS%O5=M5B OS:4NW8NNS%O6=M5B4NNS)WIN(W1=FFFF%W2=FFFF%W3=FFFF%W4=FFFF%W5=FFFF%W6=FF70)E OS:CN(R=Y%DF=Y%T=80%W=FFFF%O=M5B4NW8NNS%CC=Y%Q=)T1(R=Y%DF=Y%T=80%S=O%A=S+%F OS:=AS%RD=0%Q=)T2(R=Y%DF=Y%T=80%W=0%S=Z%A=S%F=AR%O=%RD=0%Q=)T3(R=Y%DF=Y%T=8 OS:0%W=0%S=Z%A=O%F=AR%O=%RD=0%Q=)T4(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q OS:=)T5(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=80%W=0%S=A OS:%A=O%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=80%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y OS:%DF=N%T=80%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T OS:=80%CD=Z) Network Distance: 1 hop Service Info: Host: ARD01F; OS: Windows; CPE: cpe:/o:microsoft:windows OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 33.30 seconds ``` Быстрое сканирование отработало быстрее примерно на 2 секунды,чем обычное за счет обхода меньшего кол-ва портов. ``` nmap -F 192.168.56.104 Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-05 08:11 EST Nmap scan report for 192.168.56.104 Host is up (0.0015s latency). Not shown: 94 closed tcp ports (conn-refused) PORT STATE SERVICE 53/tcp open domain 88/tcp open kerberos-sec 135/tcp open msrpc 139/tcp open netbios-ssn 389/tcp open ldap 445/tcp open microsoft-ds Nmap done: 1 IP address (1 host up) scanned in 13.13 seconds ``` Интерфейсы и маршруты ``` nmap --iflist Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-05 08:32 EST ************************INTERFACES************************ DEV (SHORT) IP/MASK TYPE UP MTU MAC lo (lo) 127.0.0.1/8 loopback up 65536 lo (lo) ::1/128 loopback up 65536 eth0 (eth0) 192.168.56.103/24 ethernet up 1500 08:00:27:B1:9D:67 eth0 (eth0) fe80::cf9:c12:3ef1:1de4/64 ethernet up 1500 08:00:27:B1:9D:67 **************************ROUTES************************** DST/MASK DEV METRIC GATEWAY 192.168.56.0/24 eth0 100 ::1/128 lo 0 fe80::cf9:c12:3ef1:1de4/128 eth0 0 ::1/128 lo 256 fe80::/64 eth0 1024 ff00::/8 eth0 256 ``` ## Попробуем провести следующие типы сканирования Syn,Fin,Ack,Xmas,Maimon,Idle SYN сканирование `sudo nmap -sS 192.168.56.104 -p 443,44`5 ![](https://i.imgur.com/T5O30qU.png) ACK сканирование `sudo nmap -sA 192.168.56.104 -p 443,445` ![](https://i.imgur.com/vJLnFGc.png) FIN сканирование `sudo nmap -sF 192.168.56.104 -p 443,445` ![](https://i.imgur.com/fjJIwcP.png) Xmas сканирование `sudo nmap -sX 192.168.56.104 -p 443,445` ![](https://i.imgur.com/OUYxZT9.png) Maimon сканирование sudo nmap -sM 192.168.56.104 -p 443,445 Этот тип сканирования носит имя своего первооткрывателя, Уриела Мэймона Техника практически такая же как и при FIN и Xmas сканированиях, только в качестве запросов используются запросы FIN/ACK. Согласно RFC 793 (TCP), в ответ на такой запрос должен быть сгенерирован RST пакет, если порт открыт или закрыт. Тем не менее, Уриел заметил, что многие BSD системы просто отбрасывают пакет, если порт открыт. Сканирование Windows показывает, что пакет отбрасывается ![](https://i.imgur.com/O69cPxZ.png) На Debian тоже пришли RST ![](https://i.imgur.com/UIT2v9t.png) Попробую установить FreeBSD ![](https://i.imgur.com/1RokH3r.png) `sudo nmap -sM 192.168.56.106 -p 22,80 -n` и... ![](https://i.imgur.com/C6RDNio.png) К сожалению, сканирование фряхи, также отдает RST, а так хотелось, чтобы его не было =) Idle сканирование aka Zombie Scan Подробно о сканировании написано в документации https://nmap.org/book/idlescan.html Если коротко, то idle при сканировании происходит спуфинг ip адреса на адрес хоста, который мы укажем как вспомогательный,а также используется одна замечательная особенность, что при отправке пакета с tcp RST , поля идендификатора этого пакета увеличивается на один. Если смотреть в wireshark, то этот идентификатор находится именно в части заголовков IP. ![](https://i.imgur.com/asU4PVX.png) `sudo nmap -n -v -Pn -sI 192.168.56.104 192.168.56.105 -p 445` После начала сканирования, мы отправляем несколько пакетов на вспомогательный хост, чтобы проверить как будет изменяться поле id После мы отправляем несколько пакетов имитируя целевой хост в моем случае, всегда отправлялось 4 пакета. ![](https://i.imgur.com/zF4xLAj.png) Далее идет контрольная отправка на зомби хост, для контрольной проверки id И собственно сканирование, мы отправляем от IP зомби хоста и порта, который мы использовал, обычный syn пакет на целевую машину. ![](https://i.imgur.com/vnmGw3t.png) Далее проверяем результат, если на 105 хосте открыт 445 порт он отправит SYN/ACK и 104 хост отреагирует RST и у 104 увечилится id на 1 Мы отправляем пакет SYN/ACK на 104 и проверяем результат если id увеличен на 2 , то порт открыт если на 1 то закрыт или фильтруется. **Ping Scan** Сканирование при помощи SYN, после флага -PS указывается порт сканирования. Использую параметры -sn для включения режима без сканирования портов, а также параметр --send-ip для принидительного использования ip протокола, иначе используется arp игнорируя указанные флаги и при сканировании не использует ip протокол, если искомые хосты находятся в одной канальной среде. **TCP SYN Ping ( ) -PS <port list>** Опция -PS отправляет пустой TCP-пакет с установленным флагом SYN. Порт назначения по умолчанию — 80 `nmap -n -sn --send-ip -PS445 192.168.56.105` ![](https://i.imgur.com/qh8YXjm.png) **Пинг TCP ACK ( ) -PA <port list>** `sudo nmap -n -sn --send-ip -PA445 192.168.56.105` ![](https://i.imgur.com/kNowpEw.png) **UDP-пинг ( ) -PU <port list>** `sudo nmap -n -sn --send-ip -PU445 192.168.56.105` ![](https://i.imgur.com/ikfzArC.png) **ICMP-пинг -PE** `sudo nmap -n -sn --send-ip -PE 192.168.56.105` ![](https://i.imgur.com/JHA5HJv.png) Есть и другие типы ICMP, их можно посмотреть в документации и соответствующих RFC **ARP-сканирование ( -PR)** `sudo nmap -n -sn -PR 192.168.56.105` ![](https://i.imgur.com/2b1t9Fz.png) Если добавить опцию --send-ip он отправит несколько пакетов которые у него заданы по умолчанию(-PE -PS443 -PA80 -PP) `sudo nmap -n -sn --send-ip -PR 192.168.56.105` ![](https://i.imgur.com/9y4cgFa.png) **Пинг IP-протокола ( ) -PO <protocol list>** Если протоколы не указаны, по умолчанию отправляется несколько IP-пакетов для ICMP (протокол 1), IGMP (протокол 2) и IP-in-IP (протокол 4). Протоколы по умолчанию можно настроить во время компиляции, изменив DEFAULT_PROTO_PROBE_PORT_SPEC в nmap.h. Обратите внимание, что для ICMP, IGMP, TCP (протокол 6) и UDP (протокол 17) пакеты отправляются с соответствующими заголовками протокола, в то время как другие протоколы отправляются без дополнительных данных, кроме заголовка IP (если только --data-length опция указана). `sudo nmap -n -sn --send-ip -PO6 192.168.56.105` ![](https://i.imgur.com/wCVYn7r.png) `sudo nmap -n -sn --send-ip -PO10 192.168.56.105` ![](https://i.imgur.com/r1j5xTd.png) ## Проведение сканирования с помощью скрипта vulners.nse Намучался с запуском, но после apt update все таки запустил скриптец =) Проверял на metasploitable2 , чтобы вывод какой то уж точно был, ну его тут слишком много, добавлю лишь часть. ``` ──(root㉿kali)-[~] └─# sudo nmap -n -sV --script=vulners --script-args=mincvss=1.0 192.168.56.102 sudo: unable to resolve host kali: Name or service not known Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-27 15:17 EDT Nmap scan report for 192.168.56.102 Host is up (0.013s latency). Not shown: 977 filtered tcp ports (no-response) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.3.4 22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0) | vulners: | cpe:/a:openbsd:openssh:4.7p1: | SECURITYVULNS:VULN:8166 7.5 https://vulners.com/securityvulns/SECURITYVULNS:VULN:8166 | CVE-2010-4478 7.5 https://vulners.com/cve/CVE-2010-4478 | CVE-2008-1657 6.5 https://vulners.com/cve/CVE-2008-1657 | SSV:60656 5.0 https://vulners.com/seebug/SSV:60656 *EXPLOIT* | CVE-2010-5107 5.0 https://vulners.com/cve/CVE-2010-5107 | CVE-2012-0814 3.5 https://vulners.com/cve/CVE-2012-0814 | CVE-2011-5000 3.5 https://vulners.com/cve/CVE-2011-5000 | CVE-2008-5161 2.6 https://vulners.com/cve/CVE-2008-5161 | CVE-2011-4327 2.1 https://vulners.com/cve/CVE-2011-4327 |_ CVE-2008-3259 1.2 https://vulners.com/cve/CVE-2008-3259 23/tcp open telnet Linux telnetd 25/tcp open smtp Postfix smtpd 53/tcp open domain ISC BIND 9.4.2 | vulners: | cpe:/a:isc:bind:9.4.2: | SSV:60184 8.5 https://vulners.com/seebug/SSV:60184 *EXPLOIT* | CVE-2012-1667 8.5 https://vulners.com/cve/CVE-2012-1667 | SSV:60292 7.8 https://vulners.com/seebug/SSV:60292 *EXPLOIT* | CVE-2014-8500 7.8 https://vulners.com/cve/CVE-2014-8500 | CVE-2012-5166 7.8 https://vulners.com/cve/CVE-2012-5166 | CVE-2012-4244 7.8 https://vulners.com/cve/CVE-2012-4244 | CVE-2012-3817 7.8 https://vulners.com/cve/CVE-2012-3817 | CVE-2008-4163 7.8 https://vulners.com/cve/CVE-2008-4163 | CVE-2010-0382 7.6 https://vulners.com/cve/CVE-2010-0382 | EXPLOITPACK:D6DDF5E24DE171DAAD71FD95FC1B67F2 7.2 https://vulners.com/exploitpack/EXPLOITPACK:D6DDF5E24DE171DAAD71FD95FC1B67F2 *EXPLOIT* | EDB-ID:42121 7.2 https://vulners.com/exploitdb/EDB-ID:42121 *EXPLOIT* | CVE-2017-3141 7.2 https://vulners.com/cve/CVE-2017-3141 | CVE-2015-8461 7.1 https://vulners.com/cve/CVE-2015-8461 | CVE-2021-25216 6.8 https://vulners.com/cve/CVE-2021-25216 | CVE-2015-8704 6.8 https://vulners.com/cve/CVE-2015-8704 | CVE-2009-0025 6.8 https://vulners.com/cve/CVE-2009-0025 | CVE-2015-8705 6.6 https://vulners.com/cve/CVE-2015-8705 | CVE-2010-3614 6.4 https://vulners.com/cve/CVE-2010-3614 | SSV:4636 5.8 https://vulners.com/seebug/SSV:4636 *EXPLOIT* | SSV:30099 5.0 https://vulners.com/seebug/SSV:30099 *EXPLOIT* ``` ## Stealth Scan К техникам скрытного сканирования можно отнести Xmas scan, который был показан чуть раньше. Так же в эту категорию можно добавить , null сканирование -sN, или скрытое SYN сканирование опция -sS, отправлять пакеты от 53 порта и вообще есть пространство для творчества, отправляя не стандартные пакеты, можно обходить правила firewall или IDS/IPS. ``` sudo nmap -n -p 23 --data-length 666 -sS --scanflags SYNFIN 192.168.56.102 PORT STATE SERVICE 23/tcp open telnet MAC Address: 08:00:27:B0:64:84 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.29 seconds ``` nmap определил порт как открытый, а в wireshark можно видеть, что пакет состоит из какого то трэша. ![](https://i.imgur.com/8VesUpt.png)