클라이언트와 C2 서버 (command&control) 통신을 하는 취약점을 이용하여 터널링이 가능하다. 그 중, DNS가 있다.

터널링 도구 Dnscat2 를 사용하고자 한다.

DNScat2 란? DNS 프로토콜을 이용하여 command&control를 Stealth mode에서 할 수 있도록 하는 도구

쉘도 딸 수 있고 업로드 다운로드되는 모든 데이터에 대한 접근이 가능하다. 

이 도구가 53번 포트를 통해 동작할 때 접근 권한이 없어도 작동이 가능하다. 단지, 53번과 connection을 잘 맺으면 된다.

하지만, 이 도구를 통한 공격은 로그에 잘 찍힌다는 것..

DNScat2는 client와 server로 구성되어 있는데, client는 C언어, server는 ruby로 작성되어 있다.

공격자 PC에서 git clone을 이용하여 git 파일을 다운로드 받는다.

DNScat2 폴더 내 구조는 위와 같다. 앞서 말했던 것처럼, client와 server 폴더가 별도로 있음을 알 수 있다. 

그 후, /dnscat2/server 폴더로 이동해 ruby로 작성된 server를 구동할 수 있도록 환경을 만들어야 한다.

처음에 명령어들이 이해가 안 갔는데.. gem은 python에서 pip같은 역할이고 (패캐지 및 종속성 관리 도구) Bundler는 ruby 프로젝트 패키지 관리자라고 한다. 즉, gem명령어를 통해서 bundler를 시스템에 설치하는 격..

bundle install 명령은 해당 ruby 프로젝트 디렉토리 내 gemfile를 읽어 해당 파일에 정의된 종속성, 버전 등을 확인하여 필요한 모든 gem들을 설치해주는 것. (python 에서의 requirments.txt 느낌..)

ruby 프로젝트를 실행할 환경이 만들어졌다면 server 내 루비 파일을 실행하면 된다.
0.0.0.0:53 으로 DNScat2 DNS 서버가 Listening되고 있음을 확인할 수 있다.

오른쪽은 내 local 윈도우, 왼쪽은 vmware 공격자 서버이다. 둘은 같은 망에 물려있다.

window : 192.168.237.1  kali : 192.168.237.171

로컬에서 client를 실행하고 서버 ip정보와 포트 53을 명시해주면 공격자 서버 쪽에서 1개의 window created 되었음을 알 수 있다. 보통 보안 장치에서는 53포트를 차단하지 않고 있다.

session이 맺어져있음을 알 수 있고
session -i 1 1번 연결을 통해 command 명령이 가능하다.

shell 명령어를 치면 shell session이 생기는 것을 볼 수 있고 (window 2) 

ipconfig나 ls 명령어 등을 수행하여 내부 PC 데이터를 확인할 수 있다.

 

참고 

https://www.hackingarticles.in/dnscat2-application-layer-cc/

 

DNScat2: Application Layer C&C - Hacking Articles

In today’s world, IT infrastructure and network security devices are becoming more and more secure and hence, ports like 53 (DNS) is used as a

www.hackingarticles.in

 

'네트워크' 카테고리의 다른 글

제로 트러스트 보안 모델  (0) 2023.11.10
Zero Trust 이행 단계  (0) 2021.08.22
DDOS 공격 대응 방안  (0) 2021.07.20
OSI 7 layer 패킷 분석  (0) 2021.07.17
수리카타  (0) 2021.07.17

+ Recent posts