1. Malvertising(멀버타이징)

- Malware(악성코드)Advertising(광고)합성어악성 광고를 의미

- 사용자를 속이기 위해 가짜 사이트로 리다이렉션하는 등 광고를 악용한 해킹 기법

- 상대적으로 보안이 취약한 광고 서버를 해킹하거나 악성 광고를 게시하여 공격에 활용

2. 상세내용 [1]

- 연구원들이 Googleslack 검색한 결과 광고가 가장 먼저 표시되었음

> 해당 광고가 누구에 의해 게시되었으며, 이전에 게시한 광고 내역을 확인할 수 있음

> 연구원들이 이를 확인한 결과 홍콩 소재 의심스러운 광고주에 의해 게시됨을 확인

[사진 1] 정상 광고 (위) 및 악성 광고 (아래) 비교

- 확인된 광고를 클릭하면 정상적인 Slack 공식 웹사이트의 가격 페이지로 리디렉션

> 공격자들은 도메인을 구매한 후 악용하기 위해 정상적인 도메인처럼 보이도록 하기위해 과정을 거침

[사진 2] 리다이렉션

- 며칠 후 연구원들이 해당 광고 페이지에 재접속한 결과 서로 다른 두 개의 페이지가 표시

> URL은 slack-windows-download[.]com로 동일하나 표시되는 페이지가 다름을 확인

> 악성 기능이 없는 정상 페이지 또는 다운로드 기능이 포함된 악성 페이지 표시

[사진 3] 정상 페이지 (좌) 및 악성 페이지 (우)

- 해당 페이지에 도달하는 네트워크 트래픽을 캡처

> 여러 사이트로 리다이렉션 시켜 인터넷 환경, 클릭율 등을 확인해 서로 다른 페이지로 접속시키는 것을 확인

① 클릭의 정당성을 판단하는 ClickGuard 링크를 광고로 등록 : 악성 사이트에 대한 탐지를 못하도록(또는 어렵게) 하기위한 목적

② 사용자가 클릭한 페이지 또는 위치 등을 분석하는 ClickTracker 연결 : 악성 사이트에 대한 탐지를 못하도록(또는 어렵게) 하기위한 목적

③ 사용자 클릭 환경 등을 확인해 정상 사이트 또는 악성 사이트로 연결

> 즉, 사용자가 광고를 클릭할 경우 여러 리다이렉션 및 확인을 거쳐 정상 또는 악성 사이트로 리다이렉션

[사진 4] 네트워크 트래픽 캡처
[사진 5] 과정 요약

- 광고 클릭 지양, 다운로드 시 도메인 및 파일 해시 확인, 백신 최신화, 로그인 폼 의심 등 기본 보안 수칙 준수 필요

3. 참고

[1] https://www.malwarebytes.com/blog/news/2024/08/fraudulent-slack-ad-shows-malvertisers-patience-and-skills

1. 개요

- 최근 복사-붙여 넣기 기법을 활용한 ‘ClickFix’라 불리는 새로운 공격 발견 [1]
- 가짜 팝업 메시지의 버튼을 클릭하면 악성코드 또는 악의적 프로그램이 다운로드 되는 형태

 

2. 주요내용

2.1 ClickFix

[사진 1] ClickFix 예시

- 유명 서비스를 위조해 문서나 페이지 내 긴급한 오류가 발생했다는 팝업 텍스트 상자를 표시
사용자를 속이기 위해 MS Office 문서나 Google Meet 등 유명 서비스를 위조해 페이지 내 팝업 표시
사용자가 직접 PowerShell(powershell.exe)이나 Windows 명령 프롬프트(cmd.exe)를 통해 실행하라는 메시지가 표시되며, "How to fix" 등의 버튼을 클릭하면 악의적 명령이 복사

 

2.2 악성 VBS 스크립트

- hxxps://googiedrivers[.]com/fix-error 파일에 VBScript가 포함되어 있으며 총 4개의 행위 수행

구분 설명
MSHTA 프로세스 체크 및 종료 WMIService를 사용하여 "mshta.exe" 프로세스가 실행 중인지 확인 하고 활성화되어 있으면 종료

※ WMI (Windows Management Instrumentation) : Windows에서 시스템 및 네트워크 관리 작업을 수행하는 데 사용되는 기술로 다양한 하드웨어 및 소프트웨어 구성 요소를 관리하고 모니터링할 수 있는 인터페이스 제공
파일 다운로드 및 실행 stealc.exe, ram.exe를 임시 경로에(각각 tempPath, secondTempPath에 다운로드) 다운로드 및 실행
> 파일을 실행하여 Build #1 및 Build #2의 성공 여부를 확인한 후 상태를 서버로 전송

- stealc.exe
> 정보 탈취 악성코드(Stealc)의 일종
> 사용자 시스템, 웹 브라우저, 암호화폐 지갑 등 민감정보를 수집 및 C2 서버 전송

- ram.exe
> 정보 탈취 멀웨어(Rhadamanthys, Danabot) 추가 다운 및 실행

