关于苛刻网络做Linux端口复用的那件事

admin 2025年2月16日00:08:11评论7 views字数 1943阅读6分28秒阅读模式
声明

以下内容,均为文章作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。

长白山攻防实验室拥有该文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的副本,包括版权声明等全部内容。声明长白山攻防实验室允许,不得任意修改或增减此文章内容,不得以任何方式将其用于商业目的。

0x01 前言

端口复用是指不同的应用程序使用相同端口进行通讯。内网渗透中,搭建隧道时,服务器仅允许指定的端口对外开放。利用端口复用可以将3389或22等端口转发到如80端口上,以便外部连接。
0x02 Linux端口复用

一、iptables实现端口复用
iptables只是Linux防火墙的管理工具而已。真正实现防火墙功能的是netfilter
它是Linux内核中实现包过滤的内部结构。
二、数据通过防火墙流程
关于苛刻网络做Linux端口复用的那件事
1、 链
链是一些按顺序排列的规则的列表。
PREROUTING链——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时候都先由这个链处理)
INPUT链——进来的数据包应用此规则链中的策略
OUTPUT链——外出的数据包应用此规则链中的策略
FORWARD链——转发数据包时应用此规则链中的策略
POSTROUTING链——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时候都先由这个链处理)
2、 表
表由一组预先定义的链组成。
filter表——用于存放所有与防火墙相关操作的默认表。通常用于过滤数据包。
nat表——用于网络地址转换。
mangle表——用于处理数据包。
raw表——用于配置数据包,raw 中的数据包不会被系统跟踪。
3、 链和表的关系及顺序
PREROUTING: raw -> mangle -> nat
INPUT: mangle -> filter
FORWARD: mangle -> filter
OUTPUT: raw -> mangle -> nat -> filter
POSTROUTING: mangle -> nat
4、 表和链的关系
实际使用中是从表作为操作入口:
raw 表:PREROUTING,OUTPUT
mangle表:PREROUTING,INPUT,
FORWARD,OUTPUT,POSTROUTING
nat 表:PREROUTING,OUTPUT,
POSTROUTING
filter 表:INPUT,FORWARD,OUTPUT
5、添加规则
iptables ‐t 表名 <‐A/I/D/R> 规则链名 [规则号] <‐i/o 网卡名> ‐p 协议名 <‐s 源ip、源子网> ‐‐sport 源端口 <‐d 目标ip/目标子网> ‐‐dport 目标端口 ‐j 动作
0x03 实验

目标:ubuntu
ip: 192.168.0.103
开启22端口、开启web服务8000端口
本机:kali
ip: 192.168.0.105
⽅法⼀:根据源地址做端⼝复⽤
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.105 --dport 8000 -j REDIRECT --to-port 22
这条命令的作⽤是将来⾃
192.168.0.105的访问8000端⼝的流量都转发到22端⼝。
关于苛刻网络做Linux端口复用的那件事
如果这样设置后,8000端口原本的服务就无法访问了,如果还需要访问原本的服务,一定要慎重。
关于苛刻网络做Linux端口复用的那件事
⽅法⼆:根据源地址源端⼝做端⼝复⽤
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.105 --sport 5555 --dport 8000 -j REDIRECT --to-port 22
这条命令是根据源地址源端⼝做端⼝复⽤,只有来⾃192.168.0.105主机5555端⼝访问8000端⼝的流量会被转给22端⼝。
关于苛刻网络做Linux端口复用的那件事
然后本机先⽤socat将本地4444端⼝的流量以源端⼝5555访问192.168.0.103的8000端口,然后SSH本地的4444端⼝即可。
nohup socat tcp-listen:4444,fork,reuseaddr tcp:192.168.0.103:8000,sourceport=5555,reuseaddr & ssh -p 4444 [email protected]
关于苛刻网络做Linux端口复用的那件事
但是这样做不⽀持多连接,因为本地的 5555 端⼝已经被占⽤。
0x04总结

在做渗透测试的过程中,我们经常会遇到这种问题,只允许某个端⼝的流量进⼊,本文只写了iptables的简单用法,还有很多方式需要慢慢学习。
0x05 参考

  1. https://www.jianshu.com/p/12a24a95fe2c
  2. https://cloud.tencent.com/developer/article/1759955

原文始发于微信公众号(长白山攻防实验室):关于苛刻网络做Linux端口复用的那件事

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月16日00:08:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   关于苛刻网络做Linux端口复用的那件事https://cn-sec.com/archives/1076267.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息