Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Избранное (https://forum.antichat.xyz/forumdisplay.php?f=89)
-   -   GST Scaner. Сканер веб-уязвимостей от меня (https://forum.antichat.xyz/showthread.php?t=38117)

Gh0s7 16.04.2007 22:52

GST Scaner. Сканер веб-уязвимостей от меня
 
GST Scan [ Beta Version ]


[ I Intro ]

Относительно недавно мне пришла в голову мысль написать сканер веб-уязвимостей.
Хотелось сделать что-то интересное, именно как свой релиз. Вот и сделал - GST Scan. Этот сканер сканирует скрипты на наличие RFI, XSS, SQl-Inj уязвимостей.
Также в нем есть функция HEAD скана и reverse ip lookup.

[ II Type of bugs ]


Теперь подробней:
  • HEAD Scan. Сделаю лирическое отступление, расскажу про метод хттп протокола HEAD. По стандарту, HEAD полностью идентичен GET, сервер _обязан_ отвечать на HEAD запрос, так же как и на GET. С одним отличием: не остылая содержимое страницы. Кому-то это может показаться ненужным\непонятным. Поясню - на HEAD запрос сервер отсылает только заголовки, это может оказать полезным при проверки наличия файлов (как это сделано в даунлоад-менеджере wget (опция --spider)). Также и тут.
    Скрипт анализирует первую строку ответа и в случае присутсствия файла сообщает об этом. Также я добавил небольшую фичу - пробный запрос.
    Некоторые админы (может из соображений безопасности, может просто по криворукости) настраивают хттпд так, чтобы он отвечал другим кодом, например, 203, или, что еще хуже, 200. Для проверки кода я и добавил в скрипт возможность пробного запроса.

  • Reverse Ip Lookup. DNS\IP lookup впервые описал NSD во всем известом хеккерском жрунале. Суть этой атаки заключается в том, что на одном сервере\vds может находиться несколько сайтов.
    Следовательно не обязательно взламывать конкретный сайт, можно взломать любой из них, и, в случае возможности выполняния команд и уязвимого ядра, можно порутать сервер и слить инфу с нужного сайта.

    Т.к сервис DomainsDB в момент написания сканеры был под ддосом, я использовал другую базу - seologs.com.

  • Remote File Inclusion, сокращенно rfi - давно известный тип уязвимостей, позволяет выполнять произвольные php-скрипты (только если загрузка из url не запрещена в php.ini). Чаще всего присутствует при использовании функции include().
    Метод, используемый в сканере я частично взял из доки KSURi 'Автоматический поиск rfi' (метод, не код).
    Также я добавил несколько дополнительный проверок на пхп баги.

  • Cross Site Scripting, в народе хсс, наверно еще более древний тип уязвимостей, очень простой, оттого популярный среди начинающих. Его суть заключается в вставке произвольного html-кода (чаще всего javascript) в страницу, просматриваемую пользователем.
    Проверка этой уязвимости очень проста - если код присутствует на странице (не обязательно он должен выполняться, иногда мешают теги типа <textarea> ( Что, собственно и было на сайте античата )).
    В скрипт я добавил несколько видов кодирования xss: url-encoding, html-encoding.

  • SQL-Inj. Наврно, самый интересный (имхо) тип уязвимостей. Следовательно, проверко ее наличия достаточно сложна, особенно это относится к blind sql inj.
    Но в случае вывода ошибок достаточно просто подставить некорректное значение к запросу, что приведет с мату со стороны mysqld, который мы, собственно, и ищем.
[ III Usage ]
Вот мы и подошли к теме использования скрипта.
Для начала приведу тут хелп:

Код:

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
                                GST Bugz Scaner beTTa
                                                                          [c]ode by Gh0s7
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
 Functions:
 [+] HEAD File Scan    [ 1 ]  Scans server for files and dirs like /admin/ /install/ etc..
 [+] DomainsDB Lookup  [ 2 ]  Reverse ip lookup scan using domainsdb.net
 [+] XSS GET Scan      [ 3 ]  Scan for XSS bugs
 [+] PHP RFI Scan      [ 4 ]  PHP Remote File Inclusion scan
 [+] SQL-Inj Scan      [ 5 ]  SQL-Injection scan
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

 Options:
 --type TYPE See functions  | --host HOST target host  | --port PORT target port
 --path PATH path to script | --arg ARG Target argument | --cookie FILE Cookie file
 --timeout SEC Conn Timeout | --xsspayload STR xss code | --phppayload URL Url to php payload
 --https Enable Https
 Cookie file format: Cook_Name::Cookie_data

 Examples:
 $ gst_scan.pl --type 1 --host vpupkin.net --path /
 $ gst_scan.pl --type 5 --host vpupkin.gov.no --port 88 --path /1337/index.php? --arg id
 $ gst_scan.pl --type 3 --host hackme.ru --path /admin/login.php? --arg login
 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

Скорее всего, большинство должно быть и так понятно. На всякий случай поясню на примерах:

Код:

$ ./gst_scan.pl --type 1 --host vpupkin.gov.no --path /
В этом случае используется HEAD скан, для которого обязательна опция пути.

Код:

$ ./gst_scan.pl --type 2 --host nas.ru
В случае RIL скана нужен только хост.
Для остальных типов: всегда обязателен хост.
Для HEAD скана также нужен путь. Для rfi/sql/xss еще необходим параметр. Например у nas.su/admin/login.php?login=TESTING, параметром будет login.

Путь должен задаваться вплоть до параметра, включая '?'
Это помогает избежать проблем при передачи нескольких аргументов скрипту.

Формат config.txt:
  • строки, начинающиеся с # считаются комментриями и не парсятся.
  • Разделитель - ::
Например:

Код:

# GST Scan Config file
port::80
phpPayload::http://gst-phppayload.narod.ru/payload.txt
timeout::0

Формат файла Cookie:
Код:

Cookie_Name::Cookie_Val
[ IV Notes ]
Тут хотелось бы высказаться относительно кода.
-----
Если вы можете написать что-то лучше - я за вас рад.
Я не претендую на звания атца perl, а свой скрипт не называю супер-релизом и не утверждаю, что все остальные - ничто.

Не надо говорить, что какие-то функции в сканере не нужны\бесполезны - в дальнейшем я очень хочу автоматизировать весь скан, поэтому они всеравно пригодятся.
[ V Outro ]

Скачать все можно тут.
В скрипте используются модули IO::Socket & IO::Socket::SSL & Net::SSLay. Чаще всего они пристутствуют в дистрах по умолчанию, если нет, то их можно скачать на search.cpan.org

---------------------

Если вам есть что дополнить, исправить - пишите в пм. Буду рад выслушать. Если хотите критиковать код - критикуйте в пм, но 'критикуя - предлогай'. Если будут вопросы по скрипту - все так же в пм.

---------------------

Greetz to: # [sL1p] (отдельное спасибо за название и bugoga.exe ))
BSA, Eliziym, Гритз моему другу Максу.
Отдельный превет KSURi :)
Также гритз всему лит-составу ачата)
За саб parseRegEx, метр перл философии на тему голодных детей в африке, и килограмм грибов огромное спасибо br'у.

Gh0s7

guest3297 16.04.2007 22:55

дайте кто нить ссылку на нормальный актив перл....
Цитата:

Can't locate IO/Socket/SSL.pm in @INC (@INC contains: C:/Perl/lib C:/Perl/site/lib .) at C:\Documents and Settings\root\╨рсюў
шщ ёЄюы\GSTScan\Gst_scan\gst_scan.pl line 7.
BEGIN failed--compilation aborted at C:\Documents and Settings\root\╨рсюўшщ ёЄюы\GSTScan\Gst_scan\gst_scan.pl line 7.

Gh0s7 16.04.2007 22:59

Цитата:

Сообщение от [ cash ]
дайте кто нить ссылку на нормальный актив перл....

Хм, тут вроде только либы нужны.
IO::Socket::SSL, который юзает Net::SSLeay

Правда я хз, как там в активперле.

m0nzt3r 16.04.2007 23:01

http://search.cpan.org/author/SULLR/IO-Socket-SSL-1.04/SSL.pm

KSURi 17.04.2007 01:04

Код:

perl -MCPAN -e "install IO::Socket::SSL"


Время: 11:23