SharpViewStateKing 및 은밀한 임플란트 프레임워크의 해부학
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
캐나다 사이버 보안 센터는 SharpViewStateKing을 ASP.NET 환경을 은밀하게 타겟팅하기 위해 고안된 모듈형 임플란트 프레임워크로 식별했습니다. 손상된 ViewState 매개변수를 악용하여, 프레임워크는 플러그인을 전적으로 메모리 내에서 실행함으로써 효과적인 무상태 방식으로 운영하고 기존의 파일 기반 탐지를 회피합니다. 암호화된 HTTP 및 HTTPS 트래픽은 합법적인 웹 통신 속에 활동이 섞이도록 도와줍니다.
조사
조사는 분석가들이 공용 Microsoft IIS 서버에서 웹 셸을 발견한 후 시작되었습니다. 엔드포인트 원격 측정 및 프로세스 메모리 검토에서, 임플란트가 파일 업로드, 원격 명령 실행, 호스트 정찰과 같은 작업을 수행하기 위해 동적으로 생성된 C# 플러그인을 사용한 것으로 나타났습니다. 연구원들은 Assemblyline 플랫폼을 활용해 C# 바이트코드를 디컴파일하여 프레임워크의 내부 로직을 노출시켰습니다.
완화
방어자들은 잠재적으로 영향을 받은 호스트를 재구축하고 ASP.NET 애플리케이션과 관련된 암호화 및 검증 키를 교체해야 합니다. 보고서에서 참조된 SharePoint에 영향을 미치는 취약성 패치를 포함하여 관련 취약성을 패치하는 것도 중요합니다. IIS에서 시작된 자식 프로세스를 모니터링하는 것은 임플란트와 관련된 허가되지 않은 활동을 발견하는 데 도움을 줄 수 있습니다. w3wp.exe 작업 프로세스를 통해 임플란트와 연결된 허가되지 않은 활동을 발견할 수 있습니다.
대응
SharpViewStateKing 활동이 식별되면, 조직은 측면 이동, 새로운 계정 생성, SoftEther VPN과 같은 도구의 배포 조짐을 찾기 위해 EDR 및 NDR 원격 측정을 검토해야 합니다. 손상된 시스템과 관련된 모든 비밀번호 및 자격 증명을 노출된 것으로 간주하고 즉시 교체해야 합니다. 보안 팀은 또한 Microsoft Defender 제외 항목이 허가 없이 변경되었는지 확인해야 합니다.
공격 흐름
탐지
Impacket SecretDump 원격 활동 가능성 (zeek 통해)
보기
웹 서버 또는 웹 앱 악용 가능성 [Windows] (cmdline 통해)
보기
WMIC 통해 의심스러운 Defender 제외 항목 수정 (cmdline 통해)
보기
Impacket SecretDump 활동 가능성 (audit 통해)
보기
원격 실행 및 추적 삭제 플러그인 탐지 [Windows Sysmon]
보기
SharpViewStateKing HTTP 요청 이상 탐지 [웹 서버]
보기
숨겨진 Windows를 통한 은밀한 명령 실행 탐지 [Windows 프로세스 생성]
보기
시뮬레이션 실행
전제 조건: 원격 측정 및 기준치 사전 비행 검사가 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 작동하도록 설계된 적의 기법(TTP)의 정확한 실행을 설명합니다. 명령 및 서술은 식별된 TTP를 직접 반영해야 하며 탐지 논리에 의해 예상되는 정확한 원격 측정을 생성해야 합니다. 추상적이거나 관련 없는 예는 오진으로 이어질 수 있습니다.
-
공격 서사 및 명령: 공격자는 취약한 ASP.NET 애플리케이션을 식별하고 SharpViewStateKing 프레임워크를 배치하여 지속성을 유지하고 세션 데이터를 가로채려 합니다. 이를 위해 공격자는 일련의 HTTP 요청을 보냅니다. 이러한 요청은
__VIEWSTATEand__SCROLLPATH매개변수를 사용해 익스플로잇 페이로드를 전달합니다. 이러한 특정 매개변수를 사용하여 공격자는 표준 ASP.NET 트래픽과 어우러져 탐지 인식을 피하고자 합니다. -
회귀 테스트 스크립트:
# SharpViewStateKing 탐지 규칙을 작동시키기 위한 시뮬레이션 스크립트 $targetUri = "http://localhost/Login.aspx" # 페이로드 1: __VIEWSTATE 매개변수 탐지 테스트 Write-Host "[*] __VIEWSTATE로 익스플로잇 시도 시뮬레이션 중..." $payload1 = "__VIEWSTATE=MZ................[Simulated_Malicious_Payload]" Invoke-WebRequest -Uri "$targetUri?$payload1" -Method Get # 페이로드 2: __SCROLLPATH 매개변수 탐지 테스트 Write-Host "[*] __SCROLLPATH로 익스플로잇 시도 시뮬레이션 중..." $payload2 = "__SCROLLPATH=/etc/passwd" Invoke-WebRequest -Uri "$targetUri?$payload2" -Method Get Write-Host "[+] 시뮬레이션 완료. SIEM에서 경고를 확인하세요." -
정리 명령:
# 이는 무상태 HTTP GET 요청이므로 특정 정리가 필요하지 않습니다. # 그러나 실제 공격 중에 파일이 떨어졌다면 제거가 필요합니다. Write-Host "[*] 시뮬레이션 정리: 영구적인 아티팩트가 생성되지 않았습니다."