Назад | Перейти на главную страницу

Как интерпретировать результат Nmap, хост открыт, но порты не открыты

Я использовал nmap для сопоставления сети, сканирование с помощью следующей команды

nmap -v -sS --no-stylesheet -T3 -sU -sV -O -oX <filename.xml> 192.168.69.0/24

Некоторые хозяева возвращаются со странным результатом. Nmap считает, что они выросли из-за syn-ack. Я предположил, что это означает, что к определенному порту было установлено TCP-соединение и процесс трехстороннего подтверждения был завершен. Однако в списке открытых портов нет. (однако есть открытые | фильтрованные, отфильтрованные и закрытые порты). Может ли кто-нибудь объяснить, как я должен это интерпретировать? Разве согласование tcp-соединения с хостом не означает, что должен быть открыт хотя бы один порт?

Вывод XML для этого хоста при сканировании:

<host starttime="1435615239" endtime="1435901758">
  <status state="up" reason="syn-ack" reason_ttl="115"/>
  <address addr="192.168.69.23" addrtype="ipv4"/>
  <hostnames>
    <hostname name="example.com" type="PTR"/>
  </hostnames>
  <ports>
    <extraports state="open|filtered" count="1000">
    <extrareasons reason="no-responses" count="1000"/>
    </extraports>
    <extraports state="filtered" count="996">
    <extrareasons reason="no-responses" count="996"/>
    </extraports>
    <port protocol="tcp" portid="111">
    <state state="closed" reason="reset" reason_ttl="115"/>
    <service name="rpcbind" method="table" conf="3"/>
    </port>
    <!-- more closed ports -->
  </ports>
  <os><!-- ... --></os>
  <times srtt="3165" rttvar="109" to="100000"/>
</host>

Nmap считает, что они работают из-за синхронизации. Я предположил, что это означает, что к определенному порту было установлено TCP-соединение и процесс трехстороннего подтверждения был завершен.

На самом деле, Nmap не выполняет трехстороннее квитирование для обнаружения хоста (ни для TCP SYN сканирования с -sS). Он отправляет необработанный пакет TCP SYN на порт 443 (среди других зондов), и считает хост работающим, если он получает любой из множества различных ответов. В вашем случае цель отправила ответ SYN-ACK, указывающий на открытый порт. Затем Nmap оставляет на усмотрение ОС вашего сканирующего хоста отправить ответный пакет RST, поскольку ОС не знает об исходящем SYN и не ожидает ответа SYN-ACK. Если ваш брандмауэр настроен на DROP недействительных или неожиданных пакетов, RST никогда не будет отправлен.

Некоторые TCP-стеки, особенно на встроенных устройствах, не очень хорошо обрабатывают отклонения TCP. Ваша цель может сидеть с полуоткрытым TCP-соединением на порте 443, ожидая пакета RST или ACK, который никогда не прибудет, что вызовет последующий зонд SYN во время фаза сканирования портов не получить ответа.

Однако это все догадки. Также вероятно, что у цели есть своего рода адаптивный межсетевой экран хоста, который обнаружил сканирование портов и начал отбрасывать трафик Nmap до того, как он попал на открытый порт 443.