Jak powierzyłem Google Dorking agentom sieci neuronowych
Każdy, kto brał udział w bug bounty lub przeprowadzał audyt bezpieczeństwa własnych usług webowych, zna tę rutynę. Siedzisz w przeglądarce, metodycznie wprowadzając operatory wyszukiwania, takie jak site:example.com ext:env lub filetype:log, łapiesz niekończące się CAPTCHA od Google, kopiujesz URL-e i ręcznie przesiewasz setki stron wyników wyszukiwania w poszukiwaniu zapomnianych konfiguracji.
Ta praca jest użyteczna, ale niezwykle żmudna. Podczas procesu 95% czasu spędza się na filtrowaniu szumu informacyjnego, takiego jak stare instrukcje PDF, gdzie słowo „password" przypadkowo się pojawiło. Ostatnio natknąłem się na kompaktowe repozytorium DorkAgent, którego autor próbował zautomatyzować całą tę potokową ścieżkę za pomocą kombinacji API wyszukiwania i modeli językowych.
Pod maską
Projekt jest napisany w Pythonie i adresuje dwa konkretne punkty bólu: CAPTCHA wyszukiwarki i ręczną analizę wyników wyszukiwania.
Zamiast bezpośrednio parsować HTML, co Google blokuje po trzech zapytaniach, DorkAgent pobiera wyniki wyszukiwania przez API Serper. Ta usługa dostarcza czysty JSON z stronami wyników. Agent LLM następnie analizuje partię linków i fragmentów, które otrzymuje. Agent nie tylko wyszukuje dopasowania tekstowe — ocenia kontekst: czy znaleziony plik wykazuje oznaki rzeczywistych wycieków kluczy dostępu, zapomnianych paneli admina lub parametrów do iniekcji.
Architektura opiera się na bibliotece CrewAI. Zadania i role agentów są podzielone na moduły, a dane wyjściowe w ustrukturyzowanym formacie są walidowane przez schematy Pydantic.
Z jakimi modelami współpracuje
W wczesnych wersjach skrypt był ściśle powiązany z jednym modelem, ale do wersji 1.4 projekt został przepisany. Teraz obsługiwany jest wybór dostawcy:
- OpenAI (modele z rodziny GPT-4)
- Anthropic Claude
- Google Gemini (w tym Gemini Flash 2.0, który ma darmowy poziom z hojnymi limitami)
Autor dodał możliwość użycia konfiguracji hybrydowej, gdzie zadania wyszukiwania i synteza końcowego raportu mogą być dystrybuowane między różne sieci. Jeśli nie chcesz wydawać środków na płatne API, kombinacja Serper + Gemini Flash kosztuje dosłownie grosze na start.
Jak uruchomić
Próg wejścia narzędzia jest zminimalizowany. Przy pierwszym uruchomieniu skrypt automatycznie sprawdza środowisko i pobiera brakujące pakiety, a następnie w trybie interaktywnym pyta o klucze i zapisuje je lokalnie w .env.
Sklonuj repozytorium i uruchom główny skrypt:
git clone https://github.com/yee-yore/DorkAgent.git
cd DorkAgent
python dorkagent.py
Aby narzędzie działało, potrzebujesz tokena z serper.dev i przynajmniej jednego klucza LLM (na przykład GEMINI_API_KEY lub OPENAI_API_KEY).
Co potrafi w praktyce
Po uruchomieniu agent wykonuje zestaw typowych dorków przeciwko domenie docelowej. W changelogu widać, jak autor dopracowywał prompty i listę zapytań: usunął bezużyteczne dorki wyszukujące dokumenty ze słowem „Confidential", dodał szablony do znajdowania paneli i konfiguracji IIS Windows Server.
Podczas wykonywania agent generuje ustrukturyzowany raport:
- Klasyfikuje znalezione wycieki według poziomu ryzyka.
- Podświetla podatne parametry i potencjalne payloady w URL-ach.
- Zapisuje wynik do osobnego pliku z znacznikiem czasu, takim jak
YYMMDD_HHMMSS.
Ustawienia wyszukiwania można dostosować do własnych potrzeb. Na przykład w serper_dev_tool.py można dostosować głębokość selekcji i zakres czasu indeksowania:
# Поиск за последний месяц (qdr:m) или неделю (qdr:w)
payload = json.dumps({
"q": search_query,
"num": self.n_results,
"tbs": "qdr:m"
})
Jest to wygodne, jeśli monitorujesz pojawianie się nowych subdomen lub niedawne wycieki dla konkretnej firmy z ostatnich kilku tygodni.
Łyżka dziegciu
Repozytorium jest wciąż małe, z zaledwie około trzystoma gwiazdkami. Dokumentacja README jest skromna, a niektóre niuanse trzeba szukać bezpośrednio w kodzie źródłowym tasks.py i agents.py.
Jeśli chcesz dodać własne specyficzne dorki, nie ma gotowego pliku konfiguracyjnego w YAML ani JSON. Musisz zagłębić się w kod funkcji task() i ręcznie pisać szablony zapytań. Musisz również pamiętać o limitach Serper: darmowa pula zapytań wystarcza do testowania, ale do głębokiego skanowania szerokiego zakresu będziesz musiał doładować konto.
Czy warto wypróbować
DorkAgent będzie przydatny w dwóch przypadkach. Po pierwsze, jeśli zajmujesz się OSINT lub pentestingiem i masz dość ręcznego klikania przez wyniki wyszukiwania. Po drugie, jeśli chcesz zobaczyć prawdziwy przykład zastosowania CrewAI w praktycznych zadaniach bezpieczeństwa, a nie abstrakcyjne artykuły czy streszczanie tekstów.
Kod jest czysty, podzielony na zrozumiałe moduły config.py, agents.py, tasks.py i utils.py, więc łatwo go forknąć i dostosować do własnych potoków rekonesansu.
Powiązane projekty