사례로 살펴보는 Suo5 기반 터널링·피벗팅 공격 기법

사례로 살펴보는 Suo5 기반 터널링·피벗팅 공격 기법

개요.


이 보고서는 Suo5(HTTP/HTTPS 기반 터널링 도구)가 침해된 웹 서버를 중계 지점으로 삼아 내부망으로 이동하는 피벗팅(Pivoting, 이미 장악한 시스템을 경유해 다른 시스템이나 네트워크로 범위를 넓히는 기법)에 악용된 사례를 정리한다. 터널링(Tunneling, 한 프로토콜의 데이터를 다른 프로토콜 안에 넣어 전송하는 기술)과 포트 포워딩(Port Forwarding, 특정 호스트와 포트의 트래픽을 다른 호스트나 포트로 전달하는 기술)의 관계도 설명한다.

Suo5의 특징.


Suo5는 HTTP/HTTPS 통신을 이용해 TCP 트래픽을 중계하고 SOCKS5 프록시 형태로 내부 네트워크에 접근할 수 있게 한다. Full Duplex와 Half Duplex 전송 모드를 지원하며, HTTP Method, Header, User-Agent를 조정할 수 있다. Java, PHP, IIS/.NET 환경과 Nginx가 앞단에 있는 리버스 프록시 환경에서도 동작하도록 설계됐다.

확인된 사례.


  • 파일 배포 방식: 파일 업로드 취약점을 악용해 Windows Server 기반 IIS 웹 서버에 Suo5.aspx를 FilesImages.aspx로 이름을 바꿔 업로드했다. 이후 해당 파일을 통해 통신 경로를 구성하고 내부 시스템으로 공격 범위를 확장했다.
  • 메모리 주입 방식: Java 기반 Jenkins 서버에서 관리자 권한을 탈취한 뒤 Groovy 스크립트 실행 기능인 Script Console을 악용했다. Groovy 스크립트로 Suo5 기능을 Servlet과 Filter 형태로 런타임 메모리에 등록해 별도 파일 없이 내부 시스템 통신 경로를 확보했다.

주요 흔적.


파일 배포 방식에서는 FilesImages.aspx로 향하는 반복적인 POST 요청이 웹 로그에 남았다. 또한 IIS/ASP.NET의 동적 컴파일 과정에서 Temporary ASP.NET Files 경로에 DLL과 .compiled 파일이 생성됐고, 이를 통해 실행 경로와 Suo5 관련 동작을 분석할 수 있었다.
메모리 주입 방식에서는 실제 파일이 디스크에 남지 않을 수 있었고, 웹 로그에는 /login.php 또는 /login 요청이 기록됐다. Java 로그에서는 PluginServletFilter 체인과 Script1.groovy의 doFilter() 호출, 그리고 ClassFormatError 관련 오류 스택 트레이스가 확인됐다.

탐지 및 대응.


보고서는 특정 IOC에만 의존하지 말고 웹 요청, 서버 측 실행 행위, 내부 네트워크 통신을 함께 모니터링해야 한다고 제시한다. 평소 사용되지 않던 URI, 반복되는 POST 요청, 비정상적인 User-Agent, 업무 시간 외 접근을 확인해야 하며, 웹 애플리케이션 경로의 신규 파일 생성과 변경도 점검해야 한다. 또한 Groovy 같은 서버 측 스크립트 실행 기능의 비활성화 또는 접근 제한, 내부망 접근 범위 최소화, 백신 및 EDR 적용이 필요하다.

MD5

810726bb14e100a122cd8fc189eb087f