valor.homepage

it's great (not) to be mad!

valor's blog 2009

Jak jsem si trasoval botnet..

Ano, je to tu. Po letech čekání na nějaký odborný příspěvek v mém blogu, jste se vy, mí čtenáři, dočkali. Není to žádná převratná pecka, která by snad změnila svět, ale třeba vám to ukáže temná zákoutí Internetu tak, jak jste je doposud nevnímali. Upozorňuji, že celý tento text si neklade nároky na přesnost — jde spíš o snahu přiblížit něco, do čeho sám tak docela nevidím.

Jednou ráno přišel e-mail

Když mi včera ráno došel e-mail s nadpisem "I worry about you", mile to zahřálo na srdci. Anonymní pisatel mi dává najevo, že mu nejsem zcela lhostejný, ba dokonce že má o mě strach.

I hope you are not in the city now http://bgos.breakingnewsfm.com/main.php

Mail jsem tedy starostlivě nesmazal, jen si vyzkoušel, odkud vítr fouká, stáhl nabízený spustitelný soubor a zase se věnoval něčemu užitečnějšímu. Až večer jsem se vrátil a zkoušel, jestli nástraha ještě funguje.

Web nabízený jedním uzlem botnetu

Oč šlo? O botnet, síť zavirovaných strojů, která se dá zneužít k ledasčemu. Nejspíš nebyl napsaný právě hloupě, protože používal i řadu moderních technik.

Do hlubin botnetu

Kupříkladu hned ta první — DNS Fast Flux. Pokud se pokusíte přeložit si jméno na IP adresu, nejlépe několikrát, mělo by se vám pokaždé vrátit něco jiného. Síť zavirovaných počítačů totiž umí sama poskytovat nějaké služby, které využívá pro své další šíření. Mezi jinými umí sloužit jako DNS a HTTP servery, což se obojí v našem případě hodí.

Třeba tehdy, když vhodně upravíte DNS záznamy tak, že jejich životnost na jiných DNS serverech a cílových počítačích bude velice nízká. Váš klient (počítač, mobil, prohlížeč či jiný program) si proto pro každé hrátky s tímto doménovým jménem získá novou IP adresu. V tomto konkrétním případě si autoři dovolili snížit tuto hodnotu snad až příliš — 0 vteřin už přijde i některým DNS serverům podezřelé a nemravné, běžně se prý používá něco kolem 300 vteřin. Můj domácí Linksys to, zdá se, nepobral a zatvrzele odmítal doručovat jako rozumnou odpověď.

bgos.breakingnewsfm.com SOA     ns1.bgos.breakingnewsfm.com
root.bgos.breakingnewsfm.com (
                        20081223        ;serial (version)
                        300     ;refresh period (5 minutes)
                        300     ;retry interval (5 minutes)
                        300     ;expire time (5 minutes)
                        0       ;default ttl (zero seconds)
                        )
 !!! bgos.breakingnewsfm.com SOA record has zero ttl

Nicméně jinak je tato metoda rychlá, efektivní, elegantní. Celý mechanismus se dá ještě vylepšit (Double DNS Fast Flux), což byl i tento případ.. Najít tak servery, kde se celý botnet nachází, a naházet je do nějakého filtru na vstupní bráně do sítě, by dalo zabrat.. a stejně by nemělo valného smyslu.

$ host ns1.bgos.breakingnewsfm.com
ns1.bgos.breakingnewsfm.com     A       211.228.124.189
 !!! ns1.bgos.breakingnewsfm.com A record has zero ttl

$ host ns1.bgos.breakingnewsfm.com
ns1.bgos.breakingnewsfm.com     A       24.62.27.173
 !!! ns1.bgos.breakingnewsfm.com A record has zero ttl

$ host ns1.bgos.breakingnewsfm.com
ns1.bgos.breakingnewsfm.com     A       71.194.236.153
 !!! ns1.bgos.breakingnewsfm.com A record has zero ttl

$ host ns1.bgos.breakingnewsfm.com
ns1.bgos.breakingnewsfm.com     A       66.66.236.103
 !!! ns1.bgos.breakingnewsfm.com A record has zero ttl

Zpět k URL. Říkal jsem si, jestli je k dispozici jen odkaz, co jsem dostal mailem, nebo i nějaké další domény a varianty odkazu. A ona jich je celá řada. Hrátkami s odkazem z ranního mailu jsem zjistil, že jako koncová stránka nemůže být úplně cokoliv (nesmysl.php mi neprošel ;)), ale jinak funguje poměrně solidní množina {run,news,main,save,print}.php a nejspíš celá řada dalších.

