metasploit是一款大家都十分熟悉的漏洞利用工具,其中集成了大量的漏洞利用程序,如果我們能夠搜尋大量的符合一定條件的主機並使用metasploit進行檢測是不是會很有意思呢?想一想就有點小激動呢。。。
本文中利用metasploit的api接口對其進行操作,使用censys、zoomeye以及shodan批量搜尋主機,然后使用metasploit對找到的主機進行檢測。不過關於metasploit的api接口並沒有找到詳細的說明文檔,我通過翻閱其代碼在一行行注釋中將其所有的api函數整理出來放在這里(http://s0m30ne.com/2016/01/21/metasploit-API/),有興趣的可以看一下。
關於詳細的實現過程這里就不說了,具體的大家可以直接去代碼里看,代碼鏈接下面會給出,這里只貼出一些利用方法以及應用舉例。
==============================
|--\ \ / |\ /| /---- |----
|--/ \/ | \/ | |---\ |----
| || | | ____| |
==============================
made by s0m30ne
------------------------------
Usage: python msf_python.py [options]
Options:
-h, --help show this help message and exit
-n, --normal normal mode
-s SEARCH, --search=SEARCH
chose a search engine, for example: censys, zoomeye or shodan
-f FILE_NAME, --file=FILE_NAME
the poc file you want to run
-t THREAD_NUM, --threads=THREAD_NUM
set the thread num
##准備工作:
(1)安裝Python的msgpack類庫,MSF官方文檔中的數據序列化標准就是參照msgpack。
root@kali:~# apt-get install python-setuptools
root@kali:~# easy_install msgpack-python
(2)創建createdb_sql.txt:
create database msf;
create user msf with password 'msf123';
grant all privileges on database msf to msf;
(3)在PostgreSQL 執行上述文件:
root@kali:~# /etc/init.d/postgresql start
root@kali:~# sudo -u postgres /usr/bin/psql < createdb_sql.txt
(4)創建setup.rc文件
db_connect msf:msf123@127.0.0.1/msf
load msgrpc User=msf Pass='abc123'
(5)啟動MSF並執行載入文件
root@kali:~# msfconsole -r setup.rc
*SNIP*
[*] Processing setup.rc for ERB directives.
resource (setup.rc)> db_connect msf:msf123@127.0.0.1/msf
[*] Rebuilding the module cache in the background...
resource (setup.rc)> load msgrpc User=msf Pass='abc123'
[*] MSGRPC Service: 127.0.0.1:55552
[*] MSGRPC Username: msf
[*] MSGRPC Password: abc123
[*] Successfully loaded plugin: msgrpc
(6)安裝msfrpc
root@kali:~# git clone git://github.com/SpiderLabs/msfrpc.git msfrpc
root@kali:~# cd msfrpc/python-msfrpc
root@kali:~# python setup.py install
(7)在config.txt中配置你的token信息
后面每次使用時都需要先使用msfconsole -r setup.rc
啟動msf
##使用方法
使用python msf_python.py -n
或者直接使用python msf_python.py
進入普通模式,使用python msf_python.py -s [censys,shodan,zoomeye]
選擇相應的搜索引擎,默認選擇的是censys
。
啟動腳本后的使用方式和msf基本相同,支持msf的所有命令,不同之處在於你沒必要設置RHOST
或者RHOSTS
,后面的掃描過程中程序會自己進行設置。額外需要你設置的是QUERY
和PAGE
選項,QUERY
是你選擇的搜索引擎下的搜索條件,PAGE
則是你想要搜索的頁數(默認為10)。
通過python msf_python.py -c COMMAND
命令用戶可以使用自定義的命令,比如執行python、ruby等poc文件或者ping等系統命令,但是注意命令中通過%s留出IP接口,比如你可以通過下面的形式執行特定的poc文件:python msf_python.py -c "python poc.py %s"
通過-c
參數指定要執行的命令后,設置好QUERY
和PAGE
參數就可以通過exploit命令執行了。
你可以通過-t
參數指定線程數。
##測試樣例
首先,我演示一下使用該工具檢測ssh弱密碼的過程。
檢測過程如下圖所示:
另外,也可以使用-f參數指定poc進行檢測,在此貼出使用該工具批量測試jenkins反序列化的過程。
指定搜索條件和搜索頁數,並使用exploit啟動程序
檢測過程如下圖所示: