티스토리 뷰

728x90
반응형

[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 파일을 삭제하는 것을 확인할 수 있다.

(파일리스 악성코드를 접해봤는데... 블로그를 보고 따라하는 느낌이 들었지만.. 한게 있으니 작성은 했다. 먼가 마음에 들지 않는다.. )


728x90
반응형
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today