Sn1per – Recon and Attack Suite
In deze post gaan we het weer hebben over een unieke tool genaamd “Sn1per”. Sn1per is een scanner utility welke diverse tools aanstuurt, gebruikt en uitleest om op die manier volledig geautomatiseerd hosts kunnen enumereren en exploiteren. Sn1per maakt het uitvoeren van de enumeratie fase alsmede het automatisch exploiten (low hanging fruit) erg makkelijk door alle losse tools onder te brengen in 1 suite. Dit voorkomt dat commando’s voor elk separaat pakket onthouden moeten worden. Met Sn1per gaat alles automatisch. Hoewel ik het gebruik van losse tools geen probleem vind gebruik ik voor de “even snel tussendoor testjes” vaak Sn1per om snel een goed beeld te vormen. Benieuwd wat Sn1per nou exact doet… lees met me mee!
Sn1per is ontwikkeld door 1N3 (xer0dayz) en verzameld open poorten (NMap) en basis recon informatie (zoals. WHOIS, Ping, DNS, etc.) van een target maar doet daarnaast nog zoveel meer. Sn1per gebruikt Google-hackquery’s tegen een doeldomein, Brute forced subdomeinen, verzamelt DNS-informatie en controleert op zonetransfers. Sn1per voert gerichte Metasploit-scan- en exploit modules uit, scant alle webapplicaties op vulnerabilities, brute forced open services, controleert op anonymous FTP en LDAP -toegang, beheert WPScan, Arachni en Nikto voor alle webservices, kijkt naar NFS en somt SSL en TLS codes, protocollen en kwetsbaarheden op. En zelfs na deze opsomming hebben we nog niet alle features van Sn1per besproken.
Sn1per komt in 3 varianten, een Community Edition, een Professional Edition en een Enterprise Edition. De Enterprise Edition is feitelijk hetzelfde dan de Professional Edition met als uitzondering dat je 5 i.p.v. 1 user licentie hebt en dat je 6 i.p.v. 1 maand e-mail support krijgt. Er zit wel veel verschil tussen de Community en de Professional Edition. De Community Edition is voornamelijk CLI based en de Professional Edition heeft een web-interface waarin resultaten bekeken kunnen worden en waarbij scans gebundeld kunnen worden binnen separate projecten. De professionele editie kent daarnaast een mooie CSV reporting optie en de community edition heeft alleen een Tekst-based (HTML) reporting optie. Naast de WebGUI en betere reporting features kent de professionele editie additionele (commerciële) add-ons zoals:
- Command Execution Add-on – Deze add-on is een must bij de Professional editie en zorgt ervoor dat commando’s ook vanuit de webGUI uitgevoerd kunnen worden.
- Fuzzer Add-on – Deze add-on geeft je de mogelijkheid om target sites te fuzzen en om op die manier verborgen content te vinden en om te scannen op de OWASP top 10 vulnerabilities. Op de achtergrond gebruikt de Fuzzer o.a. deze tools: Black Widow, InjectX, SQLMap, Arachni, FFuf, Dirsearch en Gobuster.
- Brute Force Add-on – De Brute Force add-on gebruikt BruteX om targets te scannen op zwakke gebruikersnaam / wachtwoord combinaties door deze te brute forcen. Dit alles kan v.a. de webGUI.
De Professional Edition is een separaat product en functioneert bovenop de Community Edition. De Community Edition is hier te vinden en de Professional Edition is te koop v.a. de XeroSecurity website: https://xerosecurity.com. Als je de Professional Edition aan wilt schaffen incl. alle add-ons ben je +/- 260 euro armer…. Maar daar krijg je wel een prachtig pakket voor terug. Laten we eens kijken wat je allemaal krijgt. Maar eerst gaan we kijken naar de scan-terminologie Sn1per hanteert. In de basis kent Sn1per 7 scan modussen. De bovenste is het snelste en minst “intrusive” ofwel vrij stealthy en de laatste is zeer “intrusive” en dus absoluut niet stealthy en deze duurt ook het langste.
- Fly Over = Snelle multi-threaded scans op hoog niveau van meerdere targets (handig voor het snel verzamelen van gegevens van veel hosts).
- Air Strike – R – OS = Inventariseert snel open poorten en services op meerdere hosts en voert basis fingerprinting uit.
- Stealth – R – BF – OS – FP = Somt snel afzonderlijke doelen op met voornamelijk non-intrusive scans om WAF / IPS-blokkeringen te voorkomen.
- Discover = Ontdekt alle hosts op een subnet / CIDR en produceert een targets.txt-bestand, welke weer kan worden gebruikt in andere scanmodi. Deze modus is ideaal voor interne netwerkscans.
- Normal – R – BF – OS – FP = Voert een basisscan uit van doelen en open poorten met behulp van zowel actieve als passieve controles voor optimale prestaties.
- Web = Voert een normale scan uit met de toevoeging van een volledige webapplicatiescan (alleen poort 80/TCP en 443/TCP). Ideaal voor webapplicaties, maar kan de scantijd aanzienlijk verlengen.
- Nuke – R – BF – OS – FP = : Lanceert een volledige audit (inclusief brute force, volledige poortscan, recon, OSINT en webmodi) van meerdere hosts gespecificeerd in een tekstbestand naar keuze.
De letters achter de scan modus staan voor de additionele (auxiliary) modules die samen met deze modus gebruikt kunnen worden. De Nuke scan modus gebruikt ze allemaal by-default:
- R = Recon > Voert subdomain enumeration en hijacking uit almede WHOIS en DNS-bruteforcing. Ook controleert de Recon mode op e-mailspoofing en voert scans op hoog niveau uit van alle domeinen en zoekt naar public S3-buckets.
- BF = Brute Force > Voert alle mogelijkheden uit.
- OS = OSint > Voert Open Source Intelligence-collection uit op externe doelen met behulp van voornamelijk passieve gegevensverzameling om e-mails, documenten, metadata, enz. te achterhalen. Deze modus voert ook verschillende geautomatiseerde Google-hackquery’s uit om verschillende kwetsbaarheden, interessante hosts en gegevens te vinden. Denk o.a. aan Google Dorks.
- FP = Full Port > Voert een gedetailleerde poortscan uit van een target en slaat de resultaten op in XML.
Binnen Sn1per wordt gewerkt met “workspaces”. Een workspace is simpelweg een directory waar alle bestanden en resultaten van een scan worden opgeslagen.
Laten we eerst de Sn1per Community Edition eens installeren:
Sn1per Installatie
Sn1per is te installeren als package of als Docker container.
De Docker installatie is als volgt:
download https://raw.githubusercontent.com/1N3/Sn1per/master/Dockerfile docker build -t sn1per . docker run -it sn1per /bin/bash |
De package installatie is als volgt:
git clone https://github.com/1N3/Sn1per.git chmod +x install.sh ./install.sh |
De default settings van Sn1per staan na installatie in “/usr/share/sniper/sniper.conf”. Wanneer je deze settings wilt aanpassen kun je het sniper.conf bestand kopiëren naar je homedirectory. Als dit bestand bestaat dan zal Sn1per dit bestand eerst laden tijdens het starten. In dit bestand kun je dus elke waarde aanpassen en Sn1per zal deze gebruiken tijdens het booten:
cp /usr/share/sniper/sniper.conf /root/.sniper.conf |
Sn1per CLI
Om Sn1per (Community Edition) vervolgens te besturen is het zaak om de CLI commando’s te beheersen. Elk commando start met “sniper” gevolgd door flag met settings. De volgende flags worden gebruikt:
- -t = Target
- -m = Scanmodus (stealth – discover – web – airstrike – massportscan – port – nuke)
- -o = OSINT Scan
- -r = Recon Scan
- -w = Workspace
- -p = Poort
- -b = Brute Force
- -f = File to output
- -fp = Full Port Scan
- -u = update
Alle commando’s opvragen doe je uiteraard via de “help” optie:
sniper --help |
Om de status van een scan op te vragen gebruik je:
sniper --status |
En om alle workspaces op te vragen:
sniper --list |
En Sn1per updaten is al net zo makkelijk:
sniper --update |
Een Normal Mode scan starten doe je als volgt:
sniper -t 192.168.1.1 |
Om daar vervolgens de OSINT en Recon modules aan toe te voegen gebruik je:
sniper -t 192.168.1.1 -o -re |
Om een andere scanmodus dan de Normal Mode scan uit te voeren gebruik je de “-m” flag:
sniper -t 192.168.1.1 -m stealth -o -re |
Een webmode scan tegen een specifieke(alternatieve) HTTP poort ziet er als volgt uit:
sniper -t 192.168.1.1 -m webporthttp -p 8080 |
Wanneer je een workspace aan wilt maken of de scan toe wilt voegen aan een bestaande workspace gebruik je de “-w” flag:
sniper -t 192.168.1.1 -m stealth -o -re -w Prive |
Om vervolgens de host weer te verwijderen uit de workspace gebruik je de “delete host” ofwel de “-dh” flag:
sniper -w Prive -t 192.168.1.1 -dh |
Om de hele workspace te verwijderen is de “-d” flag voldoende:
sniper -w Prive -d |
Workspaces incl. loot kunnen ook geëxporteerd worden en vervolgens weer geïmporteerd worden:
sniper -w Prive --export sniper -w Prive --reimport |
Sn1per slaat alle scan resultaten op in folders binnen de gedefinieerde workspace (in /usr/share/sniper/loot/workspace/%workspace%). Een interessante folder hier is de “reports” folder waar de reportresultaten van de scan(s) te vinden zijn:
Nu we de basisprincipes van de Community Edition onder de knie hebben en weten hoe Sn1per onder de motorkap werkt wordt het tijd om de Professional Version te bekijken.
Sn1per Professional Installeren
Om de Sn1per Professional version te installeren is het uiteraard eerst zaak om de licentie te kopen. Daarna is het zaak om deze te verifiëren. Dit doe je met het volgende commando:
curl https://xerosecurity.com/pro/8.0/%LicenseKey%/activation.sh | sudo bash |
Het activatiescript activeert de licentie en installeert de Sn1per Pro software. Daarna prompt het script je nu om een wachtwoord in te vullen voor de “admin” user van de webGUI. Zorg ervoor dat dit een veilig wachtwoord is. Mocht je ooit je wachtwoord willen resetten draai dan het volgende commando:
htdigest -c /etc/htdigest/.htdigest restricted admin |
De webservice is nu geactiveerd en deze luistert standaard op poort 1337. Benader deze dus als volgt:
https://127.0.0.1:1337 |
Na het inloggen (admin + ingestelde wachtwoord) kom je terecht in je dashboard. Dit ziet er als volgt uit:
Zoals je ziet bestaat de Sn1per WebGUI standaard uit een linker en een rechter venster. Het linker venster toont de controle opties en het rechter venster de output. Zo biedt de “Quick Commands” optie in het dashboard de mogelijkheid om een scan uit te voeren (dit is de Command Execution Add On). Vanuit hier kunnen alle scans uitgevoerd worden welke je normaliter in de Community Edition via de terminal uitvoert.
Wanneer de scan wordt uitgevoerd wordt deze in een nieuwe tab geopend alsof dit de terminal is.
Wanneer je de web rapportages bekijkt zul je zien dat de Pro versie ook screenshots laat zien van de gevonden webservices. Wanneer je een host selecteert krijg je de optie om verdere scans uit te voeren en om meteen de resultaten te bekijken die gevonden zijn door eerdere scans op deze host.
Daarnaast krijg je de mogelijkheid om diverse informatieve links te gebruiken op de geselecteerde hosts. Denk aan OSINT tooling, DNS informatie, VirusTotal, Google Dorks etc.
Volledige rapportages kunnen bekeken worden middels de “Full Report” links bij de resultaten. Afhankelijk van het type scan krijg je vervolgens een HTML of CSV export.
Wil je snel een overzichtsrapportage van algemene bevindingen over meerdere hosts? Ook dat is mogelijk door in het overzicht op de “CSV” button te klikken. Je krijgt dan snel een CSV bestand met de eerste algemene bevindingen van alle hosts.
Wat we nu nog kunnen doen om de Sn1per ervaring compleet te maken is het installeren van de 2 add-on modules, de Fuzzer en Brute-Force module. De installatie van deze modules is relatief simpel. Download deze modules en pak de PHP bestanden uit in de volgende directory “/usr/share/sniper/pro/addons/”. Tenslotte herladen we de Sn1per webGUI. Zoals je ziet hebben we nu een aantal additionele opties om te gebruiken. Het mooie van deze plugins is dat alles via de Sn1per Pro interface gebeurt. Dus zowel de aansturing als de uiteindelijk rapportage.
De Brute Force module ziet er als volgt uit:
Om je custom username lists en password lists te gebruiken moet je de directories “usernames” en “passwords” aanmaken in “/usr/share/sniper/wordlists” en hierin je lijsten met gebruikersnamen en wachtwoorden plaatsen.
De Fuzzer module ziet er als volgt uit:
Binnen de Fuzzer module kun je ervoor kiezen om GoBuster, SQLMap, Nikto, Arachni en vele andere tools te gebruiken om een URL lijst wat feitelijk output is van een eerdere Sn1per scan of je kunt zelf 1 specifieke URL opgeven. Ook de fuzz lijsten kun je zelf samenstellen door deze plaatsen in de “/usr/share/sniper/wordlists” directory. Wanneer de Brute Force module of de Fuzzer module klaar is zijn de resultaten samen met alle andere Sn1per resultaten te vinden in het topmenu onder de “Loot” button binnen een workspace.
Sn1per is een fantastische tool voor iedereen die net als de ontwikkelaar geen zin heeft om alle commando’s te onthouden. Het sterkte punt is wat mij betreft de rapportage die je als gebruiker terugkrijgt. “Ja” je kunt deze rapportage zelf maken en “ja” je kunt al deze tools zelf gratis installeren en gebruiken. Maar het is de gecombineerde kracht die deze tool zo efficiënt maakt. Het automatisch exploiten, duidelijke rapportage en snel een krachtige scan kunnen starten en dat eventueel mooi visueel via de Sn1per Pro interface. De 2 add-ons voegen nog wat extra gemak toe zodat je snel een Fuzzer of Brute Force actie op een target kunt uitvoeren. De webinterface van Sn1per Pro is voor mij persoonlijk niet ideaal. Ik gebruik daarom nooit het dubbele venster maar altijd het enkele venster. Dat is voor mij duidelijker. Wat ik oprecht jammer vind is dat output van veel tools onder de “Loot” button te vinden is van een Workspace en niet aanwezig is op de dedicated tab van deze host waar alleen de reports te vinden zijn. Alle informatie is aanwezig… maar soms moet je een beetje zoeken. De Pro licentie vervalt niet en dat is wat de kosten rechtvaardigt. Als dit een jaarlijkse licentie was geweest had ik hem persoonlijk aan de dure kant gevonden (misschien omdat ik het leuk vind om met separate tools te “spelen”). Maar de perpetual license geeft je pentest box wel een fantastische tool erbij om altijd te kunnen gebruiken en om snel veel inzicht te krijgen in een box. Dus als je regelmatig pentesten uitvoert of “Capture-the-Flags” speelt dan is Sn1per een fantastische toevoeging!
Hopelijk heb ik je met deze post wat inzicht kunnen geven in de Community Edition en de Pro Edition van Sn1per zodat je zelf kunt bepalen of de tool voor jou geschikt is en of je centjes wilt uitgeven aan wat “extra power”! Vond je deze post interessant of heb ik je kunnen helpen bij je keuze dan zou het fantastisch zijn als je mij een klein beetje wilt helpen! Deze licenties krijg ik ook niet gratis en deze artikelen schrijven zich zeker ook niet vanzelf. Ik doe het graag… maar alles is beter “with a little help from friends”! Dus als je het kunt veroorloven doneer dan s.v.p. een klein bedrag! Maar ik wordt ook erg blij van een “share” op je eigen website of social media, een like of op een andere manier een leuk berichtje. Dat zou fantastisch zijn…. ★★★ Super bedankt! ★★★