Вопрос или проблема
Если я хочу запустить Nessus против Windows-сервера, который доступен только с другого компьютера, я могу настроить SSH-туннель следующим образом:
ssh [email protected] -L 127.0.0.1:445:10.0.0.45:445 -L 127.0.0.1:139:10.0.0.45:139
Затем я настрою Nessus для сканирования localhost
или 127.0.0.1
с проверками по учетным данным, используя имя пользователя и пароль администратора Windows.
Проблема в том, что Nessus обнаруживает, что он может выполнять команды на моем локальном Linux-хосте и смешивает результаты с целевого хоста с моим локальным хостом.
Обычно это не проблема, так как я должен быть в состоянии различать результаты Linux и Windows, но просто интересно, есть ли способ сказать Nessus не запрашивать локальную машину в интересах чистого разделения результатов.
Обратите внимание, что ограничение портов до 139 и 445 и установка параметра Тестировать локальный хост Nessus
не влияют на это.
Вы также можете настроить туннель уровня 3 через SSH и направить трафик непосредственно к целевой Windows-машине (см. ссылку ниже для примера).
https://wiki.transmission.ninja/doku.php?id=networking:layer_3_vpn_over_ssh
Это решило бы проблему с сканированием Linux-цели, поскольку вы сможете сканировать IP-адрес Windows напрямую.
Вы также можете использовать инструмент под названием sshuttle для этого, но я нахожу, что он иногда может быть немного нестабильным.
Ответ или решение
Для запуска сканирования Nessus на Windows-сервере, доступ к которому возможен только через другую машину, часто используется SSH-туннелирование. Этот метод позволяет установить защищенное соединение и перенаправить трафик к целевой машине.
Настройка SSH-туннеля
Для создания SSH-туннеля необходимо выполнить следующую команду:
ssh [email protected] -L 127.0.0.1:445:10.0.0.45:445 -L 127.0.0.1:139:10.0.0.45:139
В данном случае, вы перенаправляете порты 445 и 139 с вашего локального компьютера на целевой Windows-сервер по адресу 10.0.0.45. После успешного выполнения этой команды вы сможете подключиться к целевому серверу, сканируя localhost
или 127.0.0.1
.
Проблема с смешиванием результатов
Однако, как показывает практика, Nessus может обнаружить возможность выполнения команд на локальной машине, что приведет к смешиванию результатов сканирования из вашего локального окружения и сканируемого Windows-сервера. Эта ситуация может усложнить анализ и интерпретацию результатов, особенно если на обоих устройствах установлены различные операционные системы.
Для решения этой проблемы рекомендуется:
-
Проверить настройки Nessus: Убедитесь, что вы отключили опцию "Test the local Nessus host". Эта опция может привести к тому, что Nessus будет выполнять проверку и на локальном хосте, что является неприемлемым в вашем случае.
-
Изолировать сканирование: Если возможно, попробуйте настроить Nessus так, чтобы он не выполнял команды на локальном хосте. Настройки для этого могут варьироваться в зависимости от версии и конфигурации Nessus, и их стоит изучить более подробно в документации.
-
Использование других методов туннелирования: В качестве альтернативы можно рассмотреть настройку туннеля третьего уровня (Layer 3) через SSH, что позволит вам напрямую маршрутизировать трафик к целевому Windows-серверу. Поскольку такие действия являются более эффективными с точки зрения изоляции, их стоит учитывать. Подробную информацию об этом можно найти, например, здесь.
Альтернативные инструменты
Если прямое туннелирование через SSH не дает удовлетворительных результатов, дополнительно можно использовать такие инструменты как sshuttle, хотя стоит учесть, что их нестабильная работа может внести дополнительные сложности.
Заключение
При выполнении сканирования Nessus через SSH-туннель ключевым аспектом является контроль результатов сканирования и недопущение их смешивания с исходными данными локального хоста. Следуя приведенным рекомендациям, вы сможете повысить качество сканирования и получить точные результаты анализа уязвимостей.