티스토리 뷰
[Malware analysis] WannaMine 파워쉘을 이용한 파일리스 악성코드
파일리스 관련하여 살펴보던 중 파일리스 코인마이너 악성코드를 확인할 수 있었다.
파일리스란 말 그래도 파일로 존재하지 않고 메모리나 레지스트리에서 동작하는 악성코드이다.
참조
> https://s.tencent.com/research/report/869.html
> https://sanseolab.tistory.com/29
> https://gist.github.com/vortexau/13de5b6f9e46cf419f1540753c573206
작성하려는 파일리스 악성코드는 현재 URL이 막혀있기에 미리 얻은 .xsl 파일부터 분석해보겠습니다.
.xsl 살펴보면 XML 형식으로 작성된 파일 확인 시 cmd 명령을 통해 base64로 인코딩 된 파워쉘 코드를 실행하는 것을 확인할 수 있다.
(그림 1)
인코딩 된 데이터를 디코딩 진행 시 (그림 2)와 같이 *.ps1을 다운로드를 받는 것을 알 수 있으며, 해당 .ps1 확인 시 총 3개의 변수($ffffff, $miiiiii, $ssssssss)와 난독화 된 스크립트를 확인할 수 있다.
(그림 2)
(그림 3)은 사용자 정의 출력 명령어인 write-output(host)을 이용하여 해당 파일 문자열 정의 후 디코딩 된 코드를 확인할 수 있다. ( & ($ VerBOsepreFErEnce.ToSTrinG () [1,3] + 'X'-joiN' ')")
(그림 3)
디코딩 된 코드 확인 시 backdoor(fuckyoumm3, BotFilter82 등) WMI 윈도우 관리 도구와 관련 된 것을 삭제하는 것을 확인할 수 있다.
(정보 검색 시 WMI 백도어 코드의 경쟁 업체 설치 프로그램을 삭제하는 것으로 확인)
(그림 4)
WMI 삭제 후 지속적인 공격을 위해 파워쉘을 통한 $EncodeScript를 실행하는 것을 확인할 수 있다.
(그림 5)
(그림 6)은 다운로드 URL을 확인할 수 있다.
(그림 6)
이후 계속해서 살펴보면 System_Anti_Virus_core, mimi, funs등 WmiClass에 저장하는것을 확인할 수 있다.
(그림 7)
다음으로 총 3개의 변수($ffffff, $miiiiii, $ssssssss) 살펴보자.
$ffffff의 변수 확인을 위하여 디코딩 후 살펴보면 main() 부분에 16진수로 된 문자열를 추가로 확인이 가능하며 디코딩 값 확인 시 (그림 8)와 같은 걸 확인할 수 있다.
(그림 8)
디코딩 후 확인 시 여러 함수를 확인 할 수 있으며 (그림 9)을 보게되면 RunDDOS()을 확인 할 수 있는데 DDoS 프로세스를 시작하는 걸 확인할 수 있다.
이후 RunXMR(), KillBot() 타 경쟁 멀웨어를 삭제하고 CommandLine에서 "System_Anti_Virus_Core", "cryptonight" 문자가 포함 된 프로세스를 종료하는 듯 "3333", "5555". "7777" 포트를 사용하는 프로세스를 종료시키는 것을 확인할 수 있다.
(그림 9)
이후 Elemal Blue 취약점 공격 코드를 구현하는 부분을 확인할 수 있다고 한다. (참조 확인)
조금 더 살펴보면 네트워크 카드의 구성 정보에서 IP를 이용하여 공격할 ip 목록을 만드며, test-port에서 445 포트 확인 후 Get-creds() 에서 mimiktaz 도구를 사용하여 현재 로그인 된 감염자의 자격 증명 얻는다. 암호 수집 도구 mimiktaz는 초기 3개의 변수 중 하나인 $miiiiii 를 디코딩 하여 획득할 수 있다고 한다.
[PingCastle.Scanners.m17sc]:Scan()을 이용한다.
(나중에 Elemal Blue 취약점을 살펴봐야될듯.. 모르겠다)
(그림 10)
$miiiiii 변수를 살펴보면 디코딩 시 실행 파일을 확인할 수 있으며, 64bit 파일로 확인 되었다.(mimiktaz)
(그림 11)
3개의 변수 중 하나인 $ssssssss에서 디코딩 되고 해당 조건에 맞으면 URL에 연결하여 악성코드를 다운 받고 실행하는 것을 알 수 있다.
(그림 12)
이전 Networks.ps1에서 디코딩 된 $fffffffff 변수를 호출하는 RunDDOS() 추가 확인 시 steam.txt 파일을 얻는 것을 확인 할 수 있으며 temp 경로에 .exe로 저장하는 것을 확인할 수 있다.
1.bat 확인 시 경쟁 사 서비스를 삭제하고 ipp.exe 시스템 속성을 변경하는 것을 알 수 있다.
다음으로 ipsec 이용하여 close.ipsec을 현재 시스템으로 가지고 와 경쟁사 마이닝을 방지한다. 또한 압축 해제 된 파일을 특정 디렉토리에 복사 합니다.
SetACL.exe를 이용하여 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft NT\CurrentVersion\Accessibility\ATs\Narrator" 속성 및 레지스트리 값 추가, 수정하는 것을 확인할 수 있다.
msdtc을 이용하여 마이닝 서비스를 등록하고 서비스를 시작하는 것을 확인할 수 있다.
(그림 13)
쭉 진행 후 steam.exe 파일을 삭제하는 것을 확인할 수 있다.
(파일리스 악성코드를 접해봤는데... 블로그를 보고 따라하는 느낌이 들었지만.. 한게 있으니 작성은 했다. 먼가 마음에 들지 않는다.. )
'Reversing > Malware analysis' 카테고리의 다른 글
[Malware analysis] MBRLocker 악성코드를 생성하는 Dropper (0) | 2020.07.15 |
---|---|
[Malware analysis] 북한의 회색지대 전략과 대응방안.hwp (0) | 2020.07.10 |
[Malware analysis] Poulight Stealer 인포스틸러 악성코드 (0) | 2020.07.02 |
[Malware analysis] Nemty 스페셜 에디션 랜섬웨어 (0) | 2020.06.26 |
[Malware analysis] 탈북민 인터뷰 내용으로 위장한 APT 공격 (0) | 2020.06.12 |
- Total
- Today