Ukrycie procesu na liscie

snemei

Użytkownik
Dołączył
Luty 2, 2006
Posty
6
Czesc Wszystkim !! Walcze juz z tym od tygodnia, posciagalem zrdola i probuje dojsc sam ale juz nie mam sil
<
probujenapisac programik klient - serwer. Klient ma byc u uzytkownika i ma byc ukryty w liscie procesow (i to jest ten moj problem) jak to zrobic sciagnalem sobie taki kod
Kod:
program Project1;



{$IMAGEBASE $13140000}



uses

  Windows;



function Main(dwEntryPoint: Pointer): longword; stdcall;

begin

  {now we are in notepad}

  LoadLibrary('kernel32.dll');

  LoadLibrary('user32.dll');

  MessageBox(0, 'Hello, now I am in the memory of another process!', 'Hijacked Process', 0);

  MessageBox(0, 'Now we can do anything we want. :)', 'Hijacked Process', 0);

  MessageBox(0, 'You can even delete the original exe and these message boxes will still be here.', 'Hijacked Process', 0);

  MessageBox(0, 'See?', 'Hijacked Process', 0);

  MessageBox(0, 'Told you.', 'Hijacked Process', 0);

  MessageBox(0, 'Ok, bye.', 'Hijacked Process', 0);

  MessageBox(0, 'I''ll close notepad for you;)', 'Hijacked Process', 0);

  ExitProcess(0);

  Result := 0;

end;



procedure Inject(ProcessHandle: longword; EntryPoint: pointer);

var

  Module, NewModule: Pointer;

  Size, BytesWritten, TID: longword;

begin

  Module := Pointer(GetModuleHandle(nil));

  Size := PImageOptionalHeader(Pointer(integer(Module) + PImageDosHeader(Module)._lfanew + SizeOf(dword) + SizeOf(TImageFileHeader))).SizeOfImage;

  VirtualFreeEx(ProcessHandle, Module, 0, MEM_RELEASE);

  NewModule := VirtualAllocEx(ProcessHandle, Module, Size, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);

  WriteProcessMemory(ProcessHandle, NewModule, Module, Size, BytesWritten);

  CreateRemoteThread(ProcessHandle, nil, 0, EntryPoint, Module, 0, TID);

end;



var

  ProcessHandle, PID: longword;

  StartupInfo: TStartupInfo;

  ProcessInfo: TProcessInformation;



begin

  {lets make a new process}

  CreateProcess(nil, 'notepad', nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo);

  {give it some time to wake up}

  Sleep(500);

  {and hijack it!}

  GetWindowThreadProcessId(FindWindow('Notepad', nil), @PID);

  ProcessHandle := OpenProcess(PROCESS_ALL_ACCESS, False, PID);

  Inject(ProcessHandle, @Main);

  CloseHandle(ProcessHandle);

  {we have a copy of ourself running in notepad so we can exit}

end.
ale nie bardzo wiem jak do tego podejsc i jak rozgryzc, czy mozecie mi podac jakis kod zrodlowy programu ktory bedzie dzialal w tle i nie bedzie go na liscie ??
 

astRX

Użytkownik
Dołączył
Maj 17, 2005
Posty
188
ja podpowiem tylko że na NT ukryjesz za pomocą iniekcji dll`a (sam jeszcze nie doszedłem jak). A prostszy sposób "ukrycia procesu na liście" to "ukrycie listy"
<
 

snemei

Użytkownik
Dołączył
Luty 2, 2006
Posty
6
Generalnie chodzi zeby go ukryc pod XP. Ale to co... ? nie ma mozliwosci ukrycia exe'a w Menedzerze zadan lista Procesy ?? niezalamujcie mnie, przeciez jezeli ktos zobaczy to sobie go usunie i po moim kliencie
<
musi byc jakas mozliowsc
smile.gif
 

tianhao

Użytkownik
Dołączył
Czerwiec 19, 2004
Posty
307
najprosciej nazwij go winlogon.exe i skopiuj do c:windowssystem i dodaj by startowal z userinit
 

snemei

Użytkownik
Dołączył
Luty 2, 2006
Posty
6
jest pewien problem tylko.. jak nazwe go Winlogon, badz tez svhost to owszem bedzoe on pod taka nazwa ale proces nie bedzie SYSTEMOWY tylko uzytkownika i od razu bedzie wiadomo ze cos jest nie tak z tym
smile.gif
Slyszalem o czym takim jak uchwyt do jakiegos procesu, podczepienie sie pod niego i go skilowanie, a moj podczepiony program bedzie wlasnie chodzil, ale jak to wyglada w praktyce tego nie wiem
<
 

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
Pod 9x tez jest to mozliwe lecz prosciej zastosowac jakas tam nieudokumentowana funkcje. Problem juz byl poruszany nie raz. Jedyne co trzeba zrobic to zapoznac sie z uzytymi funkchami i idea IAT Hookingu. Gdy zastosuje sie zewnetrzna biblioteke wowczas staje sie to calkiem proste. Co tu duzo tlumaczyc trzeba przeczytac opis NtIllusion, przejrzec jego zrodla i dopiero za AFX brac sie. Wojass dal rade to i Wy poradzicie sobie.
 

snemei

Użytkownik
Dołączył
Luty 2, 2006
Posty
6
Ostatnio analizowalem kod AFX Rootkit 2005 bo to jest chyba bliskie temu o co mi chodzi, no ale jest tego od groma i przyznam ze nie jestem zbyt dobry z delphiego. A nie znacie zadnych zrodel w ktorych cos takiego jest wykorzystywane ?? Qrcze juz ponad tydzien siedze nad tym litosci
<
 

fl3a

Użytkownik
Dołączył
Marzec 12, 2005
Posty
538
To chcesz zrodla w Asmie, C++? Zaden problem. Jesli natomiast piszesz tylko w Delphi to radze sie zdecydowac i albo porzadnie nauczyc sie go albo dac sobie spokoj z pierdolami i nauczyc sie C++. Nikt za was tego nie napisze. Teoria jest opisana najprosciej jak to tylko mozliwe. Napisanie wlasnej dll'ki tez chyba nie jest jakims kosmosem?
 
Do góry Bottom