ATT&CKКрасное и синее противостояние с точки зрения:два. Исходящий протокол обнаружения интрасети
ATT&CKКрасное и синее противостояние с точки зрения:два. Исходящий протокол обнаружения интрасети

Когда члены красной команды осуществляют проникновение в интрасеть, они часто сталкиваются со сценариями, когда целевой хост не может получить доступ к сети. Существует множество причин, по которым хост не может получить доступ к сети. Общие причины включают в себя отсутствие настроенного шлюза на целевом хосте и его блокировку. установлен брандмауэр или другое защитное оборудование, позволяющее выходить только определенным протоколам или портам и т. д. Когда мы сталкиваемся с такой ситуацией, мы можем использовать методы, упомянутые в этой главе, чтобы определить, каким протоколам целевой хост разрешает выходить из сети, используя различные методы, включающие этот протокол, и выполнить проникновение в туннель на основе обнаруженной информации о протоколе. При условии, что разрешения целевой системы получены, вы можете использовать различные методы обнаружения протокола, упомянутые ниже, чтобы определить, находится ли она вне сети.

1. Обнаружение протокола TCP/UDP вне сети.

Прежде чем обнаружить протокол TCP/UDP на целевом сервере и выйти из сети, вам необходимо выполнить условие получения упомянутых выше разрешений на управление целевым объектом для проведения этого эксперимента. Топология этой экспериментальной среды показана на рисунке 1-1.

Рисунок 1-1. Экспериментальная топология обнаружения протокола TCP/UDP вне сети.
Рисунок 1-1. Экспериментальная топология обнаружения протокола TCP/UDP вне сети.

1. Инструмент NC обнаруживает исходящую сеть протокола TCP.

1) В соответствии с экспериментальной топологической средой, описанной на рис. 1-1, используйте инструмент nc и команду Telnet, чтобы определить, находится ли протокол TCP вне сети. Сначала давайте познакомимся с инструментом Netcat (NC), который является относительно простым и удобным. очень полезный инструмент, который поддерживает как чтение, так и запись данных через сетевые соединения через TCP и UDP, а также является. Это стабильный инструмент бэкдора, который поддерживает другие программы и драйверы сценариев. Это также мощный инструмент отладки и обнаружения сети, который может устанавливать практически все типы сетевых подключений, необходимые для использования, если вы хотите использовать инструмент NC для обнаружения TCP. протокол Чтобы выйти из сети, сначала мы используем инструмент NC для запуска nc.exe на целевом сервере. -lvp 8888" для прослушивания порта 8888 целевого сервера, как показано на рисунке 1-2. В процессе использования nc для включения соединений мониторинга и выполнения будут инициироваться TCP-запросы и ответы, а также пакеты данных. генерироваться одновременно. Через локальное программное обеспечение анализа трафика Wireshark используется на хосте для захвата пакетов данных, которые инициируют процесс соединения, а затем процесс трехстороннего соединения TCP просматривается через захваченные пакеты данных.

Рис. 1-2. Использование инструмента ЧПУ для включения мониторинга сервера
Рис. 1-2. Использование инструмента ЧПУ для включения мониторинга сервера

2) Используйте инструмент nc на хосте Windows 10, чтобы подключиться к порту 8888 целевого сервера и проверить, находится ли он вне сети. Выполните команду nc.exe -nv 8.130.xxx.xxx 8888" и обнаружите, что соединение установлено успешно и отображается состояние открытого порта, что доказывает, что протокол TCP целевого сервера находится вне сети, как показано на рисунке 1. 3.

Рисунок 1-3 Подключение клиента выполнено успешно
Рисунок 1-3 Подключение клиента выполнено успешно

3) Используя инструмент nc для подключения и обнаружения успешного подключения к сети, вы можете видеть пакеты данных, захваченные с помощью программного обеспечения Wireshark на локальном хосте, анализировать процесс установления соединения между локальным хостом и целевым сервером TCP. протокола и используйте «tcp.port == 8888», отфильтруйте порт TCP, и вы увидите успех трехстороннего установления связи TCP, как показано на рисунке 1-4.

Рис. 1-4 Процесс трехстороннего установления связи TCP
Рис. 1-4 Процесс трехстороннего установления связи TCP

2. Команда Telnet обнаруживает исходящую сеть протокола TCP.

1) Используйте команду Telnet, чтобы определить, находится ли целевой сервер вне сети. Сначала вам нужно использовать инструмент nc на целевом сервере, чтобы открыть порт прослушивания 8888, выполнить команду nc.exe -lvp 8888 и успешно. включите мониторинг целевого сервера, как показано на рисунке 1-5.

Рисунок 1-5 nc включает мониторинг сервера
Рисунок 1-5 nc включает мониторинг сервера

2) Если мониторинг включен, используйте команду Telnet на локальном хосте для подключения к целевому серверу. Выполните команду telnet 8.130.xx.xx 8888, как показано на рис. 1-6, которая доказывает, что соединение установлено успешно, а это означает, что TCP разрешен выход.

Рисунок 1-7 TelnetПодключение клиента выполнено успешно
Рисунок 1-7 TelnetПодключение клиента выполнено успешно

3. Протокол UDP обнаруживает исходящую сеть.

1) Прежде чем определить, находится ли протокол UDP целевого сервера вне сети, вам необходимо загрузить nc на целевой сервер и выполнить команду nc.exe -ulvp 8888" на целевом сервере, чтобы включить мониторинг целевого сервера, как показано на рисунке 1-8, где параметр -u означает, что nc использует протокол udp для передачи данных (nc использует tcp по умолчанию).

Рисунок 1-8. nc использует протокол Udp для мониторинга сервера.
Рисунок 1-8. nc использует протокол Udp для мониторинга сервера.

2) Поскольку UDP — это протокол передачи без установления соединения, между отправителем и получателем нет установления связи. Каждый сегмент UDP будет обрабатываться отдельно. Запустите программу анализа трафика Wireshark на хосте Windows 10, перехватите локальные пакеты трафика и включите мониторинг. Затем используйте инструмент nc, чтобы инициировать соединение на хосте Windows 10. Выполните команду nc.exe -uv 8.130.xx.xx 8888". После того, как тест возвращает ответ, обнаруживается, что отображается сообщение open и соединение установлено успешно, как показано на рис. 1-9.

Рисунок 1-9. Клиент nc успешно подключается по протоколу udp.
Рисунок 1-9. Клиент nc успешно подключается по протоколу udp.

3) Через пакеты данных UDP, захваченные локальным программным обеспечением анализа трафика Wireshark, можно увидеть, что локальный компьютер и целевой сервер обмениваются данными через протокол UDP, подтверждая, что протокол UDP выходит из сети, как показано на рисунке 1. -10.

Рисунок 1-10 Wireshark перехватывает UDP-пакеты
Рисунок 1-10 Wireshark перехватывает UDP-пакеты

2. Обнаружение протокола HTTP/HTTPS вне сети.

При определении того, находится ли протокол Http/Https вне сети на целевом сервере, вы должны выполнить команду в соответствии с типом целевой системы. В разных типах операционных систем используются разные методы обнаружения. Например, в операционной системе Windows вы должны выполнить команду. можно использовать встроенные команды bitsadmin, certutil и т. д. Команда для обнаружения Http или Https вне сети. Операционная система Linux может использовать свои собственные команды curl, wget и другие команды для обнаружения вне сети. Ниже в качестве примеров для обнаружения исходящего трафика http/https используются команды, поставляемые с различными типами операционных систем.

1. Система Windows обнаруживает исходящую сеть HTTP/HTTPS.

(1) Команда Bitsadmin

Команда 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.

Рисунок 1-11 BitsadminЗаказ успешно обнаружил сеть
Рисунок 1-11 BitsadminЗаказ успешно обнаружил сеть

(2) Уверенная команда

Команда 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.

Рисунок 1-12 certuiЗаказ успешно обнаружил сеть
Рисунок 1-12 certuiЗаказ успешно обнаружил сеть

2. Система Linux обнаруживает исходящую сеть HTTP/HTTPS.

(1) Команда скручивания

Curl — это инструмент командной строки, поставляемый с Linux. Он используется для передачи данных с сервера или на него. При использовании Curl для тестирования сети использовать команду очень просто. проверено Curl.

На примере веб-сайта Baidu команда «curl http://www.baidu.com» успешно выполняется и отображается следующий HTML-код внешнего интерфейса, доказывающий, что протокол http/https находится вне сети, как показано на рисунке. на рисунке 1-13.

Рисунок 1-13 CurlЗаказ успешно обнаружил сетевое соединение
Рисунок 1-13 CurlЗаказ успешно обнаружил сетевое соединение

(2) Команда Wget

Wget — следующий инструмент загрузки командной строки для Linux. Он поддерживает протоколы http и ftp, а также несколько режимов загрузки. Обычно он используется для пакетной загрузки файлов.

Используйте Wget в Linux для обнаружения исходящей сети. Метод использования тот же, что и в предыдущей демонстрации. Используйте инструмент wget для выполнения команды wget http://www.baidu.com/robots.txt для загрузки файла robots.txt. в корневом каталоге Baidu. Протокол обнаружения успешно работает, как показано на рисунке 1-14.

Рисунок 1-14 wgetЗаказ успешно обнаружил сеть
Рисунок 1-14 wgetЗаказ успешно обнаружил сеть

3. Обнаружение протокола ICMP вне сети.

ICMP (Протокол управляющих сообщений Интернета) — это протокол, ориентированный на отсутствие установления соединения, который принадлежит сетевому уровню и используется для обнаружения сбоев сетевой связи и реализации отслеживания каналов. Когда нам нужно определить, находится ли протокол ICMP вне сети, мы можем обнаружить это с помощью команд Ping и Tracert. Ниже эти две команды используются в качестве примеров для демонстрации.

1. Система Windows обнаруживает исходящую сеть протокола ICMP.

(1) Команда Ping

Команда Ping, наверное, всем знакома. Команда Ping часто используется для проверки сетевого подключения. Поскольку эта команда реализована на основе протокола ICMP, Ping является наиболее часто используемой командой при исходящем тестировании ICMP. com, вы можете увидеть возвращаемую информацию, как показано на рисунке 1-15, которая доказывает, что обнаружение исходящих сообщений протокола ICMP прошло успешно.

Рисунок 1-15 Ping Заказ успешно обнаружил сеть
Рисунок 1-15 Ping Заказ успешно обнаружил сеть

(2) Команда трассировки

Команда Tracert — это команда, используемая для отслеживания маршрутов в Windows. Она основана на протоколе ICMP. При исходящем тесте ICMP вам нужно использовать команду Tracert только для отслеживания целевого адреса. В качестве примера выполните команду Tracert Baidu. .com, чтобы получить следующее: Возвращаемая информация, показанная на рис. 1-16, доказывает, что сетевое соединение установлено успешно.

Рисунок 1-16 TracertЗаказ успешно обнаружил сеть
Рисунок 1-16 TracertЗаказ успешно обнаружил сеть

2. Система Linux обнаруживает исходящую сеть протокола ICMP.

Обычно вы можете использовать команду ping для обнаружения протокола ICMP вне сети в системе Linux. Это похоже на вышеупомянутый эксперимент с работой системы Windows, но в системе Linux необходимо использовать -c для указания количества раз. Команда ping в системе Windows автоматически прекратится после четвертого выполнения. В системе Linux она не остановится автоматически. Выполните команду ping -c 4 baidu.com, и результаты, показанные на рис. 1-17, докажут, что сеть успешно обнаружена.

Рисунок 1-17 PingЗаказ успешно обнаружил сеть
Рисунок 1-17 PingЗаказ успешно обнаружил сеть

4. Обнаружение протокола DNS вне сети.

DNS (система доменных имен) — это система разрешения доменных имен, которая может сопоставлять доменные имена соответствующим IP-адресам доступа. Далее мы возьмем встроенные команды системы в качестве примера, чтобы продемонстрировать обнаружение протокола DNS вне сети.

1. Система Windows обнаруживает исходящую сеть протокола DNS.

Чтобы проверить исходящую сеть протокола DNS в системе Windows, вы можете использовать команду Nslookup. Это инструмент командной строки управления сетью, который можно использовать для запроса доменных имен DNS и разрешения IP. nslookup имеет два режима работы: интерактивный и неинтерактивный. Здесь вы можете использовать неинтерактивный режим. Выполните команду nslookup baidu.com, и будет возвращен результат ответа, подтверждающий успешность сетевого подключения, как показано на рисунке 1-18.

Рисунок 1-18 NslookupЗаказ обнаруживает отсутствие сети
Рисунок 1-18 NslookupЗаказ обнаруживает отсутствие сети

2. Система Linux обнаруживает исходящую сеть протокола DNS.

(1) Команда копать

Команда Dig используется для запроса DNS в операционной системе Linux. Инструмент запросов сервера доменных имен может запрашивать информацию, связанную с записями NS, A и MX, в соответствии с протоколом DNS. Выполните команду dig @8.8.8.8 www.baidu.com, укажите здесь DNS-сервер, 8.8.8.8 — DNS-сервер Google. Результат ответа возвращается для подтверждения успешного подключения к сети, как показано на рисунке 1-19.

Рисунок 1-19 DigЗаказ успешно обнаружил сеть
Рисунок 1-19 DigЗаказ успешно обнаружил сеть

(2) Команда Nslookup

В системах Linux вы также можете использовать команду nslookup для обнаружения протокола DNS системы вне сети. Метод тот же, что и в системе Windows. Выполните команду nslookup baidu.com. После выполнения возвращенный результат подтверждает, что сеть успешно подключена, как показано на рисунке 1-20.

Рисунок 1-20 nslookupЗаказ успешно обнаружил сеть
Рисунок 1-20 nslookupЗаказ успешно обнаружил сеть

5. Краткое содержание этой статьи

Благодаря постоянному обновлению и усовершенствованию туннельной технологии все больше и больше злоумышленников используют туннельную технологию для атак на корпоративные интрасети. В этой статье анализируется разделение технологии туннельного сокрытия по нескольким направлениям и объясняется туннельная технология в целом, включая краткое изложение базовых знаний. . И использование соответствующих туннельных инструментов, а также методов обнаружения и защиты технологии маскировки туннелей, а также продемонстрировало ряд реальных распространенных сценариев туннелирования в большом количестве случаев. Например, мы использовали несколько протоколов для достижения проникновения в туннель и порта после получения системы. разрешения, проникновение в интранет, короче говоря, я надеюсь, что этот контент будет полезен читателям.


Я участвую в третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 с эссе, получившими приз, и сформирую команду, которая разделит приз!

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода