CTF – сводка типов вопросов для анализа трафика.
CTF – сводка типов вопросов для анализа трафика.

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

я виделизпотокТип анализаиз Краткое содержание вопроса:

1. Информация о сообщении Ping (протокол ICMP)

2. Загрузка/скачивание файлов (Bluetooth obex, http, сложная: сегментированная загрузка/скачивание файлов)

3. Атака с помощью SQL-инъекций

4. Посетите специальный веб-сайт шифрования и дешифрования (md5, base64).

5. Фоновое сканирование + взлом слабого пароля + кухонный нож.

6. Анализ USB-трафика

7. Взлом пароля беспроводной сети Wi-Fi

8. Понять специфическое поведение хакеров на основе набора пакетов трафика.

пример:

1. Информация о сообщении Ping (протокол ICMP)

Пример 1.1

Откройте пакет трафика и обнаружите большой раздел пакета протокола icmp. Я обнаружил, что пакет icmp перемешан с флагом.

Здесь вы можете просмотреть данные каждого icmp-сообщения по очереди, а затем получить флаг

Вы также можете использовать обработку скриптов: (не рекомендуется)

Сначала отфильтруйте пакеты протокола icmp > Экспортируйте определенные группы > Сохранить как flag.pcapng > Затем используйте скрипт для обработки:

(Этот скрипт может обрабатывать только пакеты только с одним байтом данных, что очень ограничено. Лучше проверять каждый пакет по отдельности. Флаг в любом случае не будет слишком длинным)

Язык кода:javascript
копировать
import  pyshark
cap = pyshark.FileCapture('flag.pcapng')
for packet in cap:
    data = ''+packet[packet.highest_layer].data
    print(chr(int(data,16)),end='')
cap.close()

2. Загрузка/скачивание файлов (Bluetooth obex, http, сложная: сегментированная загрузка/скачивание файлов)

Этот тип трафика, смешанного с файлами, обрабатывается лучше всего.

Способ первый,Непосредственно использовать в первую очередь напрямую отделить и упомянуть Выбрать, и вы можете упомянуть Выбрать его серединаскрыть документ в один клик,Обычно один из них отделяется напрямую: Варианты сжатого пакета, изображения или flag.txt.

Способ второй,

Автоматически извлекать содержимое файлов, переданных по http документ->Экспортировать объект->HTTP

существовать Открытьизсписок объектовсерединаоказатьсяценныйценитьиздокумент,Например, сжатие документа, текстового документа, аудиодокумента, изображений и т. д.,НажмитеSaveсохранять,илиSave AllСохраните все объекты перед входомдокументклип для анализа。

Вручную извлечь содержимое файла, переданного через http выбраноhttpдокументпередача инфекциипоток Сумка,существовать Детали группысерединаоказатьсяdata,Line-based text, JPEG File Interchange Format, data:text/htmlслой,мышь右键Нажмите – выбрано Экспортируйте пакетированный поток байтов.

Если это файл загрузки с помощью чоппера, вам необходимо удалить символы X@Y в начале и конце сгруппированного потока байтов, иначе загруженный файл будет неправильным. щелчок правой кнопкой мыши – выбрано Показать сгруппированные байты

Задайте начальный и конечный байты во всплывающем окне (прибавьте 3 к исходному количеству байтов в начале и вычтите 3 в конце)

最назад НажмитеSave asкнопка экспорта。

Пример 2.1 Мобильная точка доступа (протокол передачи Bluetooth obex, извлечение данных)

Источник вопроса: Geek Challenge, 7 сезон. Тестовые точки: протокол передачи Bluetooth obex, извлечение данных Информация о вопросе: (Blatand_1.pcapng)

В вопросе написано, что он используется.Он не блуждающий.Я передал файлы на компьютер.Он должен быть через Bluetooth.Протокол obex.

Шуай выбрал пакет протокола obex: Я обнаружил, что в пакете есть сжатый rar пакет:

Чтобы отделить этот RAR-пакет:

Способ 1: напрямую скопируйте блок данных, затем скопируйте его в winhex и сохраните как rar.

копировать блок данных as Hex stream > вставить в винхекс для ASCII HEX > Удалить предыдущий избыточная информация > держатьдля rar

Способ 2. Используйте formost для разделения: многие вещи разделены, но наша цель — пакет rar.

