
재귀적 DNS 서브도메인 열거기 (막다른 길 회피 시스템 포함) (BETA)
Syborg는 완전히 능동적이지도 않고 완전히 수동적이지도 않은 재귀적 DNS 도메인 열거 도구입니다. 이 도구는 단순히 도메인 이름을 구성하고 지정된 DNS 서버에 쿼리합니다.
Syborg는 @Tomnomnom의 ettu에서 영감을 받은 Dead-end 회피 시스템을 갖추고 있습니다.
일부 도구로 서브도메인 열거를 실행할 때, 대부분은 virustotal, crtsh 또는 censys 같은 공개 기록을 수동적으로 조회합니다. 이 열거 기법은 매우 빠르며 훨씬 적은 시간에 많은 도메인을 찾는 데 도움을 줍니다.
하지만 이러한 공개 기록에 언급되지 않은 도메인들도 있습니다. 그러한 도메인을 찾기 위해 Syborg는 네임서버와 상호작용하며 큐가 빌 때까지 DNS에서 재귀적으로 서브도메인을 브루트포스합니다.
이미지 출처: Carbon
ettu 페이지에 언급된 내용을 인용하자면:
일반적으로 DNS 이름에 대해 반환할 레코드가 없으면
NXDOMAIN오류가 발생할 것으로 예상할 수 있습니다:▶ host four.tomnomnom.uk Host four.tomnomnom.uk not found: 3(NXDOMAIN)때로는 대신 빈 응답을 받는 경우도 있다는 것을 눈치챘을 수도 있습니다:
▶ host three.tomnomnom.uk후자의 경우 차이점은 종종 쿼리한 이름을 접미사로 가지는 다른 이름이 존재하고 레코드를 반환한다는 점입니다:
▶ host one.two.three.tomnomnom.uk one.two.three.tomnomnom.uk has address 46.101.59.42이러한 응답의 차이는 재귀적 DNS 브루트포싱에서 전자의 상황에서는 재귀하지 않음으로써 막다른 길을 피하는 데 사용될 수 있습니다:
▶ echo -e "www\none\ntwo\nthree" | ettu tomnomnom.uk one.two.three.tomnomnom.uk
Syborg는 이러한 모든 기능을 간단한 동시성과 재귀와 함께 통합했습니다.
Python 3.x (권장)
Python 2.x (테스트되지 않음)
다음과 같이 git clone 명령어를 사용하여 리포지토리를 복제합니다:
git clone https://github.com/MilindPurswani/Syborg.git
의존성 해결:
pip3 install -r requirements.txt
python3 syborg.py yahoo.com
사용법에 대한 자세한 정보는 Syborg의 Creative Usage Guidelines에서 확인할 수 있습니다. 꼭 확인해보세요!
때때로 Syborg가 높은 CPU 사용량을 유발할 수 있으며, VPS에서 이 도구를 사용하려는 경우 많은 비용이 발생할 수 있습니다. 따라서 이를 제한하려면 Cpulimit이라는 다른 유틸리티를 사용하세요.
cpulimit -l 50 -p $(pgrep python3)
이 도구는 다음과 같이 다운로드할 수 있습니다:
sudo apt install cpulimit
FileQueue 라이브러리 제공.dnsgen 같은 도구에 감사드립니다.