※ 파일 다운로드 경로
> hxxps://us1web-com[.]us/stealc.exe
> hxxps://us1web-com[.]us/ram.exe
서버 통신 - NotifyServer(status)를 사용해 특정 서버에 실행 상태를 보고하는 HTTP 요청을 전송
> 서버 URL: hxxp[://]webpalmland[.]com/api/cmd/runed
공격자의 서버에 IP 주소와 상태 전송 - GetExternalIPAddress() 함수를 호출하여 IP 확인 사이트에서 IP 주소를 검색하여 저장 및 공격자 서버로 전송
> 서버 URL: hxxp[://]webpalmland[.]com/api/cmd/runed

 

2.3 결론

- 과거와 달리 웹 브라우저 보안이 강화되면서 웹 브라우저 취약점을 이용한 악성코드 배포가 어려워짐
> 사용자가 직접 다운로드 및 실행할 수 있는 형태로 점차 진화
> 사용자는 PowerShell(powershell.exe) 또는 명령 프롬프트(cmd.exe)에서 명령을 실행하도록 요청하는 팝업 주의할 필요

 

- 또한, 여러 정보 탈취 멀웨어를 다운로드 및 실행하는 형태
> 하나의 멀웨어가 탐지 및 제거되어도 다른 멀웨어를 사용해 지속 정보 수집
> 수집된 정보가 2차 피해로 이어질 수 있음

3. 참고

[1] https://blog.criminalip.io/2024/10/07/clickfix-fake-error-messages/
[2] https://www.boannews.com/media/view.asp?idx=133771&page=1&kind=1

1. 개요

- 한국과 중국 사용자를 대상으로 정상 애플리케이션으로 위장한 UULoader 유포 정황 확인 [1]
> DLL 파일 내 내장된 프로그램 데이터베이스(PDB) 파일에 중국어 문자열이 있다는 점에서 UULoader로 명명 
- UULoader는 Gh0stRAT이나 Mimikatz와 같은 멀웨어를 유포하는데 사용되는 로더

 

2. 주요내용

UULoader는 File Header Stripping을 통해 정적 탐지 회피
> File Header Stripping: 파일의 헤더 정보를 제거하는 작업
> 해당 작업을 통해 탐지를 회피하거나 분석을 어렵게 만듦

[사진 1] File Header Stripping

- UULoader의 핵심 파일은 cab 파일 안에 압축되어 있음
> cab 파일은 헤더가 제거되어 있음 (File Header Stripping)
exe 파일, dll 파일, 난독화된 최종 페이로드, 미끼 파일, M 파일, Z파일이 포함

구분 설명
exe파일 - 헤더가 제거된 Realtek 실행 파일
- dll 파일을 로딩하는데 사용
dll 파일 - exe 파일에 의해 로드되는 dll 파일
- 최종 단계를 로드하는 파일
M, Z 파일 - UULoader가 실행될 때 제거된 파일 헤더를 수정하는 데 사용
미끼 파일 - 사용자를 속이기 위해 실행되는 합법적인 파일
최종 페이로드 - 최종적으로 실행되는 페이로드로 Gh0stRAT이나 Mimikatz일 경우가 많음

 

- UULoader가 실행되면 .msi CustomAction를 사용해 폴더를 생성
> 폴더 경로: C:\Program Files(x86)\Microsoft Thunder
> 해당 폴더에 위 악성 파일이 포함되어 있음

※ .msi CustomAction: Windows Installer 패키지(.msi 파일)에서 사용되는 사용자 정의 동작을 의미

 

- msi 파일에 의해 vbs 스크립트 실행
Microsoft Thunder 폴더를 Windows Defender 예외 등록
> Microsoft Thunder 폴더 내 파일을 실행하여 최종 페이로드 로드 및 미끼 파일 실행
> vbs 스크립트는 악의적인 기능을 감추기 위해 합법적으로 보이는 여러 액션이 존재

 

- 최종적으로 Gh0stRAT 또는 Mimikatz 등 다양한 해킹 도구를 유포하는 것으로 보임
> Gh0stRAT: 공격자가 원격으로 대상 컴퓨터에 접근하여 정보를 탈취할 수 있도록 설계된 악성 프로그램
> Mimikatz: Windows 시스템의 메모리에서 해시된 비밀번호를 추출하고, Kerberos 티켓, NTLM 해시 등을 덤프하는데 사용

[사진 2] UULoader 실행 체인

3. 참고

[1] https://cyberint.com/blog/research/meet-uuloader-an-emerging-and-evasive-malicious-installer/
[2] https://thehackernews.com/2024/08/new-uuloader-malware-distributes-gh0st.html?m=1
[3] https://boannews.com/media/view.asp?idx=132149&page=1&kind=1

1. 개요

- 동아시아와 한국을 대상으로 악성코드가 유포되는 정황이 확인
- SW 취약점 또는 악성코드가 포함된 크랙 버전을 통해 유포
- C2 서버와 통신하며 추가 명령을 수행하거나 사용자 정보를 탈취

 

2. 주요내용

2.1 Velvet Ant [1]

- 중국 해킹 그룹 China-Nexus와 연류된 공격자가 약 3년 동안 동아시아에 위치한 익명의 조직을 대상으로 장기간 공격

- 공격자는 EDR이 설치되지 않고 로깅이 제한된 시스템을 표적으로 삼는 등 레거시 운영 체제를 노림

> 또한, 피해자 환경에 이미 배포된 원격 접속 트로이목마 PlugX를 활용

> PlugX는 2008년부터 중국 국가 후원 공격 그룹에서 사용되었으며, 감염된 시스템에 대한 원격 액세스를 제공하도록 설계

> 공격에는 인터넷에 직접 액세스할 수 있는 엔드포인트에 설치되어 민감 정보를 유출하는 버전과 C2 구성 없이 레거시 서버에만 배포되는 두 가지 버전이 사용

PlugX 실행 체인 설명
iviewers.exe Windows SDK의 일부인 'OLE/COM 개체 뷰어'라는 합법적인 응용 프로그램
iviewers.dll DLL 검색 순서 하이재킹을 통해 'iviewers.exe'에 의해 로드되는 악성 PlugX DLL 로더
iviewers.dll.ui 'iviewers.dll'이 실제 악성 페이로드가 포함되어 있으며, 이 페이로드는 'iviewers.dll'에 의해 로드

 

- C2 구성 없이 레거시 서버에 배포된 PlugX의 경우 F5 BIG-IP 장치를 이용해 역방향 SSH 터널 생성

> SSH 터널을 이용해 C2 서버와 통신하여 원격 명령을 수신하고 지속성을 확보

> 공격에 활용된 F5 BIG-IP 제품들은 지원이 종료된 제품

F5 어플라이언스 추가 악성코드  설명
VELVETSTING - 한 시간에 한 번씩 C&C에 연결하여 실행할 명령을 검색하는 도구
- IP 주소 202.61.136[.]158:8443을 C&C로 사용
- 명령은 '1qaz@WSXedc'라는 암호로 인코딩
- 명령을 받으면 'csh'(Unix C 셸)를 통해 실행
ELVETTAP - 네트워크 패킷을 캡처하는 기능을 갖춘 도구
- 바이너리는 F5 장치의 내부 NIC 이름인 'mgmt' 인수를 사용하여 F5 장치에서 실행
SAMRID - GitHub에서 사용할 수 있는 오픈 소스 SOCKS 프록시 터널러인 'EarthWorm'으로 식별
- 이 도구는 과거 Volt Typhoon, APT27, Gelsemium 등 다양한 중국 국가 후원 그룹에서 활용
ESRDE - VELVETSTING'과 유사한 기능을 갖춘 도구이나, bash를 사용하는 등 사소한 차이점 존재

 

- 공격 과정은 다음과 같음

① 악성코드는 1시간에 한 번씩 C2 서버를 폴링

② 공격자는 C2 서버와 연결

③ 역방향 SSH 터널 생성 및 원격 명령 전달

④ PlugX에 감염된 내부 파일 서버(내부 C2 서버로 사용)와 연결

⑤ PlugX 추가 배포

[사진 1] 공격 흐름 요약

 

대응 설명
아웃바운드 트래픽 제한 C2 서버와 통신하지 못하도록 아웃바운드 연결 차단(IP 차단)
네트워크 측면 이동 제한 SMB(445), RPC(135), WinRM(5985. 5986), RDP(3389), SSH(22) 등 측면 이동이 가능한 기술에 대한 엄격한 제어
레거시 서버 보안 강화 - 레거시 시스템 폐기 및 교체 우선적으로 처리
- 이전 시스템을 지원하는 엔드포인트 보호 도구 설치
- 트래픽 모니터링
자격 증명 수집 완화 EDR 무력화/우회 시도 방지를 위한 변조 방지 기능 구성
공용 장치 보호 자산 관리, 패치 관리, 침입 탐지 및 예방 등
침해지표 적용 공개된 침해지표 적용 [1]

 

2.2 미상의 중국 국가 후원 해킹 그룹 [4]

- 미상의 중국 해킹 그룹이 2020년부터 아시아 국가의 통신 사업자를 공격

> 대상 기업의 네트워크에 백도어를 설치하고 자격 증명을 도용하려고 시도

공격에 사용된 도구 설명
Coolclient - Fireant 그룹(Mustang Panda, Earth Preta라고도 함)과 관련된 백도어
> 키 입력 로깅, 파일 읽기 및 삭제, 명령 및 제어(C&C) 서버와의 통신 기능 등
> Google 파일(googleupdate.exe)로 가장하는 합법적인 VLC 미디어 플레이어 버전이 Coolclient 로더(파일 이름: libvlc.dll)를 사이드로드하는 데 사용
> 로더는 loader.ja라는 파일에서 암호화된 페이로드를 읽으며, 이 페이로드는 goopdate.ja라는 파일에서 두 번째 암호화된 페이로드를 읽고 이를 winver.exe 프로세스에 삽입
Quickheal - Neeedleminer 그룹(일명 RedFoxtrot, Nomad Panda)과 오랫동안 연관되어 온 백도어
> 캠페인에 사용된 변형은 GetOfficeDatatal이라는 내보내기가 있는 RasTls.dll이라는 32비트 DLL
> 컴파일된 코드의 새로운 구성 세부 사항과 VMProtect 난독화 등의 차이
> TCP 포트 443을 사용하여 Swiftandfast[.]net이라는 하드코딩된 C&C 서버와 통신
Rainyday - Firefly 그룹(일명 Naikon)과 관련된 백도어
> 캠페인에 사용된 대부분의 변종은 fspmapi.dll이라는 로더를 사용하여 실행
> 로더는 fsstm.exe라는 합법적인 F-Secure 실행 파일을 사용하여 사이드로드
> 로드되면 프로세스를 시작한 실행 파일의 디스크 폴더를 가져와 현재 디렉터리로 설정
> 그런 다음 실행 파일의 메모리 위치를 얻고 해당 메모리 이미지를 패치
> 하이재킹이 성공하면 로더는 dataresz라는 파일을 읽고 단일 바이트 XOR 키(0x2D)로 페이로드를 해독한 후 쉘코드로 실행

 

2.3 NiceRAT 악성코드를 설치하는 봇넷 [6]

- Windows나 MS Office 라이선스 확인 도구, 게임용 무료 서버로 위장한 악성코드 NiceRAT를 국내 사용자를 대상으로 지속적 유포

> NiceRAT는 Python으로 작성된 오픈 소스 프로그램

> 지속성 유지를 위해 디버깅 방지 감지, 가상 머신 감지, 시작 프로그램 등록 등의 작업

> api.ipify[.]org에 접속하여 시스템의 IP 정보를 수집 및 이를 이용하여 위치 정보 수집

> 시스템 정보, 브라우저 정보, 암호화폐 정보 등을 수집하여 Discord를 C2로 활용해 유출

 

3. 참고

[1] https://www.sygnia.co/blog/china-nexus-threat-group-velvet-ant/
[2] https://thehackernews.com/2024/06/china-linked-hackers-infiltrate-east.html
[3] https://www.boannews.com/media/view.asp?idx=130670&page=6&kind=1
[4] https://symantec-enterprise-blogs.security.com/threat-intelligence/telecoms-espionage-asia
[5] https://thehackernews.com/2024/06/chinese-cyber-espionage-targets-telecom.html
[6] https://asec.ahnlab.com/en/66790/
[7] https://thehackernews.com/2024/06/nicerat-malware-targets-south-korean.html

1. 개요

- 최근 국내 WebLogic 서버를 공격 및 장악해 z0Miner 악성코드를 유포하는 정황이 포착

- 정보 탈취 또는 랜섬웨어를 설치할 수 있어 웹로직 서비스 점검 필요

 

2. 주요 내용 [1]

2.1 z0Miner [2]

- 2020년 Tecnet 보안팀에 의해 처음으로 소개된 마이너 악성코드 (암호 화폐 채굴 봇넷)

- 국내외 보안이 취약한 서버인 Atlassian Confluence, Apache ActiveMQ, Log4J 등을 대상으로 마이너 악성코드를 유포

- CVE-2020-14882, CVE-2020-14883을 악용해 WebLogic 서버 공격

구분 설명
CVE-2020-14882 [3] - 특수하게 조작된 GET 요청을 통해 인증을 우회하여 관리자 콘솔 접근할 수 있는 취약점 [4][5]
Exploit: hxxp://IP:7001/console/css/%252e%252e%252fconsole.portal
- 영향받는 버전: WebLogic 서버 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0 버전
- CVSS: 9.8
CVE-2020-14883 [6] - 인증 우회(CVE-2020-14882)에 성공한 후 MVEL 표현식을 이용해 원격 명령을 실행할 수 있는 취약점 [7][8]
- Exploit: com[.]tangosol[.]coherence[.]mvel2[.]sh[.]ShellSession 클래스 악용
- 영향받는 버전: WebLogic 서버 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0, 14.1.1.0 버전
- CVSS: 7.2

 

2.2 악성코드 배포

- 취약한 WebLogic 서버를 장악한 뒤 악성코드를 배포하는 다운로드 서버로 악용

> Miner 및 네트워크 도구, 공격에 필요한 스크립트 등

> 악용된 서버는 모두 서버 정보와 Tomcat의 구체적인 버전을 노출

[사진 1] 서버 정보 노출

 

악성코드 설명
WebShell - CVE-2020-14882를 악용해 JSP 웹쉘을 업로드하여 지속성 유지 및 시스템 제어
- 백신 탐지를 피하기위해 여러 종류의 웹쉘을 업로드

① JSP File Browser
> 커스터마이징된 JSP File Browser v1.2 웹쉘
> Password는 “zubin@666″ 하드코딩

② Shack2
> OS 정보 등 컴퓨터 정보 출력, 파일 매니저, 명령어 수행 기능을 제공 [9]

③ Behinder
> 과거부터 사용되어 많이 알려진 웹쉘 [10]
FRP(Fast Reverse Proxy) - RDP(Remote Desktop Protocol) 통신하기 위해 사용한 Proxy 도구
- 기본적인 형태의 FRPC와 커스터마이징한 FRPC를 사용
> 기존 FRPC: *.INI 형태의 설정 파일을 불러 읽어와 접속을 시도
> 커스텀 FRPC: 프로그램 내부에 설정 데이터를 가지고 있어 별도의 파일 없이 실행
※ 직접 통신할 수 없는 인트라넷 PC에 외부에서 접근 가능하도록 중계기를 둬 구성하는 오픈소스 도구 [11]
Netcat - 파일명 "userinit.exe"로 Netcat을 다운로드 받아 실행
- 하드코딩된 IP:Port에 연결을 시도하며, 연결 시 cmd를 실행하는 명령으로 구성
AnyDesk - 공식 홈페이지를 접속하여 AnyDesk를 다운로드하여 탐지 회피
- 시스템 장악 후 원격에서 화면 제어 목적
Miner(XMRig) - Windows XMRig는 6.18.0 버전, Linux의 경우 XMRig는 6.18.1 버전 유포
- 지속성 유지를 위해 스케줄러를 등록해 특정 주소로부터 파워쉘 스크립트를 읽어 실행
- ‘javae.exe’ 이라는 이름으로 채굴을 수행

 

3. 대응방안

① 웹로직 서버 최신 버전 유지

② 관리되지 않는 포트 및 서버 점검

③ 백신 등 안티바이러스 S/W 최신 버전 유지

④ 침해지표 등록 및 모니터링

 

4. 참고

[1] https://asec.ahnlab.com/ko/62166/
[2] https://s.tencent.com/research/report/1170.html
[3] https://nvd.nist.gov/vuln/detail/CVE-2020-14882
[4] https://testbnull.medium.com/weblogic-rce-by-only-one-get-request-cve-2020-14882-analysis-6e4b09981dbf
[5] https://attackerkb.com/topics/sb4F8UT5zu/cve-2020-14882-unauthenticated-rce-in-console-component-of-oracle-weblogic-server/rapid7-analysis
[6] https://nvd.nist.gov/vuln/detail/CVE-2020-14883
[7] https://pentest-tools.com/vulnerabilities-exploits/oracle-weblogic-remote-command-execution_123
[8] https://pentest-tools.com/blog/detect-exploit-oracle-weblogic-rce-2020
[9] https://github.com/theralfbrown/WebShell-2/blob/master/jsp/SJavaWebManageV1.4.jsp
[10] https://github.com/NS-Sp4ce/CVE-2021-21972/blob/main/payload/Linux/shell.jsp

[11] https://github.com/fatedier/frp

[12] https://www.boannews.com/media/view.asp?idx=127363&page=4&kind=1

1. 개요

- 북한 배후 해킹그룹 김수키(Kimsuky)에서 국내 보안 프로그램으로 위장한 악성코드 유표 정황 포착

- Go 언어 기반 인포스틸러로, 국내 보안기업의 보안 프로그램 설치파일로 위장

- 시스템 정보, 브라우저 정보, AV 설치 목록 등을 탈취하며, GPKI 정보 또한 탈취를 시도

- 악성코드에 파일에 포함된 문자열을 따 '트롤스틸러(Troll Stealer)'로 명명

 

2. 주요내용 [1]

- 악성코드는 국내 특정 웹 사이트 접속시 연결되는 보안 프로그램 다운로드 페이지로부터 유포

> SGA Solutions의 보안 프로그램 설치 파일(TrustPKI, NX_PRNMAN)로 위장

> 악성코드는 정상 인스트롤러와 악성코드를 드랍 및 실행하는 Dropper

> 악성파일은 모두 원래 인증서인 “SGA Solutions”가 아닌, 유효한 “D2innovation Co.,LTD” 인증서로 서명

[사진 1] 악성 파일 서명 정보

2.1 실행 흐름

[사진 2] 실행 흐름 요약

① Mutex  생성 및 자가 삭제

- 중복 실행 방지를 위한 Mutex 생성

- %Temp% 하위 경로에 자가 삭제를 위한 BAT 스크립트 파일 생성 및 실행

 

② 파일 Dropper

- 정상으로 위장하기 위해 SGA Solutions 정상 설치파일을 Desktop 경로에 설치 및 실행

- Troll Stealer와 감염 이력을 확인하기 위한 파일을 드랍

 

③ Troll Stealer 설치

- rundll32.exe 프로세스를 통해 실행하며, 감염 이력 확인을 위한 파일명이 Export 함수로 호출

> 감염 이력 확인을 위한 파일이 존재하는 경우에만 악성 행위 수행

> 자체적으로 중복실행 방지를 위한 Mutex 생성 (Dropper Mutex와 다른 값)

> 분석 방해를 위해 VMProtect 패킹

 

④ 구성 데이터 설정

- 감염된 시스템의 MAC주소, 디렉터리 경로 수집 후 악성행위 수행을 위해 Config 임시 파일 생성

> Config 내에는 C2 서버 주소 등의 정보가 포함

> Config 파일 암호화 후 C2 서버 전송 및 파일 삭제

 

⑤ 정보 수집

- 감염된 시스템 내 정보를 탈취 및 암호화 후 C2 서버로 전송

- 특히, C드라이브 내 GPKI(Government Public Key Infrastructure) 폴더 탈취 시도가 확인

> 행정전자서명인증서인 GPKI는 국내 행정 및 공공기관 등의 정부에서 사용하는 전자적 정보 [2]

> 행정전자서명의 진위를 검증할 때 사용되는 공인인증서

> 일반 PC에서는 사용되지 않고, 공무를 위해 사용되는 PC에 설치되는 것이 일반적

> 공공에 설치된 PC 등을 타겟으로 한 캠페인으로 평가됨

[사진 3] 악성코드 탈취 정보 목록

 

⑥ 파일 암호화

- C2 서버로 데이터 전송 전, 데이터를 암호화

> RC4와 RSA-4096 알고리즘을 조합하여 데이터를 암호화

> 하드코딩된 PKCS#1의 DER로부터 RSA 공개키 파싱을 수행

> 랜덤 RC4 키 값을 생성하여 탈취 데이터 암호화

> RSA 공개키를 이용해 RC4 암호화 키 암호화

 

⑦ C2 통신

- C2 통신을 위해 12개의 필드로 구성된 60바이트 크기의 구조를 사용

> 통신 목적과 전송하는 데이터 유형에 따라 각 필드 값을 다르게 설정

> 데이터를 구조에 맞게 구성한 후 바이너리 내 하드코딩된 4바이트 Key를 사용해 XOR 및 Base64 인코딩

> 인코딩 결과는 "a=[Encoded_Data]" 형식으로 C2 서버에 전송

※ 데이터 탈취 => 파일 암호화(RC4+RSA) => 통신 구조체 인코딩(XOR+Base64) => a 파라미터로 전달

[사진 4] 통신 구조 및 필드 값

⑧ 자가 삭제

- 악성행위 수행 후 자가삭제를 위해 .tmp 디렉토리에 PS1 파일 생성

> PS1 파일은 악성 DLL 및 스스로를 삭제

 

※ 분석 보고서에서 침해지표 제공 [1]

 

3. 참고

[1] https://medium.com/s2wblog/kimsuky-disguised-as-a-korean-company-signed-with-a-valid-certificate-to-distribute-troll-stealer-35b3cd961f91
[2] https://www.gpki.go.kr/jsp/certInfo/certIntro/eSignature/searchEsignature.jsp
[3] https://www.boannews.com/media/view.asp?idx=126703&page=1&kind=1

1. 개요

- FBI, CISA는 Androxgh0st 악성코드와 관련된 보안권고 발표 [1]

알려진 여러 취약점을 악용해 봇넷을 구성하여 Androxgh0st 유포

.env 파일에서 민감 정보를 추출해 유명 애플리케이션의 자격 증명 탈취 목적을 지닌 파이선 스크립트 멀웨어

> AWS, Microsoft Office 365, SendGrid, and Twilio
> .env: 환경 변수가 저장된 파일로, API key, port, DB 등 민감한 정보를 환경변수에 담아 관리 [2][3]

 

2. 주요 내용

2.1 Androxgh0st [4]

- 22.12 보안 업체 Lacework 최초 발견한 파이썬을 기반 멀웨어

Laravel 애플리케이션의 .env 파일에서 크리데셜이나 API 키 등 민감 데이터를 찾아내 추출하는 기능을 지님

- CreateUser(사용자 생성), CreateLoginProfile(로그인 프로필 생성), AttachUserPolicy(권한 부여), DeleteAccessKey(키 삭제) 등의 기능

※ Laravel: 오픈 소스 PHP 웹 프레임워크 중 하나

 

2.2 악용 취약점

2.2.1 PHPUnit 취약점 (CVE-2017-9841)

- eval-stdin.php 페이지 내 제대로 된 인증이 존재하지 않아 임의의 PHP 코드를 실행할 수 있는 취약점 [5][6]

- 취약점을 악용해 POST 요청으로 Androxgh0st를 다운로드하며, 추가 악성파일 다운 및 DB 접근

 

2.2.2 Laravel 프레임워크 취약점 (CVE-2018-15133)

신뢰할 수 없는 X-XSRF-TOKEN 값을 역직렬화하여 원격 코드 실행이 가능한 취약점 [7][8]

- 취약점을 악용해 .env 파일이 외부에 노출된 서비스에 GET 요청을 통해 애플리케이션 키 획득

Androxgh0st를 애플리케이션 키로 암호화하여 웹 사이트에 업로드

 

2.2.3 Apache 웹 서버 취약점 (CVE-2021-41773)

경로 순회 문자(../)의 미흡한 필터링으로인해 발생하는 경로 탐색 및 원격 코드 실행 취약점 [9][10]

- 취약점을 악용해 Apache 웹 서버의 자격증명을 획득하여 민감 데이터 접근 또는 추가 악성 행위 수행

 

3. 대응방안

- 관련 취약점이 해결된 버전으로 업데이트 수행
- 불필요한 서비스의 노출 유무 확인
- 불분명한 파일 및 자격 증명 파일 존재 여부 검토
- 취약점 스캔시 androxgh0st 등 시그니처가 존재하므로 관련 시그니처 탐지 정책 적용

FBI, CISA 권장사항 ① 시스템 최신 상태 유지
② 운영 체제, 소프트웨어, 펌웨어 정기적 업데이트
> 아파치 서버가 2.4.49 또는 2.4.50 버전을 실행하고 있지 않은지 확인
③ 모든 URI에 대한 기본 구성이 모든 요청을 거부하도록 되어 있는지 확인
> 명시적으로 필요한 경우 제외
④ 라이브 Laravel 애플리케이션이 '디버그' 또는 테스트 모드에 있지 않은지 확인
⑤ .env 파일에서 클라우드 자격 증명 제거 및 해지
⑥ 저장된 클라우드 자격 증명을 정기적으로 검토
> 무단 액세스 또는 사용이 있는지 확인
⑦ 서버의 파일 시스템, 특히 중요한 디렉터리에서 불분명한 PHP 파일이 있는지 확인
⑧ GitHub나 pastebin 등의 파일 호스팅 사이트에 대한 cURL 명령으로 GET 요청 확인
> 특히 .php 파일에 대한 접근을 확인

 

4. 참고

[1] https://www.cisa.gov/news-events/cybersecurity-advisories/aa24-016a

[2] https://velog.io/@hoho_0815/env-%ED%8C%8C%EC%9D%BC%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC
[3] https://tooo1.tistory.com/582
[4] https://www.lacework.com/blog/androxghost-the-python-malware-exploiting-your-aws-keys/
[5] https://nvd.nist.gov/vuln/detail/CVE-2017-9841
[6] https://github.com/vulhub/vulhub/tree/master/phpunit/CVE-2017-9841
[7] https://nvd.nist.gov/vuln/detail/cve-2018-15133
[8] https://github.com/kozmic/laravel-poc-CVE-2018-15133
[9] https://nvd.nist.gov/vuln/detail/CVE-2021-41773
[10] https://github.com/lorddemon/CVE-2021-41773-PoC
[11] https://www.boannews.com/media/view.asp?idx=125876&page=2&kind=1
[12] https://www.dailysecu.com/news/articleView.html?idxno=152936
[13] https://www.techtube.co.kr/news/articleView.html?idxno=4216

1. 개요

- CISCO Talos에서 대한민국 사용자를 대상으로한 중국 배후 RAT "SugarGh0st RAT" 발견 [1]

> Gh0st RAT의 변종으로, C2 서버와 통신하며 명령을 수행

> 대한민국 사용자외에도 우즈베키스탄 외교부를 대상으로 공격 수행

 

1.1 Gh0st RAT [2]

- 红狼小组(C.Rufus Security Team)이라는 중국 그룹에 의해 개발

- 2008년 소스코드가 공개되어 여러 변종이 등장

 

2. SugarGh0st RAT

- 기존 Gh0st RAT과 차이점

① 정교한 표적 공격

② 특정 ODBC(Open Database Connectivity) 레지스트리 키를 찾음
③ 특정 파일 확장자와 함수 이름을 가진 라이브러리 파일을 로드
④ 원격 관리 작업을 용이하게 하기위한 C2 통신 프로토콜 변경 등

 

- 하드 코딩된 C2 도메인을 사용하며, 대상자에 뮤텍스를 생성하고 키로깅을 시작

> 키로깅은 %Program Files% 위치에 "WinRAR'' 폴더 생성 및 키로거 파일 "WinLog.txt" 생성

> WSAStartup() 함수를 이용해 하드코딩된 C2&Port로 연결을 설정

> 실행 후 10초마다 C2에 대한 연결 설정을 시도하며, 첫 패킷은 항상 "0x000011A40100"

> 컴퓨터 이름, OS 버전, 루트 및 기타 드라이브 정보, 특정 레지스트리 값 등을 전송

> 4바이트 16진수 명령 및 관련 데이터를 사용하여 C2 서버의 명령에 따라 원격 제어 기능을 수행

순번 명령 설명
1 0x20000001 프로세스 권한을 "SeShutdownPrivilege"로 조정하고 호스트 강제 종료
2 0x20000002 프로세스 권한을 "SeShutdownPrivilege"로 조정하고 호스트 강제 재부팅
3 0x20000003 프로세스 권한을 "SeShutdownPrivilege"로 조정하고 프로세스 강제 종료
4 0x20000004 이벤트 로그 지우기
5 0x20000005 레지스터 키 HKEY_LOCAL_MACHINE\Software\ODBC\H 생성
6 0x20000011 기본 창에서 키 누르기
7 0x20000012 기본 창에서 키 놓기
8 0x20000013 마우스 커서 위치 설정
9 0x20000014 마우스 왼쪽 버튼 클릭
10 0x20000015 마우스 왼쪽 버튼 놓기
11 0x20000016 마우스 왼쪽 버튼을 더블클릭
12 0x20000017 마우스 오른쪽 버튼 클릭
13 0x20000018 마우스 오른쪽 버튼 놓기
14 0x20000019 마우스 왼쪽 버튼을 더블클릭
15 0x21000002 피해자 컴퓨터의 논리 드라이브 정보 전송
16 0x21000003 피해자 컴퓨터 파일 시스템에서 파일 검색
17 0x21000004 피해자의 컴퓨터 파일 시스템에서 파일 삭제
18 0x21000005 파일을 %TEMP% 위치로 이동
19 0x21000006 임의의 쉘 명령을 실행
20 0x21000007 피해자 컴퓨터에 파일을 복사
21 0x21000008 피해자 컴퓨터에서 파일 이동
22 0x21000009 C2 서버로 파일 전송
23 0x2100000A 데이터를 Windows 소켓으로 전송
24 0x2100000B C2 서버로부터 파일 수신
25 0x22000001 스크린샷을 C2 서버로 전송
26 0x24000001 %ProgramFiles%/WinRAR/~temp.dat 파일 읽기(XOR 0x62로 인코딩됨)
27 0x24000002 %ProgramFiles%/WinRAR/~temp.dat 파일 삭제
28 0x23000000 C2 서버에 대한 역방향 셸 액세스를 제공
29 0x25000000 프로세스 정보를 얻고 프로세스를 종료
30 0x25000001 프로세스 정보 열거
31 0x25000002 프로세스 종료
32 0x25000003 피해자 기계 서비스 관리자에 액세스 
33 0x25000004 실행 중인 서비스의 구성 파일에 액세스
34 0x25000005 서비스 시작
35 0x25000006 서비스 종료 및 삭제
36 0x25000010 Windows 작업을 수행
37 0x25000011 창 목록 가져오기
38 0x25000012 Window에서 메시지 받기
39 0x28000000 창을 캡처하고 SendMessage API를 사용한 명령을 기반으로 일련의 창 작업 수행
40 0x28000002 "%PROGRAMFILES%\\Common Files\\DESIGNER'' 아래에 OLE 파일을 만들고 실행

 

2.1 첫 번째 공격 체인 

[사진 1] 첫 번째 공격 체인

 

① 악성 LNK 파일이 포함된 RAR 파일

② LNK 파일 실행 시 내장된 JavaScript 실행

> 드로퍼의 시작 부분인 "var onm=" 문자열 검색 후 %temp%에 로드

> LoLBin(living-off-the-land Binaries)를 사용해 JavaScript 실행 [3]

 

[사진 2] LNK 파일 내 포함된 JavaScript

 

③ JavaScript는 미끼용 문서, 암호화된 SugarGh0st 페이로드, DLL 로더 및 배치 스크립트 생성

> 드로퍼로 동작하며, 포함된 파일을 디코딩하여 %TEMP% 경로에 생성

> 미끼용 문서 오픈, %TEMP%에서 배치 스크립트 로더 실행, DLL 로더 실행 순

> 동작 완료 후 자체적으로 삭제

 

④ 배치 스크립트와 DLL 로더를 실행해 암호화된 SugarGh0st 페이로드를 해독해 실행

> "ctfmon.bat"는 DLL 로더를 실행하는 명령이 포함

> "MSADOCG.DLL"은 %TEMP%에서 암호화된 SugarGh0st 페이로드 파일 "DPLAY.LIB'' 복호화 및 메모리에서 SugarGh0st 실행

 

2.2 두 번째 공격 체인 

[사진 3] 두 번째 공격 체인

 

- JavaScript는 쉘코드를 실행하기 위해 DynamicWrapperX를 사용하며, 이후 SugarGh0st RAT를 실행

> 이외 나머지 과정은 첫 번째 공격 체인과 동일

> DynamicWrapperX는 스크립트(JScript, VBScript 등)에서 Windows API 함수 호출을 활성화하는 ActiveX 구성 요소 [4]

> 지속성을 위해 Run 레지스트리 키에 "CTFMON.exe"라는 레지스트리 하위 키를 생성

구분 설명
JavaScript 지속성  레지스트리 키 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
하위 키 CTFMON.exe
“cmd /c start C:\Users\user\AppData\Local\Temp\dllhost.exe C:\Users\user\AppData\Local\Temp\~204158968.js”
DynamicWrapperX 레지스트리 키 Software\Classes\DynamicWrapperX
하위 키 CLSID
"89565275-A714-4a43-912E-978B935EDCCC" 

 

3. 침해지표 [5]

구분
URL account[.]drive-google-com[.]tk
login[.]drive-google-com[.]tk
IP 103.148.245.235
103.108.67.191
파일 Hash 8584094f79fce97321ee82ca5da41b6830ecc6a0921bcaddb8dd337827cd7d1a
3436135bb3839521e7712882f0f6548aff78db66a1064408c49f820a0b85d980
c758eed6660786097b63ac6748236b5b6084783703ea7ee2111e8f0bcaa3652e
6dff111b6adc9e33bed20eae99bec779f1c29dd55895a71125cfbe3c90950eb2
7c87451261dfce64fda987eb395694b5330fd958466c46c931440cd9dc227505
ddac61f918ed87b49ef15d05873e7f52b919758aef713145f6a7d538c714fa2e
f3ea4611c72d57eabf381d5639c3c8d1840cb005ed811f3038410fb2e04978c1
9d9a0af09fc9065bacabf1a193cad4386b5e8e5101639e07efa82992b723f3b0
5ad182c913f0b5cb6a34126137c335110d4c9472f5c745cb7a438d108b03b27c
38c815729f34aef6af531edf3f0c3f09635686dbe7e5db5cb97eca5b2b5b7712
adb4eb33213fa81c8b6cc013a6f4a43fa8b70eb8027433cf4339b532cb6e84cf
2e543adb701afd40affcb4c51bd8246398b0210bee641ca9aeffcca893c9e4a5
7cacdc84a0d690564c8471a4f58ab192ef7d9091ab0809933f616010bbf6846a
66982ebd5ebb75633723c7057a1e948ac3aafe3ff808397eb0c55c853c82f9e6
21f19d87d2169c82efd76ddb1baa024a1e59b93f82d28f276de853fc3ef8b20e
362fde3362e307af3787b9bf0b5c71f87b659a3217e054c4d0acea8b9e6d74b0
ee5982a71268c84a5c062095ce135780b8c2ffb1f266c2799173fb0f7bfdd33e
9783c0eee31ce6c5f795ecf387025af5d55208ff2713c470af2042721ab38606
410d7dc973d188cd0d962a59f48deb1cfc73adf37857765e90194f6e878d4488
bd0a1efe07fcb4af4bec1b2881a0711f0be34044680ad8cff958a68a70d4a914
ff0f28f96bbb6c80fc3823fe71d5e07e1a05b06986e82a2fbe324d68ba5ab2ea

 

 

4. 참고

[1] https://blog.talosintelligence.com/new-sugargh0st-rat/
[2] https://github.com/sin5678/gh0st
[3] https://socprime.com/blog/what-are-lolbins/
[4] https://dynwrapx.script-coding.com/dwx/pages/dynwrapx.php?lang=en
[5] https://github.com/Cisco-Talos/IOCs/blob/main/2023/11/new-sugargh0st-rat.txt
[6] https://www.dailysecu.com/news/articleView.html?idxno=151748

+ Recent posts