DIRB – skaner treści

Bezpieczeństwo

 242 

W serii wpisów o testach bezpieczeństwa i pentestach przyszedł czas na DIRB skaner treści. Jeżeli chcesz zacząć przygodę z Kali Linux, to zapraszam do wcześniejszego wpisu przygotowanie środowiska.

Chcąc sprawnie poruszać się po środowisku Linuxowym, zachęcam Cię też to podejrzenia komendami z consoli w systemie Linux. 
Jeżeli potrzebujesz projekt DIRB to jest on dostępny w sieci. 

DIRB zawiera zestaw wstępnie skonfigurowanych list słów, które są łatwe w użyciu. Jeżeli chcesz to możesz używać własnej listy słów. Czasami DIRB może być również używany jako klasyczny skaner CGI, ale pamiętaj, że jest to skaner treści, a nie skaner luk w zabezpieczeniach.

Jak odpalić narzędzie i jak z niego korzystać? Włącz usługę Kali Linux i wejdź do consoli a następnie wpisz dirb.

Kilka słów teorii.

Zgodnie z tym co widzimy na screenie, dirb ma dobry opis by móc zacząć z niego korzystać. Poniżej lista komend, którą prezentuje nam przedmiotowe narzędzie.

======================== HOTKEYS ========================
'n' -> Go to next directory.
'q' -> Stop scan. (Saving state for resume)
'r' -> Remaining scan stats.

======================== OPTIONS ========================
-a <agent_string> : Specify your custom USER_AGENT.
-b : Use path as is.
-c <cookie_string> : Set a cookie for the HTTP request.
-E <certificate> : path to the client certificate.
-f : Fine tunning of NOT_FOUND (404) detection.
-H <header_string> : Add a custom header to the HTTP request.
-i : Use case-insensitive search.
-l : Print "Location" header when found.
-N <nf_code>: Ignore responses with this HTTP code.
-o <output_file> : Save output to disk.
-p <proxy[:port]> : Use this proxy. (Default port is 1080)
-P <proxy_username:proxy_password> : Proxy Authentication.
-r : Don't search recursively.
-R : Interactive recursion. (Asks for each directory)
-S : Silent Mode. Don't show tested words. (For dumb terminals)
-t : Don't force an ending '/' on URLs.
-u <username:password> : HTTP Authentication.
-v : Show also NOT_FOUND pages.
-w : Don't stop on WARNING messages.
-X <extensions> / -x <exts_file> : Append each word with this extensions.
-z <millisecs> : Add a milliseconds delay to not cause excessive Flood.

dirb <url_base> [<wordlist_file(s)>] [options]

========================= NOTES =========================
<url_base> : Base URL to scan. (Use -resume for session resuming)
<wordlist_file(s)> : List of wordfiles. (wordfile1,wordfile2,wordfile3...)

======================== EXAMPLES =======================
1) dirb http://url/directory/ (Simple Test)
2) dirb http://url/ -X .html (Test files with '.html' extension)
3) dirb http://url/ /usr/share/dirb/wordlists/vulns/apache.txt (Test with apache.txt wordlist)
4) dirb https://secure_url/ (Simple Test with SSL)

Zaczniemy coś w praktyce.

Poproszę jedynie by skanować własne strony www, czy też korzystać z narzędzia w ramach Waszej pracy. Chcą dokonywać skanów musicie zawsze pamiętać o wpisaniu http lub https, gdyż w przeciwnym wypadku dostaniecie informację o takiej konieczności:

Chcą dokonać pierwszego skanu wpisz:

dirb https://www.AdresTwojejStrony.pl 

lub jeżeli chcesz wskazać lokalizację słownika:

dirb https://www.AdresTwojejStrony.pl usr/share/wordlists/dirb/common.txt

Teraz jedynie oczekuj na wyniki i linków jakie wygeneruje Ci aplikacja.

Wordlista

Podstawowa lista słów znajdująca się w pliku common.txt, to nie jest jedyne źródło z którego możemy korzystać. Wystarczy przejść do katalogu gdzie znajduje się lista słów sr/share/wordlists/dirb/ i możemy zauważyć większą liczbę plików tekstowych.

Jak się domyślacie, można również samodzielnie tworzyć swoje listy słów, wg schematu opisanego w poszczególnych plikach. W sieci jest też sporo miejsc gdzie możemy znaleźć alternatywne słowniki dla tego narzędzia. 

Zapisywanie wyników skanu.

Jasnym jest, że prowadząc skany nie będziemy potem przeglądać w consoli w nieskończoność, czy kopiować wyników z okna dialogowego. Ewentualnie nie zamykać sesji skanu by zachować wyniki. Jeżeli chcesz zapisać wyniki w pliku tekstowym wystarczy rozszerzyć polecenie dla narzędzia poprzez dodanie -o “lokalizacja pliku/Nazwa.txt”:

dirb https://www.AdresTwojejStrony.pl -o Desktop/nazwaTwojegoPliku.txt

Pomijanie niepożądanych elementów

W trakcie skanu, możemy otrzymać bardzo wiele elementów, które będą dla nas zbędne. Dla przykładu mogą nas nie interesować adresy url, które posiadają status 301 czy 302. Więcej o statusach http

Wystarczy, skorzystać z polecenia

 dirb https://www.AdresTwojejStrony.pl -N 302

(lub każdy inny status, który chcesz wykluczyć)

Chcesz zobaczyć strony ze statusami 404? DIRB defaultowo pomija takie wyniki wyszukiwania. Pamiętaj by otrzymać takie strony wystarczy dodać parametr -v.

dirb https://www.AdresTwojejStrony.pl -v

Znajdowanie konkretnych typów w trakcie skanu

W trakcie skanu DIRBem możesz mieć konieczność przeszukiwania i odnajdowania konkretnych elementów. Do takich czynności niezbędne są parametry -H i -X.

W consoli wpisz:

dirb https://www.AdresTwojejStrony.pl -H .php 

by odnaleźć wszystkie pliki i katalogi wraz z nazwą php.

dirb https://www.AdresTwojejStrony.pl -X .php 

aby wyszukać pliki lub katalogi z takim rozszerzeniem.

Opóźnienie działania dirba.

Zdarza się, że tworząc skany napotykamy na środowisko, które nie jest w stanie obsłużyć skanów dirba. Ważne jest by mieć możliwość opóźnienia skanowania o jakiś czas. Jeżeli chcesz wykonać takie działanie użyj parametru -z + ilość czasu w milisekundach. 

W consoli wpisz:

dirb https://www.AdresTwojejStrony.pl -z 100 

Dla lepszego zobrazowania, wpisz sobie np. 10000 ms i wówczas zobaczysz, że opóźnienie jest widoczne. 

Podsumowanie

Głównym celem narzędzia DIRB skanner treści jest pomoc w przeprowadzaniu skanów bezpieczeństwa. W ramach takich skanów możemy wyszukać adresy, których mogą nie wyszukać inne skanery CGI.
Jeżeli będzie zainteresowanie tematem, będzie druga część, bardziej zaawansowanych zastosowań.