슬립폼 공법 선택시 고려사항
지난 두 달 동안 MassLogger라는 새로운 스파이웨어를 탐지해 왔습니다. 이 고급 키로거 및 스파이웨어는 MalSpam 첨부 파일을 통해 유포되며, 기존의 다른 키로거 도구보다 더 많은 기능을 제공합니다. 이 캠페인은 초기 감염 경로로 여러 파일 형식을 악성 첨부 파일로 사용하는 것으로 관찰되었습니다. 또한, 이러한 캠핑의 동적 동작은 여러 샘플에서 동일하게 나타나지 않습니다. 키로거, Windows Defender 제외, 스크린샷 촬영, USB를 통한 확산, 클립보드 도용, VM 탐지 등 다양한 기능을 제공합니다.
기술적 세부 사항 :
이 캠페인에서 스팸 첨부 파일로 사용된 다양한 파일 유형은 다음과 같습니다.
- 지퍼
- RAR
- gz
- 7z
- IMG
- 이소
- 의사
- arj
- xz
- 에이스
- 문서
- z
- xlsm
- 택시
위 목록을 살펴보면 첨부 파일의 두 가지 주요 유형을 알 수 있습니다. 첫 번째는 아카이브 파일이고 두 번째는 문서 파일입니다. 아카이브 파일의 경우 추출 후 .NET Masslogger 페이로드가 포함되어 있는 반면, 문서 파일의 경우 원격 서버에서 Masslogger 페이로드를 다운로드하는 VBA 매크로와 익스플로잇이 포함되어 있습니다.
다형성 프로세스 체인:
이 캠페인의 여러 샘플에서 다양한 동적 동작 변형을 확인했습니다. 아래는 몇 가지 프로세스 체인의 스냅샷입니다.




문서 분석:
일부 사례에서 위협 행위자는 VBA 매크로 및 수식 편집기 익스플로잇을 통해 오피스 문서 파일을 초기 감염 벡터로 사용했습니다. 다음 그림은 VBScript 2개와 CVE-1-2017 익스플로잇 파일 11882개가 포함된 내장 OLE 저장소가 있는 Excel 문서와 VBA 매크로가 포함된 VBA 프로젝트 스트림을 추출하는 과정을 보여줍니다.

그림 5: OLE 스트림 및 저장소
다음 그림은 각각 다른 데이터를 포함하는 여러 OLE 스트림을 보여줍니다.

첫 번째 스트림 oleObject1.bin은 이름 변경 코드를 포함한 VB 스크립트 파일이며, 이후 Wscript를 사용하여 VBS 파일을 실행합니다.

그림 7: VBS 작업
OleObject2.bin 스트림 역시 매우 난독화된 VB 스크립트이며 C2 서버에서 페이로드를 다운로드하는 코드를 포함하고 있습니다.

스택 기반 버퍼 오버플로 편집기 익스플로잇이 포함된 엑셀 시트는 WinExec API(0x00430C12)를 사용하여 VB 스크립트의 이름을 바꾸고 실행합니다.

"1C00"은 수식 편집기의 헤더이며, 오른쪽에는 cmd.exe를 포함하는 셸코드가 있습니다. cmd.exe는 처음에 VB 스크립트의 이름을 변경하고 Wscript로 전달하여 해당 VB 스크립트를 실행합니다. 오버플로가 발생하면 이 전체 데이터가 WinExec 함수로 전달되어 추가 작업을 수행합니다. CVE-2017-1182 익스플로잇과 관련된 자세한 내용은 저희 문서를 참조하십시오. 블로그 말한다.
공격자는 페이로드 전달 가능성을 높이기 위해 익스플로잇과 VBA 매크로를 모두 사용합니다. 패치된 시스템에서 익스플로잇이 실패하면, 또 다른 구성 요소인 VBA 매크로도 문서 파일에 존재합니다. VBA 매크로에도 유사한 VBS 코드가 존재하며, 매크로 코드는 VBS 파일을 "C:\programdata\" 폴더에 저장하고 VBS 작업으로 실행하여 Equation Native 익스플로잇과 유사한 동작을 추가로 수행합니다.
탑재량 분석:
The 페이로드 위에서 설명한 바와 같이, 실행 후 몇 초 동안 절전 모드에 들어갈 때 다양한 초기 공격 벡터에서 다운로드됩니다. 이 바이너리에는 많은 절전 모드 코드가 존재합니다. 압축된 파일은 4개의 레이어로 구성되어 총 2개의 구성 요소가 존재합니다.
1단계 레이어:
1에서st 레이어가 실행되면 Form() 컴포넌트에 숨겨진 간단한 코드가 있습니다. 이 코드는 현재 리소스 디렉터리에서 Base64 형식의 역방향 데이터로 DLL 파일을 추출하고, 이를 분석하여 AndroidStudio.dll이라는 이름의 DLL 파일을 덤프합니다.

AndroidStudio.dll은 전달된 버퍼의 압축을 풀고 복호화하는 역할을 합니다.

GZip 압축 해제 방식은 리소스 디렉터리에서 전달된 버퍼의 압축을 해제하는 데 사용됩니다. 이 DLL은 추가 작업을 담당하는 다른 PE 파일을 덤프하는 데 사용됩니다.
2단계: Lazarus.exe
Lazarus.exe는 매우 난독화된 .NET 파일이며, 부모 파일에서 압축이 해제되어 덤프됩니다. de4dot 도구를 사용하여 이 파일을 성공적으로 디코딩했습니다. 실행 시, Lazarus.exe는 몇 초 동안 대기 상태에 들어간 후 "%appdata%" 위치에 자신의 복사본이 있는지 확인합니다. 없으면 "%appdata%" 위치에 자체 복사본을 생성합니다. 그 후, 시스템에 영구적으로 저장하기 위해 작업 스케줄러에 항목을 생성합니다. 이를 위해 "%temp%" 위치에 .XML 구성 파일을 생성하여 삭제하는데, 이 파일은 작업 스케줄러 생성을 위한 입력 파일입니다. XML 파일의 메타데이터는 하드코딩되어 PE 리소스에 저장됩니다. 모든 데이터는 런타임에 교체됩니다.

이름은 문자열 "Update\"로 시작하고 뒤에 %appdata% 위치에 있는 파일 이름이 옵니다.
다음 명령은 작업 스케줄러에 항목을 추가하기 위해 실행됩니다.
“C:\Windows\System32\schtasks.exe” /Create /TN “Updates\ ” /XML “C:\Users\ \AppData\Local\Temp\tmp .tmp”
이제 최종 페이로드인 MassloggerBin.exe를 살펴볼 차례입니다. 프로세스 할로잉(Process Hollowing) 기법을 사용하여 자체 프로세스에 코드를 삽입합니다. 아래 이미지는 자체 할로잉 기법을 사용하여 추가 활동을 수행하는 모습을 보여줍니다.

새 프로세스를 성공적으로 작성하고 생성하면 부모 프로세스는 종료되고, 코드가 삽입된 프로세스는 고아 프로세스로 실행됩니다. 이 프로세스의 코드는 매우 난독화되어 있습니다. 모든 함수와 클래스 이름은 무작위/난독화된 문자열로 수정됩니다.
3단계 레이어: MassLoggerBin.exe
시작과 함께 리소스에서 "Ionic.Zip.Reduced.dll"이라는 이름의 DLL 파일을 추출합니다. Ionic.Zip.Reduced.dll은 zip 파일을 조작하는 데 사용되는 DotNetZip 무료 고속 클래스 라이브러리입니다. Masslogger에서 공격자가 사용한 코드는 여기에서 확인할 수 있습니다. 대지이 DLL을 사용하는 주된 목적은 스냅샷, 키로거, 사용자 정보 등의 파일을 압축하여 압축한 zip 파일을 만드는 것입니다.
MassLogger는 내부 구성 기반 기능을 사용하여 필요한 정보를 적절히 가져온 다음 이를 특정 변수에 할당합니다.
다음은 내부 구성에 저장된 데이터를 가져오는 변수입니다. 특정 오프셋으로 이동하는 것이 첫 번째 매개변수이고 데이터가 가져오는 구성 배열이 두 번째 매개변수입니다.


