
DNS 기록을 기반으로 한 방화벽 우회 스크립트입니다. 이 스크립트는 DNS A 기록을 검색하고 해당 도메인에 대해 서버가 응답하는지 확인합니다. 버그바운티 헌터에게 유용합니다.

이 스크립트는 다음을 찾으려고 합니다:
이 스크립트는 DNS 기록을 (악)용합니다. 이 스크립트는 오래된 DNS A 레코드를 검색하고 그리고 서버가 해당 도메인에 응답하는지 확인합니다. 또한 가능한 출처 서버와 방화벽의 HTML 응답 유사성을 기반으로 신뢰 수준을 출력합니다.
이 스크립트는 서브도메인의 IP도 가져옵니다. 제 경험에 따르면 서브도메인 IP가 때로는 메인 도메인의 출처를 가리키기 때문입니다.
다음과 같이 스크립트를 사용하세요:
bash bypass-firewalls-by-DNS-history.sh -d example.com
-d --domain: 우회할 도메인-o --outputfile: IP를 저장할 출력 파일-l --listsubdomains: 추가 커버리지를 위한 서브도메인 목록-a --checkall: 모든 서브도메인에서 WAF 우회 확인jq는 출력을 파싱하여 서브도메인을 자동으로 수집하는 데 필요합니다.
apt install jq로 설치하세요.
WAF 우회로 정의하는 것을 설명하기 위해 아래의 도식을 보세요.

일반 방문자는 웹사이트에 연결합니다. 초기 요청은 웹사이트의 IP를 묻는 DNS 요청으로, 클라이언트의 브라우저가 HTTP 요청을 어디로 보낼지 알 수 있게 합니다. Cloudflare나 다른 공용 WAF 뒤에 있는 사이트의 경우, 응답에는 WAF 자체의 IP 주소가 포함됩니다. HTTP 트래픽은 기본적으로 WAF를 통해 출처 웹 서버로 흐릅니다. WAF는 악성 요청을 차단하고 (D)DoS 공격으로부터 보호합니다. 그러나 공격자가 출처 웹 서버의 IP를 알고 그리고 출처 웹 서버가 전체 인터넷에서 HTTP 트래픽을 수락하는 경우, 공격자는 WAF 우회를 수행할 수 있습니다: WAF를 통과하지 않고 HTTP 트래픽을 출처 웹 서버로 직접 보내는 것입니다.
이 스크립트는 해당 출처 IP를 찾으려고 시도하므로 출처 웹 서버에 직접 연결할 수 있습니다. SQL 인젝션이나 SSRF와 같은 공격은 필터링되지 않으며, 이러한 공격을 차단하는 WAF가 중간에 있는 경우와 달리 성공할 수 있습니다.
우회를 찾으면 두 가지 옵션이 있습니다:
/etc/hosts (Linux/Mac) 또는 c:\Windows\System32\Drivers\etc\hosts (Windows)에서 찾을 수 있습니다. 다음과 같은 항목을 추가하세요: 80.40.10.22 vincentcox.com.
이 순간부터 HTTP 트래픽이 출처 웹 서버로 직접 전송됩니다. WAF에 의해 요청이 차단되지 않고 평소처럼 침투 테스트를 수행할 수 있습니다.
이 스크립트는 다음에게 유용합니다:
다음 서비스들이 사용됩니다:
왜 Python이 아니라 Bash인가요?
몇 줄의 CURL 명령어로 시작해서 bash 스크립트가 되었고, 코드를 계속 확장하면서 Python을 사용하지 않은 후회도 커졌습니다.
제 도구로 더 많은 서브도메인을 찾을 수 있는데요?
알고 있습니다. 모든 사람이 이러한 DNS 무차별 대입 및 열거 도구를 설치할 것이라고 기대할 수 없습니다. 게다가 이 도구들이 어느 폴더에 설치되어 있는지, 어떤 별칭으로 호출되는지 사전에 알 수 없습니다. -l 옵션으로 자신의 목록을 제공하여 이러한 서브도메인 도구의 출력을 이 도구에 전달할 수 있습니다. 입력은 각 줄에 전체 서브도메인 하나씩이어야 합니다.
| 프로젝트 제작자 |
|---|
|
|
WAF 우회
웹 애플리케이션 방화벽 우회
DNS 기록
직접/출처 IP 웹사이트 찾기