Perun 內網滲透掃描神器
0X01 工具介紹
Perun是一款主要適用於乙方安服、滲透測試人員和甲方RedTeam紅隊人員的網路資產漏洞掃描器/掃描框架,它主要適用於內網環境,載入漏洞檢測Vuln模組後能夠快速發現安全問題,並根據需要生成報表,以方便安全人員對授權專案完成測試工作。
- 專案地址:https://github.com/WyAtu/Perun
0x02 工具特點
Perun由Python2.7和Python標準庫開發,所有功能(埠掃描,漏洞檢測,控制檯輸出,生成Html報告)相容Windows系統和*nix系統,Html報告採用Vue+Element,支援對掃描結果的排序、搜尋、分頁。
Perun工作流程如下:
- 載入-l引數指定路徑下的專案程式碼
- 解析-t引數指定的目標
- 進行ping掃描活躍主機(使用–skip-ping引數將跳過ping掃描階段)
- 根據預設掃描埠或-p引數對指定埠進行埠掃描,預設掃描178個埠,詳見Perun/conf/globallistconf.py
- 解析–vuln和–search(包括–filter和–exclude)引數指定的漏洞檢測Vuln模組
- 根據各Vuln模組預設掃描埠或–set-port指定各Vuln模組掃描埠,匹配目標主機開放埠,生成待掃描目標列表
- 載入各漏洞掃描Vuln模組Payload,進行漏洞掃描
- 生成報告(使用–skip-report引數將跳過生成報告)
0x03 工具使用
1. 使用引數
usage: Perun [-h] [-t TARGET [TARGET ...]] [-p PORT [PORT ...]]
[--timeout TIMEOUT] [--thread THREAD] [-l LOAD_FILE_PATH]
[--vuln VULN [VULN ...]] [--all-list] [--selected-vuln]
[--search SEARCH [SEARCH ...]] [--filter FILTER [FILTER ...]]
[--exclude EXCLUDE [EXCLUDE ...]]
[--set-port SET_PORT [SET_PORT ...]] [--search-list]
[--user-path USER_PATH] [--pass-path PASS_PATH]
[--add-web-path ADD_WEB_PATH] [--skip-ping] [--report REPORT]
[--skip-report]
Perun
optional arguments:
-h, --help 顯示幫助
-t TARGET [TARGET ...], --target TARGET [TARGET ...]
設定目標或目標檔案,支援URL/IP/IPa-IPb段/CIDR,以及前述型別的混雜輸入,多個目標使用空格分隔
-p PORT [PORT ...], --port PORT [PORT ...]
設定埠,支援單個埠和埠段(PortA-PortB),以及前述型別的混雜輸入,多個埠使用空格分隔
--timeout TIMEOUT 設定超時時間
--thread THREAD 設定執行緒數量
-l LOAD_FILE_PATH, --load-file-path LOAD_FILE_PATH
設定載入路徑,本地檔案路徑或者遠端URL地址
--vuln VULN [VULN ...]
選擇Vuln模組,多個Vuln模組名使用空格分隔,預設會針對各模組內預設埠進行掃描,掃描指定埠
可以使用activemq.activemq_weakpwd=8161這樣的形式輸入,'='後指定的埠也支援單個埠和
埠段的形式,多個埠使用','分隔
--all-list 顯示所有支援的Vuln模組
--selected-vuln 顯示已選擇的Vuln模組(包括vuln指定/search搜尋/filter篩選/exclude排除操作後的結果)和Vuln模
塊資訊,設定此引數是為了方便使用者確定需要執行的模組是否符合預期
--search SEARCH [SEARCH ...]
設定關鍵詞,用於搜尋匹配的Vuln模組(或關係),多個關鍵詞使用空格分隔
--filter FILTER [FILTER ...]
設定關鍵詞,用於搜尋匹配的Vuln模組(和關係),多個關鍵詞使用空格分隔
--exclude EXCLUDE [EXCLUDE ...]
排除執行指定的Vuln模組,多個Vuln模組名使用空格分隔
--set-port SET_PORT [SET_PORT ...]
設定搜尋匹配的Vuln模組的埠,支援單個埠和埠段的形式,多個埠使用','分隔
--search-list 顯示搜尋後的Vuln模組結果(僅包含search搜尋/filter篩選操作的結果),設定此引數是為了便於使用
者檢視搜尋結果是否符合預期
--user-path USER_PATH
設定用於爆破一些弱口令的username字典檔案路徑(各模組已內建精簡字典)
--pass-path PASS_PATH
設定用於爆破一些弱口令的password字典檔案路徑(各模組已內建精簡字典)
--add-web-path ADD_WEB_PATH
追加web掃描時的web路徑,此引數用於解決如phpMyAdmin未處於web根目錄等情況
--skip-ping 忽略ping掃描
--report REPORT 設定生成報告名,預設以時間戳命名
--skip-report 忽略報告生成操作
2. 實用命令
全埠掃描命令
python Perun.py -l . -t 192.168.126.129 -p 1-65535 --skip-ping
全埠掃描並載入全部vuln模組檢測
python Perun.py -l . -t 192.168.126.130 -p 1-65535 --skip-ping --search innet
弱口令爆破載入自定義字典
# 以mysql服務為例
python Perun.py -l . -t 192.168.0.0/24 --search mysql --filter weakpassword --pass-path password.txt --skip-report
3. 使用案例
本地載入同目錄下專案檔案, 掃描目標 192.168.126.129 的全部埠
python Perun.py -l . -t 192.168.126.129 -p 1-65535 --skip-ping
本地載入同目錄下專案檔案, 掃描192.168.0.1/24、192.168.1.10-192.168.1.30、https://www.google.com、192.168.2.100的預設埠
python Perun.py -l . -t 192.168.0.1/24 192.168.1.10-192.168.1.30 https://www.google.com 192.168.2.100
遠端載入http://Perun.com Web上的專案檔案,掃描192.168.0.0/24的80、443、8000-9000、81-90埠
python Perun.py -l http://Perun.com -t 192.168.0.0/24 -p 80 443 8000-9000 81-90
本地載入並列出所有支援Vuln模組
python Perun.py -l . --all-list
本地載入掃描192.168.0.0/24的預設埠,並檢測是否存在javarmi.javarmi_rce和weblogic.rce_cve201710271漏洞,其中javarmi.javarmi_rce模組掃描該Vuln模組預設埠,weblogic.rce_cve201710271掃描80、90、8000-9000埠
python Perun.py -l . -t 192.168.0.0/24 --vuln javarmi.javarmi_rce weblogic.rce_cve201710271=80,90,8000-9000
本地載入並指定關鍵詞為smb/rce進行搜尋,並列出搜尋結果,不進行掃描,Perun將列出所有關鍵詞為smb和rce的Vuln模組和Vuln模組資訊
python Perun.py -l . --search smb rce --search-list
python Perun.py -l . -t 192.168.0.0/24 --search smb rce --search-list
本地載入並指定關鍵詞為innet/rce進行搜尋,從搜尋結果中篩選出所有dangers關鍵詞Vuln模組,不進行掃描,Perun將列出所有同時具有innet&dangers、rce&dangers的Vuln模組和Vuln模組資訊
python Perun.py -l . --search innet rce --filter rce --search-list
本地載入並針對target.txt檔案內的目標,忽略ping掃描和Html報告生成操作,進行預設埠掃描,然後載入所有內網Vuln模組(關鍵詞為innet)進行掃描,所有Vuln模組僅掃描各模組預設埠
python Perun.py -l . -t target.txt --search innet --skip-ping --skip-report
本地載入,指定選擇Vuln模組nexus_repository.nexus_weakpwd,搜尋所有innet關鍵詞Vuln模組,從選擇和搜尋的結果中排除Vuln模組tomcat.tomcat_put和zabbix.zabbix_weakpwd,列出已選擇的Vuln模組(包括vuln指定/search搜尋/filter篩選/exclude排除操作後的結果)和Vuln模組資訊,不進行掃描
python Perun.py -l . -t 192.168.0.0/24 --vuln nexus_repository.nexus_weakpwd --search innet --exclude tomcat.tomcat_put zabbix.zabbix_weakpwd --selected-vuln
本地載入掃描192.168.0.0/24的預設埠,載入所有關鍵詞有rce的Vuln模組,各Vuln模組不掃描其預設埠,改為掃描80、1000-8000埠,其中需要訪問Web服務的Vuln模組設定Web路徑為http://target.com/wwwtest/
python Perun.py -l . -t 192.168.0.0/24 --search rce --set-port 80,1000-8000 --add-web-path wwwtest
本地載入掃描192.168.0.0/24的預設埠,載入MySQL的弱口令掃描Vuln模組,針對該模組預設埠(3306)進行弱口令掃描,棄用該模組內建精簡密碼字典,改為使用password.txt密碼字典進行爆破,不生成報告
python Perun.py -l . -t 192.168.0.0/24 --search mysql --filter weakpassword --pass-path password.txt --skip-report
0x04 Vuln 模組
Perun目前支援57個Vuln模組
Vuln模組名 | Vuln模組說明資訊 |
---|---|
activemq.activemq_weakpwd | 檢測ActiveMQ弱口令 |
activemq.activemq_upload | 檢測ActiveMQ任意檔案上傳漏洞(CVE-2016-3088) |
axis2.axis2_file_read | 檢測Axis2任意檔案讀取漏洞 |
cerio.cerio_auth_rce | 檢測CERIO路由器認證後的RCE漏洞(CVE-2018-18852) |
confluence.confluence_ssti | 檢測confluence SSTI(CVE-2019-3396) |
docker.docker_unauth | 檢測Docker未授權訪問漏洞 |
elasticsearch.rce_cve20143120 | 檢測Elasticsearch遠端程式碼執行漏洞(CVE-2014-3120) |
elasticsearch.rce_cve20151427 | 檢測Elasticsearch遠端程式碼執行漏洞(CVE-2015-1427) |
elasticsearch.read_cve20153337 | 檢測Elasticsearch任意檔案讀取漏洞(CVE-2015-3337) |
elasticsearch.read_cve20155531 | 檢測Elasticsearch任意檔案讀取漏洞(CVE-2015-5531) |
ftp.ftp_weakpwd | 檢測FTP弱口令 |
glassfish.glassfish_file_read | 檢測Glassfish任意檔案讀取漏洞 |
glassfish.glassfish_weakpwd | 檢測Glassfis弱口令 |
grafana.grafana_weakpwd | 檢測Grafana弱口令 |
iis.iis_webdav_put | 檢測IIS WebDav PUT任意檔案上傳漏洞 |
iis.iis_webdav_rce | 檢測IIS WebDav遠端命令執行漏洞(CVE-2017-7269) |
iis.short_filename | 檢測IIS短檔名漏洞 |
javarmi.javarmi_rce | 檢測Java RMI遠端命令執行漏洞 |
jboss.jboss_readonly | 檢測是否存在JBoss路徑/invoker/readonly,路徑存在即可能存在漏洞CVE-2017-12149 |
jboss.jboss_jmxconsole | 檢測是否存在JBoss路徑/jmx-console/HtmlAdaptor,路徑存在即可能存在漏洞CVE-2006-5750/CVE-2007-1036/CVE-2010-0738 |
jboss.jboss_webconsole | 檢測是否存在JBoss路徑/web-console/Invoker,路徑存在即可能存在漏洞CVE-2013-4810 |
jboss.jboss_adminconsole | 檢測是否存在JBoss路徑/admin-console/,路徑存在即可能存在漏洞CVE-2010-1871 |
jboss.jboss_jbossmq_httpil | 檢測是否存在JBoss路徑/jbossmq-httpil/HTTPServerILServlet,路徑存在即可能存在漏洞CVE-2017-7504 |
jboss.jboss_EJBInvokerServlet | 檢測是否存在JBoss路徑/invoker/EJBInvokerServlet,路徑存在即可能存在漏洞CVE-2012-0874/CVE-2013-4810 |
jboss.jboss_JMXInvokerServlet | 檢測是否存在JBoss路徑/invoker/JMXInvokerServlet,路徑存在即可能存在漏洞CVE-2007-1036/CVE-2012-0874/CVE-2013-4810/CVE-2017-7501 |
jenkins.unauth2rce | 檢測Jenkins pre-auth 遠端命令執行漏洞 |
jenkins.user_enumeration | 檢測Jenkins使用者名稱列舉漏洞 |
memcache.memcache_unauth | 檢測Memcache未授權訪問漏洞 |
mikrotik.winbox_cve_2018_14847 | 檢測MikroTik RouterOS Winbox未經身份驗證的任意檔案讀/寫漏洞(CVE-2018-14847) |
mongodb.mongodb_unauth | 檢測MongoDB未授權訪問漏洞 |
mysql.mysql_weakpwd | 檢測MySQL弱口令 |
mssql.mssql_weakpwd | 檢測MSSQL弱口令 |
nexus_repository.nexus_weakpwd | 檢測Sonatype Nexus Repository Manager弱口令 |
nginx.nginx_httproxy | 檢測Nginx配置不當導致正向代理 |
tomcat.tomcat_put | 檢測Tomcat PUT遠端命令執行漏洞(CVE-2017-12615) |
phpmyadmin.phpmyadmin_weakpwd | 檢測phpMyAdmin漏洞 |
phpmyadmin.phpmyadmin_setup_rce | 檢測phpMyAdmin Scripts/setup.php遠端命令執行漏洞 |
postgresql.postgresql_weakpwd | 檢測PostgresSQL弱口令 |
redis.redis_weakpwd_unauth | 檢測Redis弱口令和未授權訪問漏洞 |
rsync.rsync_weakpwd_unauth | 檢測Rsync弱口令和未授權訪問漏洞 |
smb_netbios.computer_info | 獲取主機資訊,如主機名/域名/作業系統資訊,類似於nbtscan |
smb_netbios.ms17_010 | 檢測MS17-010遠端命令執行漏洞 |
smb_netbios.new_ms17_010 | 檢測MS17-010遠端命令執行漏洞新版本 |
thinkphp.thinkphp5_rce | 檢測ThinkPHP 5.* 遠端程式碼執行漏洞 |
thinkphp.thinkphp5010_rce | 檢測ThinkPHP 5.0.*(低於5.0.10) 遠端程式碼執行漏洞 |
thinkphp.thinkphp5023_rce | 檢測ThinkPHP 5.0.*(低於5.0.23) 遠端程式碼執行漏洞 |
thinkphp.thinkphp5152_rce | 檢測ThinkPHP 5.1./5.2.(5.1.x - 5.1.31, 5.2.0beta1) 遠端程式碼執行漏洞 |
web.directory_listing | 掃描列目錄漏洞 |
web.git_or_svn_disclosure | 掃描Git和SVN原始碼洩露漏洞 |
web.web_sensitive | 掃描敏感檔案和目錄 |
weblogic.rce_cve201710271 | 檢測WebLogic WLS遠端命令執行漏洞(CVE-2017-10271) |
weblogic.rce_cve20182628 | 檢測WebLogic WLS遠端命令執行漏洞(CVE-2018-2628) |
weblogic.rce_cnvdc201948814 | 檢測WebLogic wls9-async RCE漏洞(CNVD-C-2019-48814) |
weblogic.ssrf_cve20144210 | 檢測WebLogic SSRF漏洞(CVE-2014-4210) |
zabbix.zabbix_weakpwd | 檢測Zabbix弱口令 |
zimbra.zimbra_xxe2rce | 檢測Zimbra從XXE到RCE(CVE-2019-9670) |
zookeeper.zookeeper_unauth | 檢測Zookeeper未授權訪問 |
參考文章
- https://www.uedbox.com/post/55520/
- https://github.com/WyAtu/Perun
相關文章
- APP滲透測試基本內容與漏洞掃描介紹APP
- 埠掃描器——ZenmapKail Linux滲透測APKAILinux
- 內網滲透-初探域滲透內網
- 記學習滲透測試之掃描埠
- 滲透測試之主機探測與埠掃描
- 【滲透測試筆記】之【MSF 弱點掃描】筆記
- 記學習滲透測試之漏洞掃描一
- 記學習滲透測試之漏洞掃描二
- 內網滲透工具內網
- 內網滲透-內網資訊收集內網
- 記學習滲透測試之漏洞掃描簡述
- 滲透測試與漏洞掃描有什麼區別?
- 內網滲透隨想內網
- Linux內網滲透Linux內網
- 工作組內網滲透內網
- metasploit滲透測試筆記(內網滲透篇)筆記內網
- 滲透測試工程師必知的漏洞掃描工具!工程師
- Kail Linux滲透測試教程之在Metasploit中掃描AILinux
- 內網滲透—流量轉發內網
- cmseasy&內網滲透 Writeup內網
- 內網滲透-防火牆資訊內網防火牆
- Cobalt strike與內網滲透內網
- 從滲透測試到漏洞掃描 看我們如何對網站做安全防護網站
- 什麼是內網滲透和外網滲透?有何區別?內網
- 內網滲透應用 跨vlan滲透的一種思路內網
- Me-and-My-Girlfriend-1靶機滲透 (Vulnhub內網滲透)內網
- Python滲透測試之tcp幾種埠掃描的講解PythonTCP
- 內網滲透測試基礎內網
- VMware搭建內網滲透環境內網
- 內網滲透 IPC$ [空連線]內網
- 內網滲透-隧道代理轉發內網
- nmap掃描網段內的所有IP
- 【網路安全純乾貨分享】漏洞掃描和滲透測試的區別是什麼?
- 滲透測試和漏洞掃描是什麼?兩者有何區別?
- 紅日靶場(內網滲透)——2內網
- 內網滲透思路整理與工具使用內網
- [Tools]內網滲透SMB轉發技巧內網
- 內網滲透 Metasploit(MSF)基礎使用內網