JNU 2022. 11. 7. 12:16
반응형

지난 시간에는 직접 수집을 위한 명령어들을 알아보았으니,
이번에는 scanning의 종류와 scanning 하는 방식을 알아보도록 하자~
참고로 오늘 내용은 저번 내용보다 좀 더 많다. DNS 설정해야 하는 파일이 많거든 ㅜㅜ......

아무튼 또 하나씩 파헤쳐보자!




1. Scanning의 종류

- DNS Scanning: domain을 통해 IP를 알아내는 scan 방식
- Port Scanning: IP를 통해 port service를 알아내는 scan 방식

2. DNS Scanning을 위한 setting

systemctl stop firewalld로 방화벽을 잠시 비활성화시키고
setenforce 0 명령으로 SElinux도 비활성화 하기
비활성화 이후 rebooting하고 getenforce 명령으로 disabled 상태가 되었는지 확인!


 

DNS란?

domain name system이란 뜻으로 dns server를 통해 URL을 IP주소로 변환시켜주는 작업을 한다.
ex) www.jnudiary.tistory.com -> 192.168.10.100

모든 사람들이 자신이 사용하는 사이트의 IP 주소를 알 경우 사용할 일이 없으나,
너무 많은 사이트가 존재하는 한 사용할 수밖에 없는 system이다.
이를 이름 해석(name resolution)이라고 한다.
nslookup의 결과로 나온 IP주소가 바로 domain의 web server IP 주소다.
일종의 주소록이라고 생각하면 편하겠지?

- DNS 주요 file 확인

1. /etc/host.conf: URL 입력 시 IP 주소를 얻기 위해 먼저 확인해야 할 내용 결정
order host.bind > /etc/hosts 파일 찾기
multi on > /etc/hosts 파일에 여러 개의 URL 사용 가능

2. /etc/hosts: 직접 DNS와 IP를 묶는 파일 (직접 수첩에 사이트와 IP 주소 수기 작성하는 파일)
철수: 010-1111-1111
영미: 010-2222-2222
기철: 010-3333-3333
이런 식으로 전화번호부 역할을 하는 파일이라고 생각하면 됨


3. /etc/resolv.conf: 어떤 IP의 서버를 nameserver로 사용할지 설정
nameserver를 등록하지 않으면 domain으로 접속이 불가능하고 web server IP로만 접속이 가능하다.


4. /etc/named.conf: named 데몬의 설정 파일 (주 설정 파일)
네임 서버 서비스가 시작될 때 제일 먼저 읽는 파일


5. /etc/named.rfc1912.zones: NS 정의 파일. 개별 도메인에 대한 설정



6. /var/named : zone, rev: NS 설정 파일. 도메인의 정보를 저장


DNS file의 flow

1. domain 입력
2. /etc/host.conf (IP 매칭 전 확인 내용)
3. /etc/hosts (주소록 확인)
4. /etc/resolv.conf (114로 번호 확인)

DNS를 통한 사이트 접속을 위해 거쳐야하는 경로들이라고 생각하자.



DNS scanning을 위한 환경설정 단계


1. -/etc/named.conf 수정하기
밑에 동그라미 친 부분을 any;로 변경하자
- listen-on port 53 {any;}; 53 port를 누구나 listen on 할 수 있도록 하는 line
- allow-query {any;}; name server에는 하나의 name server만 있지 않다. (kali linux 2번 글 참조)
하나의 DNS server에는 여러 개의 name server를 가져올 수 있다.
이를 허가하여 누구나 query를 가능하게 해주는 line이다.

수정 후 named-checkconf 명령으로 오류가 없는지 확인한다. 어떤 반응도 없으면 정상 수정이 된 것이다.



2. -/etc/named.rfc1912.zone 수정하기
다음과 같이 zone file들을 등록한다. 난 (test/test2). co.kr을 등록했다.
zone "test.co.kr" IN {} : 사용할 domain name 등록
type master; : file type 설정 (master=1차 name server, slave= 2차 name server, hint= root domain)
file : zone file 등록
allow-update {none;}; : 어떤 ip로부터 zone file을 갱신할지 설정 여기서는 none으로 기능을 꺼두자.



