Когда члены красной команды осуществляют проникновение в интрасеть, они часто сталкиваются со сценариями, когда целевой хост не может получить доступ к сети. Существует множество причин, по которым хост не может получить доступ к сети. Общие причины включают в себя отсутствие настроенного шлюза на целевом хосте и его блокировку. установлен брандмауэр или другое защитное оборудование, позволяющее выходить только определенным протоколам или портам и т. д. Когда мы сталкиваемся с такой ситуацией, мы можем использовать методы, упомянутые в этой главе, чтобы определить, каким протоколам целевой хост разрешает выходить из сети, используя различные методы, включающие этот протокол, и выполнить проникновение в туннель на основе обнаруженной информации о протоколе. При условии, что разрешения целевой системы получены, вы можете использовать различные методы обнаружения протокола, упомянутые ниже, чтобы определить, находится ли она вне сети.
Прежде чем обнаружить протокол TCP/UDP на целевом сервере и выйти из сети, вам необходимо выполнить условие получения упомянутых выше разрешений на управление целевым объектом для проведения этого эксперимента. Топология этой экспериментальной среды показана на рисунке 1-1.
1) В соответствии с экспериментальной топологической средой, описанной на рис. 1-1, используйте инструмент nc и команду Telnet, чтобы определить, находится ли протокол TCP вне сети. Сначала давайте познакомимся с инструментом Netcat (NC), который является относительно простым и удобным. очень полезный инструмент, который поддерживает как чтение, так и запись данных через сетевые соединения через TCP и UDP, а также является. Это стабильный инструмент бэкдора, который поддерживает другие программы и драйверы сценариев. Это также мощный инструмент отладки и обнаружения сети, который может устанавливать практически все типы сетевых подключений, необходимые для использования, если вы хотите использовать инструмент NC для обнаружения TCP. протокол Чтобы выйти из сети, сначала мы используем инструмент NC для запуска nc.exe на целевом сервере. -lvp 8888" для прослушивания порта 8888 целевого сервера, как показано на рисунке 1-2. В процессе использования nc для включения соединений мониторинга и выполнения будут инициироваться TCP-запросы и ответы, а также пакеты данных. генерироваться одновременно. Через локальное программное обеспечение анализа трафика Wireshark используется на хосте для захвата пакетов данных, которые инициируют процесс соединения, а затем процесс трехстороннего соединения TCP просматривается через захваченные пакеты данных.
2) Используйте инструмент nc на хосте Windows 10, чтобы подключиться к порту 8888 целевого сервера и проверить, находится ли он вне сети. Выполните команду nc.exe -nv 8.130.xxx.xxx 8888" и обнаружите, что соединение установлено успешно и отображается состояние открытого порта, что доказывает, что протокол TCP целевого сервера находится вне сети, как показано на рисунке 1. 3.
3) Используя инструмент nc для подключения и обнаружения успешного подключения к сети, вы можете видеть пакеты данных, захваченные с помощью программного обеспечения Wireshark на локальном хосте, анализировать процесс установления соединения между локальным хостом и целевым сервером TCP. протокола и используйте «tcp.port == 8888», отфильтруйте порт TCP, и вы увидите успех трехстороннего установления связи TCP, как показано на рисунке 1-4.
1) Используйте команду Telnet, чтобы определить, находится ли целевой сервер вне сети. Сначала вам нужно использовать инструмент nc на целевом сервере, чтобы открыть порт прослушивания 8888, выполнить команду nc.exe -lvp 8888 и успешно. включите мониторинг целевого сервера, как показано на рисунке 1-5.
2) Если мониторинг включен, используйте команду Telnet на локальном хосте для подключения к целевому серверу. Выполните команду telnet 8.130.xx.xx 8888, как показано на рис. 1-6, которая доказывает, что соединение установлено успешно, а это означает, что TCP разрешен выход.
1) Прежде чем определить, находится ли протокол UDP целевого сервера вне сети, вам необходимо загрузить nc на целевой сервер и выполнить команду nc.exe -ulvp 8888" на целевом сервере, чтобы включить мониторинг целевого сервера, как показано на рисунке 1-8, где параметр -u означает, что nc использует протокол udp для передачи данных (nc использует tcp по умолчанию).
2) Поскольку UDP — это протокол передачи без установления соединения, между отправителем и получателем нет установления связи. Каждый сегмент UDP будет обрабатываться отдельно. Запустите программу анализа трафика Wireshark на хосте Windows 10, перехватите локальные пакеты трафика и включите мониторинг. Затем используйте инструмент nc, чтобы инициировать соединение на хосте Windows 10. Выполните команду nc.exe -uv 8.130.xx.xx 8888". После того, как тест возвращает ответ, обнаруживается, что отображается сообщение open и соединение установлено успешно, как показано на рис. 1-9.
3) Через пакеты данных UDP, захваченные локальным программным обеспечением анализа трафика Wireshark, можно увидеть, что локальный компьютер и целевой сервер обмениваются данными через протокол UDP, подтверждая, что протокол UDP выходит из сети, как показано на рисунке 1. -10.
При определении того, находится ли протокол Http/Https вне сети на целевом сервере, вы должны выполнить команду в соответствии с типом целевой системы. В разных типах операционных систем используются разные методы обнаружения. Например, в операционной системе Windows вы должны выполнить команду. можно использовать встроенные команды bitsadmin, certutil и т. д. Команда для обнаружения Http или Https вне сети. Операционная система Linux может использовать свои собственные команды curl, wget и другие команды для обнаружения вне сети. Ниже в качестве примеров для обнаружения исходящего трафика http/https используются команды, поставляемые с различными типами операционных систем.
Команда Bitsadmin — это инструмент командной строки, используемый в операционных системах Windows для создания, загрузки или загрузки заданий, а также отслеживания хода выполнения заданий. Вы можете использовать этот инструмент командной строки, чтобы проверить, можно ли загружать файлы с веб-сайта, чтобы определить, находится ли http или https вне сети. Ниже мы возьмем файл robots.txt официального сайта Baidu в качестве примера для демонстрации и использования команды Bitsadmin. загрузить файл robots из каталога официального сайта Baidu и сохранить его в файл robots.txt на локальном диске C.
Выполните команду bitsadmin /rawreturn /transfer down «https://www.baidu.com/robots.txt» c:\robots.txt». На данный момент файл robots.txt успешно загружен в каталог диска C. Затем используйте команду «type C:\robots.txt» для чтения, просмотра и проверки ее существования. Если все в порядке, это доказывает, что обнаружение сети прошло успешно, как показано на рисунке 1-11.
Команда Certui — это инструмент командной строки для загрузки файлов в операционной системе Windows. Ее можно использовать для установки служб сертификации, создания дампа и отображения информации о конфигурации центра сертификации (CA), настройки служб сертификации, резервного копирования и восстановления компонентов CA, а также проверки сертификатов. , пары ключей и цепочки сертификатов.
Далее мы по-прежнему возьмем файл robots.txt на веб-сайте Baidu в качестве примера и используем команду Certuil для выполнения certutil -urlcache -split -f https://www.baidu.com/robots.txt. c:\robots.txt» Сохраните файл robots.txt на веб-сайте Baidu в локальном каталоге диска C. В ходе проверки обнаружено, что файл robots.txt существует, что доказывает, что протокол http/https отсутствует в сети. , как показано на рисунке 1-12.
Curl — это инструмент командной строки, поставляемый с Linux. Он используется для передачи данных с сервера или на него. При использовании Curl для тестирования сети использовать команду очень просто. проверено Curl.
На примере веб-сайта Baidu команда «curl http://www.baidu.com» успешно выполняется и отображается следующий HTML-код внешнего интерфейса, доказывающий, что протокол http/https находится вне сети, как показано на рисунке. на рисунке 1-13.
(2) Команда Wget
Wget — следующий инструмент загрузки командной строки для Linux. Он поддерживает протоколы http и ftp, а также несколько режимов загрузки. Обычно он используется для пакетной загрузки файлов.
Используйте Wget в Linux для обнаружения исходящей сети. Метод использования тот же, что и в предыдущей демонстрации. Используйте инструмент wget для выполнения команды wget http://www.baidu.com/robots.txt для загрузки файла robots.txt. в корневом каталоге Baidu. Протокол обнаружения успешно работает, как показано на рисунке 1-14.
ICMP (Протокол управляющих сообщений Интернета) — это протокол, ориентированный на отсутствие установления соединения, который принадлежит сетевому уровню и используется для обнаружения сбоев сетевой связи и реализации отслеживания каналов. Когда нам нужно определить, находится ли протокол ICMP вне сети, мы можем обнаружить это с помощью команд Ping и Tracert. Ниже эти две команды используются в качестве примеров для демонстрации.
Команда Ping, наверное, всем знакома. Команда Ping часто используется для проверки сетевого подключения. Поскольку эта команда реализована на основе протокола ICMP, Ping является наиболее часто используемой командой при исходящем тестировании ICMP. com, вы можете увидеть возвращаемую информацию, как показано на рисунке 1-15, которая доказывает, что обнаружение исходящих сообщений протокола ICMP прошло успешно.
Команда Tracert — это команда, используемая для отслеживания маршрутов в Windows. Она основана на протоколе ICMP. При исходящем тесте ICMP вам нужно использовать команду Tracert только для отслеживания целевого адреса. В качестве примера выполните команду Tracert Baidu. .com, чтобы получить следующее: Возвращаемая информация, показанная на рис. 1-16, доказывает, что сетевое соединение установлено успешно.
Обычно вы можете использовать команду ping для обнаружения протокола ICMP вне сети в системе Linux. Это похоже на вышеупомянутый эксперимент с работой системы Windows, но в системе Linux необходимо использовать -c для указания количества раз. Команда ping в системе Windows автоматически прекратится после четвертого выполнения. В системе Linux она не остановится автоматически. Выполните команду ping -c 4 baidu.com, и результаты, показанные на рис. 1-17, докажут, что сеть успешно обнаружена.
DNS (система доменных имен) — это система разрешения доменных имен, которая может сопоставлять доменные имена соответствующим IP-адресам доступа. Далее мы возьмем встроенные команды системы в качестве примера, чтобы продемонстрировать обнаружение протокола DNS вне сети.
Чтобы проверить исходящую сеть протокола DNS в системе Windows, вы можете использовать команду Nslookup. Это инструмент командной строки управления сетью, который можно использовать для запроса доменных имен DNS и разрешения IP. nslookup имеет два режима работы: интерактивный и неинтерактивный. Здесь вы можете использовать неинтерактивный режим. Выполните команду nslookup baidu.com, и будет возвращен результат ответа, подтверждающий успешность сетевого подключения, как показано на рисунке 1-18.
Команда Dig используется для запроса DNS в операционной системе Linux. Инструмент запросов сервера доменных имен может запрашивать информацию, связанную с записями NS, A и MX, в соответствии с протоколом DNS. Выполните команду dig @8.8.8.8 www.baidu.com, укажите здесь DNS-сервер, 8.8.8.8 — DNS-сервер Google. Результат ответа возвращается для подтверждения успешного подключения к сети, как показано на рисунке 1-19.
В системах Linux вы также можете использовать команду nslookup для обнаружения протокола DNS системы вне сети. Метод тот же, что и в системе Windows. Выполните команду nslookup baidu.com. После выполнения возвращенный результат подтверждает, что сеть успешно подключена, как показано на рисунке 1-20.
Благодаря постоянному обновлению и усовершенствованию туннельной технологии все больше и больше злоумышленников используют туннельную технологию для атак на корпоративные интрасети. В этой статье анализируется разделение технологии туннельного сокрытия по нескольким направлениям и объясняется туннельная технология в целом, включая краткое изложение базовых знаний. . И использование соответствующих туннельных инструментов, а также методов обнаружения и защиты технологии маскировки туннелей, а также продемонстрировало ряд реальных распространенных сценариев туннелирования в большом количестве случаев. Например, мы использовали несколько протоколов для достижения проникновения в туннель и порта после получения системы. разрешения, проникновение в интранет, короче говоря, я надеюсь, что этот контент будет полезен читателям.
Я участвую в третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 с эссе, получившими приз, и сформирую команду, которая разделит приз!