Получите flag.git:

Пример 2.2. Ловля мухи

Этот вопрос более сложного типа. Он предполагает сегментированную передачу файлов. Нам нужно объединить несколько фрагментов данных.

Сначала найдите строковый флаг в потоке байтов пакета, чтобы найти первый пакет, и проследите поток данных.

Затем я увидел приведенную выше информацию и понял, что мне следует использовать почтовый ящик qq для передачи файлов.

Информация о файле: fly.rar документизразмердля 525701

{“path”:”fly.rar”,”appid”:””,”size”:525701,”md5″:”e023afa4f6579db5becda8fe7861c2d3″,”sha”:”ecccba7aea1d482684374b22e2e7abad2ba86749″,”sha3″:””}

Теперь, когда вы знаете, что загружаете файлы, вы должны использовать метод POST HTTP-запроса.

Войти в фильтр

Язык кода:javascript
копировать
http && http.request.method==POST

Затем найдите эти 5 пакетов, первый пакет документизинформация,позже5индивидуальный Сумкадляданные

Проверьте длину даты соответственно:

первые четыре для 131436 Последний для 17777

Итак, 131436*4 +17777=527571 на 1820 отличается от длины Fly.rar, указанной в первом пакете 525701.

Поскольку каждый для содержит информацию заголовка, 1820/5 = 364.

информация заголовка soeach Сумкаиз для 364

Затем экспортируйте пакет данных:

wireshark->документ->Экспортировать объект->http->выбиратьsaveобъект

Будет ли соответствующий пакет сохранить соответственно для 1 2 3 4 5

Перетащите эти пять пакетов в Кали.

осуществлять:

Язык кода:javascript
копировать
dd if=1 bs=1 skip=364 of=11

dd if=2 bs=1 skip=364 of=22

dd if=3 bs=1 skip=364 of=33

dd if=4 bs=1 skip=364 of=44

dd if=5 bs=1 skip=364 of=55

Удалим 364 байта из заголовка пакета данных и получим 11 22 33 44 55

Объедините эти пять пакетов

Язык кода:javascript
копировать
cat 11 22 33  44 55 > fly.rar

Проверьте правильность значения md5 в flag.rar.

Язык кода:javascript
копировать
md5sum fly.rar

правильный

При распаковке появляется сообщение о том, что заголовок файла поврежден и требуется пароль.

Зная, что это псевдопароль, откройте его с помощью winhex, измените заголовок файла и измените 84 изменятьдля 80,Сохранить

После распаковки откройте flag.txt и откройте кучу искаженных символов. Используйте в первую очередь, чтобы разделить их и получить много картинок.

Нашел QR-код и получил флаг после его сканирования.

flag{m1Sc_oxO2_Fly}

На самом деле я сначала этого не делал, я сначала сразу отделил пакет трафика, потом отделил несколько картинок и сжатый пакет и попробовал его распаковать.

Выскакивает куча ошибок и просит ввести пароль. заголовок файла 84 Изменитьдля 80 После этого все равно не могу открыть ,,может быть Этот файл также содержит другие сообщения об ошибках, поэтому вместо этого используйте описанный выше метод.

3. Атака с помощью SQL-инъекций

Пример 3.1. Извлечение информации (сверхподробное)

Я столкнулся с почти таким же вопросом на конкурсе. Я никогда не писал подробного блога. Сегодня я решил использовать этот вопрос, чтобы записать и понять вопрос такого типа.

Совет: sqlmap

Открыв пакет трафика, я также заметил, что процесс слепой SQL-инъекции выполнялся с помощью sqlmap, методом дихотомии.

длялучшеиз理解 процесс инъекции Мы сначала положили Извлеките оператор инъекции для удобства наблюдения.

фильтровать HTTP-трафик ,Затем документ 》Экспорт результатов группового анализа 》дляCSV держатьдля 123.txt

Откройте 123.txt с помощью Notepad++, вы увидите, что в операторах все еще смешано много URL-кодов.

Выбрать все , Затем плагин 》MIME Tools 》 url decode , чтобы было более интуитивно понятно конвертировать URL-код в дляиз ascii

Затем Снова понять дихотомия Процесс слепой SQL-инъекции

с флагом изпервый персонаждля пример :

Число в зеленом поле указывает, какой персонаж тестируется.

