H34dump Lecture #0

789 views
617 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
789
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Что делать если вы видите такое изображение впервые?
  • QR-код можно повернуть, отразить и т.п. На могиле в японие
  • Могут быть и дополнительные накладки связанные с распознованием captcha, но обычно это задача разрешима. Ваш вариант брута RAR?
  • Какую ещё схему перебора можно предложить кроме проверки return code?
  • Используется в email
  • echo base64decode(''); ?
  • О некоторых методах выяления сканинга: открыть все порты и сразу блочить
  • Пример из книги, как чувака взяли на работу
  • H34dump Lecture #0

    1. 1. Lecture #0 QR-code, brute-force, CTF, web parametertampering, exploration of network, TCP, XXE h34dump.com
    2. 2. Write-up QR-taskДано изображение, необходимо найти "ключ"
    3. 3. Write-up QR-taskQR-код (quick response) — двухмерный штрих кодМаксимальное количество символов, которые помещаются в один QR-код:•цифры — 7089;•цифры и буквы (включая кириллицу) — 4296;•двоичный код — 2953 байт;
    4. 4. Write-up QR-taskС помощью мобильного телефона или компьютера распознаем информацию.Получаем следующий текстY0u 1n th3 r1ght d1r3ct10n
    5. 5. L33t l4ngu4g3Хакеры - это субкультура со своим "элитным" языком.Leet (1337) — распространившийся в Интернете стиль употребления английского языка. Основные отличия — замена латинских букв на похожие цифры и символы, имитация и пародия на ошибки, характерные для быстрого набора текста.
    6. 6. Write-up QR-taskОткрываем фаил key.identify_my_extension в вашем любимом hexeditor(HxD, 010 Editor).Или используем unix утилиту fileuser@host:~/test$ file key.identify_my_extensionkey.identify_my_extension: RAR archive data, v1d, os: Win32
    7. 7. Write-up QR-taskНужен пароль :"( Brute-force!!!
    8. 8. Brute-force Полный перебор (метод "грубой силы")— метод решения задачи путем переборавсех возможных вариантов. Подбор пароля к архиву является NP-полной задачей. Метод хороший, но есть одиннедостаток - время работы.
    9. 9. Brute-force1. Перебор паролей2. Математика3. Fuzzing - тестирование4. Перебор в не самых очевидных местах import sysfor a in range(0,10): for b in range(0,10):Есть число - abcde for c in range(0,10):a*b = 24 for d in range(0,10): for e in range(0,10):d = b/2 if (a+b == d+c+1 && ...):d+e = a+c print("%s%s%s%s%s", a, b, c, d, e)a+b+c+d +e = 26 sys.exit()b>d
    10. 10. Brute-forceFuzzing-тестирование. Используется для обхода фильтров(Web Application Firewall)<?php for ($i=0; $i<255; $i++) { $url = 1.ph.chr($i); $tmp = @file_get_contents($url); if (!empty($tmp)) echo $url."rn"; }В windows будет 4 имени: 1.phP, 1.php, 1.ph>, 1.ph<.(к сожалению баг уже пофикшен)
    11. 11. Brute-forceВиды:1) Полный перебор (все цифры, все буквы)2) Перебор по словарю(passwd, login:passwd)3) Перебор используя радужные таблицы(md5, sha-1)Что ещё можно побрутить? URL!
    12. 12. Brute-forceTHC-Hydra - многопточная брутилкаПоддерживаемые протоколы: FTP, HTTP, ICQ, IMAP, IRC, MS-SQL, MYSQL, Oracle, SSH и ещё множество другихПример брута ssh:hydra -s $port -l $login -P passwords.txt -t 16 $ip_address ssh-t - количество потоков;
    13. 13. Brute-forcehydra $ip_address http-post-form "/login.php:login=^USER^&password=^PAS S^:Access denied" -l $login -P passwords.txt -t 10 -o hydra-http-post-attack.txtили вместо "Access denied" - "S=Success" - то, что будет содержать ответ в случае успешного логина !!! Не используйте флаг -w 0
    14. 14. Write-up QR-taskБрутить можно используя готовые программы(Advanced Archive Password Recovery)А можно написать самому, например на python.В unix есть утилита unrarunrar -e -p[password] filenameОна возвращает return code 0 в случае успешной распоковки и не 0 если пароль не верный.
    15. 15. Write-up QR-task"""rar brute-force"""import stringimport itertoolsimport sysfrom subprocess import Popen, PIPEfor i in itertools.product(string.ascii_uppercase, repeat=1): proc = Popen([unrar, e, -p + .join(i), key.rar], stdin=PIPE, stdout=PIPE) proc.communicate() if 0 == proc.returncode: print(PWD pass is + .join(i)) sys.exit() else: print(Try + .join(i))
    16. 16. Write-up QR-taskПосле разархивации получаем фаил ket.txtD3cod3 m3====BEGIN_CODE====VGgzIGszeSAxcyBxcl9jMGQzX200c3Qzcg======END_CODE====Это текст в позиционной системе счисления с основанием 64 - Base64 [A- Z, a-z, 0-9,+,/] и специальный суффикс =Результирующие закодированные по Base64 данные имеют длину,
    17. 17. Что выведет программа? <?php echo base64_encode(); Что выведет программа? Write-up QR-task <?php echo md5();Что делать, если у нас нет трех байтов? Есть только один или два!В этом случае в конец четырех символьного stringа добавляется символ =.Если не хватает (до трех) одного байта, то добавляется один символ "равно": Z8E=import base64print(base64.b64decode(VGgzIGszeSAxcyBxcl9jMGQzX200c3Qzcg==.encode(ascii)))Th3 k3y 1s qr_c0d3_m4st3r
    18. 18. CTF - Capture The Flag CTF (Захват флага) — командные соревнованияпо компьютерной безопасности, в которыхучастники исследуют заранее заложенныеуязвимости предоставленных сервисов,обеспечивают безопасность своих ресурсов ипытаются атаковать ресурсы противников,захватывая «флаги» со скомпрометированныхсервисов. Примеры сервисов: •Веб-приложение (форум, чат, сайт) •Бинарные приложение
    19. 19. Variants of CTF• Attack-defense• Jeopardy
    20. 20. План лекций1. Что такое CTF. Исследование WLAN/LAN, поиск машин и открытых на них портов. Веб-уязвимости (XXE, CSRF, Clickjacking, SQL-Injection, XSS, Full Path Disclusion, etc.)2. Реверс-инженерия. Дизассемблирование, декомпилирование, патчинг бинарных файлов (PE & ELF).3. Получения shellа, через buffer-overflow.4. Анализ сетевого и другого трафика(usb), wireshark/pcap. Поиск информации в больших объемах данных.5. *BSD-linux и как им пользоваться. Проброс портов. Загрузка ОС(MBR) и работа с разделами(mount). Устройство сети.6. Криптография(rsa, aes, des, rc4, a5) и стеганография(stegdetect, jpg, png, wav, avi).7. Хэширование(md5, sha1, etc) и кодировки (base64, rot13, hex, etc) брут-форс(hydra).8. Penetration test. Использование базы эксплойтов. Armitage = Metasploit Framework + Nmap. И другие сканеры (dnsmap, sqlmap,
    21. 21. Web Parameter TamperingУязвимость возникает из-за неправильной валидации кода на сервере.Весь прокол HTTP потенциально уязвим:•HTML Forms•URL
    22. 22. HTTP FormsПодмена значений на клиенте && отсутствие проверки на сервере === *BOOM*
    23. 23. Tamper COOKIE Массивы в php •$_REQUEST •$_GET GET http://blogsphere.ru/show_mail.php?user_id=5&mail_dir=inbox HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 • Accept: image/png,image/*;q=0.8,*/*;q=0.5 $_POST Cookie: user_email=vasia@mail.ru; signature=0adb5668b52ad56861d43a682f16f1de •$_COOKIE Директива в php request_order9ый quest наhttp://quest.darkbyte.ru/
    24. 24. Exploration of network• Определить какие компьютеры есть в сети (W)LAN• Определить какие порты открыты на каждой машинеIP-адрес — уникальный сетевой адрес узла в компьютерной сети.IPv4 - 192.168.0.1
    25. 25. Exploration of networkPrivate IP address:• 10.0.0.0 - 10.255.255.255 = 256^3• 172.16.0.0 -172.31.255.255 = 16*256^2• 192.168.0.0 - 192.168.255.255 = 256^2
    26. 26. Exploration of networkPing scanning:Произвести запрос по IP-адресу, и получить ответ, что IP адрес в настоящее время активен (используется хостом или сетевым устройством);nmap [options] $ip;nmap -sn 10.50.0-255.0-255-sn (Пинг сканирование): ICMP эхо-запрос, TCP SYN на порт 443, TCP ACK на порт 80-PR (ARP пингование)Единственный надежный способ для определения доступности IP-адреса - опросить у каждого IP- адреса все порты.
    27. 27. Exploration of networkВсе протоклы прикладного уровня привязаны к некоторому порту принимающему значения от 0 до 65535.Порт — идентифицируемый номером системный ресурс, выделяемый приложению, выполняемому на сетевом хосте, для связи с приложениями, выполняемыми на других сетевых хостах.Два правила1. Порт может быть занят только одной программой и в этот момент не может использоваться другой программой (обратное не верно).2. Все программы для связи между собою посредством сети используют порты.Когда вы набирает в браузереhttp://vk.com браузер дописывает порт за васhttp://vk.com:80, т.к. это стандартный порт HTTP
    28. 28. Exploration of networkСостаяние порта по мнению nmap:• Открыт (Open)Приложение принимает запросы на TCP соединение или UDP пакеты на этот порт.• Закрыт (Closed)Закрытый порт доступен (он принимает и отвечает на запросы Nmap), но не используется каким-либо приложением.• Фильтруется (Filtered)Nmap не может определить, открыт ли порт, т.к. фильтрация пакетов не позволяет достичь запросам Nmap этого порта.
    29. 29. Exploration of networkPort scanning:nmap $ip21/tcp open ftp80/tcp open http111/tcp open rpcbind139/tcp open netbios-ssn443/tcp open https445/tcp open microsoft-ds1521/tcp filtered oracle1723/tcp open pptp3128/tcp open squid-http3389/tcp filtered ms-wbt-server3690/tcp open svn4444/tcp open krb5248080/tcp filtered http-proxy9091/tcp open xmltec-xmlmail
    30. 30. Exploration of networknmap -A -v $ip Более подробное сканирование с получением версии сервиса445/tcp open netbios-ssn Samba smbd1521/tcp filtered oracle1723/tcp open pptp linux (Firmware: 1)3128/tcp open http-proxy Squid http proxy 2.7.STABLE73389/tcp filtered ms-wbt-server3690/tcp open svnserve Subversion4444/tcp open ftp ProFTPD 1.3.2c| ftp-anon: Anonymous FTP login allowed (FTP code 230)| -rw-r--r-- 1 ftp ftp 3 May 7 17:42 hello.msg|_-rw-r--r-- 1 ftp ftp 170 Nov 18 2010 welcome.msgИнтересно какой версии веб-сервер стоит на
    31. 31. Exploration of networkРежимы сканирования:•-sS (TCP SYN сканирование)•-sT (TCP сканирование с использованием системного вызова connect)•-sU (Различные типы UDP сканирования)•-sA (TCP ACK сканирование)Полный список здесь(английский вариант актуальнее) http://nmap.org/man/ru/man- port-scanning-techniques.html
    32. 32. TCPДля индентификации машины нужен порт и IP-адрес.Где IP-адрес?
    33. 33. TCPTCP handshake - установка соединенияACK — Поле «Номер подтверждения»(Acknowledgement field is significant)SYN — Синхронизация номеров последовательности (Synchronize
    34. 34. TCPПерехвата сеанса:•IP-адрес: Использованные при установление сеанса IP-адреса не могу меняться в ходе сеанса•Номера портов•Порядковый номер•Номер подтвержденияРеальные примеры можно посмотреть с
    35. 35. TCPФрагментация пакетовФрагментация используется при передачи дейтаграммы через сеть, в которой MTU(maximum transmission unit) меньше размера этой дейтаграммыидентификатор_фрагмента@смещение(+)evil.com > target.net : udp 28 (frag 242:36@0+)
    36. 36. SmurfDDoS-атака
    37. 37. XXE <?php $xml = "<input>" . $_GET[input] . "</input>"XML eXternal EntityСтандартом определены два уровня правильности документа XML:Well-formed документ. Well-formed документ соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу. И если, например, начальный тег не имеет соответствующего ему конечного тега, то это неправильно построенный документ XML.Valid документ. Valid документ дополнительно соответствует некоторым семантическим правилам. Это более строгая дополнительная проверка корректности документа на соответствие заранее определённым, но уже внешним правилам. Обычно такие правила хранятся в специальных файлах — схемах, где самым подробным образом описана структура документа, все допустимые названия элементов, атрибутов и многое другое.
    38. 38. XXE<?php$xmlstr = <<<XML<?xml version="1.0"?><!DOCTYPEinput [<!ENTITY passwd SYSTEM "file:///etc/passwd">]><input>&passwd;</input>XML;$result = new SimpleXMLElement($xmlstr);echo $result;
    39. 39. Cross-site request forgery(CSRF)Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер<img src="http://vulnerable.site/delete_profile.php?sure=yes"/>Addon Mozilla Firefox - RequestPolicyЗащита - уникальные токенты для каждой операцииhttp://habrahabr.ru/post/126409/
    40. 40. ClickjackingПоверх видимой страницы располагается невидимый слой, в который и загружается нужная злоумышленнику страница, кнопки необходимые для осуществления требуемого действия, совмещается с видимой ссылкой или кнопкой, нажатие на которую ожидается от пользователя.<iframe src="http://www.victim.com">Addon Mozilla Firefox - NoScript:prevents users from clicking on invisible or "redressed" page elements of embedded documents or applets.
    41. 41. Useful linksCTF:• http://ctftime.org• http://captf.com/calendar/• https://rdot.org/• http://eindbazen.net/• http://zaic101.ru/daredevil/sql_inj/Training arena:• http://securityoverride.org• http://quest.darkbyte.ru/
    42. 42. Recommended reading1. Обнаружение нарушений безопасности в сетях. С.Норткат, Д.Новак.2. Искусство взлома и защиты систем. Д. Козиол, Д. Личфилд.3. Ховард М., Лебланк Д. Защищенный код
    43. 43. Th4nk y0u f0r y0ur 4tt3nt10n!Qu3st10ns?

    ×