DNS
- 공통 원리
- DNS 레코드 및 관련 정보를 시스템에 대한 표준 쿼리를 통해 정보를 수집. 이 방법은 DNS 서버에서 직접 쿼리를 실행하여 알려진 정보를 요청하여 얻는다.
- 가능한 서브도메인 이름을 탐색하기 위해 단어 목록을 사용하여 브루트 포스를 통해 서브 도메인 탐색
dnsmap
- DNS 서브도메인 및 네트워크 매핑 도구로, 주로 특정 도메인에 대한 서브도메인을 찾기 위해 사용
- 주어진 단어 목록을 기반으로 가능한 서브도메인을 브루트포스 방식으로 탐색하여 발견된 서브도메인 정보를 제공
사용법: dnsmap <대상-도메인> [옵션]
옵션:
-w <단어목록-파일> 사용할 단어 목록 파일을 지정합니다.
-r <일반결과-파일> 일반 결과를 저장할 파일을 지정합니다.
-c <csv-결과-파일> 결과를 CSV 파일로 저장합니다.
-d <지연시간-밀리초> 각 요청 사이에 대기할 시간(밀리초)을 지정합니다.
-i <무시할 IP들> (잘못된 긍정 결과가 발생하는 경우 유용함) 무시할 IP 목록을 지정합니다.
예시:
dnsmap example.com
dnsmap example.com -w yourwordlist.txt -r /tmp/domainbf_results.txt
dnsmap example.com -r /tmp/ -d 3000
dnsmap example.com -r ./domainbf_results.txt
- 특징
- 워드리스트: 사용자 정의 단어 목록을 사용하여 서브도메인 이름을 검색한다. 이를 통해 특정 도메인의 예상 서브도메인을 찾는 데 도움이 된다.
- 지연 시간 설정 가능: 각 요청 간의 지연 시간을 설정하여 과도한 요청으로 인한 차단을 방지할 수 있다.
- 출력 내용
- 도메인 이름: 쿼리한 대상 도메인.
- IP 주소: 서브도메인이나 도메인에 대한 A 레코드와 함께 반환된 IP 주소.
- 서브도메인: 쿼리 결과에서 발견된 서브도메인 목록.
- 결과 파일: 결과를 저장한 파일 경로(지정한 경우).
- 검사된 레코드 수: 브루트포스 시도한 서브도메인의 수와 확인된 레코드 수.
- 출력 예시
┌──(root㉿kaya)-[~]
└─# dnsmap iqsp.com
dnsmap 0.36 - DNS Network Mapper
[+] searching (sub)domains for iqsp.com using built-in wordlist
[+] using maximum random delay of 10 millisecond(s) between requests
bw.iqsp.com
IP address #1: 172.16.20.100
[+] warning: internal IP address disclosed
dw.iqsp.com
IP address #1: 172.16.20.101
[+] warning: internal IP address disclosed
ma.iqsp.com
IP address #1: 172.16.20.7
[+] warning: internal IP address disclosed
mx1.iqsp.com
IP address #1: 172.16.20.6
[+] warning: internal IP address disclosed
nk.iqsp.com
IP address #1: 172.16.20.7
[+] warning: internal IP address disclosed
ns.iqsp.com
IP address #1: 172.16.20.6
[+] warning: internal IP address disclosed
py.iqsp.com
IP address #1: 172.16.20.6
[+] warning: internal IP address disclosed
ub.iqsp.com
IP address #1: 172.16.20.9
[+] warning: internal IP address disclosed
[+] 8 (sub)domains and 8 IP address(es) found
[+] 8 internal IP address(es) disclosed
[+] completion time: 5 second(s)
dnsrecorn
- DNS 열거 및 정보 수집을 위한 강력한 도구로, 다양한 기능을 통해 도메인에 대한 상세한 정보를 수집하고 분석
- 여러 유형의 DNS 쿼리를 수행하여 서브도메인, A 레코드, MX 레코드, NS 레코드 등을 찾고, DNSSEC, AXFR, Whois 조회 등의 기능이 있다.
사용법: dnsrecon [-h] [-d 도메인] [-n 네임서버] [-r 범위] [-D 사전]
[-f] [-a] [-s] [-b] [-y] [-k] [-w] [-z] [--threads 스레드 수]
[--lifetime 생명 주기] [--tcp] [--db 데이터베이스] [-x XML] [-c CSV]
[-j JSON] [--iw] [--disable_check_recursion]
[--disable_check_bindversion] [-V] [-v] [-t 유형]
옵션:
-h, --help 도움말 메시지를 표시하고 종료한다
-d 도메인, --domain 도메인
타겟 도메인이다
-n 네임서버, --name_server 네임서버
사용할 도메인 서버이다. 주어지지 않으면 타겟의 SOA가 사용된다. 여러 서버는 쉼표로 구분하여 지정할 수 있다.
-r 범위, --range 범위
역 조회 브루트포스를 위한 IP 범위 (형식: 첫번째-마지막 또는 범위/비트마스크)이다.
-D 사전, --dictionary 사전
브루트포스에 사용할 서브도메인 및 호스트 이름의 사전 파일이다.
-f 브루트포스 도메인 조회에서 와일드카드로 정의된 IP 주소로 해결되는 레코드를 필터링한다.
-a 표준 열거로 AXFR을 수행한다.
-s 표준 열거로 SPF 레코드에서 IPv4 범위의 역 조회를 수행한다.
-b 표준 열거로 Bing 열거를 수행한다.
-y 표준 열거로 Yandex 열거를 수행한다.
-k 표준 열거로 crt.sh 열거를 수행한다.
-w 표준 열거 중 Whois를 통해 발견된 IP 범위의 심층 WHOIS 기록 분석 및 역 조회를 수행한다.
-z 표준 열거로 DNSSEC 존 워크를 수행한다.
--threads 스레드 수 역 조회, 정방향 조회, 브루트포스 및 SRV 레코드 열거에 사용할 스레드 수이다.
--lifetime 생명 주기 서버가 쿼리에 응답하기까지 대기할 시간이다. 기본값은 3.0초이다.
--tcp 쿼리를 수행하기 위해 TCP 프로토콜을 사용한다.
--db 데이터베이스 발견된 레코드를 저장할 SQLite 3 파일이다.
-x XML, --xml XML 발견된 레코드를 저장할 XML 파일이다.
-c CSV, --csv CSV 출력을 CSV 파일로 저장한다.
-j JSON, --json JSON 출력을 JSON 파일로 저장한다.
--iw 와일드카드 레코드가 발견되더라도 도메인에 대한 브루트포스를 계속 수행한다.
--disable_check_recursion
네임 서버에서 재귀 확인을 비활성화한다
--disable_check_bindversion
네임 서버에서 BIND 버전 확인을 비활성화한다
-V, --version DNSrecon 버전을 표시한다
-v, --verbose 상세 출력을 활성화한다
-t 유형, --type 유형 수행할 열거 유형이다.
가능한 유형:
std: SOA, NS, A, AAAA, MX 및 SRV.
rvl: 주어진 CIDR 또는 IP 범위의 역 조회.
brt: 주어진 사전을 사용하여 도메인 및 호스트를 브루트포스한다.
srv: SRV 레코드.
axfr: 모든 NS 서버에 대해 존 전송을 테스트한다.
bing: 서브도메인 및 호스트에 대한 Bing 검색을 수행한다.
yand: 서브도메인 및 호스트에 대한 Yandex 검색을 수행한다.
crt: 서브도메인 및 호스트에 대한 crt.sh 검색을 수행한다.
snoop: 주어진 도메인에 대해 모든 NS 서버에 대한 캐시 스누핑을 수행하며,
-D 옵션으로 제공된 파일에 포함된 도메인으로 테스트한다.
tld: 주어진 도메인의 TLD를 제거하고 IANA에 등록된 모든 TLD에 대해 테스트한다.
zonewalk: NSEC 레코드를 사용하여 DNSSEC 존 워크를 수행한다.
- 특징
- 일반 열거: SOA, NS, A, AAAA, MX 및 SRV 레코드를 조회한다.
- 브루트포스: 특정 도메인에 대해 서브도메인을 찾기 위해 사용자가 제공하는 사전을 기반으로 검색한다.
- Bing, Yandex, crt.sh 검색: 서브도메인 및 호스트 정보를 찾아 추가적인 데이터를 수집한다.
- 역 조회: WHOIS 정보를 기반으로 IP 범위의 역 조회를 수행한다.
- DNSSEC 지원: DNSSEC이 활성화된 도메인에 대해 존 워크를 수행할 수 있다.
- 출력 내용
- 도메인 이름: 쿼리한 대상 도메인.
- IP 주소: A 레코드에 대한 IP 주소.
- 네임서버(NS) 레코드: 해당 도메인에 대한 네임서버 정보.
- SOA 레코드: Start of Authority 레코드, 도메인의 기본 정보를 포함.
- TXT 레코드: 도메인에 대한 TXT 레코드 정보.
- SRV 레코드: 서비스 레코드 정보 (해당하는 경우).
- Wildcard resolution: 와일드카드 레코드 여부 및 해당 IP 주소
- 출력 예시
└─# dnsrecon -d iqsp.com
[*] std: Performing General Enumeration against: iqsp.com...
[-] DNSSEC is not configured for iqsp.com
[*] SOA ns.iqsp.com 172.16.20.6
[*] NS ns.iqsp.com 172.16.20.6
[-] Recursion enabled on NS Server 172.16.20.6
[*] Bind Version for 172.16.20.6 "9.16.23-RH"
[*] MX mx1.iqsp.com 172.16.20.6
[*] A iqsp.com 127.0.0.1
[*] AAAA iqsp.com ::1
[*] Enumerating SRV Records
[-] No SRV Records Found for iqsp.com
dnsenum
- DNS 정보를 수집하고 분석하기 위한 도구로, 다양한 쿼리를 통해 도메인에 대한 상세한 정보를 수집
- 서브도메인 및 네임 서버 정보를 찾는 데 효과적
dnsenum 버전 1.3.1
사용법 dnsenum [옵션] <도메인>
[옵션]:
참고: -f 태그가 제공되지 않으면 기본적으로 /usr/share/dnsenum/dns.txt 또는 dnsenum과 동일한 디렉토리에 있는 dns.txt 파일이 사용된다
일반 옵션:
--dnsserver <서버>
A, NS 및 MX 쿼리를 위해 이 DNS 서버를 사용한다
--enum 스레드 5, 서브도메인 15, 브루트포스를 포함하는 단축키 옵션이다
-h, --help 도움말 메시지를 출력한다
--noreverse 역 조회 작업을 생략한다
--nocolor ANSI 색상 출력을 비활성화한다
--private 프라이빗 IP 주소를 domain_ips.txt 파일의 끝에 표시하고 저장한다
--subfile <파일> 모든 유효한 서브도메인을 이 파일에 기록한다
-t, --timeout <값> TCP 및 UDP 타임아웃 값을 초 단위로 설정한다 (기본값 10초)
--threads <값> 다양한 쿼리를 수행할 스레드 수를 설정한다
-v, --verbose 진행 상황과 모든 오류 메시지를 자세히 표시한다
Google 스크래핑 옵션:
-p, --pages <값> 이름을 스크래핑할 때 처리할 Google 검색 페이지 수를 설정한다
기본값은 5 페이지이며 -s 스위치가 필요하다
-s, --scrap <값> Google에서 스크래핑할 최대 서브도메인 수를 설정한다 (기본값 15)
브루트포스 옵션:
-f, --file <파일> 브루트포스를 수행하기 위해 이 파일에서 서브도메인을 읽어들인다
기본 dns.txt보다 우선한다
-u, --update <a|g|r|z>
-f 스위치로 지정된 파일을 유효한 서브도메인으로 업데이트한다
a (all) 모든 결과로 업데이트한다
g Google 스크래핑 결과만으로 업데이트한다
r 역 조회 결과만으로 업데이트한다
z 존 트랜스퍼 결과만으로 업데이트한다
-r, --recursion NS 레코드가 있는 모든 발견된 서브도메인에 대해 재귀적으로 브루트포스한다
WHOIS 네트워크 범위 옵션:
-d, --delay <값> WHOIS 쿼리 사이의 최대 대기 시간을 설정한다
기본값은 3초이며 무작위로 정의된다
-w, --whois C 클래스 네트워크 범위에 대한 WHOIS 쿼리를 수행한다
경고: 이는 매우 큰 네트워크 범위를 생성할 수 있으며
역 조회를 수행하는 데 많은 시간이 소요될 수 있다
역 조회 옵션:
-e, --exclude <정규식>
역 조회 결과에서 정규식 표현과 일치하는 PTR 레코드를 제외한다
유효하지 않은 호스트 이름에 유용하다
출력 옵션:
-o --output <파일> XML 형식으로 출력하며 MagicTree에 가져올 수 있다
- 특징
- DNS 레코드 조회: A, NS, MX, SOA 등의 다양한 DNS 레코드를 조회하여 도메인 구조를 파악할 수 있다.
- 서브도메인 브루트포스: 미리 정의된 단어 목록을 사용하여 서브도메인을 찾는 브루트포스 기능을 제공한다.
- Google 스크래핑: Google 검색을 통해 서브도메인을 수집할 수 있다.
- 역 조회: IP 주소에 대한 역 조회를 수행하여 도메인 소속의 호스트를 찾는다.
- 출력 내용
- 도메인 이름: 쿼리한 대상 도메인.
- IP 주소: A 레코드에 대한 IP 주소.
- 네임서버(NS) 레코드: 해당 도메인에 대한 네임서버 정보.
- MX 레코드: 메일 서버에 대한 정보.
- SOA 레코드: Start of Authority 레코드, 도메인의 기본 정보를 포함.
- PTR 레코드: 역방향 조회에 대한 정보.
- 서브도메인: 발견된 서브도메인에 대한 목록.
- 브루트 포싱 결과: 서브도메인 및 호스트를 브루트 포스하여 찾은 결과.
- 출력 예시
┌──(root㉿kaya)-[~]
└─# dnsenum iqsp.com
dnsenum VERSION:1.3.1
----- iqsp.com -----
Host's addresses:
__________________
iqsp.com. 86400 IN A 127.0.0.1
Name Servers:
______________
ns.iqsp.com. 86400 IN A 172.16.20.6
Mail (MX) Servers:
___________________
mx1.iqsp.com. 86400 IN A 172.16.20.6
Trying Zone Transfers and getting Bind Versions:
_________________________________________________
Trying Zone Transfer for iqsp.com on ns.iqsp.com ...
iqsp.com. 86400 IN SOA (
iqsp.com. 86400 IN NS ns.iqsp.com.
iqsp.com. 86400 IN A 127.0.0.1
iqsp.com. 86400 IN AAAA ::1
iqsp.com. 86400 IN MX 10
172.16.20.7.iqsp.com. 86400 IN PTR ma.iqsp.com.
bw.iqsp.com. 86400 IN A 172.16.20.100
dw.iqsp.com. 86400 IN A 172.16.20.101
lamp.iqsp.com. 86400 IN A 172.16.20.13
ma.iqsp.com. 86400 IN A 172.16.20.7
mon.iqsp.com. 86400 IN A 172.16.1.15
mx1.iqsp.com. 86400 IN A 172.16.20.6
nk.iqsp.com. 86400 IN A 172.16.20.7
ns.iqsp.com. 86400 IN A 172.16.20.6
py.iqsp.com. 86400 IN A 172.16.20.6
r9.iqsp.com. 86400 IN A 172.16.20.6
ub.iqsp.com. 86400 IN A 172.16.20.9
w22.iqsp.com. 86400 IN A 172.16.20.3
Brute forcing with /usr/share/dnsenum/dns.txt:
_______________________________________________
iqsp.com class C netranges:
____________________________
Performing reverse lookup on 0 ip addresses:
_____________________________________________
0 results out of 0 IP addresses.
iqsp.com ip blocks:
____________________
done.
fiernce
- DNS 및 네트워크 정찰 도구로, 주로 도메인 이름 시스템(DNS) 정보를 수집
- 특정 도메인에 대한 다양한 정보를 추출하고, 하위 도메인을 찾아내며, 관련된 IP 주소를 식별
[--traverse TRAVERSE] [--search SEARCH [SEARCH ...]]
[--range RANGE] [--delay DELAY]
[--subdomains SUBDOMAINS [SUBDOMAINS ...] | --subdomain-file
SUBDOMAIN_FILE] [--dns-servers DNS_SERVERS [DNS_SERVERS ...]
| --dns-file DNS_FILE] [--tcp]
DNS 정찰 도구로 비연속 IP 공간을 찾기 위한 것이다.
옵션:
-h, --help 도움말 메시지를 표시하고 종료한다
--domain DOMAIN 테스트할 도메인 이름을 지정한다
--connect 비 RFC 1918 호스트에 대한 HTTP 연결을 시도한다
--wide 발견된 레코드의 전체 클래스 C를 스캔한다
--traverse TRAVERSE 발견된 레코드 근처의 IP를 스캔하되 인접한 클래스 C에는 들어가지 않는다
--search SEARCH [SEARCH ...]
조회 확장을 필터링할 도메인을 지정한다
--range RANGE 내부 IP 범위를 스캔하며 CIDR 표기법을 사용한다
--delay DELAY 조회 간 대기 시간을 설정한다
--subdomains SUBDOMAINS [SUBDOMAINS ...]
사용할 서브도메인을 지정한다
--subdomain-file SUBDOMAIN_FILE
파일에 지정된 서브도메인(각 한 줄에 하나)을 사용한다
--dns-servers DNS_SERVERS [DNS_SERVERS ...]
역 조회를 위해 사용할 DNS 서버를 지정한다
--dns-file DNS_FILE 역 조회를 위해 파일에 지정된 DNS 서버(각 한 줄에 하나)를 사용한다
--tcp UDP 대신 TCP를 사용한다
- 특징
- 하위 도메인 검색: 주어진 도메인에 대한 하위 도메인을 자동으로 찾는다. 이를 통해 공격 surface를 넓힐 수 있다.
- IP 주소 스캔: 도메인에 대한 IP 주소를 찾고, 이 IP 주소가 속한 네트워크 범위를 스캔할 수 있다.
- DNS 서버 정보 수집: 도메인에 대한 DNS 서버 정보를 수집하고, 이를 통해 DNS 구성의 취약점을 분석할 수 있다.
- 네트워크 탐색: 비연속 IP 공간을 찾고, 인접한 IP 주소를 탐색하여 추가적인 정보를 제공한다.
- 리버스 DNS 조회: IP 주소를 기반으로 도메인 이름을 조회하는 기능을 제공한다.
- 출력 내용
- 도메인 이름: 쿼리한 대상 도메인.
- 서브도메인 목록: 발견된 서브도메인 이름.
- IP 주소: 각 서브도메인에 대한 IP 주소.
- 네임서버(NS) 레코드: 해당 도메인에 대한 네임서버 정보.
- 메일 서버(MX) 레코드: 해당 도메인에 대한 메일 서버 정보.
- 기타 DNS 레코드: 발견된 다른 관련 DNS 레코드.
- 출력 예시
┌──(root㉿kaya)-[~]
└─# fierce --domain iqsp.com
NS: ns.iqsp.com.
SOA: ns.iqsp.com. (172.16.20.6)
Zone: success
{<DNS name @>: '@ 86400 IN SOA ns iqsp.google.com 24080601 86400 3600 604800 '
'10800\n'
'@ 86400 IN NS ns\n'
'@ 86400 IN A 127.0.0.1\n'
'@ 86400 IN AAAA ::1\n'
'@ 86400 IN MX 10 mx1',
<DNS name 172.16.20.7>: '172.16.20.7 86400 IN PTR ma',
<DNS name bw>: 'bw 86400 IN A 172.16.20.100',
<DNS name dw>: 'dw 86400 IN A 172.16.20.101',
<DNS name lamp>: 'lamp 86400 IN A 172.16.20.13',
<DNS name ma>: 'ma 86400 IN A 172.16.20.7',
<DNS name mon>: 'mon 86400 IN A 172.16.1.15',
<DNS name mx1>: 'mx1 86400 IN A 172.16.20.6',
<DNS name nk>: 'nk 86400 IN A 172.16.20.7',
<DNS name ns>: 'ns 86400 IN A 172.16.20.6',
<DNS name py>: 'py 86400 IN A 172.16.20.6',
<DNS name r9>: 'r9 86400 IN A 172.16.20.6',
<DNS name ub>: 'ub 86400 IN A 172.16.20.9',
<DNS name w22>: 'w22 86400 IN A 172.16.20.3'}
'모의해킹 및 보안' 카테고리의 다른 글
Nmap (0) | 2024.10.21 |
---|---|
Infromation Gattering Tool - SMB / Route Analysis (0) | 2024.10.19 |
Nicto / Sqlmap (0) | 2024.10.17 |
Security Onion (0) | 2024.10.15 |
SQLi (0) | 2024.10.15 |