
Selenium 기반 Python 스크립트로 취약한 웹 애플리케이션 검색을 자동화합니다.
Selenium 기반의 Python 스크립트로, 취약한 애플리케이션을 찾기 위해 웹 검색을 자동화합니다.
DorkNet은 단일 dork 또는 dork 목록을 인수로 받을 수 있습니다. 적절한 명령줄 인수가 전달된 후, 스크립트는 Selenium과 Geckodriver를 사용하여 원하는 결과를 찾고, 이를 텍스트 파일에 저장하여 SQLmap 또는 유사한 유틸리티로 추가 처리할 수 있도록 합니다.
git clone https://github.com/NullArray/DorkNet.git
cd DorkNet
python dorknet.py
프로그램의 옵션은 다음과 같습니다.
-h, --help 도움말 메시지 표시 후 종료
-d DORK, --dork DORK 사용할 dork 지정
-l LIST, --list LIST dork 목록이 있는 파일 경로 지정
-v, --verbose 상세 출력 활성화
명확성을 위한 몇 가지 예시입니다.
DorkNet.py -h
DorkNet.py -d inurl:show.php?id= -v
DorkNet.py -l /path/to/list.txt --verbose
프록시 설정
원하는 경우 웹 드라이버의 연결을 프록시할 수 있는 기능이 포함되어 있습니다. 대화 상자가 나타나면 프록시 IP와 PORT를 입력하기만 하면 검색 엔진이 제공한 프록시 설정을 통해 접근됩니다.
이 스크립트가 작동하려면 Mozilla Geckodriver가 필요합니다. 수동으로 설치할 수 있지만, 원한다면 프로세스를 자동화하는 셸 스크립트도 추가해 두었습니다.
사용하려면 DorkNet 디렉터리로 이동하여 셸 스크립트를 실행 가능하게 만드세요.
cd DorkNet
chmod +x gecko-setup.sh
# 아래 명령어로 셸 스크립트를 실행하세요.
sudo ./gecko-setup.sh
셸 스크립트에는 요구사항 파일을 통해 나머지 의존성을 자동으로 설치하는 옵션도 포함되어 있으며, 다음 명령어를 호출합니다.
sudo -H pip install -r requirements.txt
Geckodriver를 Headless Mode(즉, 기존 UI 없이)로 실행할 수 있는 로직을 추가했습니다. 이는 특히 작업할 dork 목록이 긴 경우 유용합니다. 현재 구현에서는 Google에 대한 연결을 프록시하는 함수가 headless 모드를 활성화하기 위해 Geckodriver 옵션을 설정하는 작업과 충돌합니다. 따라서 --nogui 플래그와 프록시를 함께 사용하여 DorkNet을 실행하면 정상적으로 작동하지 않습니다.
하지만 어쨌든 headless 모드로 프로그램을 실행하려는 사용자는 가능합니다. 관련 코드를 모두 저장소에 커밋했습니다. 당분간은 주석 처리되어 있습니다. 주석을 제거하면 문제없이 작동할 것입니다. 영향을 받는 라인은 커밋 히스토리 여기에서 확인하세요.
--nogui가 설정된 상태에서 정말로 연결을 프록시하려면 ProxyChains와 함께 DorkNet을 시작할 수 있습니다.
proxychains python dorknet.py -l /path/to/dorks.list --nogui --verbose
ProxyChains가 없다면 위 링크를 참조하거나 패키지 관리자를 사용하여 설치하세요. 감사합니다.
DorkNet은 BlackArch Linux 침투 테스트 배포판의 웹앱 도구 및 자동화 영역에 포함되어 있습니다. 따라서 해당 배포판에는 사전 설치되어 제공됩니다. 자세한 내용은 해당 저장소의 PKGBUILD 파일을 참조하세요.
Selenium과 Geckodriver를 사용함으로써 DorkNet은 일반 브라우저를 효과적으로 에뮬레이션합니다. 이러한 방식으로 프로그램은 대부분의 경우 captcha를 피할 수 있습니다. 그러나 드물게 Google이 captcha를 표시하는 경우가 있습니다. 이는 dork처럼 보이는 문자열을 수동으로 검색할 때도 가끔 발생합니다. captcha가 나타나면 Geckodriver에서 captcha를 입력하기만 하면 DorkNet이 정상 작동을 계속합니다.