关于内网穿透真实案例讲解

内网渗透测试

反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。

0x001环境准备

设备环境

攻击机: Kali

在这里插入图片描述

靶机: 一台真实机 (Win8)

在这里插入图片描述

网络环境

#注意这里是在不同局域网下测试
1.第一种:Win8网络连接在手机热点,而手机网络连接在攻击机一样的网络下(私网)
2.第二种:Win8网络连接在手机热点,而手机网络使用的是联通网络下(公网)
Kali

在这里插入图片描述

Win8

在这里插入图片描述

网络测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

0x002MSF-hta_server模块

在这里插入图片描述在这里插入图片描述在这里插入图片描述

准备一个挂马小程序—这个就不用多说

挂马程序——杀毒测试

在这里插入图片描述

0x003网络测试1

在这里插入图片描述在这里插入图片描述

 可以发现当前靶机执行挂面程序后,反弹shell进行了反向寻找,在通过网关出去往上进行查找时发现了当前手机网络与攻击机在同一网络内(局域网中),此时找到了1.28机器
 我们可以进行追踪路由,发现通往1.28的路由地址

0x004网络测试2

这时我们将手机网络调整为联通网络,可以想象一下当我们再次执行shell程序时,这时反弹shell通过当前计算机网关出去,一直往上进行寻找目标机器.
此时shell已经断开连接,可以发现目标主机并没有找到通往1.28机器的路由地址

#通过追踪路由,可以发现当前机器从网关出去一直往上找,出了公网都没有找到通往1.28机器地址
这是因为1.28是一个私网地址,在上网时通过NAT地址转换成公网IP进行访问,因此并不能找到对方主机

在这里插入图片描述

0x005测试总结

通过以上测试发现:
1.在内网中(私网地址)不同网段主机,只要有去往目标的路由地址,反弹shell可以建立连接
2.简谈:公网与内网shell无法建立连接的原因
(1)公网地址与私网地址完全不一样(私网地址不能出现在互联网上)
(2)端口概念:端口是用来通信的
(3)当局域网内电脑想要与公网电脑通信时,局域网电脑的私网IP地址(源IP+源端口)会被路由器转换成公网IP地址(公网IP+随机端口)与对方通信(公网IP+80端口),并且会将(公网IP+随机端口)(私网IP+端口)做一个映射关系,在接收数据时通过路由表找到端口映射关系,再转发到(私网IP+端口)局域网中那台电脑,依次作业
(4)nat:就是将多台电脑使用一个公网IP
(5)端口映射:就将某一个端口绑定为访问目标公网电脑的唯一端口(就是不让路由器每次访问目标公网电脑时随机生成一个端口)
(6)nat究极套娃:在路由器器上还有一个路由器,另一个路由器上还有一个路由器,导致多层nat,因此端口映射并不适用.如果你家幸运的话分到一个公网ip,可以进行端口映射(端口映射不影响带宽,内网穿透要看中间代理服务器带宽)
(7)内网穿透:实际上就是在两台内网机器中间放一台服务器做数据转发(转发带宽要看服务器带宽)
(8)内网打洞:在内网穿透基础上实现两台内网机器互连,不考虑带宽速度.(具体打洞情况要看nat类型)
解决方法:做内网穿透
将目标主机反弹shell转发到一台公网服务器上,再将公网服务器上接收到的数据进行转发到本机,依次作业.

0x006内网穿透—数据转发

内网穿透即NAT穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,就是说映射端口,能让外网的电脑找到处于内网的电脑。
两端通信,比如 P2P 下载,这种该怎么办呢?这种情况下,其实也还是离不开第三方服务器的帮助。假设还是 A 和 B 两个局域网内的机子,A内网对应的NAT设备叫NAT_A,B内网里的NAT设备叫NAT_B,和一个第三方服务器server。流程如下。

step1和2: A 主动去连 server,此时 A 对应的NAT_A就会留下 A 的内网地址和外网地址的映射关系,server 也拿到了 A 对应的外网 IP 地址和端口。
step3和4: B 的操作和 A 一样,主动连第三方 server,NAT_B内留下 B 的内网地址和外网地址的映射关系,然后 server 也拿到了 B 对应的外网 IP 地址和端口。
step5和step6以及step7: 重点来了。此时 server 发消息给 A,让 A 主动发UDP消息到 B 的外网 IP 地址和端口。此时 NAT_B 收到这个 A 的UDP数据包时,这时候根据 NAT_B 的设置不同,导致这时候有可能 NAT_B 能直接转发数据到 B,那此时 A 和 B 就通了。但也有可能不通,直接丢包,不过丢包没关系,这个操作的目的是给 NAT_A 上留下有关 B 的映射关系。
step8和step9以及step10: 跟step5一样熟悉的配方,此时 server 再发消息给 B,让 B 主动发UDP消息到 A 的外网 IP 地址和端口。NAT_B 上也留下了关于 A 的映射关系,这时候由于之前 NAT_A 上有过关于 B 的映射关系,此时 NAT_A 就能正常接受 B 的数据包,并将其转发给 A。到这里 A 和 B 就能正常进行数据通信了。这就是所谓的 NAT 打洞。
step11: 注意,之前我们都是用的 UDP 数据包,目的只是为了在两个局域网的 NAT 上打个洞出来,实际上大部分应用用的都是 TCP 连接,所以,这时候我们还需要在 A 主动向 B 发起 TCP 连接。到此,我们就完成了两端之间的通信。

在这里插入图片描述

环境

在这里插入图片描述

测试
公网服务器转发数据
这里可以使用花生壳进行穿透内网转发数据

在这里插入图片描述

生成反弹shell

在这里插入图片描述

木马免杀

在这里插入图片描述

推荐项目

GitHub - shellfeel/Ant-AntV: 一个经过实战考验的免杀程序生成器

社工对方(让其下载执行)
自由发挥想象
MSF监听会话

在这里插入图片描述

结果
会话反弹成功

在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值