前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >全端口监控的实现

全端口监控的实现

作者头像
用户1423082
发布于 2024-12-31 10:35:47
发布于 2024-12-31 10:35:47
10000
代码可运行
举报
文章被收录于专栏:giantbranch's bloggiantbranch's blog
运行总次数:0
代码可运行

方式1

一个是通过抓包,一旦收到SYN,就回复一个SYN ACK 但是这个需要iptables将出去的RST ACK包给拦截掉

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-07-23 14:50:27
# @Author  : giantbranch (giantbranch@gmail.com)
# @Link    : http://www.giantbranch.cn/
# @tags : 

from scapy.all import *

SSH_PORT = 22

# 定义数据包回调函数
def packet_callback(packet):
    # print packet.show()
    if TCP in packet:
        if packet["TCP"].dport == SSH_PORT or packet["TCP"].sport == SSH_PORT:
            return
        # SYN packet
        # 如果我们接收到一个SYN包,则我们构造一个SYN ACK包返回去。
        if packet["TCP"].flags == 0x02:
            # print "receive SYN packet"
            ip = IP(dst=packet["IP"].src, src=packet["IP"].dst)
            tcp = TCP(sport=packet["TCP"].dport, dport=packet["TCP"].sport)
            # syn ack flags
            tcp.flags = 0x012
            tcp.ack = packet["TCP"].seq + 1
            send(ip/tcp)
        # FIN ACK packet 
        # 如果我们接收到一个FIN ACK包,我们则返回一个ACK包。否则他会重传。
        elif packet["TCP"].flags == 0x011:
            # print "receive SYN packet"
            ip = IP(dst=packet["IP"].src, src=packet["IP"].dst)
            tcp = TCP(sport=packet["TCP"].dport, dport=packet["TCP"].sport)
            # ack flags
            tcp.seq = packet["TCP"].ack
            tcp.ack = packet["TCP"].seq + 1
            send(ip/tcp)
        # PSH ACK packet
        elif packet["TCP"].flags == 0x018:  
            # print "receive PSH ACK packet"
            if packet.haslayer("Raw"):
                print "payload is:\n"
                print packet["Raw"]
        else:
            print "tcp flags is : %s" % packet["TCP"].flags
    elif UDP in packet:
        pass
        # print "this is a udp packet"
    else:
        pass

sniff(prn=packet_callback, store=0)

iptables

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables -A OUTPUT -p tcp --tcp-flags ALL RST,ACK -j DROP

那这样nmap扫描的时候就会以为端口都开放了

方式2

通过iptables直接做一个全端口转发,转发到你自己写的程序的端口即可

If you want to redirect all TCP and UDP traffic to Blackhole use the following command:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo iptables -t nat -A PREROUTING -p tcp --dport 1:65535 -j REDIRECT --to-ports 5000
sudo iptables -t nat -A PREROUTING -p udp --dport 1:65535 -j REDIRECT --to-ports 5000

Suppose you have other services running on the Host e.g. 22, 445 and you don’t want to capture them via Blackhole,you can create multiple iptables rules:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo iptables -t nat -A PREROUTING -p tcp --dport 1:21 -j REDIRECT --to-ports 5000
sudo iptables -t nat -A PREROUTING -p tcp --dport 23:444 -j REDIRECT --to-ports 5000
sudo iptables -t nat -A PREROUTING -p tcp --dport 446:65535 -j REDIRECT --to-ports 5000

优缺点

抓包方式 优点: 1、实现简单 缺点: 1、有些vps,不支持伪造发送syn,ack 2、难以写交互

全端口转发到一个端口 优点: 1、真正伪造了全端口开放的假象 2、便于写对应的交互 缺点: 1、有时候获取不到目的端口 2、无其他明显的缺点

获取到的payload是空的,有可能这个端口或者协议是服务器先发送信息的

Reference

