JPHP 인터프리터로 제작된 다운로더 악성코드

JPHP 인터프리터로 제작된 다운로더 악성코드

최근 AhnLab SEcurity intelligence Center(ASEC)에서는 JPHP를 사용하여 제작된 악성코드를 발견하였다. JPHP는 Java Virtual Machine(JVM) 위에서 실행되는 PHP 인터프리터로, PHP 코드를 Java 환경에서 사용할 수 있도록 제작되었다. PHP 코드를 Java 바이트코드로 변환해서 실행할 수 있어 Java 라이브러리를 직접 호출할 수 있고, JIT 컴파일 방식으로 PHP보다 빠르다는 특징이 있다. 

[그림 1] JPHP

 

금번 확인된 악성코드의 최초 파일은 ZIP 파일 형태로 유포되는 것으로 확인된다. 내부에는 JAVA Runtime Environment(JRE) 패키지와 라이브러리 목록이 존재하며, exe 파일은 실행 시 “lib\”경로 하위에 존재하는 파일들을 인자로 javaw.exe를 실행하는 Runner 역할을 수행한다. 

즉, 해당 악성코드는 JRE가 포함되어 유포되므로 별도 JAVA 환경이 존재하지 않아도 동작하도록 구성되어있다. javaw가 실행되는 commandline은 아래와 같다.

"{Package Path}\jre\bin\javaw.exe" -Dfile.encoding=UTF-8 -classpath "lib\.;lib\..;lib\activation.jar;lib\asm-all.jar;lib\commons-email.jar;lib\dn-php-sdk.jar;lib\gson.jar;lib\jfoenix.jar;lib\jkeymaster.jar;lib\jna.jar;lib\jphp-app-framework.jar;lib\jphp-core.jar;lib\jphp-desktop-ext.jar;lib\jphp-desktop-hotkey-ext.jar;lib\jphp-gui-ext.jar;lib\jphp-gui-jfoenix-ext.jar;lib\jphp-json-ext.jar;lib\jphp-jsoup-ext.jar;lib\jphp-mail-ext.jar;lib\jphp-runtime.jar;lib\jphp-systemtray-ext.jar;lib\jphp-xml-ext.jar;lib\jphp-zend-ext.jar;lib\jphp-zip-ext.jar;lib\jsoup.jar;lib\mail.jar;lib\slf4j-api.jar;lib\slf4j-simple.jar;lib\zt-zip.jar" org.develnext.jphp.ext.javafx.FXLauncher

[그림 2] 압축해제된 ZIP 파일과 “lib\”경로 하위에 존재하는 라이브러리들

 

위 [그림 2]에 빨간 네모 박스로 표시한 jar 패키지가 악성행위가 존재하는 JPHP 파일이다. 내부에는 PHP를 바이트코드로 변환한 .phb 파일들이 존재한다. .phb파일은 일반적인 .class 파일의 시그니처(0xCA 0xFE ..)와 다른 구조를 가지고 있으므로, bytecodeviewer가 정상적으로 인식하지 못한다.

[그림 3] bytecodeviewer로 열어본 phb 파일

 

해당 .phb 파일을 .class 파일로 인식할 수 있도록 변환하면 디컴파일이 가능하여 코드 분석이 가능하다. 분석 결과 추가 악성코드를 다운로드하는 다운로더 유형의 악성코드로 확인된다. 아래는 해당 악성코드의 C2 및 특징을 서술한다.

[그림 4] 최초 C2 통신

 

[그림 5] Windows Defender 행위 모니터링 기능 비활성화

 

공격자가 추가 C2를 확보하기 위해 Telegram을 사용하는 것이 확인되었다. 텔레그램 단축 URL 형식인 “t.me” 도메인을 활용하였으며, 접속시 확인되는 채널 프로필에 추가 C2의 IP를 업로드해둔 모습이 보인다. 공격자는 해당 URL에 접속하여 “i1il” 문자열 사이에 존재하는 IP 값을 추가 C2로 활용한다.

해당 URL에서 확보하는 IP는 공격자가 쉽게 수정할 수 있으므로, 감염 PC를 직접 컨트롤 하지 않고도 C2 주소를 자유롭게 변경할 수 있게 된다.

[그림 6] 추가 C2를 웹페이지에서 가져오기

 

[그림 7] 추가 C2를 가져오기 위해 접속하는 사이트

 

추가 악성코드를 다운로드하여 실행하는 기능이 존재한다. 분석 당시 해당 주소에서 파일이 다운로드 되지 않아 추가 분석은 어렵지만, 자사 분석 인프라를 통해 확인한 결과 해당 유형의 악성코드는 주로 Strrat, Danabot 등의 정보유출형 악성코드를 유포했을 것으로 추정된다.

[그림 8] 추가 악성코드 다운로드

 

이번 포스팅에서는 JPHP로 제작된 악성코드에 대해서 설명하였다. 이번 사례에서 보았듯이, JPHP와 같은 상대적으로 생소한 기술도 악성코드 유포에 악용될 수 있다. 공격자들은 계속해서 새로운 방법을 모색하고 있으며 기존에 알려진 기술뿐만 아니라 예상치 못한 경로를 활용하기도 한다. 따라서, 실행 파일이나 스크립트의 출처를 신중히 검토하는 습관이 매우 중요하다.

MD5

1b5548083e151b54a63cb933d5cbe274
230c1d520f88a66698d522805bafe883
4a54c8367d6cf067fbad8ce3da50b65e
c2d457714e7079fa6b423156071a3860
d87a34d70a672339d6b8c7b563eb8e7d
IP

49[.]13[.]143[.]126
5[.]75[.]208[.]125
89[.]23[.]96[.]126

AhnLab TIP를 구독하시면 연관 IOC 및 상세 분석 정보를 추가적으로 확인하실 수 있습니다. 자세한 내용은 아래 배너를 클릭하여 확인해보세요.