DNS, related vulnerability ( hosts )
DNS cache, hosts file, query order
windows
- The entries in the hosts file are loaded into DNS cache by DNS Client Service
- programs looks for DNS cache as the first step on name resolution.
- Domain Name System (DNS) servers are queried.
- If the name is still not resolved, NetBIOS name resolution sequence is used as a backup. This order can be changed by configuring the NetBIOS node type of the client.
LINUX, UNIX
Zone transfer vulnerability
nslookup
```bash
nslookup
set type=any //type을 any로 변경하고 request를 날려 nameserver 정보를 획득( whois 등에서 검색해도 됨. )
server=dnsserver //request를 보낼 대상을 dnsserver로 설정
ls -d domainname //dnsserver가 가지고 있는 domain에 대해 zone transfer를 시도한다.
( -d = 모든 레코드 나열. 없어도 된다 )
```
```bash
dig axfr @dnsserver domain.name
```
axfr은 axfr type query( zone transfer에 사용되는 type )를 보내겠다는 뜻이다.
적절한 설정
LINUX, UNIX
설정파일은 etc/named.conf
master에서
```
options {
allow-transfer { slaveIP; };
};
```
slave에서
```
options {
allow-transfer { none; };
};
```
windows
제어판-관리도구-서버 관리자-DNS
zone transfer를 사용하지 않고 NFS를 이용해 공유하거나, 수동으로 동기화 하는 경우 master도 slave처럼 none으로 설정하면 된다.
취약점을 막기위한 방법으로 이 밖에도 비밀키를 이용해 트랜잭션하는 방법이라던지, 다른 대안들이 더 있다고 한다.
16.09.20 북한 DNS data가 zone transfer 취약점으로 유출됐다. github link
DNS Amplification( Reflection ) Attack
DNS Reflection Attack이라고 하는 사람도 있는 것 같은데 Reflection Attack을 시도할 때 Amplification을 사용할 수 있다고 이해하면 된다. DNS같은 경우 Amplification을 사용하지 않으면 효과가 미미해 Amplification Attack이라고 부르는게 더 맞는 것 같다.
DNS Amplification Attack은 DNS server에 victim의 IP로 query를 보내서 다량의 UDP packet(DNS response)가 victim으로 가게 하는 것이다. 여기까지만 보면 reflection인데, amplification하기 위해 EDNS0 DNS protocol extension을 사용한다. 이 확장 프로토콜은 거대한 DNS 메시지를 허용하거나 DNSSEC에서 메시지 사이즈를 증가시키는데 사용된다. 또한 DNS query type은 'ANY'로 적어 보내서 single request에 받아올 수 있는 모든 DNS zone information을 받아오게 된다.
이런 방법을 통해 60byte 정도의 DNS request가 4000byte가 넘는 response로 amplification되어 target으로 날아간다.
결과적으로 70배 정도 증폭 된 셈이다.
덧붙여 보통 DNS request를 botnet들을 통해 relay해서 보내기 때문에 추적하기 쉽지 않다고 한다.
List of DNS record types
nslookup에서 `` set type=X`` 명령으로 설정할 수 있다.
보통 A+AAAA로 설정되어 있고, ANY, MX, ALL 등으로 변경 가능하다.
ANY와 ALL의 차이점은, ALL은 ANY의 출력정보에 추가로 입력url에 연결된 모든 IP를 보여준다.
참고
https://www.linux.co.kr/home/lecture/files/sbHong/securing_zone_transfer.pdf
http://security.stackexchange.com/questions/93820/dns-reflection-attack-vs-dns-amplification-attack
'Network & Protocol & Infra' 카테고리의 다른 글
Port, Socket, Connection (0) | 2016.11.13 |
---|---|
Proxy / VPN (0) | 2016.10.29 |
IPsec (0) | 2016.09.17 |
Wireless ( IEEE 802.11 ) (0) | 2016.09.10 |
Firewall Architectures (0) | 2016.09.08 |