TerminalFix 캠페인, 지속적인 접근을 위한 리버스 터널 구축
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
TerminalFix 캠페인은 사용자를 사회적으로 조작하여 악성 PowerShell 명령을 실행하게 만드는 가짜 Cloudflare CAPTCHA 오버레이를 사용하는 ClickFix 변종입니다. 공격 체인은 DLL 사이드로딩, PNG 이미지에서의 스테가노그래피 페이로드 추출 및 광범위한 Active Directory 탐색을 결합합니다. 캠페인은 궁극적으로 공격자에게 지속적인 네트워크 수준 프록시 접근을 제공하는 맞춤형 Python 기반 역방향 터널 임플란트를 배포합니다.
조사
Microsoft 위협 인텔리전스는 정당한 서명된 LockScreenContentServer.exe 바이너리를 악용한 다단계 공격 체인을 분석했습니다. 조사를 통해 악성 페이로드가 PNG 픽셀 내에 숨겨져 있으며, Python 런타임이 WebSocket 기반 역방향 터널을 설정하는 방법을 보여주었습니다. 연구원들은 또한 내부 네트워크를 매핑하는데 사용된 명령 및 제어 인프라와 정찰 기법을 식별했습니다.
완화
조직은 AppLocker 또는 그룹 정책을 통해 PowerShell 실행을 제한하고 LockScreenContentServer.exe 비정상적이거나 비표준적인 위치에서 실행되는 것을 모니터링해야 합니다. 공격 표면 감소(ASR) 규칙은 난독화된 스크립트 및 승인되지 않은 실행 파일 실행을 차단하는 데 도움이 될 수 있습니다. 사용자가 가짜 CAPTCHA 프롬프트를 인식하도록 훈련시키는 사용자 인식 교육도 중요한 예방 조치입니다.
대응
TerminalFix 활동이 감지되면, 영향을 받는 장치는 잠재적인 네트워크 피벗 포인트로 간주되어 횡방향 이동 여부를 조사해야 합니다. 특히 손상된 시스템에서 접근할 수 있는 도메인 관리자 계정에 대한 자격 증명 교체가 우선되어야 합니다. 보안 팀은 승인되지 않은 Python 런타임 및 의심스러운 아웃바운드 WebSocket 연결에 대한 포렌식 분석도 수행해야 합니다.
공격 흐름
이 부분은 아직 업데이트 중입니다.
탐지
가능한 지속성 지점 [ASEPs – Software/NTUSER Hive] (via registry_event)
커맨드 라인에서 가능한 ClickFix 공격 패턴 (via cmdline)
수상한 폴더에서의 Python 실행 (via cmdline)
Powershell 명령줄에서 수상한 .NET 클래스/메서드 호출 (via process_creation)
가능한 시스템 열거 (via cmdline)
원격 시스템 발견 또는 연결 점검 가능성 (via cmdline)
수상한 도메인 신뢰 발견 (via cmdline)
파일 숨기기를 위한 Attrib 실행 (via cmdline)
직접 Python 인터프리터 다운로드 가능성 (via cmdline)
Powershell을 사용하여 수상한 디렉토리로 추출된 아카이브 (via powershell)
IOC (HashSha256) 감지: TerminalFix 캠페인은 다단계 침투를 통해 역방향 터널을 배포
gitnow.dev로의 아웃바운드 TLS WebSocket 터널 [Windows 네트워크 연결]
TerminalFix 역방향 터널 및 DLL 사이드로딩 감지 [Windows 프로세스 생성]
TerminalFix 캠페인에서의 DLL 사이드로딩 및 스테가노그래픽 페이로드 추출 [Windows 이미지 로드]
TerminalFix 캠페인 PowerShell 실행 및 명령 루프 [Windows PowerShell]
시뮬레이션 실행
조건: Telemetry & Baseline 사전 점검 성공해야 함.
근거: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적대적 기술(TTP)의 정확한 실행을 자세히 나타냅니다. 명령과 서사는 탐지 논리에 의해 기대되는 정확한 원격 정보 수집을 생성하기 위해 식별된 TTP를 직접 반영해야 합니다. 추상적이거나 관련 없는 예는 잘못된 진단으로 이어질 수 있습니다.
-
공격 서사 & 명령: 적대자는 지속적인 역방향 터널을 설정하고자 합니다. 시스템 프로세스와 어울리기 위해, 우선 합법적으로 보이는 바이너리를 드롭한 후,
LockScreenContentServer.exe디렉토리에 넣습니다. 그런 다음 DLL 사이드로딩을 사용하여 악성 코드를 실행합니다. 이후, Python 기반의 터널을pythonw.exe(가시 콘솔 창을 피하기 위해) 사용하여 시작하고client.py라는 스크립트를 실행합니다. 이 시퀀스는 WebSocket 터널링을 통해 표준 방화벽 제한을 우회하는 네트워크 수준의 백도어를 생성하도록 설계되었습니다. -
회귀 테스트 스크립트:
# 시뮬레이션 스크립트: TerminalFix 역방향 터널 에뮬레이션 # 1. 환경 설정 $targetDir = "C:UsersPublicDownloadsSystemFiles" New-Item -Path $targetDir -ItemType Directory -Force # 2. 더미 'LockScreenContentServer.exe' 생성 (사이드로딩 바이너리 시뮬레이션) # 실제 공격에서는 이것이 실제 PE 파일이 될 것입니다. $dummyExe = Join-Path $targetDir "LockScreenContentServer.exe" New-Item -Path $dummyExe -ItemType File -Force # 3. 더미 Python 스크립트 'client.py' 생성 $pythonScript = Join-Path $targetDir "client.py" "print('터널을 설정 중...')" | Out-File -FilePath $pythonScript -Encoding ascii # 4. 탐지 논리를 트리거하기 위한 '악성' 프로세스 실행 # 파트 A 트리거: LockScreenContentServer.exe Start-Process -FilePath $dummyExe -WindowStyle Hidden # 파트 B 트리거: 커맨드 라인에서 client.py와 함께 pythonw.exe 실행 # 규칙에 따라 pythonw.exe의 전체 경로 사용 $pythonwPath = "C:WindowsSystem32pythonw.exe" # pythonw가 System32에 없으면 위치를 찾습니다. if (-not (Test-Path $pythonwPath)) { $pythonwPath = (Get-Command pythonw.exe).Source } Start-Process -FilePath $pythonwPath -ArgumentList $pythonScript -WindowStyle Hidden -
정리 명령:
# 정리 스크립트 $targetDir = "C:UsersPublicDownloadsSystemFiles" if (Test-Path $targetDir) { Remove-Item -Path $targetDir -Recurse -Force }