1. IPany VPN [1]
- 한국 VPN 제공업체
2. 주요내용
- PlushDaemon으로 명명된 중국 APT 그룹에의해 한국 VPN 공급 업체 IPany는 공급망 공격을 당함 [2]
> 공격자들은 합법적인 설치 프로그램에 SlowStepper 백도어를 삽입
> SlowStepper는 C++, Python, Go로 프로그래밍된 약 30개의 모듈로 구성된 대규모 툴킷을 갖추고 있음
- 사용자들은 VPN 다운로드 URL (hxxps://ipany[.]kr/download/IPanyVPNsetup.zip)에서 악성 파일을 다운
> 악성 IPanyVPNsetup.exe 설치 프로그램이 실행되면 여러 디렉토리를 생성하고, 정상 및 악성 파일을 모두 배포
- 공격 체인
순서 | 설명 |
IPanyVPNSetup.exe 실행 | - AutoMsg.dll 로드 - 레지스트리를 등록해 (값 : %PUBLIC%\Documents\WPSDocuments\WPSManager\svcghost.exe) 부팅 시 악성 구성 요소 svcghost.exe가 실행되도록 함 |
IPanyVPNSetup.exe가 ExitProcess를 호출할 때 셸 코드로 실행 리다이렉션 |
- 셸 코드 : EncMgr.pkg를 메모리에 로드 및 실행 - EncMgr.pkg > %PUBLIC%\Documents에 2개의 디렉터리를 생성 (WPSDocuments, WPSManager)하고 NetNative.pkg, FeatureFlag.pkg에서 구성 요소를 추출 및 실행 > 추출 및 실행 순서 ⒜ NetNative.pkg에서 파일 추출 - %PUBLIC%\Documents\WPSDocuments\WPSManager\assist.dll (악성 파일) - %PUBLIC%\Documents\WPSDocuments\WPSManager\msvcr100.dll (정상 파일) - %PUBLIC%\Documents\WPSDocuments\WPSManager\PerfWatson.exe (정상 파일) - %PUBLIC%\Documents\WPSDocuments\WPSManager\svcghost.exe (악성 파일) ⒝ NetNative.pkg 삭제 ⒞ FeatureFlag.pkg를 winlogin.gif로 이동 > C:\ProgramData\Microsoft Shared\Filters\SystemInfo\winlogin.gif ⒟ assist.dll를 Winse.gif로 이동 > C:\ProgramData\Microsoft Shared\Filters\SystemInfo\Winse.gif ⒠ Winse.gif에서 lregdll.dll 추출 > %PUBLIC%\Documents\WPSDocuments\WPSManager\lregdll.dll ⒡ BootstrapCache.pkg를 Qmea.dat에 복사 > %PUBLIC%\Documents\WPSDocuments\WPSManager\Qmea.dat ⒢ ShellExecute API를 사용하여 svcghost.exe를 실행 및 종료 |
svcghost.exe | - PerfWatson.exe 프로세스를 모니터링해 실행 중이 아니면 PerfWatson.exe를 실행해 lregdll.dll를 사이드 로드 - lregdll.dll는 winlogin.gif에서 SlowStepper 백도어 로드 |
2.1 SlowStepper 백도어
- 합법적인 DNS 서버를 사용해 7051.gsm.360safe[.]company에 대한 TXT 레코드를 획득
> 쿼리는 TXT 레코드의 처음 6바이트가 특정 문자열과 일치하는지 확인하고, 일치할 경우 나머지 문자열(C&C IP 주소를 포함하는 인코딩된 암호화문(base64, AES) 추출
※ TXT 레코드 : 도메인 및 하위 도메인과 관련된 텍스트 정보를 저장하며, 주로 메일이 신뢰할 수 있는 출처에서 온 것인지 확인하는데 사용 (SPF, DKIM, DMARC) [3]
- 획득한 C&C IP로 연결을 시도하며, 실패 시 API를 사용해 대체 C&C IP 획득
> 연결 실패 시 : st.360safe[.]company 도메인에 gethostbyname API를 사용해 해당 도메인에 매핑된 IP 주소를 얻어 대체 C&C 서버로 사용
> 통신이 설정되면 HOST 정보(CPU 정보, 호스트 이름, 실행 중인 프로세스 목록, 설치된 애플리케이션 목록 등), 파일 삭제, 셸 모드 활성화 등의 명령을 처리
> 또한 Python, C/C++, Go 언어로 작성된 모듈을 로드하고 실행하는 기능 포함
※ gethostbyname API : 주어진 도메인 이름을 이용하여 해당 도메인의 IP 주소를 알아내는 데 사용 [4]
- IoC 목록 [5]
3. 참고
[1] https://ipany.kr/
[2] https://www.welivesecurity.com/en/eset-research/plushdaemon-compromises-supply-chain-korean-vpn-service/
[3] https://hippogrammer.tistory.com/363
[4] https://learn.microsoft.com/ko-kr/windows/win32/api/winsock2/nf-winsock2-gethostbyname
[5] https://github.com/eset/malware-ioc/tree/master/PlushDaemon
[6] https://www.bleepingcomputer.com/news/security/ipany-vpn-breached-in-supply-chain-attack-to-push-custom-malware/
'취약점 > Supply-Chain Attack' 카테고리의 다른 글
Apple CocoaPods 공급망 공격 (0) | 2024.07.03 |
---|---|
XZ Utils 라이브러리 백도어 (CVE-2024-3094) (0) | 2024.04.01 |
리포재킹(Repojacking) 공격 (0) | 2023.09.14 |
지니언스 NAC 업데이트 서버 해킹 (0) | 2023.07.05 |
3CX 공급망 공격 (0) | 2023.04.06 |