
CVE-2025-39507을 Tier 1 SOC 분석가 관점에서 조사하는 실습형 랩입니다. Microsoft Sentinel에서의 로그 검토, IP 분석, 실제 스크린샷, 그리고 워드프레스 플러그인의 로컬 파일 포함(LFI) 취약점에 대한 간단한 해설을 포함합니다.
평범한 월요일입니다. 평소처럼 SOC 대시보드에 로그인하여 알림을 검토하고 있습니다. 그때 눈에 띄는 알림 하나가 들어옵니다:
알림: 의심되는 로컬 파일 포함(LFI) 시도
IP 주소: 203.0.113.44
URL:/index.php?file=../../../../etc/passwd
사용자 에이전트(User Agent): curl/7.81.0
누군가 URL을 조작하여 시스템 파일에 접근하려고 하는 것 같습니다. 제 역할은 이를 조사하고 에스컬레이션이 필요한지 판단하는 것입니다.
빠른 조사를 통해 이 알림이 알려진 취약점인 CVE-2025-39507과 일치한다는 것을 확인했습니다. 이 취약점은 Nasa Core라는 WordPress 플러그인(버전 6.3.2 이하)에 영향을 미치며, 공격자가 파일 입력 매개변수를 변경하여 서버의 민감한 파일을 열람할 수 있게 합니다.
예시:
/index.php?file=../../../../etc/passwd
플러그인이 파일 입력을 올바르게 검증하지 않으면, 공격자가 제공한 경로를 그대로 따라가게 됩니다.
탐지 규칙을 직접 작성한 것은 아니지만, 알림을 트리거한 원인을 이해하기 위해 규칙을 검토했습니다. 규칙은 다음과 같은 항목을 찾습니다:
/etc/passwd 또는 /wp-config.php와 같은 민감한 파일에 대한 요청다음은 해당 규칙을 단순화한 버전입니다:
CommonSecurityLog
| where RequestURL has "../"
or RequestURL has "etc/passwd"
or RequestURL has "wp-config"
| where DeviceCustomString1 contains "curl" or DeviceCustomString1 contains "python"
| project TimeGenerated, SourceIP, RequestURL, DeviceCustomString1
IP 203.0.113.44가 다른 어떤 시도를 했는지 확인하기 위해 쿼리를 실행했습니다:
CommonSecurityLog
| where SourceIP == "203.0.113.44"
| summarize count() by RequestURL
알고 보니 해당 IP는 /admin/, /login.php, /wp-config.php와 같은 다른 경로에도 접근했습니다. 이를 통해 일회성 요청이 아니라 스캐너 또는 정찰(recon)을 수행하는 공격자일 가능성이 높다는 것을 알 수 있었습니다.
로그에서 해당 IP가 얼마나 오랫동안 활동했는지 확인했습니다:
CommonSecurityLog
| where SourceIP == "203.0.113.44"
| summarize FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated)
몇 시간 전에 시작되어 최근까지도 계속 활동 중이었습니다. 즉, 과거의 잡음(noise)이 아니라 현재 진행 중인 공격이었습니다.
에스컬레이션을 위해 다음과 같이 문서화했습니다:
"IP 203.0.113.44에서 발생한 LFI 스캔으로 의심됩니다. 요청 패턴이 CVE-2025-39507과 일치합니다. 해당 IP는 curl을 사용하여 /etc/passwd 및 wp-config.php를 포함한 9개의 고유 경로에 접근했습니다. 이러한 행동은 자동화된 정찰로 판단됩니다. Tier 2 검토 및 IP 차단을 권장합니다."
| # | 설명 | 파일 |
|---|---|---|
| 1 | CVE 목록 (Patchstack) | 1_cve_selection_listing.png |
| 2 | Patchstack 개요 | 2_patchstack_cve_overview.png |
| 3 | VulDB 벡터 예시 | 3_vuldb_exploit_vector.png |
| 4 | Azure Kali VM 생성 | 4_kali_vm_deployed.png |
| 5 | VM 실행 스크린샷 | 5_kali_vm_running_status.png |
| 6 | Kali에 SSH 접속 | 6_kali_vm_logged_in.png |
| 7 | Sentinel KQL 규칙 검토 | 7_lfi_detection_kql_query.png |
모든 스크린샷은 /screenshots 폴더에 있습니다.
작업을 진행하면서 스스로에게 던진 몇 가지 질문들입니다:
다음으로 TryHackMe와 같은 플랫폼을 사용하여 통제된 실습 환경에서 이 공격의 안전한 시뮬레이션을 실행할 예정입니다. 목표는 공격자 관점에서 이러한 유형의 활동이 어떻게 보이는지 — 그리고 어떤 종류의 로그를 생성하는지 더 잘 이해하는 것입니다.
P.S. 이 실습은 교육 목적으로만 안전하고 윤리적인 환경에서 수행되었습니다. 실제 시스템을 대상으로 하거나 피해를 입히지 않았습니다. 항상 조직의 규칙을 따르고, 소유하지 않았거나 테스트 권한이 없는 시스템에서 익스플로잇을 테스트하지 마세요.