DNS(도메인 이름 시스템)는 securitytut.com과 같은 사람에게 친숙한 URL을 183.33.24.13과 같은 IP 주소로 변환하는 프로토콜입니다. DNS 메시지는 각 통신의 시작 부분으로만 사용되며 데이터 전송을 위한 것이 아니기 때문에 많은 조직에서 악의적인 활동에 대해 DNS 트래픽을 모니터링하지 않습니다. 결과적으로 DNS 기반 공격은 네트워크에 대해 실행될 경우 효과적일 수 있습니다. DNS 터널링은 그러한 공격 중 하나입니다.
DNS 터널링의 예는 다음과 같습니다.

공격자는 많은 오픈 소스 DNS 터널링 키트 중 하나를 권한 있는 DNS 네임서버(NS)와 악성 페이로드에 통합합니다.
2. 공격자의 인프라에서 IP 주소(예: 1.2.3.4)를 할당하고 도메인 이름(예: attackerdomain.com)을 등록하거나 재사용합니다. 레지스트라는 1.2.3.4에 매핑된 DNS 레코드가 있는 ns.attackerdomain.com에 공격자 도메인에 대한 요청을 참조하도록 최상위 도메인(.com) 이름 서버에 알립니다.
3. 공격자는 악성 페이로드로 시스템을 손상시킵니다. 원하는 데이터를 얻으면 페이로드는 데이터를 짧은 문자열(3KJ242AIE9, P028X977W,...)로 분할된 일련의 32자(0-9, AZ)로 인코딩합니다.
4. 페이로드는 도메인 이름의 일부로 각 문자열을 사용하여 공격자의 도메인에 수천 개의 고유한 DNS 레코드 요청을 시작합니다(예: 3KJ242AIE9.attackerdomain.com). 공격자의 인내심과 은밀성에 따라 의심스러운 네트워크 활동을 피하기 위해 요청을 며칠 또는 몇 달에 걸쳐 간격을 둘 수 있습니다. 5. 요청이 재귀적 DNS 확인자로 전달됩니다. 확인하는 동안 요청은 공격자의 권한이 있는 DNS 이름 서버인 6으로 전송됩니다. 터널링 키트는 인코딩된 문자열을 구문 분석하고 추출된 데이터를 다시 작성합니다. 참조: https://learn-umbrella.cisco.com/i/775902-dns-tunneling/0
5. 요청이 재귀적 DNS 확인자로 전달됩니다. 확인하는 동안 요청은 공격자의 권한 있는 DNS 네임서버로 전송되며,
6. 터널링 키트는 인코딩된 문자열을 구문 분석하고 추출된 데이터를 다시 작성합니다.
도메인 이름의 일부(예: 3KJ242AIE9.attackerdomain.com). 공격자의 인내심과 은밀성에 따라 의심스러운 네트워크 활동을 피하기 위해 요청을 며칠 또는 몇 달에 걸쳐 간격을 둘 수 있습니다. 5. 요청이 재귀적 DNS 확인자로 전달됩니다. 확인하는 동안 요청은 공격자의 권한이 있는 DNS 이름 서버인 6으로 전송됩니다. 터널링 키트는 인코딩된 문자열을 구문 분석하고 추출된 데이터를 다시 작성합니다. 참조: https://learn-umbrella.cisco.com/i/775902-dns-tunneling/0