※ anyrun 샌드박스 링크: https://app.any.run/tasks/4a0c5896-8686-47e7-9ee9-515cbc051e45/
※ cape샌드박스 링크: https://capesandbox.com/submit/status/37168/
※ 영상: https://youtu.be/ZDpvck1RKkg
1. 요약
비트코인 주소를 복사-붙여넣기로 전송하면 공격자에게 비트코인을 전송하는 악성코드입니다. 비트코인 주소는 34글자이므로 대부분 사람들은 복사-붙여넣기를 사용합니다. 악성코드 이것을 이용해서 복사한 순간 공격자 비트코인 주소로 변경하는 원리입니다.
1.1 구현 방식: 클립보드 모니터링
악성코드는 AddClipboardFormatListenerAPI를 사용해서 클립보드를 관리하고 비트코인 주소를 변경합니다. 복사-붙여넣기한 데이터는 클립보드라는 공간에 저장됩니다. 클립보드는 윈도우 시스템이 관리하는데 AddClipboardFormatListenerAPI를 사용하면 프로그램이 클립보드를 관리할 수 있습니다.
1.2 공격자의 비트코인 주소
비트코인 주소 리소스 섹션에 있지만 정적 분석 도구에서 발견하지 못합니다.
2. 1단계: 악성행위 준비
악성코드 실행 경로를 검사하고 악성행위를 하기 위한 준비를 합니다.
2.1 지속 메커니즘 설정
시스템 부팅이 되면 grpconv32.exe가 실행되도록 레지스트리를 설정합니다.
레지스트리 경로는 하드코딩되어 있습니다.
2.2 실행경로 검사
악성코드 실행경로를 검사합니다. 실행경로 검사를 통과하지 못하면 파일을 복사합니다. 그리고 복사한 파일을 자식 프로세스로 실행한 후 악성코드를 종료합니다. 반대로 실행경로 검사를 통과하면 클립보드 하이재킹 악성행위를 수행합니다.
2.2.1 파일 복사
실행경로 검사를 통과하지 못하면 악성코드를 c:\intel\gp\grpconv32.exe와 c\Users\Public\rekeywiz64.exe경로에 복사합니다.
2.2.2 자식 프로세스 실행
복사한 c:\Users\Public\rekeywiz64.exe파일을 자식 프로세스로 실행하고 악성코드는 종료됩니다. 부모 프로세스(악성코드)의 경로를 인자로 설정합니다.
3. 2단계: 클립보드 데이터 수정
악성코드가 직접 클리보드를 관리하게 설정합니다. 만약 클립보드에 새로 등록된 문자열이 비트코인 주소라면 악성코드의 비트코인 주소로 바꿔치기합니다.
3.1 샌드박스의 악성행위 미발견
샌드박스에서는 어떠한 동작도 발견되지 않습니다. 그러므로 직접 정적과 행위, 동적 분석을 해야 합니다.
2.1 클립보드 모니터리스너 등록
AddClipboardFormatListenerAPI함수를 사용해서 악성코드를 클립보드 리스너로 등록합니다. 리스너가 성공적으로 등록되면 악성코드가 클립보드를 관리합니다. 클립보드 버퍼에 새로운 문자열이 들어올 때마다 WndProc함수가 실행됩니다.
2.2 클립보드 검사와 비트코인 수정
클립보드의 마지막 데이터를 가져오고 비트코인 주소라면 공격자의 비트코인 주소로 변경합니다.
공격자의 비트코인 주소는 리소스에 저장되어 있지만 리소스 분석 도구에서 발견되지 않습니다.
리소스 분석 대표 도구인 리소스 해커에서 "vaintyAddresses"리소스는 발견되지 않습니다.
헥사 에디터 또는 문자열 검색 도구를 사용하면 공격자의 비트코인 주소를 발견할 수 있습니다.
비트코인 추출 정규식: [13][a-km-zA-HJ-NP-Z1-9]{25,34}
참고자료
▶ 사례: https://perfectmoment.tistory.com/entry/클립보드를-이용한-악성사이트-유도
▶ 클립보드 하이재킹 악성코드 분석 보고서: https://www.fortinet.com/blog/threat-research/copy-pasting-thief-from-a-copy-pasted-code
▶ https://app.any.run/tasks/4a0c5896-8686-47e7-9ee9-515cbc051e45/
▶ https://www.fireeye.com/blog/threat-research/2020/05/analyzing-dark-crystal-rat-backdoor.html
▶ https://decoded.avast.io/janrubin/clipsa-multipurpose-password-stealer/
▶ https://research.checkpoint.com/2020/phorpiex-arsenal-part-i/
▶ https://github.com/Souhardya/bitcoinstealer
▶ poc: https://gist.github.com/NtRaiseHardError/df8075c303d89ef9dc6003f5d0171dd1
▶ javascript clipper: https://github.com/beefproject/beef/blob/master/modules/host/clipboard_theft/command.js
▶ https://medium.com/@desertedness/how-websites-can-hijack-your-clipboard-beea4f4cbb94
▶ ruby library: https://www.zdnet.com/article/clipboard-hijacking-malware-found-in-725-ruby-libraries/
▶ https://blog.reversinglabs.com/blog/mining-for-malicious-ruby-gems
▶ 코인 악성코드 유형 정리: https://www.zscaler.com/blogs/research/cryptominers-and-stealers-malware-edition
▶ msdn Environment.SpecialFolder 설명: https://docs.microsoft.com/ko-kr/dotnet/api/system.environment.specialfolder?view=netcore-3.1
'전공영역 공부 기록' 카테고리의 다른 글
가짜 잠금화면을 보여주고 돈을 요구하는 악성코드 (0) | 2020.08.12 |
---|---|
악성코드 샘플 다운로드 추천 사이트 (1) | 2020.08.11 |
추천 안랩 웨비나 - Fileless공격 설명 (0) | 2020.08.04 |
자바(jnlp, jar) 악성코드 분석[출처] 자바(jnlp, jar) 악성코드 분석 (0) | 2020.08.02 |
NirSoft 도구를 악용하는 호크아이 악성코드 분석 (2) | 2020.07.30 |