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.
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.
[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í.
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:
A následně spusťte:
[03] Na druhém terminálu se podívejte na seznam procesů:
Jak je vidět, náš proces se tváří jako /usr/sbin/apache2.
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:
Následně jej spusťte jako uživatel root:
[05] Z červeného počítače pošlete UDP paket na port 53 zeleného počítače.
Pokud na zeleném počítači nemáte program hping, můžete použít netcat:
[06] Vraťte se k zelenému počítači. Vidíte zprávu o získání paketu?
[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:
Pak jej spusťte jako uživatel root:
[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:
[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:
[10] Vraťte se k zelenému počítači. Zastavte backdoor ([ctrl+c]). Vypište obsah adresáře:
Vidíte vytvořený soubor? Spusťte znovu backdoor.
[11] Přejděte k červenému počítači. Stejně jako předtím, pokuste se vzdáleně provést jiné příkazy:
Ale pozor! Pamatujte, že vámi posílané příkazy jsou skutečně vykonávány!
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.
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:
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í?
[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!