В Burp нельзя поменять HTTPS сертификат, что является серьезным демаскирующим признаком. Я пробовал подменять файлик burpsuite_free.zip\resources\Crypto\ps.p12, но не сработало.
Тулза mitmdump/mitmproxy из комплекта Kali linux поэтому выглядит гораздо более привлекательным решением, если вам нужно скрытно подампить https.
Далее небольшой гайд.
Генерируем правильный сертификат
openssl genrsa -out CA.keyopenssl req -new -key CA.key -x509 -days 1095 -out CA.crt
На вопросы openssl ответить можно, например, так:
C = US
O = VeriSign, Inc.
OU = (c) 2006 VeriSign, Inc. - For authorized use only
CN = VeriSign Class 3 Public Primary Certification Authority - G5
Чтобы сделать сертификат в формате pem, который понимает mitmproxy, достаточно выполнить:
cat CA.crt CA.key > CA.pem
.crt файл необходимо установить в браузер жертвы.
pem файл переместить в каталог .mitmproxy и заменить mitmproxy-ca.pem
Теперь сертификат будет выглядеть намного посимпатичней.
Но проблема с mitmproxy в другом. Она использует уникальный формат дампа, который не совместим более ни с чем.
Работаем с дампом mitmproxy
РазGREPать дамп mitmproxy - это боль главным образом из-за наличия gzip'нутого HTML. Нет импорта в tcpdump/wireshark (ибо mitmproxy не хватает IP заголовки), нет импорта в curl, нет вообще импорта!
Более менее нормально работать с дампом можно только с помощью Python.
Я набросал скрипт (на базе read_dumpfile отсюда), который выводит разжатый http response body, который дальше можно читать grep'ом и пр. Может, кому пригодится.
#!/usr/bin/env python
#
# Get ungzipped http response body
# run: python readdump.py dumpfile
#
from libmproxy import flow
import zlib
import sys
with open(sys.argv[1], "rb") as logfile:
freader = flow.FlowReader(logfile)
for f in freader.stream():
try:
try:
body = f.response.body
print(zlib.decompress(body, 31))
print(zlib.decompress(body, 31))
print("===================================")
except:
except:
print("Error")
To do на след.раз: сгенерировать максимально похожую копию какого-нибудь trusted root CA так, чтобы даже fingerprint был визуально похож на реальный. Кто-нибудь случайно не знает утилиту, которая это может?
Комментариев нет:
Отправить комментарий