3. -/var/named/zone file 만들기
여기서 test 1,2,3 zone file을 모두 만들었다. 여기선 test 3 zone file 내용만 보도록 한다.
해당 zone file을 forward zone file이라고 한다.

<option>
@ > /etc/named.conf에 정의된 test3.co.kr을 의미
IN > internet을 의미
SOA > start of authority, 권한 시작을 뜻한다. D, H, W는 day, hour, week의 약자이다.
NS > name server의 약자
A > host 이름에 상응하는 IP주소를 지정한다.
CNAME > host 이름에 별칭을 부여할 때 사용한다.

수정 후, named-checkzone test.co.kr test.co.kr.zone 명령으로 문법 오류를 확인한다.
named-checkzone [domain이름] [설정 file이름]

test3.co.kr.zone 파일의 내용



4. -/etc/resolv.conf file 수정하기
해당 file에서 어떤 IP의 서버를 nameserver로 할 것이지 정해주는데
test.co.kr의 nameserver : 192.168.10.100
test2.co.kr의 nameserver : 192.168.20.100
test3.co.kr의 nameserver : 192.168.30.100
다음과 같이 nameserver 별로 IP 주소를 부여하도록 하자.
등록 후 kali에서 host 명령으로 해당 domain들의 ip를 확인해보자.

각 도메인 별로 부여한 IP주소대로 출력해주고 있다.

 

3. dnsmap scanning

dnsmap: domain name을 통해 해당 web server의 IP를 확인할 수 있는 명령어
우리가 지난시간에 nmap을 잠깐 써봐서 알겠지만 이것도 스캐닝도구 중에 하나로 생각하면 돼.

단지 dnsmap은 dns를 스캔한다는 차이만 있을 뿐이야.

 

<option>

-r: scan 결과를 file 형태로 저장하는 option
dnsmap test3.co.kr -r /root/dnsmap.txt > /root/dnsmap.txt 형태로 file 저장

-w: 해당 단어가 포함된 file의 내용을 scan
dnsmap test3.co.kr -w dnsword.txt
dnsword.txt file에 'blog'가 입력되어 있을 시 blog가 포함된 domain ip scan

-i ips-to-ignore scan
일반 scan이 안될 때 사용한다. ips를 무시하고 scan 하는 방식
dnsmap google.com -i ips-to-ignore

dnsmap을 통해 test3.co.kr domain의 web server IP를 수집한 결과

 

/root/dnsmap3.txt 형식으로 해당 결과를 저장

 

4. fierce scanning

강력한 DNS scanning 기능을 가진 명령
fierce 명령으로 해당 사이트의 zone file까지 scan 할 수 있어 매우 강력한 scanning 도구
ex) fierce --domain test3.co.kr
dnsmap과 다른 점이 dns 설정파일의 내용까지 다 수집해서 알려주기 때문에 이 공격 툴에 한번 걸리면 세부 내용까지 다 털릴 가능성이 큼

test3.co.kr의 zone file의 내용을 그대로 scan해온 것을 볼 수 있다.

 

5. dmitry

DNS 정보수집 명령으로 명령어 형식은 다음과 같다.
- dmitry <option> [target Domain]

<option>
-o: file형태로 결과 저장 dmitry -w test3.co.kr -o dmitry.txt
-i: 해당 domain에 대한 상세 정보 출력 dmitry -i test3.co.kr
-p: 해당 domain에 대한 port scannig dmitry -p test3.co.kr


 

이렇듯 dns scanning을 통해서 domain의 IP 주소를 탈취할 수 있음을 확인해 봤는데,
의외로 쉬워서 놀랐다......몇 가지 취약점으로 인해 DNS server에 직접적인 공격을 하게 되면 피해가 꽤나 클 가능성이 있어 보인다.여기까지 DNS 에 대해 알아봤는데, 이제 다음 글부터는 방화벽을 알아볼 것이다.방화벽 또한 공부하다보면 파헤칠게 많은데...... 아무튼! 다음 시간에 또 공부해보도록 하자.

 

 

 

반응형