Число в красном поле представляет значение по сравнению со значением ASCII текущего тестируемого символа.

Числа в розовой рамке высоты возвращает длину данных (на основе этого мы будем судить, правильно ли приведенное выше утверждение да)

ascii имеет 128 так от 64 Начни судить,Затемда96(64и128среднее значение),иллюстрировать>64даправильныйиз ,Только тогда Выбирать96,Затемда 80,80 меньше 96,иллюстрировать>96это неправильно,так Только тогда Выбирать 64 и 96 среднее значение 80,Затемда 72,иллюстрировать>80это неправильно,Выбирать80и64междусреднее значение72,Затемда76,иллюстрировать>72даправильныйиз,Только тогда Выбирать 72 и80междусреднее значение76,Затемда 74,иллюстрировать>76это неправильно,Только тогда Выбирать 72 и76среднее значение 74,Затемда73,иллюстрировать>74это неправильно,Только тогда Выбирать 72 и 74среднее значение 73

Что касается > 73 заявлениеданетправильный,Это о нас в конце концов из Выбратьценить,

мы уже знаем первый персонаж значение ascii диапазон для 72< x <= 74, Что касаетсяда 73 все еще 74 , необходимо вынести еще одно суждение:

нравиться > 73 правильный, но x = 74 первый персонаж значение asciiдля 74 то есть J

нравиться >73 Ошибка, но x = 73 то есть I

Поскольку мы уже знаем выше >64 даправильныйиз Длина данных возвращаемого пакета равна 467

>96 это неправильно Длина данных возвращаемого пакета равна 430

>80 это неправильно Длина данных возвращаемого пакета равна 430

>72 даправильныйиз Длина данных возвращаемого пакета равна 467

>76 это неправильно Длина данных возвращаемого пакета равна 430

>74 это неправильно Длина данных возвращаемого пакета равна 430

можно увидеть При оценке предложения правильно , длина данных возвращенного пакета да больше, чем 430-е , когда возникает ошибка даменьше или равно 430

Затемсм. последнее заявление >73 возвращаемое значение для 430, объяснение и ошибка, первый персонажизascii для 73

Как только вы поймете процесс, сделать это будет намного проще.

нам просто нужно оказаться текущего тестового персонажа Последнее тестовое утверждение значение ascii и возвращаемое значение

есливозвращаемое значениебольше, чем 430 но текущего тестового персонажаascii ценить для Значение последнего тестового оператора ascii

есливозвращаемое значение меньше или равно 430 но текущий тестхарактерзначение ascii для ascii последнего тестового оператора + 1

Способ 1: (когда флаг короче)

когда флаг короче по времени, мы уверены даиспользовать ручную работу Запишите их один за другим 每индивидуальныйхарактерзначение ascii относительно быстро

Способ 2: (когда флаг длиннее)

когда флаг для Когда количество слов превышает 25, делать это вручную кажется слишком трудоемким. Лучше написать скрипт, чтобы сделать это быстрее, как и в этом вопросе, длина флага равна. 33

Верхний сценарий:

Язык кода:javascript
копировать
import re
import urllib.parse

# Изменить под себя из Wireshark Выбрать изcsvадрес документа
f = open(r"123.txt")
lines = f.readlines()
datas = []
# перекодирование, Сохранить в данные
for line in lines:
    datas.append(urllib.parse.unquote(line))
lines = []  # Слишком ленив, чтобы измениться, Просто повтори это, эти строки сохранить, внедрить флагизурл
for i in range(len(datas)):  # Предоставить Выбирать inject flagizurl
    if datas[i].find("isg.flags ORDER BY `value` LIMIT 0,1),1,1))>64") > 0:
        lines = datas[i:]
        break
flag = {}
# использоватьтольконосоответствовать
macth1 = re.compile(r"LIMIT 0,1\),(\d*?),1\)\)>(\d*?) HTTP/1.1")
macth2 = re.compile(r'"HTTP","(\d*?)","HTTP/1.1 200 OK')
for i in range(0, len(lines), 2):  # Поскольку нет ответа от для, такразмер шагадля2    get1 = macth1.search(lines[i])
    if get1:
        key = int(get1.group(1))  # keyдержатьхарактериз Расположение        value = int(get1.group(2))  # значение сохранить характеризационную кодировку
        get2 = macth2.search(lines[i + 1])
        if get2:
            if int(get2.group(1)) > 450:
                value += 1
        flag[key] = value  # использовать字典держатьflag
f.close()
result = ''
for value in flag.values():
    result += chr(value)
print(result)

длякакой сценарийсередина суждениевозвращаемое значение Выбирать 450 Шерстяная ткань? потому чтодля При взятии 430 получен неправильный флаг. Внимательно проверив 123.txt, я обнаружил, что. Также возвращены некоторые неправильные утверждения. Сумка для 431 или 432, так что просто выбери один 450 (допустимо любое значение от 433 до 460)

(Если вы все еще этого не понимаете, подумайте о смене специальности)

Получить флаг:

ISG{BLind_SQl_InJEcTi0N_DeTEcTEd}

пример3.2 Аудит журнала

использовать notepad++ Открыть бревнодокумент,Первыйиспользовать плагинв MIME Tool в URL decode Расшифруй это

Затем можно ясно увидеть дасуществовать выполнено sql Операция слепого впрыска,

Дальнейший обзор также возможен посмотреть каждое утверждение возвращатьсяизкод состоянияи знаю ондаииспользоватьиз дихотомиясуществоватьруководить Слепая инъекция SQL

мне нужно сделать что-то естьоказаться каждый тестовый персонаж Последний состояниядля 200 из Заявление в ascii оценить и записать это

примернравиться:

Благодаря makeuseizdadihotomia, мы можем узнать это здесь. флаг из 18 индивидуальныйхарактеризascii для 117+1 ,118

Можно, конечно, и ручным способом, прописывать флаги по одному, если не умеете писать код)

Конечно лучше всего запустить скрипт даиспользовать

Я нашел скрипт:

Язык кода:javascript
копировать
# coding:utf-8
import re
import urllib

f = open('access.log', 'r')
lines = f.readlines()
datas = []
for line in lines:
    t = urllib.unquote(line)
 # Отфильтруйте угадывающие решения, связанные с флагом, правильные угадывания, здесь собирайте только правильные угадывания и проверяйте характеристики. = Угадай последнюю коррекцию +1 (Это дадихотомияиз — скрытое правило)
    if '200 1765' in t and 'flag' in t: 
        datas.append(t)

flag_ascii = {}
for data in datas:
    matchObj = re.search(r'LIMIT 0,1\),(.*?),1\)\)>(.*?) AND', data)
    if matchObj:
        key = int(matchObj.group(1))
        value = int(matchObj.group(2)) + 1
        flag_ascii[key] = value  # Используйте словарь и сохраните последнюю догадку о правильном коде.

flag = ''
for value in flag_ascii.values():
    flag += chr(value)

print flag

Объяснять:

t = urllib.unquote(line) то есть Воля Текстовая прогрессия urldecode декодирование

if ‘200 1765’ in t and ‘flag’ in t: Если в операторе есть эти две строки, замените оператор напрямую Депозит в данных массива datas.append(t)

matchObj = re.search(r’LIMIT 0,1\),(.*?),1\)\)>(.*?) AND’, data) на свидании Поиск совпадений Позитивное выражение из объединение строк будет соответствовать переменной изнести Депозит matchObj середина

key = int(matchObj.group(1)) Выбирать Переменная matchObj середина из Содержимое в первой скобке из (такжеэто есть КамидзёЗаявление в (.*?)в контенте) и перенос для10база value = int(matchObj.group(2)) + 1 Выбирать Переменная matchObj середина из Содержимое во второй скобке преобразовано в формат для 10 база

Получить флаг: flag{sqlm4p_15_p0werful}

4. Посетите специальный веб-сайт шифрования и дешифрования (md5, base64).

пример4.1: Ты можешь меня пригласить?

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

Следующая попытка отфильтровать httpСумка,(Не спрашивайте меня, что мне отфильтровать httpСумка,Опыт подсказывает, что проблема с http, что скорее всего)

В Затем осталось всего 6 Сумок:

Нажмите на первую Сумку, щелкните правой кнопкой мыши Трассировка потока 》http

Затем внимательно изучил эту Сумку и обнаружил base64. посетите доменное имя: http://tool.chinaz.com/Tools/Base64.aspx

Нашел сайт шифрования и дешифрования base64:

Затем Пучок После получения результата зашифрованный текст копируется и расшифровывается дважды. Получил флаг: sdut2019{Traffic_anaлиз_seclab507}

5. Фоновое сканирование + взлом слабого пароля + кухонный нож.

пример5.1,середина Национальный кухонный нож

существовать Поток байтов пакета середина поиска flag нить,оказаться Нет.8 Сумка, трассировка потока данных TCP

Видел это flag.tar.gz,Думаю поток Сумкасередина спрятал молнию Сумка,

Обзор usebinwalk: Обнаружить почтовую сумку,разделение

key{8769fe393f2b998fa6a11afe2bfcd65e}

пример5.2 Взлом паролей

flagдляflag{Вход администратора адрес + Пароль администратора }

Исходный документ не найден,Примерно из процессато есть хакерXianli использовать инструмент фонового сканирования,Сканировал сайт и вход администратора бэкенда.

Затемиспользоватьиспользовать имя пользователя администратора, взлом пароля методом перебора, взлом прошел успешно, Затем в процессе были сделаны некоторые непристойные вещи

Нам нужно получить скан хакера, чтобы из Административный вход из адреса И кстати он взломал админа изпароль

6. Анализ USB-трафика

Анализ USB-трафика, Сумма включая поток USB-клавиатуры, поток USB-мыши

клавиатурапотокданныедля 8 байт

мышьпотокданныедля 4 байта (Что именно представляет каждый байт, см. в Baidu)

пример6.1:USB-трафиканализировать

Открытьпоток Сумка: Видите из действительно даUSB-трафик, а разной Сумки нет (если даусбиз Сумка нет, то ее нужно заранее отфильтровать)

Поместите эту сумму в linuxсерединати Выбрать данные:

Язык кода:javascript
копировать
tshark -r example.pcap -T fields -e usb.capdata > usbdata.txt

Затем Сразуполучать Понятно usbdata.txtдокумент:

См. 8 байт на каждую строку, определите данные и трафик клавиатуры.

Затемиспользовать脚本руководить处理Получить флаг:

Язык кода:javascript
копировать
normalKeys = {"04": "a", "05": "b", "06": "c", "07": "d", "08": "e", "09": "f", "0a": "g", "0b": "h", "0c": "i",
              "0d": "j", "0e": "k", "0f": "l", "10": "m", "11": "n", "12": "o", "13": "p", "14": "q", "15": "r",
              "16": "s", "17": "t", "18": "u", "19": "v", "1a": "w", "1b": "x", "1c": "y", "1d": "z", "1e": "1",
              "1f": "2", "20": "3", "21": "4", "22": "5", "23": "6", "24": "7", "25": "8", "26": "9", "27": "0",
              "28": "<RET>", "29": "<ESC>", "2a": "<DEL>", "2b": "\t", "2c": "<SPACE>", "2d": "-", "2e": "=", "2f": "[",
              "30": "]", "31": "\\", "32": "<NON>", "33": ";", "34": "'", "35": "<GA>", "36": ",", "37": ".", "38": "/",
              "39": "<CAP>", "3a": "<F1>", "3b": "<F2>", "3c": "<F3>", "3d": "<F4>", "3e": "<F5>", "3f": "<F6>",
              "40": "<F7>", "41": "<F8>", "42": "<F9>", "43": "<F10>", "44": "<F11>", "45": "<F12>"}

shiftKeys = {"04": "A", "05": "B", "06": "C", "07": "D", "08": "E", "09": "F", "0a": "G", "0b": "H", "0c": "I",
             "0d": "J", "0e": "K", "0f": "L", "10": "M", "11": "N", "12": "O", "13": "P", "14": "Q", "15": "R",
             "16": "S", "17": "T", "18": "U", "19": "V", "1a": "W", "1b": "X", "1c": "Y", "1d": "Z", "1e": "!",
             "1f": "@", "20": "#", "21": "$", "22": "%", "23": "^", "24": "&", "25": "*", "26": "(", "27": ")",
             "28": "<RET>", "29": "<ESC>", "2a": "<DEL>", "2b": "\t", "2c": "<SPACE>", "2d": "_", "2e": "+", "2f": "{",
             "30": "}", "31": "|", "32": "<NON>", "33": "\"", "34": ":", "35": "<GA>", "36": "<", "37": ">", "38": "?",
             "39": "<CAP>", "3a": "<F1>", "3b": "<F2>", "3c": "<F3>", "3d": "<F4>", "3e": "<F5>", "3f": "<F6>",
             "40": "<F7>", "41": "<F8>", "42": "<F9>", "43": "<F10>", "44": "<F11>", "45": "<F12>"}
output = []
keys = open('usbdata.txt')
for line in keys:
    try:
        if line[0]!='0' or (line[1]!='0' and line[1]!='2') or line[3]!='0' or line[4]!='0' or line[9]!='0' or line[10]!='0' or line[12]!='0' or line[13]!='0' or line[15]!='0' or line[16]!='0' or line[18]!='0' or line[19]!='0' or line[21]!='0' or line[22]!='0' or line[6:8]=="00":
             continue
        if line[6:8] in normalKeys.keys():
            output += [[normalKeys[line[6:8]]],[shiftKeys[line[6:8]]]][line[1]=='2']
        else:
            output += ['[unknown]']
    except:
        pass
keys.close()

flag=0
print("".join(output))
for i in range(len(output)):
    try:
        a=output.index('<DEL>')
        del output[a]
        del output[a-1]
    except:
        pass
for i in range(len(output)):
    try:
        if output[i]=="<CAP>":
            flag+=1
            output.pop(i)
            if flag==2:
                flag=0
        if flag!=0:
            output[i]=output[i].upper()
    except:
        pass
print ('output :' + "".join(output))

пример6.2 USB-трафик

Открыть обнаружил, что существует большое количество протоколов изusb изпоток Сумка,Но у его середины много разной Сумки,

Обнаружил, что его середина имеет большой раздел да 4 байтаиз данные USB (данные мыши)

Сначала отфильтруй этих мышей потокиз Сумка,

usb.src == “2.3.1” После фильтрации документ 》Экспорт специальной группы 》держатьдля jjj.pcap

Поместите jjj.pcap в linuxсередина:

Язык кода:javascript
копировать
tshark -r  jjj.pcap -T fields -e usb.capdata > usbdata.txt

Создайте документ usbdata.txt, затем преобразуйте данные потока мыши usbdata.txtв в координаты.

Язык кода:javascript
копировать
nums = []
keys = open('usbdata.txt','r')
file = open('xy.txt','w')
posx = 0
posy = 0
for line in keys:
    if len(line) != 12 :
         continue
    x = int(line[3:5],16)
    y = int(line[6:8],16)
    if x > 127 :
        x -= 256
    if y > 127 :
        y -= 256
    posx += x
    posy += y
    btn_flag = int(line[0:2],16)  # 1 for left , 2 for right , 0 for nothing
    if btn_flag == 1 :
        string = str(posx) + ' '+str(posy) +'\n'
        file.write(string)
keys.close()
file.close()

Сгенерированный документ xy.txt:

Затемсуществоватьlinuxсередина осуществлять

Язык кода:javascript
копировать
gnuplot


>plot "xy.txt"

Просто нарисуйте картинку мышкой:

7. Взлом пароля беспроводной сети Wi-Fi

пример7.1 Тема: Если вы хотите пользоваться Интернетом, сначала разблокируйте пароль (взлом пароля беспроводной сети)

Источник вопроса: bugku Тестовая точка: взлом пароля беспроводной сети Информация о вопросе: (wifi.cap)

wifi Аутентификация соединения изфокуссуществовать В WAPиз Четырехсторонний процесс рукопожатия,то есть EAPOL Соглашение из Сумка,

житьсуществовать Процесс рукопожатия: взрыв напрямую:

Первыйиспользовать linuxв crunch Создайте словарь:

Затем использовать aircrack-ng Чтобы взорвать:

Получить пароль Wi-Fi: 13910407686.

8. Понять специфическое поведение хакеров на основе набора пакетов трафика.

ссылка:https://jwt1399.top/2019/07/29/ctf-liu-liang-fen-xi-zong-jie/(хочу нижепример Цзыюаньдокументиз Иди и посмотри)

пример8.1 (1.pcap)

Соревнования по триатлону информационной безопасности 2018 г.

Открытьпоток Сумка,поток Сумка немного великовата,Открыть медленнее,这里我们ПервыйфильтрдляHTTPпротоколможно увидеть202.1.1.2верно192.168.1.8руководить Понятно疯狂извзрывные работы

