![image](https://habrastorage.org/webt/oj/9u/rg/oj9urglw6wrxoa0dq2tswb_2xvu.jpeg)
Данная статья содержит решений заданий, направленных на криминалистику памяти, оперативной памяти, и логов web-сервера. А также примеры использования программ Volatility Framework и Autopsy.
Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
- PWN;
- криптография (Crypto);
- cетевые технологии (Network);
- реверс (Reverse Engineering);
- стеганография (Stegano);
- поиск и эксплуатация WEB-уязвимостей.
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Memory forensics — level 2
![image](https://habrastorage.org/webt/zb/1y/xb/zb1yxbbgsahcjh68o13xls4eaok.png)
В данном задании нам дают образ оперативной памяти и просят найти имя машины. Для решения такого типа заданий будем использовать Volatility Framework. Загрузим образ следующей командой, указав в качестве параметра путь к образу. Сначала узнаем информацию об образе.
volatility -f ch2.dmp imageinfo
![image](https://habrastorage.org/webt/bo/ar/n9/boarn9enkraztrvthini_joneuo.png)
Таким образом мы узнаем, что это образ памяти операционной системы Windows. То есть имя машины мы можем узнать из реестра. Теперь мы должны указывать профиль в качестве параметра. Вывести значение по ключу в реестре можно следующим способом.
volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName"
![image](https://habrastorage.org/webt/7v/e3/dx/7ve3dx_pgroga0spiub3dnipecm.png)
И теперь узнаем имя компьютера.
volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName\ActiveComputerName"
![image](https://habrastorage.org/webt/ea/fi/lk/eafilkonvbq3-e-bz8g3mopluio.png)
Видим имя компьютера. Сдаем, получаем очки.
![image](https://habrastorage.org/webt/pq/sq/xn/pqsqxngaqdancwvgmvu_4cbad5q.png)
Logs forensics — web attack
![image](https://habrastorage.org/webt/vr/pm/l_/vrpml_i3r48is2b5_6i5cweximq.png)
В данном задании нам дают лог Web-сервера и говорят, что на него была совершена атака, нам нужно понять, какие данные узнал злоумышленник. Откроем лог.
![image](https://habrastorage.org/webt/4k/yd/fg/4kydfgsfehhbre2d6oj_oe5hj3o.png)
Видим, что в качестве параметра order закодированные в base64 данные. Напишем код, чтобы декодировать их.
from re import *
from base64 import *
f = open('ch13.txt')
log = f.read()
f.close()
k = findall("action=membres&order=(.*?) HTTP", log)
[print(str(b64decode(i.replace("%3D", "=")), "utf-8")) for i in k]
![image](https://habrastorage.org/webt/xu/af/a6/xuafa6-erpvjkjzqbs1arkyugwk.png)
Немного преобразуем к понятному виду.
![image](https://habrastorage.org/webt/me/ox/a_/meoxa_jkxz247ohwiyauq1yqqks.png)
Таким образом, мы сравниваем первые два бита первой буквы пароля с 00, 01, 10, 11 и делаем соответствующую паузу — 0, 2, 4 и 6 секунд. Также происходит со вторыми и третьими двумя битами. После чего проверяется седьмой бит и в зависимости от равенсва 0 или 1 производится пауза 2 и 4 секунд.
Таким образом, по задержке мы можем определить, какие биты возвращает сервер.
![image](https://habrastorage.org/webt/kq/ar/ee/kqareeh8m3s8shwsrqpiihzaypk.png)
Для примера: разница времени между первыми запросами 6 секунд, то есть это биты 11 и т.д. Автоматизируем этот процесс.
from re import *
from base64 import *
import binascii
f = open('ch13.txt')
log = f.read()
f.close()
k = findall("action=membres&order=(.*?) HTTP", log)
dec_k = [str(b64decode(i.replace("%3D", "=")), "utf-8") for i in k]
t = findall("2015:12:1(.*?) \+0200]", log)
tim = [int(i.split(':')[0])*60 + int(i.split(':')[1]) for i in t]
tim = [tim[i+1] - tim[i] for i in range(len(tim)-1)] + [0]
password = ""
for i in range(0, len(tim), 4):
c = ''
for sec in tim[i:i+3]:
if sec == 0:
c += '00'
elif sec == 2:
c += '01'
elif sec == 4:
c += '10'
elif sec == 6:
c += '11'
if tim[i+3] == 2:
c += '0'
elif tim[i+3] == 4:
c += '1'
password += chr(int(c,2))
print(password)
Сдаем пароль.
![image](https://habrastorage.org/webt/-w/sc/f9/-wscf9w3inp7yuqba7miucft3fi.png)
Memory forensics — level 5
![image](https://habrastorage.org/webt/bt/6s/01/bt6s013wvianlwxv63z-yl00byg.png)
Нас просят найти пароль пользователя John и предоставляют дамп оперативной памяти. Как и в прошлый раз, узнаем какая операционная система используется.
![image](https://habrastorage.org/webt/gq/-p/g4/gq-pg4dryl0_qk0gr-ddipzrvf8.png)
Это Windows. У volatility есть опция hashdump.
![image](https://habrastorage.org/webt/3b/a4/bm/3ba4bm2ta8nnmk7vfeftuxd7p48.png)
Теперь найдем пароль пользователя.
![image](https://habrastorage.org/webt/ds/ah/zd/dsahzdbibelhf_p21vu9wwdgfca.png)
Отправляем пароль и получаем очки.
![image](https://habrastorage.org/webt/zv/qu/d5/zvqud5_en8dffgj4cnjysljh7g0.png)
Disk forensics — find the cat
![image](https://habrastorage.org/webt/zt/t0/hp/ztt0hpjxhgmve6711vnyj7odeba.png)
Нам дают образ диска и просят найти место, где находится кот. Для подобных заданий можно использовать FTK Imager. Я буду решать его с помощью AutoPsy. Запустим программу.
![image](https://habrastorage.org/webt/ot/dw/tf/otdwtfsk39r8eocsx_nilly4n3w.png)
Нам говорят открыть страницу в браузере. Открываем. Теперь создадим новый кейс и добавим хост. Далее необходимо добавить образ.
Изображения![image](https://habrastorage.org/r/w1560/webt/9r/if/k7/9rifk7oje-spna1ekt_q29jledq.png)
![image](https://habrastorage.org/r/w1560/webt/ve/ec/eo/veeceoma7gb8ozguaz31gwycwck.png)
![image](https://habrastorage.org/r/w1560/webt/c6/tx/vc/c6txvcqmpb793wmp11gubo2z7lq.png)
![image](https://habrastorage.org/r/w1560/webt/u3/-l/x7/u3-lx7ky3jzotgztijzzjtyk2ls.png)
![image](https://habrastorage.org/r/w1560/webt/8d/re/ro/8drero5g75zg6hj2ys7xezot30s.png)
![image](https://habrastorage.org/r/w1560/webt/qc/hv/nk/qchvnkgx2o6-uxyy1n-7csrkt3g.png)
![image](https://habrastorage.org/r/w1560/webt/s1/i_/tj/s1i_tjaqzva61dhkvk5dpbukqim.png)
![image](https://habrastorage.org/webt/9r/if/k7/9rifk7oje-spna1ekt_q29jledq.png)
![image](https://habrastorage.org/webt/ve/ec/eo/veeceoma7gb8ozguaz31gwycwck.png)
![image](https://habrastorage.org/webt/c6/tx/vc/c6txvcqmpb793wmp11gubo2z7lq.png)
![image](https://habrastorage.org/webt/u3/-l/x7/u3-lx7ky3jzotgztijzzjtyk2ls.png)
![image](https://habrastorage.org/webt/8d/re/ro/8drero5g75zg6hj2ys7xezot30s.png)
![image](https://habrastorage.org/webt/qc/hv/nk/qchvnkgx2o6-uxyy1n-7csrkt3g.png)
![image](https://habrastorage.org/webt/s1/i_/tj/s1i_tjaqzva61dhkvk5dpbukqim.png)
После создания среды мы имеем следущее.
![image](https://habrastorage.org/webt/pu/0k/yt/pu0kytrpf_dyxcdc9dffb4w9ili.png)
Выбираем опцию анализ.
![image](https://habrastorage.org/webt/y7/2q/at/y72qatjwz-upae7zquxivynbovu.png)
У нас отображается следующая структура раздела. В папке Documentations ничего интересно. Зайдем в Files.
![image](https://habrastorage.org/webt/u9/ia/fl/u9iaflmqaz5wfztksvzwavyjy5q.png)
Тут имеется интересный odt файл. Выбираем его.
![image](https://habrastorage.org/webt/em/xr/lh/emxrlhxnjpzob-uvcnpw31ceoqc.png)
Внизу отображается содержимое — там какое-то изображение. Выбираем extract для извлечения файла. Из скачанного файла извлекаем изображение.
![image](https://habrastorage.org/webt/ss/oa/ps/ssoapsfpdmvrtkoimwwqte_39dq.png)
Скорее всего это кот, которого нам нужно найти. Давайте посмотрим exif информацию.
![image](https://habrastorage.org/webt/tr/3u/yg/tr3uygc0atstgaujd5zebgsxweq.png)
Отлично, есть координаты места. Находим его в картах.
![image](https://habrastorage.org/webt/ax/ib/j1/axibj1n4kh7vczwwjz0v5na1suk.png)
Отправляем ответ и получаем очки.
![image](https://habrastorage.org/webt/ih/wj/qq/ihwjqqrynb_yqjf3_cq3wmti6j4.png)
Дальше больше и сложнее… Вы можете присоединиться к нам в Telegram. Там можете предлагать свои темы и участвовать в голосовании на выбор темы для следующих статей.