- 한국과 중국 사용자를 대상으로 정상 애플리케이션으로 위장한 UULoader 유포 정황 확인 [1] > DLL 파일 내 내장된 프로그램 데이터베이스(PDB) 파일에 중국어 문자열이 있다는 점에서 UULoader로 명명 - UULoader는 Gh0stRAT이나 Mimikatz와 같은 멀웨어를 유포하는데 사용되는 로더
2. 주요내용
- UULoader는 File Header Stripping을 통해 정적 탐지 회피 > 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 해시 등을 덤프하는데 사용
- 동아시아와 한국을 대상으로 악성코드가 유포되는 정황이 확인 - 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 추가 배포
대응
설명
아웃바운드 트래픽 제한
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로 활용해 유출
- 유럽 ATM 99%를 감염시킬 수 있다고 주장하는 새로운 ATM 악성코드 등장 - 전 세계 ATM 약 60% 감염시킬 수 있다고 주장
내용
- 유럽 ATM 99%, 전 세계 ATM 60%를 감염시킬 수 있다고 주장하는 새로운 ATM 멀웨어 등장 > 이미 다크웹에는 3만 달러에 적극 광고되는 중 > 침해 가능 제조사: Diebold Nixdorf, 효성, Oki, Bank of America, NCR, GRG, Hitachi 등 > ATM 한 대 당 3만 달러의 수익을 보장
- 미국 CISA, NSA, FBI 등에서 러시아 연방 보안국(FSB)과 연관된 것으로 추정되는 Snake 악성코드 분석 보고서 발표
- Snake 악성코드는 50여 개 국가 정부 네트워크, 연구 시설 및 언론 등을 대상으로 민감 정보 탈취를 시도
2. 주요내용
① 러시아 배후 해킹 그룹 Turla는 피싱메일과 무차별 대입 공격을 통해 자격 증명 정보 획득 및 관리자 권한 획득 시도
- 초기 액세스 권한 획득 후 Snake 악성코드 배포
> jpsetup.exe(이미지 뷰어 설치 프로그램)을 통해 Snake 악성코드 배포
> 정상적인 경로(%windows%\WinSxS\)에 WerFault.exe 등록하여 지속성 유지
WinSxS (Windows Side By Side) - Windows OS의 "DLL Hell" 문제를 해결하기 위해 만들어짐 ※ DLL Hell: DLL을 관리할 때 발생할 수 있는 모든 문제를 의미 > Windows OS는 프로그램 사용 시 DLL파일을 사용 > 업데이트 등으로 DLL이 변경되는 경우 DLL 관련 문제가 발생할 수 있음 ※ DLL 버전 충돌 문제, 프로그램이 의존하는 DLL 파일을 찾을 때의 어려움, 불필요한 DLL 파일 복사본이 만들어지는 문제 등 > 이러한 문제를 해결하기 위한 목적으로 등장
- 윈도우 업데이트 시 시스템, 드라이버가 변경되는 폴더, 파일들을 WinSxS 폴더에 백업 > 프로그램 실행 시 해당 디렉터리에서 DLL에 관한 정보를 불러옴 > 이를 통해 의존성 문제를 줄일 수 있음
② 관리자 권한 획득 후 도메인 컨트롤러에 액세스
- 조직의 전체 네트워크에 대한 정보 수집 목적
> 키로거, 네트워크 스니퍼, 오픈 소스 등의 도구를 사용
③ 여러 노드를 경유하여 내부 정보 유출
- 여러 프로토콜을 이용한 통신(TCP, UDP, HTTP, SMTP, DNS 등)과 암호화를 사용해 탐지 우회
3. 탐지규칙
3.1 Snort
- 권고된 탐지 규칙을 적용하기 전 운영 환경을 고려하여 적용여부 검토
alert http any any -> any any (msg: "http rule (Cookie)";pcre:"/[0-9A-Za-z]{10}[0-9A-Za-z\/\+]{11}=/C";flow: established, to_server;sid: 7; rev: 1;)
alert http any any -> any any (msg: "http rule (Other Header)";pcre:"/[0-9A-Za-z]{10}[0-9A-Za-z\/\+]{11}=/H";flow: established, to_server;sid: 8; rev: 1;)
alert http any any -> any any (msg: "http2 rule (Cookie)";pcre:"/[0-9A-Za-z]{22}[0-9A-Za-z\/_=\;]{11}/C";flow: established, to_server;sid: 9; rev: 1;)
alert http any any -> any any (msg: "http2 rule (Other Header)";pcre:"/[0-9A-Za-z]{22}[0-9A-Za-z\/_=\;]{11}/H";flow: established, to_server;sid: 10; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";content: "|00 00 00 08|"; startswith; dsize: 12;flow: established, to_server; flowbits: set, a8; flowbits: noalert;sid: 1; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";content: "|00 00 00 04|"; startswith; dsize:8;flow: established, to_server; flowbits: isset, a8; flowbits: unset, a8;flowbits: set, a4; flowbits: noalert;sid: 2; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";content: "|00 00 00 08|"; startswith; dsize: 4;flow: established, to_client; flowbits: isset, a4; flowbits: unset, a4;flowbits: set, b81; flowbits: noalert;sid: 3; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";dsize: 8; flow: established, to_client; flowbits: isset, b81;flowbits: unset, b81; flowbits: set, b8; flowbits: noalert;sid: 4; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";content: "|00 00 00 04|"; startswith; dsize: 4;flow: established, to_client; flowbits: isset, b8; flowbits: unset, b8;flowbits: set, b41; flowbits: noalert;sid: 5; rev: 1;)
alert tcp any any -> any any (msg: "tcp rule";dsize: 4; flow: established, to_client; flowbits: isset, b41;flowbits: unset, b41;sid: 6; rev: 1;)
condition: pe.is_pe and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 3240) and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 1384) and for any rsrc in pe.resources: (rsrc.type == pe.RESOURCE_TYPE_ICON and rsrc.length == 7336) }
- 작년말 북한이 해당 S/W의 취약점을 악용해 PC 해킹 및 악성코드 유포 등 해킹한 사실이 국정원·경찰청·KISA 등 유관기관에 의해 적발
- 국가·공공기관 및 방산·바이오업체 등 국내외 주요기관 60여곳의 PC 210여대를 해킹한 사실을 확인
- 해킹에 악용된 S/W는 국내외 1,000만대 이상의 기관·업체·개인 PC에 설치되어 있는 것으로 추정
- 대규모 피해 확산 방지를 위해 관계기관과 합동으로 관련 사실을 공지
영향받는 버전 - INISAFE CrossWeb EX V3 3.3.2.40 이하 버전
2.1 취약점 상세
- 해당 취약점은 INITECH사 프로세스(inisafecrosswebexsvc.exe)에 의해 악성 행위가 발생되는 것으로 확인됨
피해 시스템의 inisafecrosswebexsvc.exe 특징
- INITECH사의 보안 프로그램인 INISAFE CrossWeb EX V3의 실행 파일 - 정상 파일과 같은 해시값을 가짐 (MD5:4541efd1c54b53a3d11532cb885b2202) - INITECH사에 의해 정상 서명된 파일 - INISAFE Web EX Client로 침해 시점 이전부터 시스템에 설치되어 있었으며, 변조의 흔적 또한 발견되지 않음 - 시스템 부팅 시 iniclientsvc_x64.exe에 의해 실행되는데, 침해 당일에도 같은 방식으로 실행
- 악성코드인 SCSKAppLink.dll이 inisafecrosswebexsvc.exe 프로세스에 인젝션되어 동작
※ DLL 인젝션: 다른 프로세스의 주소 공간 내에서 DLL을 강제로 로드시킴으로써 코드를 실행시키는 기술
- SCSKAppLink.dll에는 호스트 프로세스에 따라 분기하는 코드가 포함
- 분기 코드는 inisafecrosswebexsvc.exe 프로세스에 인젝션되어 동작하는 경우 특정 C2에 접속하여 추가 악성코드를 다운 및 실행
※ svchost.exe, rundll32.exe, notepad.exe에 인젝션 여부를 판단하도록 돼있으나, 해당 분기문에는 실행 코드가 포함되지 않음
- C2에 접속하여 임시폴더에 악성코드 main_top[1].htm 다운로드 후 특정 경로에 복사
> 다운로드 경로 : c:\users\<사용자>\appdata\local\microsoft\windows\inetcache\ie\zlvrxmk3\main_top[1].htm
> 복사된 경로 : C:\Users\Public\SCSKAppLink.dll
3. 대응방안
① 서비스 운영자: 이니텍를 통해 최신버전 교체_INISAFE CrossWeb EX V3 3.3.2.41
② 제품 사용자: 취약한 버전이 설치되어 있는 경우 제거 후 최신버전 업데이트를 진행
> [제어판]-[프로그램]-[프로그램 및 기능]에서 INISAFE CrossWeb EX V3 버전 확인 후 제거 클릭
> 아래 링크를 참고하여, 운영체제에 맞는 최신 버전의 INISAFE CrossWeb EX V3를 설치