Нетрудно заметить, что хакервыгодаиспользоватьизSqlMapсуществовать постоянно внедряет SQL-тест на целевой сайт. потому что此受害主机изсетевая картаIPадресдля192.168.1.8 Введенные параметры также можно четко увидеть.,дляlist[select]

отслеживать http-поток,По эхо-контенту,База данных целевого сайта выдает ошибку,Можно ясно видеть

Не сложно определить,целевой сайтизданные库表名前缀дляajtuc_

Затем он определил имя базы данных хост-сайта жертвы и выполнил еще одну фильтрацию.

Язык кода:javascript
копировать
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

В это время выберите последнее внедрение полезной нагрузки для декодирования URL.

Можно ясно видеть

Язык кода:javascript
копировать
FROM joomla.ajtuc_users

потому что此данные库名дляjoomla

Итак, ответ:

Язык кода:javascript
копировать
1. хакератака на IP-адрес хоста первой жертвы, сетевой карты. 
192.168.1.8
2.хакер реализовал SQL-инъекцию по какому параметру URLиз
list[select]
3. База данных веб-сайта первой жертвы с префиксом таблицы (плюс подчеркивание, например abc_)
ajtuc_
4. Имя базы данных хост-сайта первой жертвы.
joomla

пример8.2(2.pcap)

Источник вопроса:Соревнования по триатлону информационной безопасности 2018 г.

В соответствии с целевым IP-адресом, определенным в вопросе 1, так по-прежнему использует следующую фильтрацию для упрощения работы.

Язык кода:javascript
копировать
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

можно увидеть一индивидуальный奇怪документkkkaaa.php,Последующий просмотр данных POST

Нетрудно найти дасередина национальный кухонный нож и зпоток.,Троянский парольдляzzz Затем определите момент, когда хакер второй раз загрузит php-трояна. Я отфильтровал и догадался, что хакер должен загрузить второго трояна на основе первого.

Язык кода:javascript
копировать
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http.request.method==POST

В это время фрагмент данных особенно привлекателен.

Анализируем свою 16базу

Поместите сохранение изценить в исходный код winhexсерединаполучить

Сохраните документ в дляphp, но код да был запутан и в конец кода существования добавлены следующие две строки кода

Язык кода:javascript
копировать
var_dump($j);
var_dump($x);

Запустите php для деобфускации и найдите этот самый троян.

Это подтверждает, что эта привлекающая внимание из Сумка загрузила второго трояна потому что此上传час间для:17:20:44.248365

все ещеделатьиспользоватьфильтр

Язык кода:javascript
копировать
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

Затем можно увидеть много запросов на странице footer.phpiz, нажмите на одну из них, чтобы просмотреть подробности.

Легко обнаружить, что данные реферера очень подозрительны.,И ACCEPT_LANGUAGE более нормальный, чем для так в принципе можно определить,Троян прошелHTTPпротоколвReferer头传递данные

Отвечать

Язык кода:javascript
копировать
1.хакер Нет.一次获得изphpТроянский коньизпарольда Что
zzz
2. Когда хакер загрузил php-троян да во второй раз?
17:20:44.248365
3. При второй загрузке троянец передает данные по протоколу HTTP.
Referer

пример.8.3(3.pcap)

Источник вопроса:Соревнования по триатлону информационной безопасности 2018 г.

Фильтровать напрямую

Язык кода:javascript
копировать
tcp contains "mysql" && mysql

получать много данных,Выяснилось, что хакер существует должен взорвать вход в Mysqliz.,Машина-жертва интрасети для 192.168.2.20

Наши последние данные для входа

На этот раз нам нужен хеш пароля MySQL.

Просто отфильтруйте это

Язык кода:javascript
копировать
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http

Целевая машина была смонтирована натуннеле.php.,Удобный доступ из внешней сети во внутреннюю сеть для Удобно просматривать работу хакера,Фильтруем POST запросы

Язык кода:javascript
копировать
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && http.request.method==POST && http

Мы хорошо видим, что при первом использовании хакеризphp прокси он сначала подключается к 4.2.2.2этот тип, а порт для53.

Отвечать

