PE-Patching over Netværket
|
24-08-2014, 22:59
(Denne besked var sidst ændret: 24-08-2014, 23:04 af BaltoZ|-|aar.)
|
|||
|
|||
PE-Patching over Netværket
Introduktion
I denne korte tutorial vil vi tage et kig på the BackDoor Factory, og dennes tilhørende BDFProxy, som er en modificeret version af MiTMProxy der kører i transparent mode. Det smarte ved BDF’s proxy er, at den kan injicere diverse former for kode direkte ind i et programs code caves ON-THE-FLY når de passerer vores proxy efter et Man-in-The-Middle angreb. Dette betyder, at når en executable bliver downloaded over det usikre netværk vi har kontrol over, så bliver filen først hentet ned på vores server, BDF injicerer vores payload ind i executable filen og derefter leverer BDFProxy filen til vores offer. BDF er ikke perfekt. Langt fra. Der er mange sikkerhedsforanstaltninger i forskellige typer software, såsom at tjekke filens MD5 hash, headers, tjekke ændret kode (f. eks. NSIS) osv. Dette betyder, at utroligt mange filer vil blive beskadiget og ude af stand til at blive kørt. Har dog oplevet at en beskadiget fil stadig kører vores payload selvom hovedinstallationsprogrammet ikke virker. Desuden kan vi ikke injicere filer der bliver hentet over HTTPS – kun hvis vi har serverens certifikat. -Igen kan en video optages hvis der er brug for det. Men det er en enkel og hurtig process, så burde ikke behøves. ;) Krav Kali – eller hvilken som helst linux variant du foretrækker Arpspoof The BackDoor Factory + BDFProxy Netcat – eller Metasploit’s handler Lidt kendskab til Kali eller Linux generelt (cd, unzip osv. samt hvis du nu støder ind i problemer) Trin 1 Der er diverse ’dependencies’ i BDF der kræver installation før dette framework overhovedet kan køres ordentligt. Det letteste er at installere Veil-Evasion, da dette vil tage hånd om alt det tunge arbejde. https://github.com/Veil-Framework/Veil-Evasion/ Du kan bruge git clone, eller en hvilet som helst tredjeparts git-klient til at hente filerne ned og installere dem. Jeg trykker bare 'Download ZIP' i højre side på github, så jeg har filerne gemt til hvis jeg nu fucker up og bliver nødt til at gendanne enkelte filer. ZIP-filen kan vi så udpakke ved at bruge unzip – Eller – bare dobbeltklikke og trække mappen ud i vores arbejdsmappe. Veil-Evasion har et shell script der hedder 'setup.sh'. Dette script tager sig af installationen af alle de dependencies jeg nævne før. Hvis jeg husker rigtigt, snakker vi omkring 500MB, så det er lidt af en omgang. Trin 2 Nu skal vi have hentet BDF og BDFProxy. Disse er på samme github account som før, da begge disse er fra manden bag Veil. https://github.com/secretsquirrel/the-backdoor-factory https://github.com/secretsquirrel/BDFProxy Vil ikke gå i dybden med installationen. Da det er samme fremgangsmåde som før: Det eneste der er værd at nævne her er, at the BackDoor Factory filerne skal placeres i en mappe kaldet ’bdf’ under samme mappe som du udpakkede BDFProxy filerne. Inde i BDFProxy mappen er der en shell-fil kaldet update.sh, den kan du bruge til at opdatere senere hen, ved samme fremgangsmåde som da vi installerede Veil-Evasion. Trin 3 Vi bruger ifconfig igen, til at finde ud af hvilken lokal IP-adresse routeren har givet os (Denne skal bruges i trin 4): Trin 4 I BDFProxy mappen[b] finder vi [b]'bdfproxy.cfg'. Denne konfigurationsfil skal vi bruge til at opsætte vores payloads, så de peger på vores egen IP (Eller IP’en der har vores listener kørende) Åbn denne fil med et hvilket som helst redigeringsprogram til tekstfiler – getid, leafpad osv. Fra linie 100 og ned finder vi en række instillinger der ser således ud: Citer:[[[WindowsIntelx64]]][[[Styresystem og arkitektur]]] PATCH_TYPE – Hvordan selve injicering skal foretages - Om koden skal indsættes i enkelte code caves, eller om den må splittes imellem flere. HOST – Det er denne indstilling vi skal have til at pege på IP-adressen vi skal bruge til indgående forbindelser. PORT – Porten vores payload vil bruge til at forbinde til vores IP. SHELL – Dette er BDF’s egen syntaks, og angiver vores instillinger. SUPPLIED_SHELLCODE – Hvis vi har vores egen shell code der skal ’suppleres’ til vores payload. Det er altså ikke en indstilling til udelukkende at bruge egen shell code. Den egenskab finder vi i ’User supplied shellcode’. ZERO_CERT – Fjerner cerifikatet fra ’underskrevne’ programmer. PATCH_DLL – Hvorvidt DLL’s skal injiceres. MSFPAYLOAD – Hvilken payload der skal bruges til dette styresystem og arkitektur. Det eneste vi faktisk behøver at ændre, er HOST parametren. Sørg for at PORT parametrene ikke overlapper hinanden. Ellers kan vi lege lidt med payloads og Patch_Types. Ret HOST til egen IP alle 4 steder, og gem filen når du er færdig. Trin 5 Lige som min sidste tutorial, skal vi have aktiveret IP Forwarding Citer:echo 1 > /proc/sys/net/ipv4/ip_forward Igen sikrer vi os lige at ændringen nu også er godkendt. (OBS: Nogle gange er der andre processer der de-aktiverer IP Forwarding, så det er en god idé at cat’e filen hvis dit ARP spoof angreb ikke virker) Citer:cat /proc/sys/net/ipv4/ip_forward Trin 6 Nu kan vi så køre BDFProxy. I BDFProxy mappen finder vi et Python script der hedder 'bdf_proxy.py', og dette kan vi så køre fra mappen ved at bruge: Citer:./bdf_proxy.pyeller: Citer:python /root/Desktop/bdf/proxy/bdf_proxy.py/root/Desktop/bdf/proxy/ - Stien til hvor du udpakkede BDFProxy Trin 7 Nu skal vi så have startet vores ARP spoof angreb. Her behøves Ettercap ikke, da BDFProxy selv udfører alt arbejdet. I stedet kører vi arpspoof: Citer:arpspoof –i wlan0 –t 192.168.0.102 192.168.0.1-i <Interface> wlan0 - Det interface vores netværkskort er registreret på. Kan findes ved at bruge 'ifconfig'. -t <Target> 192.168.0.102 - Da dette er en demonstration bruger jeg kun en enkelt IP der skal arp spoofes, uden –t valgmuligheden vil alle IP’er på netværket få tildelt vores ARP pakker. <Host> 192.168.0.1 – Den vært hvis pakker vi vil opsnappe. Her er det vores router, da den står for pakkeomdelingen. Trin 8 Nu starter vi vores listener, så alle indgående forbindelser bliver accepteret af vores computer. Igen vil jeg bruge Netcat, og igen kan andre listeners/handlers bruges. [/i](Jeg ved mit ofres computer er Windows x64, så jeg ’lytter’ på den port der passer hertil fra bdfproxy.cfg. Hvis dette angreb var tiltænkt hele netværket, ville jeg selvfølgelig ’lytte’ på alle de gældende porte)[/i] Trin 9 Når vores offer downloader en executable, vil denne blive injiceret med vores shell code, og derfter leveret til offeret ved hjælp af BDFProxy. Vil i dette eksempel downloade Winrar x64 over netværket på ’offerets’ computer. Når BDFProxy opdager en fil der er ved at blive downloadet, vil det se således ud: Og når vores kære offer så åbner filen, vil vores payload blive eksekveret samtidig med installationsfilen. Offerets PC – Winrar installationsfil: Netcat – Shell på offeret PC: BONUS Vil fraråde Alle at skanne igennem Virustotal - I ved jo hvorfor - Men ville lige vise jer, hvad Reverse_TCP + Winrar gør for detections: https://www.virustotal.com/en/file/ef648...408917202/ Citer:SHA256: ef6484a77db0dc031101509d8a08aa35176c91b4076a4818df631e5025d00853 Det er pænt lækkert, hva? Dette kan også opnåes ved hjælp af BDF - Backdoor.py. |
|||
24-08-2014, 23:04
(Denne besked var sidst ændret: 24-08-2014, 23:06 af BaltoZ|-|aar.)
|
|||
|
|||
RE: PE-Patching over Netværket
<Reserveret> - BDF tutorial til at binde filer uden brug af proxien måske?
|
|||
26-08-2014, 11:09
(Denne besked var sidst ændret: 26-08-2014, 11:11 af MalcolmXI.)
|
|||
|
|||
RE: PE-Patching over Netværket
Det blev jo fint. Vil nok prøve mig frem engang i aften.
Må indrømme det har bedre potentiale end Squid+Perl. :P EDIT: Og så må du gerne lave en tut til Backdoor factory. 2/54 uden kryptering? Det er der sku ingen af mine binders der kan klare :) |
|||
26-08-2014, 16:34
|
|||
|
|||
RE: PE-Patching over Netværket
Ja. Her består filen man downloader rent faktisk af den fil man regner med at downloade. Squid kan bruges til at inficere Javascript, HTML, PHP osv. på netværket, men PE filer er for svært at få til at virke.
Kommer en af dagene. Du skal tænke på, at en binder normalt består af en stub der kører begge(alle) de eksekverbare filer som ressourcer. Det kan altså hurtigt resultere i signature til AV firmaerne. Her bliver koden smidt direkte ind i Code Caves, og derfor beholder 'værtsprogrammet' store dele af sin signatur. |
|||
27-08-2014, 21:09
|
|||
|
|||
RE: PE-Patching over Netværket
Okay det er faktisk temmelig frækt lavet. Det skal jeg helt klart prøve ved lejlighed!
Don't learn to hack, hack to learn
|
|||
24-10-2014, 19:07
|
|||
|
|||
RE: PE-Patching over Netværket
http://www.leviathansecurity.com/blog/th...-binaries/
Det kan åbenbart også bruges hvis man kører en proxyserver eller Tor Exit Node. |
|||
24-10-2014, 19:54
|
|||
|
|||
RE: PE-Patching over Netværket
(24-10-2014, 19:07)MalcolmXI Skrev: Det kan åbenbart også bruges hvis man kører en proxyserver eller Tor Exit Node. Har lige siddet og læst den den, og tænkte netop på det samme...
Don't learn to hack, hack to learn
|
|||
24-10-2014, 21:38
|
|||
|
|||
RE: PE-Patching over Netværket
(24-10-2014, 19:54)Spagnum Skrev: Har lige siddet og læst den den, og tænkte netop på det samme... Når man først bliver intercepted så er man på skideren, det er naturligvis derfor man skal være forsigtig med proxies, tor og offentlige netværk. Det er skægt hvad man kan lave når man først når så langt :) |
|||
18-11-2014, 20:04
(Denne besked var sidst ændret: 18-11-2014, 20:05 af Spagnum.)
|
|||
|
|||
RE: PE-Patching over Netværket
Har lige siddet og leget lidt med det, kan sgu ikke få det til at spille... tror det er ARP spoofingen der går galt, kan slet ikke browse på taget maskinen når jeg sætter det igang.
Andre der har prøvet?
Don't learn to hack, hack to learn
|
|||
18-11-2014, 20:26
|
|||
|
|||
RE: PE-Patching over Netværket
(18-11-2014, 20:04)Spagnum Skrev: Har lige siddet og leget lidt med det, kan sgu ikke få det til at spille... tror det er ARP spoofingen der går galt, kan slet ikke browse på taget maskinen når jeg sætter det igang. Sidst jeg forsøgte mig med APR endte jeg med at crashe efterskolens netværksudstyr. Nu er jeg på et kollegium hvor samme situation ville være lige så sur, og jeg kan ikke få det til at virke hvis jeg bruger min telefon som hotspot. Jeg har ikke rigtigt noget at lege med. |
|||
|
User(s) browsing this thread: 1 Gæst(er)