http://www.secniu.com/%E5%8D%81%E8%A1%8C%E4%BB%A3%E7%A0%81%E5%AE%9E%E7%8E%B0%E7%BD%91%E7%BB%9C%E7%9A%84%E5%85%A8%E7%AB%AF%E5%8F%A3%E7%9B%91%E5%90%AC/ https://github.com/dudeintheshell/blackhole

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
udp端口转发 Linux,Linux iptables 端口转发[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说udp端口转发 Linux,Linux iptables 端口转发[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/08/09
13.8K0
IPTABLES端口转发
iptables是unix/linux系统自带的优秀且完全免费的基于包过滤的防火墙工具,它的功能十分强大、使用非常灵活、可以对流入、流出及流经服务器的数据包进行精细的控制,作为防火墙其端口转发功能自然是必不可少的,但是需要高的操作权限
Al1ex
2022/06/23
1.8K0
IPTABLES端口转发
彻底弄懂Service Mesh透明代理 TPROXY
在现代微服务架构中, Service Mesh 作为基础设施层为服务间通信提供了强大支持,其中透明代理是一项关键技术,这篇文章做了一个比较细致的分析,彻底弄懂 TPROXY 透明代理/REDIRECT 的技术细节,涉及到下面这些内容:
挖坑的张师傅
2024/07/05
1.3K0
彻底弄懂Service Mesh透明代理 TPROXY
linux中iptables配置文件及命令详解详解
直接改iptables配置就可以了:vim /etc/sysconfig/iptables。
拓荒者
2019/08/05
18.6K0
【详解】Python实现高效的端口扫描
在网络安全领域,端口扫描是一项基本而重要的技能。通过端口扫描,可以发现目标主机上开放的服务和端口,这对于安全评估、渗透测试等有着不可忽视的作用。本文将介绍如何使用Python来实现一个高效且简单的端口扫描器。
大盘鸡拌面
2025/01/28
1320
数据包处理利器——Scapy高级使用(一)
IP与端口号之间以'.'分隔,ACK用'.'表示,SYN用'S'表示,而[S.]则表示SYN+ACK
没有故事的陈师傅
2021/06/24
1.5K0
数据包处理利器——Scapy高级使用(一)
iptable 理解
这个当初我理解不了,主要是没把netfilter理解清楚。 Netfilter是集成在内核中的,用来定义存储各种规则的。Iptalbe是修改这些规则的工具,修改后存在netfilter里面。
全栈程序员站长
2022/09/01
1.7K0
21.2 Python 使用Scapy实现端口探测
Scapy 是一款使用纯Python编写的跨平台网络数据包操控工具,它能够处理和嗅探各种网络数据包。能够很容易的创建,发送,捕获,分析和操作网络数据包,包括TCP,UDP,ICMP等协议,此外它还提供了许多有用的功能,例如嗅探网络流量,创建自定义协议和攻击网络的安全测试工具。使用Scapy可以通过Python脚本编写自定义网络协议和攻击工具,这使得网络安全测试变得更加高效和精确。
王瑞MVP
2023/10/25
6471
21.2 Python 使用Scapy实现端口探测
Envoy请求流程源码解析(一)|流量劫持
Envoy 是一款面向 Service Mesh 的高性能网络代理服务。它与应用程序并行运行,通过以平台无关的方式提供通用功能来抽象网络。当基础架构中的所有服务流量都通过 Envoy 网格时,通过一致的可观测性,很容易地查看问题区域,调整整体性能。
灵雀云
2022/03/03
1.4K0
Envoy请求流程源码解析(一)|流量劫持
浅析端口扫描原理
自觉对于端口扫描只是浅显的停留在nmap的几条命令,因此花了点时间了解了一下端口扫描器是如何运作的,并且使用python写了一个简单的端口扫描器,笔者目的不在于替代nmap等主流端扫的作用,只是为了更深入地了解端口扫描器运作的原理。
HhhM
2022/08/10
2.5K0
浅析端口扫描原理
TCP经典异常问题探讨与解决
最近一年的时间里,现网碰到RST问题屡屡出现,一旦TCP连接中收到了RST包,大概率会导致连接中止或用户异常。如何正确解决RST异常是较为棘手的问题。
腾讯技术工程官方号
2024/05/08
9120
TCP经典异常问题探讨与解决
追查iptables规则失效原因
今天在工作中用到了一条iptables规则,虽然明白这条规则的意思,但结合之前对iptables的理解,想不明白为什么会这么工作,后来仔细研读iptables的官方文档,终于从字里行间找到原因了,这里记录下问题的追踪过程。
jeremyxu
2019/03/13
3.8K0
追查iptables规则失效原因
linux之iptables 基础详解
iptables是Linux系统上的防火墙,是一个包过滤型的防火墙,能够根据事先定义好的检查规则对进出本机或者本地网络的报文进行匹配检查,并对于能够被规则匹配的报文作出相应的处理动作。iptables有五个内置规则链(名称需大写),分别为:
用户4877748
2020/07/22
9740
linux之iptables 基础详解
Kali Linux 网络扫描秘籍 第三章 端口扫描(二)
执行 TCP 端口扫描的一种方式就是执行一部分。目标端口上的 TCP 三次握手用于识别端口是否接受连接。这一类型的扫描指代隐秘扫描, SYN 扫描,或者半开放扫描。这个秘籍演示了如何使用 Scapy 执行 TCP 隐秘扫描。
ApacheCN_飞龙
2022/12/01
1.7K0
Iptables 介绍与使用
连接跟踪是许多网络应用的基础。例如,Kubernetes Service、ServiceMesh sidecar、 软件四层负载均衡器 LVS/IPVS、Docker network、OVS、iptables 主机防火墙等等,都依赖连接跟踪功能。
Se7en258
2021/05/18
1.1K0
Iptables 介绍与使用
21.2 Python 使用Scapy实现端口探测
Scapy 是一款使用纯Python编写的跨平台网络数据包操控工具,它能够处理和嗅探各种网络数据包。能够很容易的创建,发送,捕获,分析和操作网络数据包,包括TCP,UDP,ICMP等协议,此外它还提供了许多有用的功能,例如嗅探网络流量,创建自定义协议和攻击网络的安全测试工具。使用Scapy可以通过Python脚本编写自定义网络协议和攻击工具,这使得网络安全测试变得更加高效和精确。
王瑞MVP
2023/10/27
4580
21.2 Python 使用Scapy实现端口探测
iptables系列二
iptables系列之基本应用及显式扩展 netfilter:Framework,TCP,内核中 iptables语法 iptables [-t table] command CHAIN [num
若与
2018/04/25
8840
iptables系列二
Python 实现SockStress全连接攻击
Sock Stress 全连接攻击属于TCP全连接攻击,因为需要建立一次完整的TCP三次握手,该攻击的关键点就在于,攻击主机将windows窗口缓冲设置为0,实现的拒绝服务。攻击者向目标发送一个很小的流量,但是会造成产生的攻击流量是一个巨大的,该攻击消耗的是目标系统的CPU/内存资源,使用低配版的电脑,依然可以让庞大的服务器拒绝服务,也称之为放大攻击。
王瑞MVP
2022/12/28
5900
Python 实现SockStress全连接攻击
端口扫描之开放端口扫描方式
若客户端想要连接服务器80端口时,会先发送一个带有 SYN 标识和端口号的 TCP 数据包给服务器(本例中为80端口)。如果端口是开放的,则服务器会接受这个连接并返回一个带有 SYN 和 ACK 标识的数据包给客户端。随后客户端会返回带有 ACK 和 RST 标识的数据包,此时客户端与服务器建立了连接。
战神伽罗
2021/03/04
2.5K0
python网络工具供以后使用
(<IPfrag=0 proto=udp src=192.168.1.61dst=202.96.209.5 |<UDPsport=domaindpo
py3study
2020/01/07
4320
相关推荐
udp端口转发 Linux,Linux iptables 端口转发[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档