Язык кода:javascript
копировать
1.Хост интрасетиизmysqlиспользовать Имя учетной записиизапросить соединениеизпарольhashда Сколько(использоватьсемья:парольhash)
admin:1a3068c3e29e03e3bcfdba6f8669ad23349dc6c4
2.Когда php-прокси используется впервые, к какому IP-адресу подключается первым?
4.2.2.2

пример8.4(4.pcap)

Источник вопроса:Соревнования по триатлону информационной безопасности 2018 г.

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

Язык кода:javascript
копировать
(ip.addr == 192.168.1.8 || ip.addr == 202.1.1.2) && (http contains "dir" || http contains "ls")

В это время для ls,реж.,Давайте сначала проверим lsiz отследить его поток TCP

Выяснилось, что исследование не увенчалось успехом, после чего сверили реж.

Ю да можешь быть уверен, что это правильно,Целевая система для Windows,в то же времяdirЗаказосуществлять成功 час间для:18:37:38.482420 Поскольку это должно192.168.2.20из Машина можетосуществлять Заказ,Юда, меняю метод фильтрации,Посмотрите, как хакеры атакуют

Язык кода:javascript
копировать
ip.addr == 192.168.2.20 && http

можно увидеть Вышеупомянутые машины-жертвы разные, изучить dir , pwd, dir и echo%20… и другие команды

Не сложно найти,Команда хакервыгодаиспользоватьecho записывает бэкдор с именем дляsh.phpiz.

Затем прокрутите вниз, чтобы увидеть бэкдор-пост «Хакервыгодаиспользоватьэтот» Понятно一些东西,Думаю, это должен быть троянский документ,Взгляните:

Действительно,Троянский пароль да123,дасередина национальный кухонный нож изпоток

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

Язык кода:javascript
копировать
ip.src == 192.168.2.20 && http

существовать18:50:09.344660час,Нашли подозрительные операции, нашли фрагмент подозрительных данных,суждениехакердолжендаосуществлять Понятноnet userиз Заказ

Потом 18:50:42.908737 снова обнаружил хакера и снова команда net user Для просмотра в это время:

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

Определив приблизительное время совершения преступления, мы можем использовать использовать для фильтрации

Язык кода:javascript
копировать
ip.addr == 192.168.2.20 && http

Суждение, основанное на предыдущем опыте,мы можем знать 18:49:27.767754 часа,不житьсуществоватьkakaиспользоватьсемья

В 18:50:42.908737 как стал администратором для использования так можно определить время существования преступления в пределах этого периода

существовать В этот период,Всего 4 POST-запроса.,Давайте проверим один за другим,Как и ожидалось,существованияя обнаружил проблему в первом POSTсередина

Язык кода:javascript
копировать
Y2QvZCJDOlxwaHBTdHVkeVxXV1dcYjJldm9sdXRpb25caW5zdGFsbFx0ZXN0XCImbmV0IHVzZXIg
a2FrYSBrYWthIC9hZGQmZWNobyBbU10mY2QmZWNobyBbRV0=

декодированиеназад

Язык кода:javascript
копировать
cd/d"C:\phpStudy\WWW\b2evolution\install\test\"&net user kaka kaka /add&echo [S]&cd&echo [E]

можно ясно увидеть

Язык кода:javascript
копировать
net user kaka kaka /add

Это можно сделать вывод из да,использовать Имя учетной записиипароль均дляkaka 最назад一题既然даскачать,Стоит ли давыгодаиспользоватьсередина национальный кухонный нож скачать,Дальше отфильтровываем только постпоток,Просто проверьте команду

Язык кода:javascript
копировать
ip.dst == 192.168.2.20 && http.request.method==POST

На данный момент наши существующие данные Сумкаиз наконец нашли следующие данные

Мы займемся декодированием

Нашел procdump.exe, который делает использование Также обнаружен документ

декодированиеполучать

Наконец-то мы можем быть уверены,хакерскачать Понятноlsass.exe_180208_185247.dmpдокумент

Отвечать

Язык кода:javascript
копировать
1. Когда произошел первый запрос на получение Выбрать текущий каталог издокумента с использованием эксплойта?
18:37:38.482420
2. Каковы имя пользователя и пароль для узла интрасети середина?
kaka:kaka
3.хакер, скачанный с интранет-сервера серединаиздокумента, название
lsass.exe_180208_185247.dmp

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/133606.html Исходная ссылка: https://javaforall.cn

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 и детали кода