Een tijd geleden heb ik al geschreven over , maar het was een beetje schaars en chaotisch. Daarna besloot ik de lijst met tools in de review uit te breiden, structuren aan het artikel toe te voegen, en rekening te houden met de kritiek (dank aan voor de adviezen) en heb ik het ingediend voor de wedstrijd op SekLab (en gepubliceerd , maar om begrijpelijke redenen heeft niemand het gezien). De wedstrijd is voorbij, de resultaten zijn bekendgemaakt en ik kan het (artikel) met een schoon geweten op Habr publiceren.
Gratis pentestingtools voor webapplicaties
In dit artikel bespreek ik de meest populaire tools voor pentesting (penetratietests) van webapplicaties volgens de ‘black box’-strategie.
Daarvoor bekijken we de hulpprogramma's die helpen bij deze vorm van testen. We zullen de volgende productcategorieën bekijken:
- Netwerkscanners
- Scanners voor kwetsbaarheden in webscripts
- Exploiting
- Injections automatiseren
- Debuggers (sniffers, lokale proxies, enz.)
Sommige producten hebben een universeel ‘karakter’, daarom zal ik ze toewijzen aan die categorie waarvoor ze degroter publiek.beste resultaten behalen (subjectieve mening).
Netwerkscanners.
De belangrijkste taak is om beschikbare netwerkservices te onthullen, hun versies vast te stellen, het besturingssysteem te bepalen, enz.
Nmap
is een gratis open-source hulpprogramma voor netwerkanalyses en audits van de beveiliging van systemen. Fanatieke tegenstanders van de console kunnen Zenmap gebruiken, dit is de GUI voor Nmap.
Het is niet zomaar een ‘slimme’ scanner; het is een serieus uitbreidbaar hulpmiddel (een van de ‘bijzondere functies’ is een script om een node te controleren op de aanwezigheid van de worm ‘’ (genoemd ). Typisch voorbeeld van gebruik:
nmap -A -T4 localhost
-A voor het bepalen van het besturingssysteem, scannen met behulp van scripts en traceroute
-T4 voor tijdsbeheerinstelling (meer = sneller, van 0 tot 5)
localhost – het doelhost
Wil je iets sterker?
nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost
Dit is een set opties uit het profiel ‘langzame uitgebreide scan’ in Zenmap. Dit duurt behoorlijk lang, maar het levert uiteindelijk meer gedetailleerde informatie op over het doel systeem. , als je dieper wilt ingaan, en ik raad ook de vertaling aan van het artikel .
Nmap heeft de status ‘Security Product of the Year’ gekregen van tijdschriften en gemeenschappen zoals Linux Journal, Info World, LinuxQuestions.Org en Codetalker Digest.
Een interessant feit is dat Nmap te zien is in de films 'Matrix: Reloaded', 'Die Hard 4', 'The Bourne Ultimatum', 'Hadji Murat' en .
IP-Tools
— een soort verzameling van verschillende netwerktools, geleverd met een GUI, 'gericht' op Windows-gebruikers.
Poortscanner, voor gedeelde bronnen (gedeelde printers/mappen), WhoIs/Finger/Lookup, telnet-client en nog veel meer. Eenvoudig een handige, snelle, functionele tool.
Het heeft geen zin om de andere producten te bekijken, aangezien er veel tools in dit domein zijn die allemaal een vergelijkbaar werkingsprincipe en functionaliteit hebben. Toch blijft nmap de meest gebruikte.
Scanners voor kwetsbaarheden in webscripts
Men probeert populaire kwetsbaarheden (SQL inj, XSS, LFI/RFI, enz.) of fouten (niet-verwijderde tijdelijke bestanden, directory-indexering, enz.) te vinden.
Acunetix Web Vulnerability Scanner
— op de link is duidelijk te zien dat dit een XSS-scanner is, maar dat is niet helemaal waar. De gratis versie, beschikbaar via de link, biedt behoorlijk veel functionaliteit. Gewoonlijk is iemand die deze scanner voor het eerst uitvoert en voor het eerst een rapport over zijn resource ontvangt, enigszins geschokt, en je zult begrijpen waarom als je dit doet. Het is een zeer krachtig product voor het analyseren van allerlei kwetsbaarheden op een site en werkt niet alleen met de gebruikelijke sites op PHP, maar ook in andere talen (hoewel de differentiatie in taal geen indicatie is). Het heeft geen zin om de instructies te beschrijven, omdat de scanner eenvoudigweg de acties van de gebruiker 'opneemt'. Iets vergelijkbaars met 'volgende, volgende, volgende, klaar' in een typische installatie van software.
Nikto
is een open source (GPL) webscanner. Het elimineert routinematige handmatige arbeid. Het zoekt op de doelwebsite naar niet-verwijderde scripts (zoals test.php, index_.php, enz.), databasebeheer tools (/phpmyadmin/, /pma en soortgelijke) en dergelijke, met andere woorden, het controleert de resource op de meest voorkomende fouten die meestal door menselijke factoren ontstaan.
Bovendien, als het een populair script vindt, controleert het op uitgekomen exploits (die in de database staan).
Het meldt beschikbare 'ongewenste' methoden, zoals PUT en TRACE.
Enzovoort. Zeer handig als je als auditor werkt en elke dag websites analyseert.
Een nadeel dat ik wil noemen, is het hoge percentage valse alarmen. Bijvoorbeeld, als uw website in plaats van een 404-fout (wanneer deze zou moeten optreden) altijd de hoofdpagina toont, dan zal de scanner zeggen dat er op uw website alle scripts en alle kwetsbaarheden uit zijn database aanwezig zijn. In de praktijk komt dit niet zo vaak voor, maar feit is dat veel afhangt van de structuur van uw website.
Traditioneel gebruik:
.\/nikto.pl -host localhost
Als u op de website moet inloggen, kunt u een cookie instellen in het bestand nikto.conf, variabele STATIC-COOKIE.
Wikto
— Nikto voor Windows, maar met enkele aanvullingen, zoals 'fuzzy' logica bij het controleren van de code op fouten, gebruik van GHDB, het verkrijgen van links en mappen van de bron, real-time monitoring van HTTP-verzoeken/antwoorden. Wikto is geschreven in C# en vereist de .NET-framework.
skipfish
— een webkwetsbaarheidsscanner van (bekend onder de bijnaam lcamtuf). Het is geschreven in C, platformonafhankelijk (voor Windows heeft u Cygwin nodig). Het doorloopt de hele site recursief (en heel langzaam, van ongeveer 20-40 uur, hoewel het de laatste keer 96 uur heeft gewerkt) en vindt allerlei beveiligingslekken. Het genereert ook heel veel verkeer (een paar GB binnenkomend/uitgaand). Maar alle middelen zijn goed, vooral als er tijd en middelen zijn.
Typisch gebruik:
./skipfish -o /home/reports www.example.com
In de map 'reports' zal een rapport in HTML worden aangemaakt, .
w3af 
— Web Application Attack and Audit Framework, een open-source webkwetsbaarheidsscanner. Het heeft een GUI, maar u kunt ook vanuit de console werken. Sterker nog, het is een framework met .
Je kunt eindeloos praten over de voordelen, maar het is beter om het zelf uit te proberen :)
Typisch werken met hem houdt in dat je een profiel kiest, het doel opgeeft en het eenvoudigweg start.
Mantra Security Framework
is een droom die uitkwam. Een collectie vrije en open tools voor informatiebeveiliging, geïntegreerd in de webbrowser.
Zeer nuttig tijdens het testen van webapplicaties in alle fasen.
Het gebruik houdt in dat u de browser instelt en opstart.
In feite zijn er heel veel hulpmiddelen in deze categorie en het is vrij moeilijk om een specifieke lijst op te stellen. Meestal bepaalt elke pentester zelf de set benodigde tools.
Exploiting
Voor een geautomatiseerd en gemakkelijker gebruik van kwetsbaarheden in software en scripts worden exploits geschreven die alleen parameters hoeven te ontvangen om een beveiligingslek te gebruiken. Er zijn ook producten die het handmatig zoeken naar exploits overbodig maken en die ze 'on the fly' toepassen. Over deze categorie gaat het nu.
Metasploit Framework 
— een ware monster in ons vak. Het kan zoveel dat de handleiding wel uit meerdere artikelen zal bestaan. We zullen de automatische exploitatie bespreken (nmap + metasploit). Het idee is als volgt: Nmap analyseert de juiste poort en installeert de service, terwijl Metasploit probeert exploits toe te passen, afhankelijk van de serviceklasse (ftp, ssh, enz.). In plaats van een tekstuele handleiding zal ik een video invoegen die behoorlijk populair is over het onderwerp autopwn.

