1. 정의
- DNS 터널링은 DNS 프로토콜을 이용하여 데이터를 전송하는 기술로, 일반적으로 DNS는 도메인 이름을 IP 주소로 변환하는 데 사용됨
- 또한 DNS 터널링은 데이터를 캡슐화하고 전송하는 데 사용됨
2. 목적
- 네트워크 보안 우회: 네트워크 보안을 우회하고 통신 가능
- 데이터 은닉: 데이터를 암호화하고 DNS 터널을 통해 전송함으로써 데이터를 숨길 수 있음
- 즉, 외부로 나가는 네트워크 트래픽 모니터링을 우회하면서 데이터를 외부로 유출하기 위해 사용 가능한 기술
3. 문법
<도메인 이름> <타입> <데이터>
- <도메인 이름>: 데이터를 전송하기 위한 특별한 도메인 이름을 사용
- <타입>: DNS 레코드 유형 (예: A, AAAA, TXT 등)
- <데이터>: 전송하려는 데이터
4. 라이브러리
- DNS 터널링을 위한 다양한 도구와 라이브러리가 있음(Iodine, Dns2tcp, Dnscat2 등)
5. 예시
Iodine을 사용한 DNS 터널링 예시
# 서버 설정
iodined -f -c -P <비밀번호> <도메인 이름>
# 클라이언트 설정
iodine -f -P <비밀번호> <도메인 이름>
# 데이터 전송
ping <도메인 이름>