Wprowadzenie
W przeszłości wiele popularnych stron internetowych zostało zhakowanych. Hakerzy są aktywni i zawsze próbują włamać się na strony internetowe i wyciekać dane. Dlatego właśnie testowanie bezpieczeństwa aplikacji internetowych jest bardzo ważne. I to jest właśnie miejsce, w którym skanery bezpieczeństwa aplikacji internetowych wchodzą do gry.
Skaner bezpieczeństwa aplikacji internetowych jest programem, który przeprowadza automatyczne testy black-box na aplikacjach internetowych i identyfikuje luki w zabezpieczeniach. Skanery nie mają dostępu do kodu źródłowego; wykonują jedynie testy funkcjonalne i próbują znaleźć luki w zabezpieczeniach. Dostępne są różne płatne i darmowe skanery podatności aplikacji internetowych.
W tym poście wymieniamy najlepsze darmowe skanery podatności aplikacji webowych z otwartym kodem źródłowym. Dodaję te narzędzia w przypadkowej kolejności, więc proszę nie myśleć, że jest to ranking narzędzi.
Dodaję tylko narzędzia open-source, które mogą być użyte do znalezienia luk bezpieczeństwa w aplikacjach internetowych. Nie dodaję narzędzi do znajdowania luk w zabezpieczeniach serwerów. I nie należy mylić darmowych narzędzi z narzędziami open-source! Istnieją różne inne narzędzia dostępne za darmo, ale nie udostępniają one kodu źródłowego innym programistom. Narzędzia open-source to takie, które oferują kody źródłowe programistom, aby mogli oni modyfikować narzędzie lub pomagać w jego dalszym rozwoju.
To są najlepsze narzędzia open-source do testów penetracyjnych aplikacji internetowych.
Grabber
Grabber jest skanerem aplikacji internetowych, który może wykryć wiele luk bezpieczeństwa w aplikacjach internetowych. Wykonuje skanowanie i informuje, gdzie występuje dana luka. Może wykryć następujące podatności:
- Cross-site scripting
- Wstrzyknięcie bazy danych
- Testy Ajaxowe
- Załączenie pliku
- JS source code analyzer
- Sprawdzanie plików kopii zapasowej
Nie jest szybki w porównaniu do innych skanerów bezpieczeństwa, ale jest prosty i przenośny. Powinien być używany tylko do testowania małych aplikacji internetowych, ponieważ skanowanie dużych aplikacji zajmuje zbyt dużo czasu.
To narzędzie nie oferuje żadnego interfejsu GUI. Nie może również tworzyć raportów PDF. Narzędzie to zostało zaprojektowane jako proste i do użytku osobistego. Jeśli myślisz o nim do użytku profesjonalnego, nie będę go polecał.
To narzędzie zostało stworzone w Pythonie i wersja wykonywalna jest również dostępna, jeśli chcesz. Kod źródłowy jest dostępny, więc możesz go modyfikować zgodnie z własnymi potrzebami. Głównym skryptem jest grabber.py, który po uruchomieniu wywołuje inne moduły, takie jak sql.py, xss.py i inne.
Ściągnij go tutaj.
Kod źródłowy na GitHub.
Vega
Vega to kolejny darmowy skaner podatności i platforma do testowania stron internetowych o otwartym kodzie źródłowym. Dzięki temu narzędziu można przeprowadzić testy bezpieczeństwa aplikacji internetowej. Narzędzie to jest napisane w Javie i oferuje środowisko oparte na GUI. Jest dostępne dla systemów OS X, Linux i Windows.
Może być użyte do znalezienia błędów w SQL injection, header injection, directory listing, shell injection, cross-site scripting, file inclusion i innych luk w aplikacjach internetowych. Narzędzie to można również rozszerzyć za pomocą potężnego API napisanego w JavaScript.
Podczas pracy z narzędziem pozwala ono na ustawienie kilku preferencji, takich jak całkowita liczba potomków ścieżki, liczba ścieżek dzieci węzła oraz głębokość i maksymalna liczba żądań na sekundę. Możesz użyć Vega Scanner, Vega Proxy i Proxy Scanner, a także skanować z poświadczeniami. Jeśli potrzebujesz pomocy, możesz znaleźć zasoby w sekcji dokumentacji:
Dokumentacja jest tutaj.
Ściągnij Vegę tutaj.
Zed Attack Proxy
Zed Attack Proxy jest również znany jako ZAP. To narzędzie jest open-source’owe i zostało opracowane przez OWASP. Jest dostępne dla platform Windows, Unix/Linux i Macintosh.
Ja osobiście lubię to narzędzie. Może być użyte do znalezienia szerokiego zakresu podatności w aplikacjach webowych. Narzędzie jest bardzo proste i łatwe w użyciu. Nawet jeśli jesteś początkujący w testowaniu penetracyjnym, możesz łatwo użyć tego narzędzia do rozpoczęcia nauki testowania penetracyjnego aplikacji internetowych.
To są kluczowe funkcjonalności ZAP:
- Intercepting proxy
- Automatyczny skaner
- Tradycyjne… ale potężne pająki
- Fuzzer
- Web socket support
- Plug-n-hack support
- Wsparcie uwierzytelniania
- REST-based API
- Dynamiczne certyfikaty SSL
- Obsługa karty i certyfikatów cyfrowych klienta
Możesz użyć tego narzędzia jako skanera, wprowadzając adres URL do wykonania skanowania, lub możesz użyć tego narzędzia jako przechwytującego proxy do ręcznego wykonania testów na określonych stronach.
Ściągnij ZAP tutaj.
Wapiti
Wapiti jest skanerem podatności sieciowych, który pozwala na audyt bezpieczeństwa Twoich aplikacji internetowych. Przeprowadza on testy black-box skanując strony internetowe i wstrzykując dane. Próbuje wstrzyknąć ładunek i sprawdzić, czy skrypt jest podatny na ataki. Obsługuje zarówno ataki GET jak i POSTHTTP oraz wykrywa wiele luk.
Może wykryć następujące podatności:
- Ujawnienie plików
- Włączenie plików
- Cross-site scripting (XSS)
- Wykrywanie wykonania poleceń
- Wstrzyknięcie CRLF
- Wstrzyknięcie SEL i XPath
- Słaba konfiguracja .htaccess
- Ujawnienie pliku backup
- Wiele innych
Wapiti jest aplikacją działającą w linii poleceń, więc może nie być łatwa dla początkujących. Ale dla ekspertów, będzie działać dobrze. Aby używać tego narzędzia musisz nauczyć się wielu komend, które można znaleźć w oficjalnej dokumentacji.
Ściągnij Wapiti z kodem źródłowym tutaj.
W3af
W3af jest popularnym frameworkiem do atakowania i audytowania aplikacji internetowych. Ten framework ma na celu zapewnienie lepszej platformy do testów penetracyjnych aplikacji internetowych. Został on opracowany przy użyciu Pythona. Używając tego narzędzia, będziesz w stanie zidentyfikować ponad 200 rodzajów podatności aplikacji internetowych, w tym SQL injection, cross-site scripting i wiele innych.
W3af posiada interfejs graficzny i konsolowy. Możesz go łatwo używać dzięki prostemu interfejsowi.
Jeśli używasz go z interfejsem graficznym, nie sądzę, abyś napotkał jakiekolwiek problemy z tym narzędziem. Wystarczy tylko wybrać opcje, a następnie uruchomić skaner. Jeśli strona wymaga uwierzytelnienia, możesz również użyć modułów uwierzytelniających do skanowania stron chronionych sesją.
Objęliśmy już to narzędzie szczegółowo w naszej poprzedniej serii W3af walkthrough. Możesz przeczytać tamte artykuły, aby dowiedzieć się więcej o tym narzędziu.
Możesz uzyskać dostęp do kodu źródłowego w repozytorium GitHub tutaj.
Pobierz go z oficjalnej strony tutaj.
WebScarab
WebScarab jest opartym na Javie frameworkiem bezpieczeństwa do analizowania aplikacji internetowych używających protokołu HTTP lub HTTPS. Dzięki dostępnym wtyczkom można rozszerzyć funkcjonalność narzędzia.
Narzędzie to działa jak przechwytujące proxy; możesz przeglądać żądania i odpowiedzi przychodzące do Twojej przeglądarki i wychodzące do serwera. Możesz również modyfikować żądania lub odpowiedzi zanim zostaną odebrane przez serwer lub przeglądarkę.
Jeśli jesteś początkujący, to narzędzie nie jest dla Ciebie. To narzędzie zostało zaprojektowane dla tych, którzy dobrze rozumieją protokół HTTP i potrafią pisać kody.
WebScarab oferuje wiele funkcji, które pomagają testerom penetracyjnym pracować blisko aplikacji internetowej i znajdować luki w zabezpieczeniach. Posiada pająka, który może automatycznie znaleźć nowe adresy URL docelowej strony internetowej. Może łatwo wyodrębnić skrypty i HTML strony. Proxy obserwuje ruch między serwerem a przeglądarką, a Ty możesz przejąć kontrolę nad żądaniem i odpowiedzią za pomocą dostępnych wtyczek. Dostępne moduły mogą łatwo wykryć większość typowych luk w zabezpieczeniach, takich jak SQL injection, XSS, CRLF i wiele innych.
Kod źródłowy narzędzia jest dostępny na GitHubie tutaj.
Ściągnij WebScarab tutaj.
Skipfish
Skipfish to kolejne fajne narzędzie do zabezpieczania aplikacji internetowych. Przeszukuje on witrynę, a następnie sprawdza każdą stronę pod kątem różnych zagrożeń bezpieczeństwa. Na koniec przygotowuje raport końcowy.
To narzędzie zostało napisane w C. Jest wysoce zoptymalizowane pod kątem obsługi HTTP i wykorzystuje minimalną ilość CPU. Twierdzi, że może z łatwością obsłużyć 2000 żądań na sekundę bez obciążania procesora. Wykorzystuje heurystykę podczas przeszukiwania i testowania stron internetowych i twierdzi, że oferuje wysoką jakość i mniej fałszywych pozytywów.
Narzędzie to jest dostępne dla systemów Linux, FreeBSD, MacOS X i Windows.
Ściągnij Skipfisha lub kod z Google Codes tutaj.
Ratproxy
Ratproxy jest narzędziem open-source do audytu bezpieczeństwa aplikacji internetowych, które może być użyte do znalezienia luk bezpieczeństwa w aplikacjach internetowych. Obsługuje środowiska Linux, FreeBSD, MacOS X i Windows (Cygwin).
Narzędzie to zostało zaprojektowane w celu przezwyciężenia problemów, jakie użytkownicy zwykle napotykają podczas używania innych narzędzi proxy do audytu bezpieczeństwa. Jest w stanie rozróżnić arkusze stylów CSS i kody JavaScript. Wspiera również atak SSL man-in-the-middle, co oznacza, że możesz również zobaczyć dane przechodzące przez SSL.
Więcej o tym narzędziu możesz przeczytać tutaj.
Ściągnij je tutaj.
SQLMap
SQLMap jest kolejnym popularnym narzędziem open-source do testów penetracyjnych. Automatyzuje proces znajdowania i wykorzystywania luk w SQL injection w bazie danych witryny. Posiada potężny silnik detekcji oraz wiele przydatnych funkcji. Dzięki temu tester penetracyjny może w prosty sposób przeprowadzić kontrolę SQL injection na stronie internetowej.
Obsługuje szereg serwerów baz danych, w tym MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase i SAP MaxDB. Oferuje pełne wsparcie dla sześciu rodzajów technik wstrzykiwania kodu SQL: time-based blind, Boolean-based blind, error-based, UNION query, stacked queries i out-of-band.
Dostęp do kodu źródłowego na GitHubie tutaj.
Ściągnij SQLMap tutaj.
Wfuzz
Wfuzz to kolejne dostępne za darmo narzędzie open-source do testów penetracyjnych aplikacji internetowych. Może być używany do brute-force’owania parametrów GET i POST w celu testowania różnych rodzajów iniekcji, takich jak SQL, XSS, LDAP i wiele innych. Obsługuje również cookie fuzzing, wielowątkowość, SOCK, proxy, uwierzytelnianie, brute-forcing parametrów, wiele proxy i wiele innych rzeczy.
Narzędzie to nie oferuje interfejsu GUI, więc będziesz musiał pracować na interfejsie wiersza poleceń.
Możesz przeczytać więcej o cechach narzędzia tutaj.
Ściągnij Wfuzz z code.google.com tutaj.
Grendel-Scan
Grendel-Scan jest kolejnym ładnym narzędziem open-source do zabezpieczania aplikacji internetowych. Jest to automatyczne narzędzie do wyszukiwania luk bezpieczeństwa w aplikacjach internetowych. Wiele funkcji jest również dostępnych dla ręcznych testów penetracyjnych. Narzędzie jest dostępne dla Windows, Linux i Macintosh i zostało stworzone w Javie.
Ściągnij narzędzie i kod źródłowy tutaj.
Watcher
Watcher jest pasywnym skanerem bezpieczeństwa. Nie atakuje za pomocą mnóstwa żądań ani nie przeszukuje docelowej witryny. Nie jest to osobne narzędzie, ale dodatek do Fiddlera, więc musisz najpierw zainstalować Fiddlera, a następnie zainstalować Watchera, aby móc z niego korzystać.
Po cichu analizuje żądania i odpowiedzi z interakcji użytkownika, a następnie sporządza raport na temat aplikacji. Ponieważ jest to skaner pasywny, nie będzie miał wpływu na hosting strony ani na infrastrukturę chmury.
Ściągnij Watchera i jego kod źródłowy tutaj.
X5S
X5S jest również dodatkiem do Fiddlera, którego celem jest zapewnienie sposobu na znalezienie luk w zabezpieczeniach przed skryptami sieciowymi. Nie jest to narzędzie automatyczne, więc przed jego użyciem należy zrozumieć, jak problemy z kodowaniem mogą prowadzić do XSS. Musisz ręcznie znaleźć punkt wstrzyknięcia, a następnie sprawdzić, gdzie w aplikacji może znajdować się XSS.
Objęliśmy X5S w poprzednim poście. Możesz odnieść się do tego artykułu, aby przeczytać więcej o X5S i XSS.
Ściągnij X5S i kod źródłowy z Codeplex tutaj.
Możesz również odnieść się do tego oficjalnego przewodnika, aby dowiedzieć się jak używać X5S.
Arachni
Arachni jest narzędziem open-source stworzonym w celu zapewnienia środowiska do testów penetracyjnych. Narzędzie to może wykrywać różne luki w bezpieczeństwie aplikacji internetowych. Może wykryć różne podatności takie jak SQL injection, XSS, lokalne dołączanie plików, zdalne dołączanie plików, niezatwierdzone przekierowania i wiele innych.
Ściągnij to narzędzie tutaj.
Słowo końcowe
To są najlepsze narzędzia open-source do testowania bezpieczeństwa aplikacji internetowych. Starałem się jak mogłem, aby wymienić wszystkie narzędzia dostępne online. Jeśli narzędzie nie było aktualizowane przez wiele lat, nie wspomniałem o nim tutaj; jest to spowodowane tym, że jeśli narzędzie ma więcej niż 10 lat, może powodować problemy z kompatybilnością w najnowszym środowisku.
Jeśli jesteś programistą, możesz również dołączyć do społeczności programistów tych narzędzi i pomóc im się rozwijać. Pomagając tym narzędziom, zwiększysz również swoją wiedzę i doświadczenie.
Jeśli chcesz rozpocząć testy penetracyjne, polecam używanie dystrybucji Linuksa, które zostały stworzone do testów penetracyjnych. Te środowiska to Backtrack, Gnacktrack, Backbox i BlackBuntu. Wszystkie te narzędzia posiadają różne darmowe i open-source’owe narzędzia do testowania penetracyjnego stron internetowych.