We kunnen ook gewoon de werking van de benodigde exploit automatiseren. Bijvoorbeeld:
msf > gebruik auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > stel RHOST in op [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > voer uit
De mogelijkheden van dit framework zijn in feite zeer uitgebreid, dus als je dieper wilt duiken, ga dan naar
Armitage
— een OVA van het cyberpunk-gemaakt GUI voor Metasploit. Visualiseert het doel, raadt exploits aan en biedt uitgebreide mogelijkheden van dit framework. Kortom, voor degenen die houden van een mooie en indrukwekkende uitstraling.
Screencast:

Tenable Nessus®
— kan zeer veel, maar wij hebben slechts een functie nodig — het bepalen van welke services exploits hebben. De gratis versie van het product is 'home only'.
Wanneer we een opmerking aan een commit schrijven (ongeacht welke tool we hiervoor gebruiken om met git te werken), kunnen we de naam van de taken in tekstvorm toevoegen (zonder aanhalingstekens of speciale symbolen zoals @).
- Gedownload (voor jouw systeem), geïnstalleerd, geregistreerd (de sleutel komt per e-mail).
- De server gestart, gebruiker toegevoegd aan de Nessus Server Manager (knop Beheer gebruikers).
- Ga naar het adres
https://localhost:8834/
en krijg de flash-client in de browser.
- Scans -> Toevoegen -> vul de velden in (kies het geschikte scanprofiel) en druk op Scan.
Na enige tijd verschijnt het scanrapport in het tabblad Rapporten.
Om de praktische kwetsbaarheid van services voor exploits te controleren, kun je het eerder beschreven Metasploit Framework gebruiken of proberen een exploit te vinden (bijvoorbeeld op , , enzovoort) en deze handmatig te gebruiken tegen je systeem.
IMHO: te omslachtig. Ik heb het genoemd als één van de leiders in deze richting in de software-industrie.
Automatisering van injecties.
Veel webapplicatiebeveiligingsscanners zoeken naar injecties, maar ze zijn in wezen algemene scanners. Er zijn echter tools die specifiek gericht zijn op het vinden en exploiteren van injecties. Dit is waar we het nu over zullen hebben.
sqlmap
— open-source tool voor het zoeken naar en exploiteren van SQL-injecties. Ondersteunt databaseservers zoals: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Typisch gebruik komt neer op de regel:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Er zijn voldoende handleidingen beschikbaar, ook in het Russisch. De software vergemakkelijkt het werk van de pentester aanzienlijk bij dit onderwerp.
Ik voeg een officiële video demonstratie toe:

bsqlbf-v2
— script in Perl, brute-forcer voor "blinde" SQL-injecties. Werkt zowel met integer waarden in de URL als met string waarden.
Ondersteunt databases:
- MS-SQL
- MySQL
- PostgreSQL
- Oracle
Voorbeeld van gebruik:
./bsqlbf-v2-3.pl -url www.somehost.com/blah.php?u=5 -blind u -sql "select table_name from information_schema.tables limit 1 offset 0" -database 1 -type 1
-url — Link met parameters
-blind u — parameter voor injectie (standaard wordt de laatste uit de adresregel genomen)
-sql "select table_name from information_schema.tables limit 1 offset 0" — onze willekeurige query naar de database
-database 1 — database server: MSSQL
-type 1 — type aanval, "blinde" injectie, gebaseerd op True en Error (bijvoorbeeld syntactische fouten) antwoorden
Debuggers
Deze tools worden vooral gebruikt door ontwikkelaars bij problemen met de uitvoer van hun code. Maar dit is ook nuttig bij pentesten, wanneer we de gewenste gegevens "on-the-fly" kunnen manipuleren, en analyseren wat er als antwoord komt op onze invoerparameters (bijvoorbeeld tijdens fuzzing), etc.
Burp Suite
— set van tools die helpen bij penetratietests. Er is een goede review beschikbaar in het netwerk De gratis versie omvat:
Burp Proxy — lokale proxy, stelt in staat om al gevormde verzoeken van de browser te wijzigen
- Burp Spider — spider, zoekt naar bestaande bestanden en directories
- Burp Repeater — handmatige verzending van HTTP-verzoeken
- Burp Sequencer — analyse van willekeurige waarden in formulieren
- Burp Decoder — standaard encoder-decoder (html, base64, hex, enz.), waarvan er duizenden zijn die je snel in een programmeertaal kunt schrijven
- Burp Comparer — component voor het vergelijken van teksten
- In principe lost dit pakket vrijwel alle taken op die met dit gebied te maken hebben.
Fiddler
— Fiddler
Fiddler is a debugging proxy that logs all HTTP(S) traffic. It allows you to inspect this traffic, set breakpoints, and 'play' with incoming or outgoing data.
There are also , a monster and others, the choice is up to the user.
Conclusie
Naturally, every pentester has their own arsenal and set of tools, as there are just so many. I have tried to provide some of the most convenient and popular ones. However, to ensure that anyone can also learn about other utilities in this field, I will provide links below.
Various tops/lists of scanners and utilities
- .
Linux distributions that already include a variety of pentesting utilities
upd: in Russian from the 'Hack4Sec' team (added )
P.S. One cannot overlook XSpider. It is not part of the review, even though it is conditionally free (I found out when I submitted the article to SecLab, specifically because of this (not knowing, and also not having the latest version 7.8) and did not include it in the article). In theory, a review of it was planned (I have tough tests prepared for it), but I do not know if the world will see it.
P.P.S. Some material from this article will be used for its intended purpose in an upcoming report at 2012 in the QA section, which will cover tools not mentioned here (free ones, of course), as well as the algorithm for what to use in what order, what results to expect, what configurations to use, and various hints and tricks in working (I have been contemplating the report almost every day, I will try to share the best from my perspective on the topic)
By the way, there was a session on this article at Open InfoSec Days (, ), you can rob caravans take a look at .
Bron: habr.com
