灵感
之前做过一个白嫖订阅的脚本,其中有个功能是配合钉钉机器人将结果发布至钉钉群内,但该机器人不具备交互功能,为了高大上,寻思着做个可交互的机器人,效果如下:
当然,这也没有完善,但是在这过程中,发现了钉钉提供的一个有趣的服务:内网穿透
使用简单,最主要的是不需要身份鉴别等认证,工具下载后就可以直接一条命令使用,而且提供一个域名进行访问:*.vaiwan.com,这个域名IP指向阿里云
整理思路
抱着白嫖的心态,想了想什么地方能白嫖这个域名,这时整理一下获取到的东西:
-
一个域名
-
该域名解析至阿里云
-
任意端口均可转发至该域名
-
二级域名可自定义
这四个点中,我将主要关注点放在了【任意端口均可转发至该域名】和【该域名解析至阿里云】,那么在什么地方不希望自己的IP和端口被对方发现呢?
既然是白嫖,那就要好钢用到刀刃上。实际上,这个功能和cdn还是具有一定的相似性的,虽然CDN的主要作用是加速网站,但CDN也是可以隐藏服务器真实IP的,在这点上,内网穿透的功能已经满足了,那么CDN又可以用到哪里呢?
这就有了下一个点:CS域前置技术。域前置技术的核心基础设施就是CDN,有了思路,接下来就是实践了。
利用
第一阶段
先在本地进行测试将CS的http监听端口进行转发,步骤如下:
1.下载钉钉内网穿透工具:git clonehttps://github.com/open-dingtalk/pierced.git
2.本地为windows环境,先假设CS监听端口为80,确定域名为”kekoukele”(可口可乐yyds),启动内网穿透:
./ding -config=./ding.cfg -subdomain=[domain] [port]
80端口已穿透至kekoukele.vaiwan.com,这时注意到上方的ngrok(关注一下,后面用的到)
本地启动cs,并建立HTTP监听,配置参考下方
此时生成木马进行上线,可看到连接地址为阿里云IP
此时,白嫖已有成效,一个免费的域名+一个免费的CDN
这时,服务器上看到一个新问题,因为放在后台运行懒得去关,CS监听器的端口一直在被恶意访问、扫描,CS会产生大量的web日志,很烦人。对这个情况无非就是限制IP对端口的访问,但是扫描的IP很多,封起来很麻烦,那么可以看一眼CS日志,监听的端口和穿透工具之间是使用127.0.0.1进行通信的,利用Linux访问规则限制本地端口只有127可以访问即可。
第二阶段
本以为此时已经用不到这个工具了,但又遇到一个环境,让我继续对内网穿透产生了兴趣https://katacoda.com/madhuakula/scenarios/kubernetes-goat#!
这是一个学习K8S相关漏洞的一个公共环境,提供有时限性的一个虚拟环境,环境起来后发现java、python环境配的整整齐齐,直接就一步到位,重点来了,这玩意竟然出网!!!
白嫖之魂再次爆发:该网站可随意注册,环境随便起,这不现成的一个匿名vps么,唯一的区别就是没有公网IP而已,但是这不影响呀,咱有内网穿透,这不就嫖成了!
这次思路就很清晰了重复第一阶段的操作,然后确实可以访问到环境中向外穿透的端口了,但这时,就有个新的问题了,没有公网IP,CS客户端该怎么去连接服务端呢???
思路一
既然能出网,那就把它当成个内网机器去打,直接用frp把端口转出来,那该往哪转呢?
经过整理后,思路一需要具备的条件如下:
-
傀儡机1台
-
傀儡机启动frp
-
一个可下载的CS链接地址
通信情况用图来解释更直观
接下来就是离谱的情况了,第一次frp确实出来了
CS也成功连接
创建监听、内网穿透都成功了,马子也可以上线
然后寻思写个脚本,可以一键部署CS,客户端连接上只需要继续建立监听就可以了,
这里说一下,利用域名实现的监听在CS迁移后,继续使用原域名进行监听,之前生成的马子仍然可以连接,因为马子连接的是域名的端口,而域名又是CS转发的端口,所以对于CS而言,IP地址及端口对马子的上线不造成影响,只要域名在,那么马子就能连回来。
可以看到,脚本里仍使用的frp,但是这个环境里frp运行貌似受什么服务影响,有时可以有时就不行,其他同类型的工具也是相同情况,导致这个思路夭折了,具体原因,还在研究中。
思路二
既然frp有问题,那就换条路子,又把目光放到了钉钉的内网穿透上,首先要确定一点,CS客户端连接服务端时使用的并不是HTTP协议,那么HTTP的内网穿透就是不可以成功的。
查看github上的使用手册,发现有这么个功能:
既然依靠TCP隧道数据库端口可以出来,那么CS必然也可以,查看ding.cfg的内容
其中需要关注的地方为tcp及remote_port,分别为本地端口,穿透后公网端口,修改3306为CS连接端口,remote_port修改为任意端口后启动内网穿透即可
./ding -proto=tcp -config=./ding.cfg start ssh
CS连接时,地址端口配置如图
在自己服务器上已经测试成功了,扔到那个虚拟环境里又连不上,离谱离谱!!!
总结
内网穿透的工具实际上在渗透中也可以使用,杀软对于这些工具不会报毒,在frp、nps等工具无法使用时,内网穿透工具也是个不错的选择。
后续
到输出文章的这天,钉钉的内网穿透服务突然就变得很慢了,翻看上文中的图片,在钉钉工具运行起来后有标注ngrok,钉钉的内网穿透就是该工具的改版,免费版除了不能自定义域名,效果与钉钉工具基本相同。
原文始发于微信公众号(雁行安全团队):利用内网穿透工具隐藏cs服务器
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论