Na adrese z mailu je pak ke stažení .exe soubor. Někdy stejného jména jako stránka, jindy se to může lišit. Skoro mám pocit, jako bych při brouzdání občas zavítal na různé verze HTTP kódu botnetu, nicméně těžko soudit. Informace o sobě daný HTTP server nenabízí překvapivě žádné ;)

VirusTotal výsledek

Stejně tak nepřekvapí, že virus poskytovaný na oněch stránkách se v čase mění, ať už automatizovaně, nebo za pomoci autorů. Verze .exe souboru z rána už byla večer rozpoznána 8 až 9 antivirovými programy, jedna z večerních verzí nicméně byla vylepšená a poznaly ji pouze 3 antiviry. Celkem jsem během chvíle klikání narazil na 4 mutace v 10 souborech. Skript by toho samozřejmě stihl natahat víc, ale co bych s tím dělal..

VirusTotal detail

Nevím, jak jsou jednotlivé antiviry na stránce VirusTotal.com nastavené, takže je možné, že by nějaká brutálnější heuristika zabrala, ale i tak ten výsledek běžného člověka nepotěší.

Současně také neznám detaily toho, jak je kód tohoto viru psaný — nemám na to v tuhle chvíli ani prostředky, ani čas.. a upřímně, nejspíš ani schopnosti, pokud se autoři nechali alespoň trochu inspirovat některými známými technikami obran proti rozkrývání kódu.

$ host bgos.breakingnewsfm.com
bgos.breakingnewsfm.com has address 68.55.108.106

$ host bgos.breakingnewsfm.com 68.55.108.106
Using domain server:
Name: 68.55.108.106
Address: 68.55.108.106#53
Aliases:

bgos.breakingnewsfm.com has address 72.181.165.105

Nu, když už jsem měl nachytaných pár vzorků souboru, stálo ještě za to si ověřit, co takové zombie (tedy stroje uvnitř botnetu) poskytují. Jednotlivé uzly umí jak DNS, což jsme si vysvětlili, tak i HTTP — nebo jsem měl štěstí na relativně univerzální servery. Možná toho poskytují i víc, ale nmap do cizí sítě pořád nepovažuji za slušnost :)

Je též celkem pravděpodobné, že tahle část botnetu prozatím slouží pouze k šíření vlastního kódu. Aktivní část, která by následně začala posílat nevyžádanou poštu, podnikat útoky na síť či krást důvěrná data, může být umístěna jinde.

Obrana?

Nabízí se otázka, jak se proti tomu bránit, alespoň v prostředí univerzity. DNS serverů uvnitř naší sítě by mělo být poměrně omezené množství, takže by se dalo považovat za vodítko alespoň to, že nějaký podivný zapomenutý počítač v miniaturní místnůstce vrátných řeší DNS požadavky.

Celé tyhle hrátky s trasováním DNS uzlů, semo-tamo proklepnutím toho, co nabízejí, se obešly prozatím bez problémů. Storm botnet by se asi trasoval hůř, podle všech historek měl nějaké detekční (ať už lidské, nebo automatické) nástroje na odhalování šťouralů a jejich zpětné postihy pomocí DDoS útoků.

Trocha úvah na závěr

Ještě před pár lety jsem si říkal, že dnešní programátoři virů už nejsou, co bývali. Ty tam byly krásy viru OneHalf, elegance a schopnost napsat miniaturní kód plný krásných myšlenek, byť s pochybným účelem.. Jenže to, co chlapci z druhé strany barikády předvádějí dnes, mě nutí přehodnotit původní názor. Pořád jsou šikovní, pořád jsou při síle.

A nejspíš pořád několik kroků před lidmi z tábora "těch dobrých". Jsem rád, že si o tom stíhám alespoň číst, když už s nimi nestíhám držet krok.

Další zdroje

  1. CyberCrime & Doing Time, Waledac: Fake Dirty Bomb in Your City

  2. Storm Botnet, vícedílné pěkné povídání o botnetech, zaměřené na botnet Storm

by Vašek Lorenc : 2009/03/17 : Categories cz security : 0 comments (permalink)


All content Copyright 2003-2006, Vaclav Lorenc
Design based on Blue Leaves by Jenna Smith.
XHTML | CSS | absolut krgy ;)