GoPhish – Phishing Tool
Phishing is een van de meest gebruikte methodes om gegevens van onwetende mensen te stelen. Phishing is relatief simpel, anoniem en verhoudingsgewijs zeer succesvol. Nog nooit van Phishing gehoord… dat kan. Maar iedereen is weleens doelwit geweest van Phishing. Vaak in de vorm van e-mail. E-mails die afkomstig lijken te zijn van een legitiem bedrijf waardoor men snel geneigd is om op een link te klikken welke vervolgens malware bevat of refereert naar een “echt lijkende” website welke vervolgens om je gegevens vraagt. Eens ingevuld zijn uw gegevens in het bezit van ongeautoriseerde personen en dus feitelijk gestolen! In deze post bekijken we “GoPhish”. GoPhish is een tool die het opzetten van phishing campagnes mogelijk maakt en die vaak voor phishing doeleinden gebruikt wordt.
Wikipedia omschrijft Phishing als volgt:
“Phishing (naar analogie van phreaking, is het afgeleid van fishing: “vissen”, “hengelen”) is een vorm van internetfraude. Het bestaat uit het oplichten van mensen door ze te lokken naar een valse (bank)website, die een kopie is van de echte website, om ze daar – nietsvermoedend – te laten inloggen met hun inlognaam en wachtwoord of hun creditcardnummer.”
Binnen phishing zijn er echter aan aantal varianten. Phishing e-mails die naar willekeurige personen, vaak in bulk verstuurd worden met als doel accountgegevens of bankgegevens buit te maken noemen we “gewoon phishing” ofwel “basic phishing”.
Spear Phishing
Spear Phishing komt eveneens op grote schaal voor maar is meestal succesvoller dan basic phishing. Spear phishing richt zich namelijk op een specifieke doelgroep, organisatie of zelfs persoon. Dit is dus “doelgericht phishing toepassen” waardoor campagnes relevanter zijn en de kans op succes ook groter is. Het doel van spear phishing is meestal niet om bankgegevens buit te maken maar om accountgegevens, bedrijfsgegevens, handelsgegevens of vertrouwelijke data te stelen.
Clone Phishing
Zoals de naam al doet vermoeden is clone phishing het uitsturen van een duplicate e-mail. De malafide e-mail zal lijken op een eerder ontvangen e-mail maar de hacker heeft deze uiteraard gemodificeerd met zijn eigen malafide gegevens. De gebruiker zal denken dat het om een dubbele verzending of follow-up gaat en dus sneller geneigd zijn op de links in de e-mail te klikken. Deze methode van phishing wordt vaak toegepast als een hacker al in de gelegenheid is om e-mail naar de gebruiker te onderscheppen.
Whaling
Whaling ofwel “de grote vissen” is feitelijk het toepassen van spear phishing op “grote personen”. Denk hierbij aan het specifiek targetten van directeuren, manager, celebraties, en politici.
Vishing
Vishing is Phishing met behulp van VOIP technologie. Bij Vishing hebben we het niet over e-mails maar over het ontvangen van een telefoontje. Hackers zijn in staat om het caller-id van een VOIP oproep te manipuleren waardoor het lijkt alsof de bank, creditkaartmaatschappij, ziekenhuis etc. belt. Je wordt dus direct gebeld door de hacker met de vraag om bepaalde handelingen uit te voeren zoals het uitvoeren van een opdracht op de computer.
Smishing
Smishing is er meestal op gericht om account gegevens buit te maken. Deze variant richt zich op de SMS functie van de GSM. SMSjes wordt verzonden en gemanipuleerd zodat het lijkt of ze van een valide bedrijf afkomstig zijn. Deze SMSjes bevatten vaak links naar malafide websites en geautomatiseerde voice-responsesysteem.
Basic Phishing en Spear Phishing zijn echter de meest gebruikte phishing vormen. Bekende phishing e-mails zijn o.a. de e-mails die afkomstig lijken te zijn van de Rabobank, ABN-AMRO, TNT, PostNL, NetFlix, Visa, KPN etc.
Herken en mitigeer phishing e-mail
Het herkennen van Phishing e-mails is soms gemakkelijk doordat er bijvoorbeeld een algemene aanhef i.p.v. een persoonlijke aanhef gebruikt wordt (bij spear phishing is deze vaak wel persoonlijk) of omdat er veel spelfouten instaan doordat de hacker b.v. een Engelse tekst door een translator heeft gehaald. Soms is de opmaak ook duidelijk foutief. De gemakkelijkste manier om echter een phishing e-mail te herkennen is het bekijken van de afzender en de URL’s in de e-mail. Kijk vanaf welk e-mailadres de e-mail gestuurd is (dus niet de naam maar het adres) en controleer de URL’s. Door met je muis over de URL’s te gaan zie je welke hyperlink eraan gekoppeld zit en waar je dus naartoe gaat als je op de link zou klikken. Zijn dus afgekorte URL’s (d.m.v. URL shortners zoals bit.ly) of URL’s die niet naar de juiste corporate website gaan dan is het verstandig de e-mail te negeren. De kans is groot dat je op dat moment te maken hebt met een phishing e-mail. Zorg ervoor dat je het controleren van URL’s en de afzender als routine inbouwt als je twijfelt. Meer informatie over het herkennen van phishing e-mail vindt je in een van mijn vorige posts https://jarnobaselier.nl/hoe-herken-je-een-hoax-of-phishing-e-mail/.
We hebben het hier echter niet over de definitie van Phishing of het voorkomen ervan. Toch wilde ik deze informatie nogmaals delen voordat we met het hoofdtopic van deze post aan de slag konden gaan, namelijk een kijkje nemen naar de phishing applicatie “GoPhish”.
Zijn jullie er klaar voor? Ik wel! Let’s go.
GoPhish
GoPhish is een open-source phishing framework welke beschikbaar is op zowel Windows, Linux en Mac. GoPhish is geschreven in “Go programming” language waardoor GoPhish niet afhankelijk is van dependencies en de installatie van GoPhish simpelweg een “download en run” actie is.
Je kunt GoPhish op 2 manieren installeren, namelijk door zelf de binaries te compilen of door pre-compiled binaries te gebruiken.
Om GoPhish zelf te compilen moet eerst de Go Language (Go ofwel GoLang) geïnstalleerd worden. GoPhish is namelijk in de Go Language geschreven.
Het installeren van Go is simpel. We werken in deze post in Linux (Kali) en in Linux doen we dit als volgt:
sudo apt-get install golang |
Als Go geïnstalleerd is gaan we GoPhish installeren. Dit doen we met het volgende commando om de bestanden te downloaden:
go get github.com/gophish/gophish |
Nadat de GoPhish bestanden zijn gedowload worden ze geplaatst in het “$GOPATH”. Nu navigeren we naar de folder ($GOPATH/src/github.com/gophish/gophish) en kunnen we de bestanden compilen naar een binary via het volgende commando:
$GOPATH/src/github.com/gophish/gophish |
Uiteraard kunnen we ook gewoon de kant-en-klare binaries downloaden via deze link.
Het installeren van een precompiled binary is een stuk gemakkelijker. Download de binary voor het juiste OS. In ons geval “Linux x64”. Na het downloaden pakken we het bestand uit:
unzip gophish-vxxx-linux-64bit.zip ~/progs/ |
Na het uitpakken starten we GoPhish (./gophish) en worden meteen de juiste SSL certificaten gegenereerd en de URL van de adminserver (https://127.0.0.1:3333) en de phishing server (http://0.0.0.0:80) worden getoond.
Deze (en meer) gegevens kunnen worden geconfigureerd in het config.json bestand.
Ook is het prima mogelijk om een MySQL database te gebruiken i.p.v. de default SQLite database. Voor kleinere omgevingen voldoet de SQLite database prima maar voor grotere en robuustere omgevingen kan een MySQL database gewenst zijn. Om gebruik te maken van MySQL moeten een aantal handelingen verricht worden welke duidelijk in de GoPhish documentatie omschreven staan.
Laten we GoPhish eens starten en de interface bekijken.
GoPhish GUI Interface
Als GoPhish gestart is dan kun je de applicatie via de browser benaderen middels onderstaande gegevens:
URL: https://127.0.0.1:3333
Gebruiker: admin
Wachtwoord: gophish
Na het inloggen verschijnt het dashboard. Het dashboard geeft je een overzicht van je huidige campagnes en aan de linkerkant en bovenkant bevind zich het hoofdmenu. De linkerkant geeft meteen toegang tot de handleiding en de API documentatie. De bovenkant heeft een groene button. Deze groene button laat zien wie er momenteel ingelogd is. Door op het pijltje naast de ingelogde gebruiker wordt de gebruiker uitgelogd.
Door op de user te klikken (of te kiezen voor “instellingen” aan de linkerkant) kun je het wachtwoord wijzigen, de API sleutel bekijken of een nieuwe gebruiker aanmaken.
Een nieuwe gebruiker aanmaken kan eveneens via de “register” URL:
https://127.0.0.1:3333/register |
Alle overige instellingen van GoPhish worden beheerd in het eerder genoemde “config.json” bestand. De verdere werking van GoPhish is vergelijkbaar met die van een mass-mailing / newsletter applicatie zoals “MailChimp”. Er moeten gebruikers aangemaakt worden waar de phishing e-mails naartoe gestuurd worden. Vervolgens moet de e-mail zelf aangemaakt worden evenals de landingspagina waar de URL in de e-mail op uitkomt. Laten we stap voor stap een campagne gaan maken.
Gophish Campagne
Voordat we aan de slag gaan met onze eerste campagne is het zaak om een “Sending Profile” aan te maken. Ofwel, welke e-mailserver wil je gebruiken om de campagne te verzenden. Je kunt hier van alles gebruiken. Gratis SMTP servers, betaalde varianten, Gmail etc. Als je een specifiek bedrijf target is het beter om controle te hebben over een interne e-mailserver zodat e-mails door minder spamfilters gaan en omdat je op die manier een betrouwbare afzender mee kunt geven waarbij minder alarmbellen gaan rinkelen.
Om een Sending Profile aan te maken klik je aan de linkerzijde op “Sending Profiles” en vervolgens op de groene button “New Profile”. Als je al eerder een sending profile hebt aangemaakt welke je wilt gebruiken dan kan dat uiteraard ook. GoPhish kan gemakkelijk omgaan met meerdere Sending profiles.
Het aanmaken van een nieuw Sending Profile ziet er als volgt uit:
Tijdens het aanmaken van een Sending Profile moeten de volgende velden ingevuld worden:
- Name – De naam van het profiel. Deze mag je zelf verzinnen.
- From – Dit moet een geldig e-mailadres zijn.
- Host – De e-mailserver welke altijd opgegeven wordt als domain:port. De poort toevoeging is essentieel.
Als er authenticatie nodig is op de e-mailserver dan kun je “Username” en “Password” invullen. Het aanzetten van “Ignore Certificate Errors” zorgt ervoor dat e-mail verzonden wordt bij bepaalde certificaat errors maar ook dat je dus vatbaar bent voor man-in-the-middle aanvallen. Self-signed certificaten worden in dit geval gewoon geaccepteerd.
Om je e-mail minder spamgevoelig te maken kun je custom e-mailheaders toevoegen. Zo kan het zijn dat de anti-spam applicatie bepaalde headers gewhitelist heeft. Door deze toe te voegen aan je campagne zal de e-mail vlekkeloos door het spamfilter gestuurd worden. GoPhish zorgt ervoor dat alle default headers compleet zijn. Deze setting zal dus wat minder vaak gebruikt worden.
Als alles ingevuld is ben je klaar. Stuur eventueel nog een test e-mail en sla het Sending profile op.
Users & Groups
De eerstvolgende stap is het aanmaken van je ontvangers. Om dit te doen ga je naar Users & Groups. Allereerst maak je een groep aan om je ontvangers in te plaatsen.
Zoals je ziet kun je tijdens het aanmaken van een groep (wat in essentie alleen een naam is) meteen ontvangers toevoegen. Het toevoegen van ontvangers kan handmatig of via een bulk import welke CSV bestanden accepteerd. Het import CSV bestand moet minimaal de kolommen “First Name”, “Last Name”, “Email” en “Position” bevatten.
Het later toevoegen of verwijderen van gebruikers doe je ook door op de desbetreffende group te klikken.
Als de groepen en gebruikers zijn aangemaakt gaan we een landingspagina aanmaken. Dit is dus de pagina waarop men terecht komt na het klikken op de link in de e-mail. Dit is dus waar we serieus gaan “vissen”.
Landing Pages
Het aanmaken van een zogenaamde “Landing Page” doen we uiteraard via de “Landing Pages” button. Op het moment dat je een landing page aanmaakt worden er slechts 2 velden gevraagd. De naam en de broncode.
De HTML broncode kan geschreven worden met de duidelijke WYSIWYG editor. Deze editor heeft ook de mogelijkheid om je toegang te geven tot de source code.
Landing Pages ondersteunen sjablonen, het vastleggen van inloggegevens en het omleiden van gebruikers naar een andere website nadat ze hun inloggegevens hebben ingevoerd.
Via de HTML Editor kun je zelf je HTML pagina maken. Een krachtige oplossing is echter de “Import Site” optie waarmee een bestaande pagina gekopieerd wordt. Vervolgens kun je ervoor kiezen om gebruikersnamen en wachtwoorden te capturen welke als plain-tekst in de database wordt opgeslagen. Uiteraard kun je vervolgens een redirect URL instellen waar de gebruiker naar doorgestuurd wordt als de gegevens ingevuld zijn.
Email Templates
Nu we alles gereed hebben is het zaak om de phishing e-mail aan te maken. Zowel in de e-mails en in de landing pages kunnen we een aantal variabelen gebruiken. Deze zijn:
- {{.FirstName}} – De voornaam van de ontvanger
- {{.LastName}} – De achternaam van de ontvanger
- {{.Position}} – De functie van de ontvanger
- {{.Email}} – Het e-mailadres van de ontvanger
- {{.From}} – De (spoofed) afzender
- {{.TrackingURL}} – De URL naar de tracking handler
- {{.Tracker}} – Een alias voor
- {{.URL}} – De phishing URL
Nu we dit weten gaan we naar E-mail Templates en kiezen we ervoor om een nieuwe e-mailtemplate aan te maken:
We kunnen nu gemakkelijk de layout van een bestaande e-mail importeren via de “Import Email” button. Tijdens het importeren van een bestaande e-mail kun je ervoor zorgen dat GoPhish alle URL’s in de e-mail laat doorverwijzen naar de phishing URL.
Uiteraard kunnen we deze ook zelf maken. De editor heeft een Text tabblad waarmee we een simpele tekst-based e-mail zonder layout kunnen maken. De HTML tab geeft ons weer toegang tot de WYSIWYG editor. Via de WYSIWYG editor is er weer toegang tot de broncode.
Een simpel voorbeeld:
Let erop dat “Add Tracking Image” aangevinkt is. Dit zorgt ervoor dat er een 1×1 afbeelding aan de e-mail toegevoegd wordt (niet zichtbaar) welke het mogelijk maakt om het verloop van de e-mail te tracken. Zo kunnen we dus zien of de e-mail geopend is, door wie, wanneer en wie er op bepaalde URL’s geklikt heeft.
Eventueel kun je gebruik maken van templates welke al door andere gebruikers gemaakt zijn. Zo zijn er op GitHub diverse templates te vinden.
Lanceer de Campagne
Nu alles ingesteld is word het tijd om de campagne te lanceren. Om deze uit te sturen ga je naar “Campaigns” en kies je ervoor om een nieuwe campagne te starten. De gevraagde velden worden grotendeels ingevuld met de zojuist aangemaakte onderdelen. Dit ziet er dan als volgt uit:
De URL waarde is de URL van de Gophish Listener welke toegankelijk moet zijn voor de cliënts. De waarde die hier ingevuld wordt word gebruikt om de {{.URL}} variabele te vullen en is meestal het externe IP adres van de GoPhish box. Dit kan ook het interne IP adres zijn als GoPhish draait op een interne machine binnen de organisatie.
Het schedule veld stelt je in staat om de campagne in te plannen op een alternatief tijdstip, bijvoorbeeld ’s nachts.
Nadat de campagne verzonden is worden de statistieken in het dashboard automatisch bijgewerkt. Wanneer gegevens verzameld worden, worden deze automatisch opgeslagen in de database (default: gophish.db).
Conclusie
GoPhish biedt een krachtige phishing tool met een duidelijke GUI. GoPhish is gratis, veelzijdig en geeft de gebruiker veel tools om relatief snel een phishing campagne op te zetten en te monitoren. Op zoek naar een methode om phishing e-mails te maken en te monitoren probeer dan zeker GoPhish!
Vond je deze post interessant, deel hem dan even of like hem. Door deze post in het zonnetje te zetten krijg ik weer zin om nog meer te schrijven.
Tot de volgende…!