상세 컨텐츠

본문 제목

깃허브 저장소를 통한 악성코드 유포 사례

악성코드 분석 리포트

by Hexer 2022. 5. 24. 09:57

본문

 

최근 깃허브 저장소를 통해 Windows SMB 원격 코드 실행 취약점(CVE-2022-24500)의 Exploit 도구로 위장한 악성코드가 유포된 정황이 발견되었습니다. Exploit이 성공적으로 이루어지는 것처럼 보이는 이미지 파일을 함께 첨부하는 등 교묘하게 정상 파일로 위장하였기 때문에 자칫 사용자들은 무심코 이를 다운로드하여 실행할 수 있습니다.

[그림 1] 깃허브 저장소를 통해 Exploit 도구로 위장한 악성코드 유포

 

업로드 되어 있는 파일들 중 실제 악성코드인 “CVE-2022-24500.exe” 파일에 대해 분석을 진행하였으며, 샘플 정보는 아래 표와 같습니다.

구분 내용
샘플명
CVE-2022-24500.exe
MD5 FDCF0AAD080452FA14DF221E74CCA7D0
SHA1 7431846D707140783EEA466225E872F8757533E3
VirusTotal https://www.virustotal.com/gui/file/fa78d114e4dfff90a3e4ba8c0a60f8aa95745c26cc4681340e4fda79234026fd

 

해당 샘플은 닷넷으로 개발된 악성코드이며, 닷넷 프로그램의 난독화 도구인 ConfuserEx의 Packer 옵션에 의해 패킹이 되어 있습니다. [그림 2]는 내부 암호화 된 데이터를 복호화하여 ‘koi’ 라는 이름의 모듈로 메모리에 로드 후 실행하는 루틴입니다.

[그림 2] 내부 암호화 된 데이터를 복호화 후 실행

 

다음은 언패킹 과정을 거쳐 최종적으로 로드 된 “koi” 모듈을 난독화 해제하였을 때 확인할 수 있는 코드입니다. 깃허브 저장소의 내용을 참조하면, 해당 악성파일은 Exploit 타겟 시스템의 IP와 포트번호를 인자로 받아 실행되며, Exploit 성공 시 msfvenom으로 제작된 쉘코드(shellcode.bin)가 타겟 시스템에서 실행되는 것으로 설명이 되어 있습니다. 하지만 [그림 3]에서 보는 바와 같이, 실제 코드에서는 Exploit을 위한 로직이 존재하지 않으며, 단순히 Exploit 과정이 정상적으로 수행되는 것처럼 위장하기 위한 페이크 메시지를 출력하는 것을 알 수 있습니다.

만약 인자로 전달받은 IP:Port가 열려 있고, shellcode.bin 파일이 존재한다면 악성행위(인코딩 된 파워쉘 명령 실행)를 수행하게 됩니다.

[그림 3] 언패킹 후 난독화 해제 시 코드

 

[그림 4] 인코딩 된 파워쉘 명령 실행

 

[그림 5]는 인코딩 된 파워쉘 명령을 디코딩 한 것입니다. Base64 인코딩되어 존재하는 쉘코드를 디코딩한 후 파워쉘 메모리에 로드하여 실행하는 것을 알 수 있습니다. 사용된 파워쉘 스크립트는 침투 테스팅 도구인 CobaltStrike에서 사용되는 파워쉘 스크립트 템플릿중 하나인 것으로 확인됩니다.

[그림 5] 인코딩 된 파워쉘 명령 디코딩 결과

 

최종적으로 파워쉘 메모리에 쉘코드가 로드되어 동작하면 추가 데이터를 받아오기 위해 C2 서버(192.10.22[.]112:800)로 접속을 시도합니다. 분석 당시 접속이 불가하여 추가 악성행위는 확인할 수 없었습니다.

[그림 6] C2 서버 접속

 

현재 해당 깃허브 저장소는 삭제된 상태이지만, 깃허브 저장소를 통한 악성코드 유포는 꾸준히 지속되어 온 만큼 경각심을 가질 필요가 있겠습니다. 특히 소스 코드 형태로 유포되는 방식이 아닌, 컴파일되어 유포되는 실행 파일들의 경우 실행 시 더욱 주의가 필요합니다.

[그림 7] 삭제된 깃허브 저장소

 

 

보안관제센터 MIR Team

관련글 더보기

댓글 영역