시스템 이름, Windows 버전, CPU, GPU, 설치된 AV, URL "hxxp[:]//api[.]ipify[.]org"에서 얻은 공용 IP와 같은 시스템 정보를 수집하기 시작하고 실행 중인 프로세스 정보도 가져옵니다.

MassLogger는 실행 중인 프로세스 Windows 이름도 로그 파일에 저장합니다.
MassLogger 기능:
1. 애플리케이션 데이터 도용범:
다음은 사용자 데이터를 훔치고 C2 서버로 전송하는 애플리케이션 목록입니다.
![]()
이 바이너리에 저장된 하드코딩된 경로의 데이터를 확인하여 특정 데이터와 해당 애플리케이션의 설치를 확인하고, 세부 정보를 찾지 못하면 다음 형식으로 항목을 생성합니다.
<|| 애플리케이션 이름 ||>
설치되지 않음
MassLogger 바이너리에는 다음 모듈이 포함되어 있습니다. 해당 모듈 목록은 다음과 같습니다.
2. Windows Defender 제외
Windows Defender 제외 기능인 "WD Exclusion"이라는 모듈이 있습니다. "Add-MpPreference –ExclusionPath", Windows Defender Anti-Virus에서 자체적으로 제외됩니다.
3. USB 스프레드
또 다른 모듈인 USB Spread는 오픈 소스 코드를 사용합니다. 라임USB GitHub에서 사용 가능합니다. USB 드라이브에 저장된 파일을 감염시키는 데 사용됩니다. USB에 저장된 파일이 실행되면 감염된 코드뿐만 아니라 자체 코드도 실행됩니다.

4. 키로거와 클립보드
"SetWindowHookEx" API를 사용하여 모든 키보드 키를 캡처하고 기록하는 키 로그 캡처 모듈이 있습니다.

5. 안티 VM
또한 WMI를 사용하여 Video_Controller 어댑터를 확인하여 Anti-VM 기술을 제공합니다.Win32_VideoController에서 *를 선택하세요그래픽 카드 관련 정보를 검색합니다. 프로세스가 Virtual Box에서 실행 중이면 "Virtual Box Graphics Adapter"를 반환합니다.

6. 검색 및 업로드
구성 파일에 따르면, "SearchAndUpload.zip" 아카이브에 저장된 C2 서버로 보내고 싶은 파일을 검색합니다.
모든 데이터는 설정 파일에서 저장되고 검색됩니다. MassLogger 설정 파일의 모습은 다음과 같습니다.

모든 데이터 수집이 완료되면 Masslogger 프로세스 시작 및 종료 시점, 기타 수집된 세부 정보 등 모든 데이터가 포함된 로그 파일이 생성됩니다. 이후 ZIP으로 압축되어 "C:\Users\"에 저장됩니다. \AppData\Local”.
다음은 MassLogger 로그 파일을 보여주는 이미지입니다.

결론 :
Masslogger는 고도로 구성 가능하고 모듈화된 키로거이자 스파이웨어입니다. Masslogger 개발자는 다른 키로거보다 더욱 정교한 기능을 개발하려고 노력했지만, 이러한 기능 때문에 이 고급 맬웨어를 탐지하기가 어렵습니다.
IoC:
4A199C1BA7226165799095C2C2A90017 (XLSM)
D1FFF0C0782D08ED17387297369797E0 (XLSM)
31B65A54940B164D502754B09E3E9B63 (PE)
37958546CB6DC41F505FDCB3430CEE3B (PE)
주제 전문가:
아니루다 돌라스
파완 차우다리



