hacktricks/network-services-pentesting/pentesting-dns.md
2024-02-10 21:30:13 +00:00

433 lines
30 KiB
Markdown

# 53 - DNS 펜테스팅
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요. 독점적인 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
* **Hacking 트릭을 공유하려면** [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하세요.
</details>
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**취약성 평가 및 펜테스팅을 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능을 사용하여 리콘부터 보고까지 전체 펜테스트를 어디서든 실행하세요. 우리는 펜테스터를 대체하지 않습니다 - 대신, 펜테스터들에게 깊이 파고들고 쉘을 열고 즐길 시간을 돌려주기 위해 사용자 정의 도구, 탐지 및 공격 모듈을 개발합니다.
{% embed url="https://pentest-tools.com/" %}
## **기본 정보**
**도메인 이름 시스템 (DNS)**은 인터넷의 디렉터리로 작동하여 사용자가 숫자형 인터넷 프로토콜 (IP) 주소 대신 google.com 또는 facebook.com과 같은 **기억하기 쉬운 도메인 이름**을 통해 웹 사이트에 액세스할 수 있도록 합니다. 도메인 이름을 IP 주소로 변환함으로써 DNS는 웹 브라우저가 인터넷 리소스를 빠르게 로드할 수 있도록 하여 온라인 세계를 탐색하는 방법을 간소화합니다.
**기본 포트:** 53
```
PORT STATE SERVICE REASON
53/tcp open domain Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
5353/udp open zeroconf udp-response
53/udp open domain Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
```
### 다른 DNS 서버
- **DNS 루트 서버**: 이들은 DNS 계층 구조의 맨 위에 위치하며, 하위 서버가 응답하지 않을 경우에만 개입하여 최상위 도메인을 관리합니다. **ICANN**(인터넷 주소 및 이름 할당 기관)이 이들의 운영을 감독하며, 전 세계에 총 13개의 루트 서버가 있습니다.
- **권한 있는 네임서버**: 이들 서버는 자신이 지정한 영역의 쿼리에 대해 최종 결정을 내립니다. 확실한 답변을 제공할 수 없는 경우, 쿼리는 루트 서버로 에스컬레이션됩니다.
- **권한 없는 네임서버**: DNS 영역에 대한 소유권이 없으며, 이들 서버는 다른 서버에 대한 쿼리를 통해 도메인 정보를 수집합니다.
- **캐싱 DNS 서버**: 이 유형의 서버는 이전 쿼리 응답을 설정된 시간 동안 기억하여 향후 요청에 대한 응답 시간을 빠르게 합니다. 캐시 지속 시간은 권한 있는 서버에서 지정됩니다.
- **포워딩 서버**: 간단한 역할을 수행하는 포워딩 서버는 단순히 쿼리를 다른 서버로 전달합니다.
- **리졸버**: 컴퓨터나 라우터에 통합되어 있으며, 리졸버는 로컬에서 이름 해결을 실행하며 권한 있는 서버로 간주되지 않습니다.
## 열거
### **배너 그래빙**
DNS에는 배너가 없지만, 대부분의 BIND 네임서버에서 작동하는 `version.bind. CHAOS TXT`라는 매직 쿼리를 사용할 수 있습니다.\
이 쿼리를 `dig`를 사용하여 수행할 수 있습니다:
```bash
dig version.bind CHAOS TXT @DNS
```
또한, 도구 [`fpdns`](https://github.com/kirei/fpdns)를 사용하여 서버의 지문을 식별할 수도 있습니다.
또한 **nmap** 스크립트를 사용하여 배너를 가져올 수도 있습니다:
```
--script dns-nsid
```
### **모든 레코드**
레코드 **ANY**는 DNS 서버에게 **공개하고자 하는** 모든 **가능한 항목들을 반환**하도록 요청합니다.
```bash
dig any victim.com @<DNS_IP>
```
### **존 전송**
이 절차는 `비동기 전체 전송 존` (`AXFR`)로 약어화됩니다.
```bash
dig axfr @<DNS_IP> #Try zone transfer without domain
dig axfr @<DNS_IP> <DOMAIN> #Try zone transfer guessing the domain
fierce --domain <DOMAIN> --dns-servers <DNS_IP> #Will try toperform a zone transfer against every authoritative name server and if this doesn'twork, will launch a dictionary attack
```
### 추가 정보
DNS(Domain Name System)은 인터넷에서 도메인 이름을 IP 주소로 변환하는 역할을 하는 서비스입니다. DNS는 네트워크 서비스의 중요한 부분이며, 악의적인 공격자들에게 취약한 대상이 될 수 있습니다. DNS 펜테스팅은 시스템의 보안 취약점을 식별하고 이를 악용하는 과정입니다.
DNS 펜테스팅을 수행하기 위해서는 다양한 기술과 도구를 사용해야 합니다. 이 포스트에서는 DNS 펜테스팅에 대한 몇 가지 기본적인 기술과 도구에 대해 알아보겠습니다.
#### DNS 레코드 탐색
DNS 레코드 탐색은 도메인 이름에 대한 정보를 수집하는 과정입니다. 이를 통해 도메인 이름에 연결된 IP 주소, 메일 서버, 네임 서버 등의 정보를 확인할 수 있습니다. 이를 위해 `nslookup`, `dig`, `host`와 같은 도구를 사용할 수 있습니다.
#### DNS 캐싱 독점
DNS 캐싱 독점은 DNS 서버의 캐시를 악용하여 공격하는 기법입니다. 이를 통해 공격자는 DNS 서버의 캐시에 악성 도메인 이름을 추가하여 사용자를 악의적인 사이트로 리디렉션할 수 있습니다. 이를 방지하기 위해서는 DNS 서버의 보안 설정을 강화하고, 캐시 독점을 감지하는 시스템을 구축해야 합니다.
#### DNS 피싱
DNS 피싱은 사용자를 속여 개인 정보를 빼내는 공격 기법입니다. 공격자는 DNS 서버를 위장하여 사용자를 악성 사이트로 유도하고, 개인 정보를 탈취합니다. 이를 방지하기 위해서는 신뢰할 수 있는 DNS 서버를 사용하고, DNSSEC(DNS Security Extensions)와 같은 보안 기술을 적용해야 합니다.
#### DNS 트래픽 분석
DNS 트래픽 분석은 네트워크에서 발생하는 DNS 트래픽을 분석하여 보안 취약점을 식별하는 과정입니다. 이를 통해 악성 도메인 이름, 악성 IP 주소, 악성 도메인 이름과 IP 주소의 관계 등을 파악할 수 있습니다. 이를 위해 Wireshark와 같은 패킷 분석 도구를 사용할 수 있습니다.
#### DNS 서비스 거부 공격
DNS 서비스 거부 공격은 DNS 서버를 공격하여 서비스를 마비시키는 공격 기법입니다. 공격자는 대량의 DNS 쿼리를 생성하여 DNS 서버의 자원을 고갈시키고, 정상적인 사용자의 접근을 방해합니다. 이를 방지하기 위해서는 DNS 서버의 보안 설정을 강화하고, DDoS(Distributed Denial of Service) 공격을 탐지하는 시스템을 구축해야 합니다.
DNS 펜테스팅은 네트워크 보안을 강화하기 위해 중요한 과정입니다. DNS 서비스의 취약점을 식별하고 이를 보완함으로써 시스템의 안전성을 높일 수 있습니다.
```bash
dig ANY @<DNS_IP> <DOMAIN> #Any information
dig A @<DNS_IP> <DOMAIN> #Regular DNS request
dig AAAA @<DNS_IP> <DOMAIN> #IPv6 DNS request
dig TXT @<DNS_IP> <DOMAIN> #Information
dig MX @<DNS_IP> <DOMAIN> #Emails related
dig NS @<DNS_IP> <DOMAIN> #DNS that resolves that name
dig -x 192.168.0.2 @<DNS_IP> #Reverse lookup
dig -x 2a00:1450:400c:c06::93 @<DNS_IP> #reverse IPv6 lookup
#Use [-p PORT] or -6 (to use ivp6 address of dns)
```
#### 자동화
Automation is a crucial aspect of network services pentesting. It allows for the efficient and effective testing of various DNS-related vulnerabilities and misconfigurations. By automating the process, pentesters can save time and ensure consistent results.
자동화는 네트워크 서비스 펜테스팅의 중요한 측면입니다. 이를 통해 다양한 DNS 관련 취약점과 잘못된 구성을 효율적이고 효과적으로 테스트할 수 있습니다. 프로세스를 자동화함으로써, 펜테스터는 시간을 절약하고 일관된 결과를 보장할 수 있습니다.
```bash
for sub in $(cat <WORDLIST>);do dig $sub.<DOMAIN> @<DNS_IP> | grep -v ';\|SOA' | sed -r '/^\s*$/d' | grep $sub | tee -a subdomains.txt;done
dnsenum --dnsserver <DNS_IP> --enum -p 0 -s 0 -o subdomains.txt -f <WORDLIST> <DOMAIN>
```
#### nslookup 사용하기
The `nslookup` command is a powerful tool for querying DNS (Domain Name System) servers. It allows you to retrieve information about domain names, IP addresses, and other DNS records. Here are some common uses of `nslookup`:
- **Querying a domain name**: To retrieve the IP address associated with a domain name, simply type `nslookup domain_name` in the command prompt. For example, `nslookup google.com` will return the IP address of Google's website.
- **Reverse DNS lookup**: You can also perform a reverse DNS lookup by entering an IP address instead of a domain name. This will return the domain name associated with the IP address. For example, `nslookup 8.8.8.8` will return the domain name `dns.google`.
- **Querying specific DNS servers**: By default, `nslookup` uses the DNS server configured on your system. However, you can specify a different DNS server by typing `nslookup domain_name dns_server`. For example, `nslookup google.com 8.8.4.4` will query the DNS server at IP address 8.8.4.4 for information about google.com.
- **Changing the query type**: By default, `nslookup` performs a standard query for the IP address of a domain name. However, you can change the query type to retrieve other DNS records, such as MX (mail exchange) or NS (name server) records. To do this, type `nslookup -type=query_type domain_name`. For example, `nslookup -type=mx google.com` will return the mail exchange servers for google.com.
- **Interactive mode**: `nslookup` also supports an interactive mode, where you can enter multiple queries without exiting the tool. Simply type `nslookup` in the command prompt, and then enter the queries one by one. To exit the interactive mode, type `exit`.
The `nslookup` command is a versatile tool for DNS troubleshooting and exploration. By understanding its various uses, you can gather valuable information about domain names and IP addresses.
```bash
nslookup
> SERVER <IP_DNS> #Select dns server
> 127.0.0.1 #Reverse lookup of 127.0.0.1, maybe...
> <IP_MACHINE> #Reverse lookup of a machine, maybe...
```
### 유용한 메타스플로잇 모듈
Metasploit은 다양한 네트워크 서비스에 대한 펜테스팅을 지원하기 위해 다양한 모듈을 제공합니다. 이러한 모듈은 다양한 공격 기법을 사용하여 시스템에 대한 액세스를 얻을 수 있습니다. 다음은 몇 가지 유용한 메타스플로잇 모듈입니다.
- `auxiliary/scanner/dns/dns_enum`: DNS 열거를 위한 모듈로, DNS 서버에서 호스트, 도메인 및 서브도메인 정보를 수집합니다.
- `auxiliary/scanner/dns/dns_recon`: DNS 서비스에 대한 정보 수집을 위한 모듈로, DNS 서버의 버전, 존재하는 도메인 및 서브도메인 등을 확인합니다.
- `auxiliary/scanner/dns/dns_brute`: DNS 브루트 포스 모듈로, DNS 서버에서 호스트, 도메인 및 서브도메인을 브루트 포스 공격을 통해 찾습니다.
- `auxiliary/scanner/dns/dns_cache_snoop`: DNS 캐시 스눕 모듈로, DNS 서버의 캐시를 이용하여 호스트, 도메인 및 서브도메인 정보를 수집합니다.
- `auxiliary/scanner/dns/dns_reverse_lookup`: DNS 역방향 조회 모듈로, IP 주소에 대한 호스트, 도메인 및 서브도메인 정보를 조회합니다.
이러한 모듈은 DNS 서비스에 대한 펜테스팅을 위해 사용될 수 있으며, 시스템에 대한 취약점을 찾고 악용할 수 있는 정보를 수집하는 데 도움이 됩니다.
```bash
auxiliary/gather/enum_dns #Perform enumeration actions
```
### 유용한 nmap 스크립트
Nmap은 네트워크 탐지 및 보안 감사 도구로 널리 사용되며, 다양한 스크립트를 제공하여 네트워크 서비스의 취약점을 식별하는 데 도움을 줍니다. 다음은 몇 가지 유용한 nmap 스크립트입니다.
- **dns-brute.nse**: DNS 서버에 대한 브루트 포스 공격을 수행하여 도메인 이름을 찾습니다.
- **dns-cache-snoop.nse**: DNS 캐시 스눕 공격을 수행하여 DNS 캐시 레코드를 확인합니다.
- **dns-zone-transfer.nse**: DNS 존 전송을 시도하여 DNS 서버의 존 정보를 가져옵니다.
- **dns-blacklist.nse**: DNS 블랙리스트에 도메인이 등록되어 있는지 확인합니다.
- **dns-recursion.nse**: DNS 재귀 쿼리를 사용하여 DNS 서버의 재귀 기능을 확인합니다.
- **dns-random-srcport.nse**: 무작위 소스 포트를 사용하여 DNS 쿼리를 보냅니다.
- **dns-random-txid.nse**: 무작위 트랜잭션 ID를 사용하여 DNS 쿼리를 보냅니다.
- **dns-random-ttl.nse**: 무작위 TTL 값을 사용하여 DNS 쿼리를 보냅니다.
- **dns-random-queries.nse**: 무작위 질의 유형을 사용하여 DNS 쿼리를 보냅니다.
- **dns-random-names.nse**: 무작위 도메인 이름을 사용하여 DNS 쿼리를 보냅니다.
이러한 스크립트는 DNS 서비스를 대상으로 하는 펜테스팅 작업에서 유용하게 사용될 수 있습니다.
```bash
#Perform enumeration actions
nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" <IP>
```
### DNS - 역 BF
역 BF(역 브루트 포스)는 DNS 서비스를 대상으로 하는 펜테스팅 기법 중 하나입니다. 이 기법은 DNS 서버에 대한 정보를 수집하고, 서버에 등록된 도메인 이름을 추측하여 악의적인 목적으로 사용할 수 있는 취약점을 찾는 데 사용됩니다.
역 BF는 일반적으로 다음과 같은 단계로 수행됩니다:
1. DNS 서버에 대한 정보 수집: DNS 서버의 IP 주소, 도메인 이름, 네임서버 등의 정보를 수집합니다. 이를 위해 WHOIS 조회, DNS 쿼리, DNS 캐싱 등의 기법을 사용할 수 있습니다.
2. 도메인 이름 추측: DNS 서버에 등록된 도메인 이름을 추측하여 악의적인 목적으로 사용할 수 있는 도메인을 찾습니다. 이를 위해 일반적인 도메인 이름 패턴, 회사 또는 조직의 도메인 이름 구조 등을 고려할 수 있습니다.
3. 도메인 이름 검증: 추측한 도메인 이름이 실제로 DNS 서버에 등록되어 있는지 확인합니다. 이를 위해 DNS 쿼리를 사용하여 도메인 이름의 존재 여부를 확인할 수 있습니다.
역 BF는 DNS 서비스의 취약점을 찾는 데 유용한 기법 중 하나이지만, 합법적인 목적으로만 사용해야 합니다. 악의적인 목적으로 사용할 경우 법적인 문제가 발생할 수 있으므로 주의해야 합니다.
```bash
dnsrecon -r 127.0.0.0/24 -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -r 127.0.1.0/24 -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -r <IP_DNS>/24 -n <IP_DNS> #DNS reverse of all of the addresses
dnsrecon -d active.htb -a -n <IP_DNS> #Zone transfer
```
{% hint style="info" %}
내부 IP 주소로 해석되는 하위 도메인을 찾을 수 있다면 해당 IP 범위에 대해 NSs에 대한 역 DNS BF를 수행해 보십시오.
{% endhint %}
이를 수행하기 위한 또 다른 도구: [https://github.com/amine7536/reverse-scan](https://github.com/amine7536/reverse-scan)
[https://bgp.he.net/net/205.166.76.0/24#\_dns](https://bgp.he.net/net/205.166.76.0/24#\_dns)에서 역 IP 범위를 쿼리할 수 있습니다 (이 도구는 BGP에서도 유용합니다).
### DNS - 하위 도메인 BF
```bash
dnsenum --dnsserver <IP_DNS> --enum -p 0 -s 0 -o subdomains.txt -f subdomains-1000.txt <DOMAIN>
dnsrecon -D subdomains-1000.txt -d <DOMAIN> -n <IP_DNS>
dnscan -d <domain> -r -w subdomains-1000.txt #Bruteforce subdomains in recursive way, https://github.com/rbsec/dnscan
```
### Active Directory 서버
Active Directory(AD)는 Windows 운영 체제에서 사용되는 디렉터리 서비스입니다. AD 서버는 네트워크 환경에서 중요한 역할을 담당하며, 사용자 계정, 그룹, 컴퓨터 등의 정보를 저장하고 관리합니다. AD 서버는 일반적으로 도메인 컨트롤러(Domain Controller)로 알려져 있으며, 네트워크의 보안과 인증을 담당합니다.
AD 서버는 다양한 프로토콜을 사용하여 통신하며, 주요 프로토콜로는 DNS(Domain Name System)와 LDAP(Lightweight Directory Access Protocol)가 있습니다. DNS는 도메인 이름과 IP 주소를 매핑하는 역할을 하며, AD 서버의 동작에 필수적입니다. LDAP은 디렉터리 서비스에 접근하기 위한 프로토콜로, AD 서버의 데이터를 읽고 쓰는 데 사용됩니다.
AD 서버는 일반적으로 Windows Server 운영 체제에서 호스팅되며, 보안 설정과 업데이트가 중요합니다. 악의적인 해커들은 AD 서버를 공격하여 네트워크 내의 중요한 정보를 탈취하거나 권한 상승을 시도할 수 있습니다. 따라서 AD 서버의 보안 취약점을 식별하고, 적절한 보안 조치를 취하는 것이 중요합니다.
```bash
dig -t _gc._tcp.lab.domain.com
dig -t _ldap._tcp.lab.domain.com
dig -t _kerberos._tcp.lab.domain.com
dig -t _kpasswd._tcp.lab.domain.com
nslookup -type=srv _kerberos._tcp.<CLIENT_DOMAIN>
nslookup -type=srv _kerberos._tcp.domain.com
nmap --script dns-srv-enum --script-args "dns-srv-enum.domain='domain.com'"
```
### DNSSec
DNSSec는 DNS 보안 확장으로, DNS 서버의 응답을 인증하고 위조된 데이터를 방지하는 데 사용됩니다. DNSSec는 DNS 쿼리 및 응답에 대한 디지털 서명을 제공하여 데이터의 무결성을 보장합니다.
DNSSec는 다음과 같은 주요 구성 요소로 구성됩니다.
- **Zone Signing (존 서명)**: DNS 존의 모든 레코드에 대한 디지털 서명을 생성합니다.
- **Key Signing (키 서명)**: 존 서명에 사용되는 키를 서명하여 신뢰할 수 있는 키를 생성합니다.
- **Delegation Signer (위임 서명)**: 상위 DNS 존에서 하위 존에 대한 키를 서명하여 하위 존의 신뢰성을 보장합니다.
DNSSec는 DNS 쿼리 및 응답에 대한 인증을 제공하여 DNS 쿼리 중간에 데이터가 위조되지 않도록 합니다. 이를 통해 DNS 쿼리를 통해 악의적인 활동을 감지하고 방지할 수 있습니다.
DNSSec는 DNS 보안을 강화하는 데 도움이 되지만, 모든 DNS 서버가 DNSSec를 지원하지는 않습니다. 따라서 DNSSec를 사용할 수 있는 DNS 서버를 신중하게 선택해야 합니다.
```bash
#Query paypal subdomains to ns3.isc-sns.info
nmap -sSU -p53 --script dns-nsec-enum --script-args dns-nsec-enum.domains=paypal.com ns3.isc-sns.info
```
### IPv6
"AAAA" 요청을 사용하여 IPv6 주소를 수집하기 위한 무차별 대입(brute force) 공격입니다.
```bash
dnsdict6 -s -t <domain>
```
# IPv6 주소를 사용하여 역 DNS 브루트포스하기
IPv6 주소를 사용하여 역 DNS 브루트포스는 DNS 서비스를 대상으로 하는 효과적인 해킹 기법 중 하나입니다. 이 기법은 대상 네트워크에서 사용 가능한 IPv6 주소 범위를 대상으로 하여 DNS 역 조회를 수행합니다. 이를 통해 네트워크 내에서 사용되는 호스트 이름을 식별하고, 시스템의 취약점을 찾을 수 있습니다.
역 DNS 브루트포스를 수행하기 위해 다음 단계를 따릅니다:
1. 대상 네트워크의 IPv6 주소 범위를 식별합니다. 이는 대상 시스템의 IP 주소 범위를 알아내는 것과 유사한 절차입니다.
2. 브루트포스 도구를 사용하여 대상 네트워크의 IPv6 주소에 대한 DNS 역 조회를 수행합니다. 이를 통해 호스트 이름을 식별할 수 있습니다.
3. 호스트 이름을 사용하여 대상 시스템에 대한 추가 정보를 수집합니다. 이는 시스템의 운영 체제, 서비스 및 버전 등을 확인하는 것을 포함합니다.
4. 수집한 정보를 분석하여 시스템의 취약점을 식별합니다. 이를 통해 시스템에 대한 악용 가능성을 평가할 수 있습니다.
역 DNS 브루트포스는 대상 시스템의 취약점을 찾는 데 유용한 기법입니다. 그러나 이 기법을 사용할 때는 합법적인 목적으로 사용해야 하며, 대상 시스템의 소유자에게 사전 동의를 받아야 합니다. 또한, 이러한 기법을 사용할 때는 로그 기록이 남을 수 있으므로 익명성을 유지하는 것이 중요합니다.
```bash
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
```
### DNS 재귀 DDoS
DNS 재귀가 활성화되어 있다면, 공격자는 UDP 패킷에서 **원본을 위조**하여 DNS가 응답을 피해 서버로 보내도록 할 수 있습니다. 공격자는 **ANY** 또는 **DNSSEC** 레코드 유형을 악용할 수 있으며, 이들은 더 큰 응답을 가지기 때문입니다.\
DNS가 재귀를 지원하는지 확인하는 방법은 도메인 이름을 쿼리하고 응답에 **"ra" 플래그** (_재귀 가능_)가 있는지 확인하는 것입니다:
```bash
dig google.com A @<IP>
```
**사용 불가능**:
![](<../.gitbook/assets/image (275).png>)
**사용 가능**:
![](<../.gitbook/assets/image (276).png>)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**취약성 평가 및 침투 테스트를 즉시 사용할 수 있는 설정**. 20개 이상의 도구 및 기능을 사용하여 어디에서나 전체 펜테스트를 실행할 수 있습니다. 우리는 펜테스터를 대체하지 않습니다 - 대신, 펜테스터들에게 깊이 파고들고, 쉘을 획득하고, 재미를 느낄 수 있는 시간을 돌려주기 위해 맞춤형 도구, 탐지 및 공격 모듈을 개발합니다.
{% embed url="https://pentest-tools.com/" %}
### 존재하지 않는 계정으로 메일 보내기
대상 도메인 내에서 유효하지 않은 주소로 보낸 이메일에 의해 트리거된 배달 실패 알림 (NDN)을 조사함으로써, 가치 있는 내부 네트워크 세부 정보가 종종 공개됩니다.
제공된 배달 실패 보고서에는 다음과 같은 정보가 포함됩니다:
- 생성 서버는 `server.example.com`로 식별되었습니다.
- `user@example.com`에 대한 `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found` 오류 코드와 함께 실패 알림이 반환되었습니다.
- 원본 메시지 헤더에서 내부 IP 주소와 호스트 이름이 공개되었습니다.
```markdown
The original message headers were modified for anonymity and now present randomized data:
Generating server: server.example.com
user@example.com
#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found ##
Original message headers:
Received: from MAILSERVER01.domain.example.com (192.168.1.1) by
mailserver02.domain.example.com (192.168.2.2) with Microsoft SMTP Server (TLS)
id 14.3.174.1; Mon, 25 May 2015 14:52:22 -0700
Received: from filter.example.com (203.0.113.1) by
MAILSERVER01.domain.example.com (192.168.1.1) with Microsoft SMTP Server (TLS)
id 14.3.174.1; Mon, 25 May 2015 14:51:22 -0700
X-ASG-Debug-ID: 1432576343-0614671716190e0d0001-zOQ9WJ
Received: from gateway.domainhost.com (gateway.domainhost.com [198.51.100.37]) by
filter.example.com with ESMTP id xVNPkwaqGgdyH5Ag for user@example.com; Mon,
25 May 2015 14:52:13 -0700 (PDT)
X-Envelope-From: sender@anotherdomain.org
X-Apparent-Source-IP: 198.51.100.37
```
## 구성 파일
Config files are files that contain settings and configurations for various applications and services. In the context of DNS (Domain Name System) pentesting, config files are important because they often contain sensitive information that can be exploited by attackers.
구성 파일은 다양한 응용 프로그램과 서비스의 설정과 구성을 포함하는 파일입니다. DNS (도메인 이름 시스템) 펜테스팅의 맥락에서 구성 파일은 공격자가 악용할 수 있는 민감한 정보를 종종 포함하고 있어 중요합니다.
Attackers can look for misconfigurations or weak settings in these files to gain unauthorized access or perform other malicious activities. Some common examples of sensitive information that can be found in config files include database credentials, API keys, and passwords.
공격자는 이러한 파일에서 잘못된 구성 또는 약한 설정을 찾아서 무단 액세스를 얻거나 다른 악성 활동을 수행할 수 있습니다. 구성 파일에서 찾을 수 있는 민감한 정보의 일반적인 예로는 데이터베이스 자격 증명, API 키 및 비밀번호가 있습니다.
During a DNS pentest, it is important to thoroughly analyze the config files of the target system to identify any potential vulnerabilities or sensitive information that could be exploited. This can be done by manually reviewing the files or by using automated tools that can scan for common misconfigurations.
DNS 펜테스트 중에는 대상 시스템의 구성 파일을 철저히 분석하여 악용될 수 있는 잠재적인 취약점이나 민감한 정보를 식별하는 것이 중요합니다. 이는 파일을 수동으로 검토하거나 일반적인 잘못된 구성을 검사할 수 있는 자동화된 도구를 사용하여 수행할 수 있습니다.
```
host.conf
/etc/resolv.conf
/etc/bind/named.conf
/etc/bind/named.conf.local
/etc/bind/named.conf.options
/etc/bind/named.conf.log
/etc/bind/*
```
Bind 서버를 구성할 때 위험한 설정:
| **옵션** | **설명** |
| ----------------- | ----------------------------------------------------------------------- |
| `allow-query` | DNS 서버로 요청을 보낼 수 있는 호스트를 정의합니다. |
| `allow-recursion` | DNS 서버로 재귀적인 요청을 보낼 수 있는 호스트를 정의합니다. |
| `allow-transfer` | DNS 서버로부터 존 전송을 받을 수 있는 호스트를 정의합니다. |
| `zone-statistics` | 존의 통계 데이터를 수집합니다. |
## 참고 자료
* [https://www.myrasecurity.com/en/knowledge-hub/dns/](https://www.myrasecurity.com/en/knowledge-hub/dns/)
* 책: **Network Security Assessment 3rd edition**
## HackTricks 자동 명령어
```
Protocol_Name: DNS #Protocol Abbreviation if there is one.
Port_Number: 53 #Comma separated if there is more than one.
Protocol_Description: Domain Name Service #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for DNS
Note: |
#These are the commands I run every time I see an open DNS port
dnsrecon -r 127.0.0.0/24 -n {IP} -d {Domain_Name}
dnsrecon -r 127.0.1.0/24 -n {IP} -d {Domain_Name}
dnsrecon -r {Network}{CIDR} -n {IP} -d {Domain_Name}
dig axfr @{IP}
dig axfr {Domain_Name} @{IP}
nslookup
SERVER {IP}
127.0.0.1
{IP}
Domain_Name
exit
https://book.hacktricks.xyz/pentesting/pentesting-dns
Entry_2:
Name: Banner Grab
Description: Grab DNS Banner
Command: dig version.bind CHAOS TXT @DNS
Entry_3:
Name: Nmap Vuln Scan
Description: Scan for Vulnerabilities with Nmap
Command: nmap -n --script "(default and *dns*) or fcrdns or dns-srv-enum or dns-random-txid or dns-random-srcport" {IP}
Entry_4:
Name: Zone Transfer
Description: Three attempts at forcing a zone transfer
Command: dig axfr @{IP} && dix axfr @{IP} {Domain_Name} && fierce --dns-servers {IP} --domain {Domain_Name}
Entry_5:
Name: Active Directory
Description: Eunuerate a DC via DNS
Command: dig -t _gc._{Domain_Name} && dig -t _ldap._{Domain_Name} && dig -t _kerberos._{Domain_Name} && dig -t _kpasswd._{Domain_Name} && nmap --script dns-srv-enum --script-args "dns-srv-enum.domain={Domain_Name}"
Entry_6:
Name: consolesless mfs enumeration
Description: DNS enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; set RPORT 53; run; exit' && msfconsole -q -x 'use auxiliary/gather/enum_dns; set RHOSTS {IP}; set RPORT 53; run; exit'
```
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**취약성 평가 및 침투 테스트를 위한 즉시 사용 가능한 설정**. 리콘부터 보고서 작성까지 20개 이상의 도구와 기능으로 어디서든 전체 침투 테스트를 실행하세요. 우리는 펜테스터를 대체하지 않습니다 - 대신, 펜테스터들에게 더 깊이 파고들고 쉘을 획득하며 즐길 시간을 돌려주기 위해 맞춤형 도구, 탐지 및 공격 모듈을 개발합니다.
{% embed url="https://pentest-tools.com/" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 제로부터 AWS 해킹을 전문가 수준까지 배워보세요<strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* HackTricks에서 **회사 광고를 보거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 구매하세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요. 독점적인 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
* **HackTricks**와 **HackTricks Cloud** github 저장소에 PR을 제출하여 여러분의 해킹 기법을 공유하세요.
</details>