AI 지원 PaperCut 공격, 두 번째 RCE 및 글로벌 피해자 네트워크 노출
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
러시아어를 사용하는 위협 행위자가 우크라이나의 인프라를 대상으로한 캠페인을 수행하였으며, 데이터 교환 생태계와 Graylog 로깅 서버에 특히 중점을 두었습니다. 공격자는 Log4Shell 기반의 JNDI 인젝션 체인을 사용하여 원격 코드 실행을 달성하고 리버스 쉘을 배포했습니다. MikroTik 및 Fortinet 시스템에 대한 여러 익스플로잇이 시도되었지만, 주로 성공적인 접근은 재사용 가능한 CommonsBeanutils2 역직렬화 체인에 의존했습니다.
조사
조사는 연구원들이 약 17시간 동안 공개 IP 주소에 노출된 운영자 준비 디렉토리를 발견한 이후 시작되었습니다. 분석가들은 공격자의 작업 파일, 익스플로잇 스크립트, 페이로드 빌더, 셸 기록 및 정찰 결과를 복구했습니다. 이 노출은 초기 masscan 정찰부터 Graylog 인스턴스에서의 코드 실행 성공에 이르는 전체 공격 체인을 재구성할 수 있게 했습니다.
완화 조치
조직은 Graylog 배포를 패치하는 데 우선순위를 두고, JNDI 조회를 적절한 Java 보안 제어를 통해 비활성화하거나 엄격히 제한해야 합니다. 애플리케이션 서버에서 비인가된 LDAP 및 RMI 연결을 차단하기 위해 엄격한 이그레스 필터링을 시행해야 합니다. 보안 팀은 Java 기반 서비스에서 생성된 비정상적인 자식 프로세스를 모니터링하고, 중요한 API 엔드포인트에서 CSRF 보호를 시행해야 합니다.
대응
의심스러운 JNDI 활동이나 웹 서비스로부터 유래한 예상치 못한 자식 프로세스가 감지되면 즉시 영향을 받은 호스트를 격리해야 합니다. 응용 프로그램 로그를 검토하여 성공적인 익스플로잇 패턴, 특히 /api/system/sessions 엔드포인트를 주의 깊게 살펴보세요. 호스트 수준 디지털 포렌식 분석을 통해 무단 SSH 키, 리버스 쉘, 또는 피벗에 사용되었을 가능성이 있는 지속적인 터널을 확인하세요.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
Log4j RCE [CVE-2021-44228] 사후 익스플로잇 탐지 패턴 (Windows)
Log4j RCE [CVE-2021-44228] 사후 익스플로잇 탐지 패턴 (Linux)
Bash를 통한 가능한 데이터 유출 / 리버스 쉘 (cmdline 사용)
수상한 Java 자식 프로세스 [Linux] (cmdline 사용)
표준 도구를 통한 원격 파일 업로드 / 다운로드 (cmdline 사용)
PaperCut 공격자의 AI 툴킷 안에서 탐지할 IOC (HashSha256): 에이전트 지침, 익스플로잇 코드, 두 번째 RCE, 45개국 이상의 피해자
PaperCut 공격자의 AI 툴킷 안에서 탐지할 IOC (SourceIP): 에이전트 지침, 익스플로잇 코드, 두 번째 RCE, 45개국 이상의 피해자
PaperCut 공격자의 AI 툴킷 안에서 탐지할 IOC (DestinationIP): 에이전트 지침, 익스플로잇 코드, 두 번째 RCE, 45개국 이상의 피해자
Java 서비스에서 MakeCB2.class를 통해 생성된 리버스 쉘 탐지 [Linux 프로세스 생성]
우크라이나 국가 데이터 교환 시스템을 목표로 한 러시아어 사용 운영자 탐지 [Linux 파일 이벤트]
시뮬레이션 실행
-
공격 내러티브 및 명령: 적이 주 정부 교환 웹 애플리케이션의 취약점을 악용하려고 시도하고 있습니다. 관리 트래픽과의 혼합을 위해 특정 헤더를 사용합니다
X-Requested-By: cli. 그들은 세션 관리 엔드포인트를 대상으로 하며/api/system/sessionsfire3.sh라는 이름의 악성 셸 스크립트 실행을 유발하려고 시도합니다.fire3.shUXP VerifierUXP Verifier응답 내 문자열은 이 위협 행위자가 사용하는 특정 툴킷의 알려진 특징입니다. 목표는 웹 서버를 통해 원격 코드 실행을 얻는 것입니다. -
회귀 테스트 스크립트:
#!/bin/bash # 탐지 규칙을 유발하기 위한 시뮬레이션 스크립트 # 이 스크립트는 네 가지 탐지 기준 모두를 충족하는 요청을 시뮬레이션합니다 TARGET_URL="http://localhost/api/system/sessions" echo "[+] 타겟화된 공격 요청 시뮬레이션 중..." # 우리는 정확한 헤더와 요청 경로를 모방하기 위해 curl을 사용합니다. # 주의: 실제 서버의 'ResponseBody'를 호스트하지 않는 한 # 모의 서버를 호스팅하지 않고 쉽게 제어할 수 없으므로, 이 시뮬레이션은 # 'UXP Verifier'를 반환하는 인터셉터 프록시 또는 모의 웹 서비스가 # 로그를 생성한다고 가정합니다. curl -X POST "$TARGET_URL" -H "X-Requested-By: cli" -H "Content-Type: application/json" -d '{"filename": "fire3.sh", "payload": "echo "UXP Verifier""}' --verbose echo "[+] 시뮬레이션 명령 전송됨." -
정리 명령:
# 시스템에 지속적인 변화가 없었지만, 모의 서버가 시작되었다면: # pkill -f "python3 -m http.server" echo "[+] 정리 완료."