• XSS.stack #1 – первый литературный журнал от юзеров форума

Хостеры, которые защищены от сканирования тем, что выдают все порты как открытые

Mugen

CD-диск
Пользователь
Регистрация
01.12.2022
Сообщения
19
Реакции
131
Всем привет, подскажите пожалуйста!

Как узнать версии служб на открытых портах, когда хост защищен от сканирования тем что выдает все порты как открытые

Гуглил как защищают от сканирования nmap, и вот нашел как делаю такую защиту:
"Поэтому я бы посоветовал на межсетевом экране перед серверами активировать правило, отправляющее TCP SYN-ACK пакеты в ответ на любой входящий TCP SYN. Это приведет к тому, что сканирующая сторона будет видеть 65535 открытых портов, в которых просто нереально будет увидеть продуктивные сервисы. Это отличная защитная мера, которая иногда встречается на периметрах разных компаний. Как пентестер, имитирующий реальные атаки, могу сказать, что это очень сильно мешает разведке."

Т.е я сканирую nmapoм и получаю сервисы без версий, banner grabbing не помогает:
21/tcp open ftp ProFTPD or KnFTPD
26/tcp open smtp Sendmail
80/tcp open http Apache httpd
110/tcp open pop3 Dovecot pop3d
 
Нужно смотреть что выводит wireshark как проходит хендшейк, потом придумывать кастыли для nmap. Или скинь такой IP сам гляну.

Я тут немного поковырялся с своим случаем, у меня тоже попадаются хостеры которые фильтруют некоторые порты. Покурив доки nmap нашел пару интересных параметров полезные для анализа:

Screenshot_2025-01-16_10-00-53.png


Порт 646 явно закрыт, у меня есть пруфы) И порт 88 тоже закрыт, но ответы разные, на первый вообще нет ответа как видно из вайршарка, на второй есть ответ RST, ACK.

Если мы запустим --version-trace то мы увидим что nmap вообще ничего не использует из скриптов. Ну как бы логично ответа то нет от них.

Код:
└─$ nmap -sV -p 646 -Pn --version-trace *.*.19.177
Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-16 10:09 EST
--------------- Timing report ---------------
  hostgroups: min 1, max 100000
  rtt-timeouts: init 1000, min 100, max 10000
  max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
  parallelism: min 0, max 0
  max-retries: 10, host-timeout: 0
  min-rate: 0, max-rate: 0
---------------------------------------------
NSE: Using Lua 5.4.
NSE: Arguments from CLI:
NSE: Loaded 47 scripts for scanning.
mass_rdns: Using DNS server 10.0.2.3
mass_rdns: Using DNS server 1.1.1.1
mass_rdns: 0.92s 0/1 [#: 2, OK: 0, NX: 0, DR: 0, SF: 0, TR: 1]
DNS resolution of 1 IPs took 0.92s. Mode: Async [#: 2, OK: 1, NX: 0, DR: 0, SF: 0, TR: 1, CN: 0]
Packet capture filter (device tun0): dst host 10.8.0.2 and (icmp or icmp6 or ((tcp or udp or sctp) and (src host *.*.19.177)))
Overall sending rates: 0.98 packets / s, 43.14 bytes / s.
NSE: Script scanning *.*.19.177.
NSE: Starting runlevel 1 (of 2) scan.
NSE: Starting runlevel 2 (of 2) scan.
Nmap scan report for  (*.*.19.177)
Host is up.
Scanned at 2025-01-16 10:09:06 EST for 2s

PORT    STATE    SERVICE VERSION
646/tcp filtered ldp

Nmap по умолчанию не выполняет проверку версии на портах, которые находятся в состоянии filtered, так как нет гарантии, что порт вообще отвечает или доступен. Однако можно принудительно заставить Nmap выполнять проверку версии даже для таких портов.
--version-all Этот параметр заставляет Nmap запускать все доступные проверки версий для портов, даже если их статус filtered, open|filtered или другой.
Но у меня сейчас нет таких IP которые мешают определить версию, у меня ситуация где порты без ответа на SYN скан помечены как filtered.
--defeat-rst-ratelimit
- чтобы указать Nmap воспринимать отсутствие ответа на порты как "закрыто" (closed).

Идеально отработал.
Код:
└─$ nmap -sS -T4 -v --top-ports 100 --defeat-rst-ratelimit --reason *.*.20.97
Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-16 10:17 EST
Initiating Ping Scan at 10:17
Scanning *.*.20.97 [4 ports]
Completed Ping Scan at 10:17, 0.26s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:17
Completed Parallel DNS resolution of 1 host. at 10:17, 0.33s elapsed
Initiating SYN Stealth Scan at 10:17
Scanning *.*.20.97 [100 ports]
Discovered open port 22/tcp on *.*.20.97
Discovered open port 443/tcp on *.*.20.97
Completed SYN Stealth Scan at 10:17, 7.06s elapsed (100 total ports)
Nmap scan report for *.*.20.97
Host is up, received echo-reply ttl 59 (0.28s latency).
Not shown: 97 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT    STATE  SERVICE REASON
22/tcp  open   ssh     syn-ack ttl 59
80/tcp  closed http    reset ttl 59
443/tcp open   https   syn-ack ttl 59

Смотрим версии:

Код:
└─$ nmap -sSV -T4 -v -p 22,443 --reason --version-trace --version-all *.*.20.97
Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-16 10:20 EST
--------------- Timing report ---------------
  hostgroups: min 1, max 100000
  rtt-timeouts: init 500, min 100, max 1250
  max-scan-delay: TCP 10, UDP 1000, SCTP 10
  parallelism: min 0, max 0
  max-retries: 6, host-timeout: 0
  min-rate: 0, max-rate: 0
---------------------------------------------
NSE: Using Lua 5.4.
NSE: Arguments from CLI:
NSE: Loaded 47 scripts for scanning.
Initiating Ping Scan at 10:20
Scanning *.*.20.97 [4 ports]
Packet capture filter (device tun0): dst host 10.8.0.2 and (icmp or icmp6 or ((tcp or udp or sctp) and (src host *.*.20.97)))
We got a ping packet back from *.*.20.97: id = 37672 seq = 0 checksum = 27863
Completed Ping Scan at 10:20, 0.51s elapsed (1 total hosts)
Overall sending rates: 7.92 packets / s, 300.97 bytes / s.
mass_rdns: Using DNS server 10.0.2.3
mass_rdns: Using DNS server 1.1.1.1
Initiating Parallel DNS resolution of 1 host. at 10:20
mass_rdns: 1.31s 0/1 [#: 2, OK: 0, NX: 0, DR: 0, SF: 0, TR: 1]
Completed Parallel DNS resolution of 1 host. at 10:20, 1.31s elapsed
DNS resolution of 1 IPs took 1.31s. Mode: Async [#: 2, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
Initiating SYN Stealth Scan at 10:20
Scanning *.*.20.97 [2 ports]
Packet capture filter (device tun0): dst host 10.8.0.2 and (icmp or icmp6 or ((tcp or udp or sctp) and (src host *.*.20.97)))
Discovered open port 22/tcp on *.*.20.97
Discovered open port 443/tcp on *.*.20.97
Completed SYN Stealth Scan at 10:20, 0.40s elapsed (2 total ports)
Overall sending rates: 4.99 packets / s, 219.65 bytes / s.
Initiating Service scan at 10:20
Scanning 2 services on *.*.20.97
NSOCK INFO [2.4490s] nsock_iod_new2(): nsock_iod_new (IOD #1)
NSOCK INFO [2.4500s] nsock_connect_tcp(): TCP connection requested to *.*.20.97:22 (IOD #1) EID 8
NSOCK INFO [2.4500s] nsock_iod_new2(): nsock_iod_new (IOD #2)
NSOCK INFO [2.4500s] nsock_connect_tcp(): TCP connection requested to *.*.20.97:443 (IOD #2) EID 16
NSOCK INFO [2.7090s] nsock_trace_handler_callback(): Callback: CONNECT SUCCESS for EID 16 [*.*.20.97:443]
Service scan sending probe NULL to *.*.20.97:443 (tcp)
NSOCK INFO [2.7090s] nsock_read(): Read request from IOD #2 [*.*.20.97:443] (timeout: 6000ms) EID 26
NSOCK INFO [2.8890s] nsock_trace_handler_callback(): Callback: CONNECT SUCCESS for EID 8 [*.*.20.97:22]
Service scan sending probe NULL to *.*.20.97:22 (tcp)
NSOCK INFO [2.8890s] nsock_read(): Read request from IOD #1 [*.*.20.97:22] (timeout: 6000ms) EID 34
NSOCK INFO [3.1360s] nsock_trace_handler_callback(): Callback: READ SUCCESS for EID 34 [*.*.20.97:22] (40 bytes): SSH-2.0-OpenSSH_8.4p1 Debian-5+deb11u3..
Service scan hard match (Probe NULL matched with NULL line 3561): *.*.20.97:22 is ssh.  Version: |OpenSSH|8.4p1 Debian 5+deb11u3|protocol 2.0|
NSOCK INFO [3.1360s] nsock_iod_delete(): nsock_iod_delete (IOD #1)
NSOCK INFO [8.7160s] nsock_trace_handler_callback(): Callback: READ TIMEOUT for EID 26 [*.*.20.97:443]
Service scan sending probe SSLSessionReq to *.*.20.97:443 (tcp)
NSOCK INFO [8.7160s] nsock_write(): Write request for 88 bytes to IOD #2 EID 43 [*.*.20.97:443]
NSOCK INFO [8.7160s] nsock_read(): Read request from IOD #2 [*.*.20.97:443] (timeout: 5000ms) EID 50
NSOCK INFO [8.7160s] nsock_trace_handler_callback(): Callback: WRITE SUCCESS for EID 43 [*.*.20.97:443]
NSOCK INFO [9.1430s] nsock_trace_handler_callback(): Callback: READ SUCCESS for EID 50 [*.*.20.97:443] (7 bytes): ......(
Service scan hard match (Probe SSLSessionReq matched with SSLSessionReq line 13728): *.*.20.97:443 is ssl.  Version: ||||
NSOCK INFO [9.1430s] nsock_iod_delete(): nsock_iod_delete (IOD #2)
NSOCK INFO [9.1430s] nsock_iod_new2(): nsock_iod_new (IOD #3)
NSOCK INFO [9.1430s] nsock_connect_ssl(): SSL connection requested to *.*.20.97:443/tcp (IOD #3) EID 57
NSOCK INFO [10.1690s] nsock_trace_handler_callback(): Callback: SSL-CONNECT SUCCESS for EID 57 [*.*.20.97:443]
Service scan sending probe NULL to *.*.20.97:443 (tcp)
NSOCK INFO [10.1700s] nsock_read(): Read request from IOD #3 [*.*.20.97:443] (timeout: 6000ms) EID 66
NSOCK INFO [16.1760s] nsock_trace_handler_callback(): Callback: READ TIMEOUT for EID 66 [*.*.20.97:443]
Service scan sending probe GetRequest to *.*.20.97:443 (tcp)
NSOCK INFO [16.1760s] nsock_write(): Write request for 18 bytes to IOD #3 EID 75 [*.*.20.97:443]
NSOCK INFO [16.1760s] nsock_read(): Read request from IOD #3 [*.*.20.97:443] (timeout: 5000ms) EID 82
NSOCK INFO [16.1760s] nsock_trace_handler_callback(): Callback: WRITE SUCCESS for EID 75 [*.*.20.97:443]
NSOCK INFO [16.7770s] nsock_trace_handler_callback(): Callback: READ SUCCESS for EID 82 [*.*.20.97:443] (419 bytes)
Service scan hard match (Probe GetRequest matched with GetRequest line 7026): *.*.20.97:443 is SSL/http.  Version: |nginx|||
NSOCK INFO [16.7770s] nsock_iod_delete(): nsock_iod_delete (IOD #3)
Completed Service scan at 10:20, 14.33s elapsed (2 services on 1 host)
NSE: Script scanning *.*.20.97.
NSE: Starting runlevel 1 (of 2) scan.
Initiating NSE at 10:20
NSE: Starting vmware-version against *.*.20.97:443.
NSOCK INFO [16.7780s] nsock_iod_new2(): nsock_iod_new (IOD #1)
NSOCK INFO [16.7790s] nsock_connect_ssl(): SSL connection requested to *.*.20.97:443/tcp (IOD #1) EID 9
NSE: Starting hnap-info against *.*.20.97:443.
NSOCK INFO [16.7790s] nsock_iod_new2(): nsock_iod_new (IOD #2)
NSOCK INFO [16.7800s] nsock_connect_ssl(): SSL connection requested to *.*.20.97:443/tcp (IOD #2) EID 17
NSE: Starting http-trane-info against *.*.20.97:443.
NSE: [hnap-info *.*.20.97:443] HTTP: Host returns 301 Moved Permanently instead of 404 File Not Found.
NSE: [http-trane-info *.*.20.97:443] HTTP: Host returns 301 Moved Permanently instead of 404 File Not Found.
NSE: [vmware-version *.*.20.97:443] Couldn't download file: /sdk
NSE: Finished vmware-version against *.*.20.97:443.
NSE: Finished hnap-info against *.*.20.97:443.
NSE: Finished http-trane-info against *.*.20.97:443.
Completed NSE at 10:21, 3.28s elapsed
NSE: Starting runlevel 2 (of 2) scan.
Initiating NSE at 10:21
NSE: Starting http-server-header against *.*.20.97:443.
NSE: Finished http-server-header against *.*.20.97:443.
Completed NSE at 10:21, 3.06s elapsed
Nmap scan report for *.*.20.97
Host is up, received echo-reply ttl 59 (0.44s latency).
Scanned at 2025-01-16 10:20:42 EST for 21s

PORT    STATE SERVICE  REASON         VERSION
22/tcp  open  ssh      syn-ack ttl 59 OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0)
443/tcp open  ssl/http syn-ack ttl 59 nginx
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Final times for host: srtt: 443405 rttvar: 339999  to: 1250000

Тут мы можем увидеть какие скрипты использовались и какие Probe даже указана строка файла:
Probe GetRequest matched with GetRequest line 7026
Код:
┌──(kali㉿kali)-[/usr/share/nmap]
└─$ awk 'NR==7026' nmap-service-probes
match http m|^HTTP/1\.[01] \d\d\d.*?\r\nServer: nginx\r\n|s p/nginx/ cpe:/a:igor_sysoev:nginx/

Как видно орпделило только nginx без версии, это потому что банеры вырезаны из софта, версию невозможно определить. Проверям в netcat - Server: nginx

Код:
└─$ nc *.*.20.97 443
GET / HTTP 1.0
HTTP/1.1 400 Bad Request
Server: nginx
Date: Thu, 16 Jan 2025 15:30:44 GMT
Content-Type: text/html
Content-Length: 150
Connection: close

<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx</center>
</body>
</html>

А если полезем смотреть порт SSH:

Код:
┌──(kali㉿kali)-[/usr/share/nmap]
└─$ nc *.*20.97 22
SSH-2.0-OpenSSH_8.4p1 Debian-5+deb11u3
^C

Тут банеры не вырезали. Так что возможно у тебя таргет с вырезаными банерами, сделай проверку руками.

p.s. если где-то засветил клиентские IP дайте знать)
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх