資料介紹
軟件簡介
FindShell 是一個自動的內(nèi)存馬查殺工具,可以用于普通內(nèi)存馬和Java Agent
內(nèi)存馬。
尤其針對難以查殺的Java Agent
型內(nèi)存馬,例如冰蝎等主流工具的內(nèi)存馬都是Java Agent
主要分為以下四步:
-
利用
JDK
提供的sa-jdi
的API
基于黑名單dump
存在于JVM
中真正的字節(jié)碼 -
這種字節(jié)碼在很多情況下是非法的,所以我修改了
ASM
源碼以分析非法字節(jié)碼 -
基于
ASM
做普通的分析和模擬棧幀做深入的分析 -
如果發(fā)現(xiàn)內(nèi)存馬將會嘗試自動修復目標(利用
Java Agent
動態(tài)恢復原始字節(jié)碼)
檢測
基本檢測:java -jar FindShell.jar --pid [目標JVM的PID]
這個pid
的獲取方式可以通過jps
命令找到你需要的目標JVM
的pid
這種情況下默認必檢測的類有以下四個(最常見的Java Agent
內(nèi)存馬出現(xiàn)的地方)
類名 | 方法名 |
---|---|
javax/servlet/http/HttpServlet | service |
org/apache/catalina/core/ApplicationFilterChain | doFilter |
org/springframework/web/servlet/DispatcherServlet | doService |
org/apache/tomcat/websocket/server/WsFilter | doFilter |
并對以下的黑名單類進行檢測(如果類名出現(xiàn)關(guān)鍵字則dump
并分析該類字節(jié)碼)
keyword.add("shell"); keyword.add("memshell"); keyword.add("agentshell"); keyword.add("exploit"); keyword.add("payload"); keyword.add("rebeyond"); keyword.add("metasploit");
注意:
-
修改
org.sec.Constant
代碼可以自定義黑名單和關(guān)鍵字 -
加入
--debug
參數(shù)保留從JVM
中dump
出的字節(jié)碼供自行分析 -
并不是所有類的字節(jié)碼都可以
dump
成功,但常見的這些類測試中沒問題
修復
目前僅做了Java Agent
內(nèi)存馬的自動修復,支持最常見的HttpServlet
和ApplicationFilterChain
檢測和修復:java -jar FindShell.jar --pid [PID] --repair
根目錄存在一個RepairAgent.jar
文件,這不屬于該項目,但我將代碼放在org.sec.repair
包中供參考
注意:修復手段僅靶機測試成功,在真實環(huán)境中使用請慎重
原理
-
為什么不直接用
Java Agent
或Alibaba Arthas
工具對JVM
當前字節(jié)碼進行dump
Java Agent
內(nèi)存馬是調(diào)用redefineClass
方法對字節(jié)碼進行修改的。而調(diào)用retransformClass
方法的時候參數(shù)中的字節(jié)碼并不是調(diào)用redefineClass
后被修改的類的字節(jié)碼。對于冰蝎來講,根本無法獲取被冰蝎修改后類的字節(jié)碼。我們自己寫Java Agent
清除內(nèi)存馬的時候,同樣也是無法獲取到被redefineClass
修改后的字節(jié)碼,只能獲取到被retransformClass
修改后的字節(jié)碼。通過Javaassist
等ASM
工具獲取到類的字節(jié)碼,也只是讀取磁盤上響應類的字節(jié)碼,而不是JVM
中的字節(jié)碼
-
那么怎樣獲得存在于
JVM
中真正的字節(jié)碼
之前有寬字節(jié)安全的師傅提到利用sa-jdi
工具對真正的當前字節(jié)碼進行dump
后反編譯結(jié)合人工分析,該工具也是基于JDK
自帶的sa-jdi
庫實現(xiàn)的,不過加入了一些過濾的選項
- 什么情況下這樣的字節(jié)碼為什么是非法的
當目標類存在lambda
表達式的時候會導致非法字節(jié)碼,具體可以參考我的文章
- 修改了哪些源碼以解析非法字節(jié)碼
參考連接:修改源碼說明
- 為什么要結(jié)合普通字節(jié)碼分析和模擬棧幀分析兩種呢
因為Runtime.exec
這種調(diào)用很不常見且過程簡單,用普通的字節(jié)碼分析即可解決。但是冰蝎的反射調(diào)用defineClass
并反射invoke
以實現(xiàn)代碼執(zhí)行效果的方式,過程比較復雜,且反射調(diào)用是程序中的常見功能,簡單的分析會導致誤報
- 什么是模擬棧幀分析
參考文章:詳解Java自動代碼審計工具實現(xiàn)?和?基于污點分析的JSP Webshell檢測
免責聲明
工具僅用于安全研究以,由于使用該工具造成的任何后果使用者負責
- EDA工具CADENCE原理圖與PCB設(shè)計說明 55次下載
- 基于NVM和DRAN的混合內(nèi)存系統(tǒng)設(shè)計方案 12次下載
- 基于內(nèi)存關(guān)聯(lián)分析的內(nèi)存預拷貝遷移策略 14次下載
- 基于機器學習的內(nèi)存泄漏測試腳本預測方法 29次下載
- 液晶電視升級工具mboot使用及強制升級方法 11次下載
- 基于定理證明的內(nèi)存安全驗證工具算法綜述 5次下載
- 16位CRC驗證碼生成VI工具下載 54次下載
- 內(nèi)存模塊說明 5次下載
- 如何在虛擬環(huán)境下進行病毒的查殺詳細資料概述 13次下載
- windows應用程序讀取進程的內(nèi)存工具免費下載 1次下載
- 騰訊內(nèi)部內(nèi)存泄漏分析工具簡析 0次下載
- 熊貓燒香病毒怎樣進行手動查殺 1次下載
- 360殺毒軟件v1.2正式版_永久免費 0次下載
- ie首頁修復工具
- 內(nèi)存芯片測試軟件工具
- 堆棧和內(nèi)存的基本知識 191次閱讀
- buffers內(nèi)存與cached內(nèi)存的區(qū)別 201次閱讀
- 系統(tǒng)內(nèi)存和運行內(nèi)存的區(qū)別 2285次閱讀
- 用于分析可執(zhí)行程序和內(nèi)存轉(zhuǎn)儲的命令行工具介紹 998次閱讀
- 命令執(zhí)行不回顯利用工具解讀 1034次閱讀
- 一款解決大文件內(nèi)存溢出的 Excel 處理工具 1543次閱讀
- valgrind檢測內(nèi)存問題的原理 1864次閱讀
- 初識內(nèi)存取證-volatility與Easy_dump 2878次閱讀
- 基于智能狀態(tài)和源代碼插樁的C程序內(nèi)存安全性動態(tài)分析 1311次閱讀
- shiro綜合利用工具介紹 5079次閱讀
- Memray工具簡介及安裝與使用方法 2598次閱讀
- nonecc內(nèi)存和ecc內(nèi)存的區(qū)別 1.3w次閱讀
- 電腦內(nèi)存有什么作用?內(nèi)存適用類型有哪些 4111次閱讀
- 新規(guī)劃PCI核查工具的使用方法和應用事例 2834次閱讀
- Android內(nèi)存管理機制與分析工具 4446次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多