[하루한줄] ICMP 터널링을 사용한 백도어 Pingback
URL
Pingback: Backdoor At The End Of The ICMP Tunnel
Target
- Windows
Explain
ICMP 터널링을 사용하여 통신 탐지를 우회한 뒤 감염된 PC에서 지속적으로 임의 명령을 수행하는 백도어가 발견되었습니다.
해당 악성코드는 데이터베이스, 메시지 큐 및 파일 시스템과 같은 여러 리소스 관리자에 걸쳐있는 트랜잭션을 조정하는 msdtc(Microsoft Distributed Transaction Coordinator)를 통해 악성 DLL oci.dll
을 호출하여 지속성을 유지합니다. 또한 msdtc를 시작 프로그램으로 설정하기 위해 SYSTEM 권한을 필요로 하며 멀웨어를 설치할 때 SC Command를 사용하여 윈도우 시스템 디렉터리에 oci.dll
를 설치하고 msdtc를 시작 프로그램으로 등록합니다.
oci.dll
은 통신에 ICMP(Internet Control Message Protocol)을 사용합니다. ICMP는 네트워크 계층 프로토콜로 ICMP 패킷과 연계되는 TCP, UDP 포트 번호가 존재하지 않아 netstat
에서 통신을 숨길 수 있습니다.
ICMP 프로토콜을 통해 통신을 하기 위해 ICMP 터널링을 사용합니다. IPv4 네트워크에서 ICMP 패킷은 IPv4 헤더, ICMP 헤더, ICMP 데이터로 구성되어 있습니다. Type 8 (Echo, ping) ICMP 메시지를 전송하여 명령을 수행하며 패킷 데이터 형식은 다음과 같습니다.
struct ICMPData {
char cmd[10]; // bot command
char args[512]; // extra parameter
char cmd_line[258]; // command line
unsigned long dest_port; // destination port
char dest_addr[4]; // destination IP address
}
Pingback에서 지원하는 명령어는 다음과 같습니다.
- shell - 쉘 실행
- download - 3개의 모드가 존재
- Mode 1: 해커의 호스트에 감염된 PC를 다시 연결
- Mode 2: 감염된 PC가 지정된 포트에 소켓을 열고 해커의 연결을 기다림
- Mode 3: ICMP 기반으로 매우 느리고 현재 구현 상 flow control을 신뢰할 수 없음
- upload - 다운로드 명령과 비슷하게 3개의 모드를 지원함
- exec - 감염된 PC에서 명령어를 실행함
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.