클라이언트와 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
'네트워크' 카테고리의 다른 글
AWS Lightsail SSH 접속 연결 (0) | 2025.01.16 |
---|---|
제로 트러스트 보안 모델 (0) | 2023.11.10 |
Zero Trust 이행 단계 (0) | 2021.08.22 |
DDOS 공격 대응 방안 (0) | 2021.07.20 |
OSI 7 layer 패킷 분석 (0) | 2021.07.17 |