Metasploit获取不到会话原因

  • A+
所属分类:安全文章
声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。


前言

我们在用Metasploit进行渗透测试时经常会遇到这样的情况,已经成功执行了Payload,但始终获取不到会话。这篇文章就来给大家讲一下获取不到会话的一些常见原因,已经知道了问题所在,至于要怎么解决就看大家自己的了,该绕的绕,该免杀的免杀!


一般常见情况有:
  • 1、直接获取不到会话;

  • 2、获取到会话后自动断开;

  • 3、获取到会话但是卡住不动了。


(1) 快速判断Metasploit会话完整性

如果直接通过浏览器访问监听IP:Port,或者是在获取会话的过程中按Ctrl+C键强制结束掉了,这时我们获取到的会话可能都是不完整的,即使成功得到了会话,进去之后会发现很多命令都执行不了。
这时可以通过session命令来快速判断我们得到的会话完整性,如果“Information”列中为空白则是不完整,反之则完整。
Metasploit获取不到会话原因

(2) Payload与目标系统架构不一样

这里说的系统架构不一样是因为我们生成的Msf Payload是x64,而目标系统是x86,在执行Payload过程中会出现“不是有效的Win32应用程序”报错,所以无法获取到会话。
这种情况一般出现在XP/2003机器上,不过x86的Payload可以在x64上成功运行,不存在兼容性问题
Metasploit获取不到会话原因

(3) Payload与监听模块设置不一样

我们生成的Msf Payload是x86的,但是在handler监听模块里设置的Payload为x64时就会出现这种会话自动断开的情况。
不过在这种情况下如果Payload是可执行的,我们只需要将handler监听模块里设置的Payload改为对应的x86即可解决。

重点注意:
  • 1、目标系统架构;

  • 2、Msfvenom生成Payload;

  • 3、handler监听模块Payload。

Metasploit获取不到会话原因

(4) 目标配置系统防火墙出入站规则

有时会遇到这样的情况,即使我们生成的Msf Payload、handler监听模块Payload和目标系统架构都是相对应的,但在执行Payload时仍然获取不到会话。

这可能是因为目标已开启Windows自带防火墙并设置了出入站规则,也有可能是被其它流量监测类的安全设备所拦截,可以通过netstat -ano命令来查看我们执行的Payload与目标机器建立的网络连接状态是否为SYN_SENT?


SYN_SENT的几种常见情况:
  • 1、MSF里没有监听;

  • 2、Windows系统防火墙;

  • 3、其它的安全设备等。

Metasploit获取不到会话原因

(5) VPS配置系统防火墙出入站规则

记一次与朋友@Sin在他的Centos VPS上做测试时发现获取不到会话,在经过排查之后发现问题出在“宝塔防火墙”,其实也就是Centos自带防火墙,在宝塔安装过程中会自动配置系统防火墙,默认规则只允许定端口能出网:21、22、80、8888,如下图。
Metasploit获取不到会话原因
Metasploit获取不到会话原因

解决方案:
在宝塔控制面板中没有找到关闭防火墙的相关设置选项,只能设置放行端口,不过我们可以使用以下命令来关闭Centos自带防火墙,或者使用默认规则中的放行端口进行bind_tcp正向连接即可成功获取会话,可通过这个文件来查看防火墙规则(/etc/firewalld/zones/public.xml)。
1、查看防火墙状态:firewall-cmd --statesystemctl status firewalld.service
2、开启防火墙:systemctl start firewalld.service
3、临时关闭防火墙:systemctl stop firewalld.service
4、永久关闭防火墙:systemctl disable firewalld.service
5、查看所有放行端口:firewall-cmd --list-port

(6) 反病毒软件特征查杀或流量检测

在上传、执行Payload文件时可能会被反病毒软件的特征、行为、内存、流量检测并查杀,笔者本地测试发现当我们把火绒“黑客入侵拦截”或赛门铁克“Enable Network intrusion prevention”开启后再执行Payload时就会出现发送stage到目标,但无法建立一个完整的会话回来,关闭后就能立即获取到目标会话,关于免杀和绕过不在本节讨论范围内。
  • 特征查杀:上传的Payload以及各种恶意PE文件直接会被拦截并查杀(360杀毒)

  • 流量检测:成功执行Payload并发送stage到目标,但一直卡着不动(ESET NOD32)

Metasploit获取不到会话原因
Metasploit获取不到会话原因

(7) IIS应用程序池-启用32位应用程序

以往的渗透渗透过程中遇到过在浏览器访问Metasploit的Aspx Payload秒解析,但是没能获取会话的情况。
这可能是因为目标机器的IIS应用程序池中设置了“启用32位应用程序”选项为True或False了,可以尝试换到x86/x64的Payload再试试看。
  • 当“启用32位应用程序”选项为True时Aspx Payload 32可以获取会话,64无法获取会话。

  • 当“启用32位应用程序”选项为False时Aspx Payload 64可以获取会话,32无法获取会话。

Metasploit获取不到会话原因
Metasploit获取不到会话原因



【推荐书籍】

Metasploit获取不到会话原因
Metasploit获取不到会话原因  如果对你有所帮助,请点个分享、赞、在看呗!Metasploit获取不到会话原因

本文始发于微信公众号(潇湘信安):Metasploit获取不到会话原因

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: