phpStudy隱藏后門預警


1、事件背景

近日,使用廣泛的PHP環境集成程序包phpStudy被公告疑似遭遇供應鏈攻擊,程序包自帶PHP的php_xmlrpc.dll模塊隱藏有后門,安恆應急響應中心和研究院隨即對國內下載站點提供下載的phpStudy安裝包進行分析,確認phpStudy2016、phpStudy2018的部分版本有后門,建議使用該版本的用戶立即進行安全加固處理。

2、后門分析

通過分析,后門代碼存在於\ext\php_xmlrpc.dll模塊中,至少有2個版本:

phpStudy2016和phpStudy2018自帶的php-5.2.17、php-5.4.45

phpStudy20161103

php\php-5.2.17\ext\php_xmlrpc.dll

php\php-5.4.45\ext\php_xmlrpc.dll

phpStudy20180211

PHPTutorial\php\php-5.2.17\ext\php_xmlrpc.dll

PHPTutorial\php\php-5.4.45\ext\php_xmlrpc.dll

分析過程:

對比官網的xmlrpc源代碼可以知道,默認xmplrpc模塊的幾個初始化函數都是被設置為:

phpStudy隱藏后門預警

而污染過的版本中“request_startup_func”函數被惡意攻擊者自定義:

phpStudy隱藏后門預警

用戶所有的請求都會經過自定義的函數“sub_100031F0”,

進一步分析函數“sub_100031F0”,當攻擊者(或普通用戶?)發起的HTTP數據包中包含“Accept-Encoding“字段信息時,會進入攻擊者自定的流程:

phpStudy隱藏后門預警

當Accept-Encoding字段信息為“compress,gzip”時,它會觸發搜集系統信息功能,如其中函數“sub_10004380”搜集網卡信息:

phpStudy隱藏后門預警

同時會執行內存php代碼:

phpStudy隱藏后門預警

DUMP出PHP進一步分析:

phpStudy隱藏后門預警

解密出Base64加密字符串:

phpStudy隱藏后門預警

通過HTTP包構造工具測試發包,成功觸發訪問惡意“360se[.]net”域名:

phpStudy隱藏后門預警

分析發現,當Accept-Encoding字段信息為“gzip,deflate”時,它會接着判斷是否設置“Accept-Charset”字段:

phpStudy隱藏后門預警

再判斷是否設定的特定的“Accept-Charset”字段,在滿足特定條件以后可以執行黑客給定的php命令,實現控制服務器的目的,隱蔽性非常高。

3、影響版本

目前測試發現phpStudy2016和phpStudy2018版本存在后門,IOC:

0f7ad38e7a9857523dfbce4bce43a9e9

c339482fd2b233fb0a555b629c0ea5d5

360se[.]net

用戶可以通過搜索php_xmlrpc.dll模塊中包含“@eval”關鍵字快速判斷是否是存在后門的版本,命令參考:

findstr /m /s /c:"@eval" *.*

 

4、緩解措施

https://windows.php.net/downloads/releases/archives/php-5.2.17-Win32-VC6-x86.zip

https://windows.php.net/downloads/releases/archives/php-5.4.45-Win32-VC9-x86.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM