第160天:安全开发-Python-蓝队项目流量攻击分析文件动态监控Webshell检测

devtools/2024/11/14 12:53:39/

案例一:Python-蓝队项目-Scapy 流量分析

通过 pip 来安装 Scapy。在命令行中运行以下命令:

pip install scapy

一个简单的python抓取包的demo

from scapy.all import *
def handlePacket(p):# p 捕获到的数据包p.show()
sniff(prn=handlePacket,count=0)
#一直抓,除非手动停止或者from scapy.all import *# 嗅探网络中的数据包,持续10秒
packets = sniff(count=10)# 显示捕获到的数据包
packets.summary()

建议在命令行当中运行,格式会非常清晰

用ip为1的主机给ip为132的主机发送ping包

因为ping是有来有回的所以也会出现,往回ping的现象

访问http

 访问一个不存在的地址

虽然页面不存在但是也会记录下来

这么写查看会比较麻烦,可以过滤监听的ip,以及端口

这里设置一个过滤原始ip为192.168.172.1,目标端口为80端口的策略,添加过滤规则

sniff的一些参数

#filter 筛选
#iface 网卡
#prn 调用函数
#count 获取条数
#store 内存清除
#count: 指定最多嗅探多少个符合要求的报文,设置为 0 时则一直捕获
#store: 指定保存抓取的数据包或者丢弃, 1 为保存, 0 为丢弃
#offline: pcap 文件中读取数据包,而不进行嗅探,默认为 None
#prn: 为每个数据包定义一个回调函数,回调函数会在捕获到符合 filter 的报文时被
调用,通常使用 lambda 表达式来编写
#filter: 用来筛选抓取的信息,其用法与常见抓包软件 WireShark 等相同,遵循
bpf_filter = "ip src 192.168.172.1 and tcp dst port 80"bpf_filter = "host 192.168.172.1 and tcp dst port 80"
from scapy.all import *
bpf_filter = "ip src 192.168.172.1 and tcp dst port 80"
def handlePacket(p):# p 捕获到的数据包p.show()
sniff(prn=handlePacket,filter=bpf_filter,count=0)
#一直抓,除非手动停止

 这个时候里面只有原始ip为192.168.172.1,目标端口为80的数据包

再做进一步优化,根据一些特征字符,判断是否是sql注入,文件上传

首先先把tcp中传入的payload包,以一行一行的格式进行输出,因为http肯定是tcp层协议

from scapy.all import *
bpf_filter = "ip src 192.168.172.1 and tcp dst port 80"
def handlePacket(packet):# p 捕获到的数据包#packet.show()datas = bytes(packet[TCP].payload)for data in datas.split(b"\r\n"):print(data)sniff(prn=handlePacket,filter=bpf_filter,count=0)
#一直抓,除非手动停止

这个抓下来的数据就相当于抓包的时候每一行的数据

通过写一个列表把最常见的字符串以byte格式写入,每一行进行循环,判断这段字符串是否在这一行中

from scapy.all import *
bpf_filter = "ip src 192.168.172.1 and tcp dst port 80"
def handlePacket(packet):# p 捕获到的数据包#packet.show()datas = bytes(packet[TCP].payload)for data in datas.split(b"\r\n"):print(data)patterns = [b"or", b"union",b"select",b"and"]for patter in  patterns:if patter in data:print("sql注入攻击中")
sniff(prn=handlePacket,filter=bpf_filter,count=0)
#一直抓,除非手动停止

有的会误判

判断文件上传,文件上传时前面一般都有这一行字符串

通过这个来进行判断是否在payload中

上传文件之后

案例二:  Python-蓝队项目-Watchdog 文件行为

该项目就不过多进行介绍了,这里被创建,删除也会提示修改,所以我只显示增加,删除,

只需要把文件路径修改为自己想要监控的地址即可

from watchdog.observers import Observer
from watchdog.events import *
import timeclass FileEventHandler(FileSystemEventHandler):def __init__(self):FileSystemEventHandler.__init__(self)def on_moved(self, event):if event.is_directory:pass#print("directory moved from {0} to {1}".format(event.src_path, event.dest_path))else:pass#print("file moved from {0} to {1}".format(event.src_path, event.dest_path))def on_created(self, event):if event.is_directory:print("directory created:{0}".format(event.src_path))else:print("file created:{0}".format(event.src_path))def on_deleted(self, event):if event.is_directory:print("directory deleted:{0}".format(event.src_path))else:print("file deleted:{0}".format(event.src_path))def on_modified(self, event):if event.is_directory:pass#print("directory modified:{0}".format(event.src_path))else:pass#print("file modified:{0}".format(event.src_path))if __name__ == "__main__":observer = Observer()event_handler = FileEventHandler()observer.schedule(event_handler, r"D:\\phpstudy_pro\\WWW\\uploadlabs", True)observer.start()try:while True:time.sleep(1)except KeyboardInterrupt:observer.stop()observer.join()

 即使你上传木马后把木马删除了,你这里还是会有记录

本来后续上传的文件,可以调用api接口上传到威胁分析平台进行分析是否有害,根据分析返回的结果,来判断是否进行删除,但是百度免费的网站已经停掉了,virustotal免费的api坏掉了,别的免费的不好用,收费的买不起…………


http://www.ppmy.cn/devtools/114468.html

相关文章

Axure RP 9最新安装程序及汉化包下载(支持Win、Mac版,附下载安装教程)

数月前Axure RP官方已经发布了Axure RP 9的消息,并计划在今年夏天发布beta版本。新版Axure RP 9将是该工具向前迈出的重要一步,其中包括一系列广泛的改进:全面的UI修改,新的设计和文档功能以及前所未有的内部优化。我们已经彻底重…

Object Pascal 基本数据类型

Object Pascal 基本数据类型 注:以下标红的表示最常用的数据类型 整数类型 类型大小Integer有符号32位Cardinal无符号32位Shortint有符号8位Smallint有符号16位Longint有符号32位及以上,具体取决于编译器和平台Byte无符号8位Word有符号16位LongWord有符…

电气自动化入门03:安全用电

视频链接:2.1 电工知识:触电原因与防触电措施_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1PJ41117PW/?p4&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.电流对人体的危害 电击:电流通过人体。 电伤:电流热效应…

概率论原理精解【15】

文章目录 可数性与可分性第二可数空间第二可数空间的定义第二可数空间的性质第二可数空间的例子第二可数空间的例题(理论性质证明)其它性质深入理解第二可数空间 可分空间可分空间的定义可分空间的性质可分空间的例子可分空间的例题在可分空间中&#xf…

深入声音分析:MATLAB实现的全面指南

声音无处不在,它不仅是我们沟通的方式,也是我们理解周围世界的重要工具。在工程和科学研究中,对声音信号的分析至关重要。MATLAB作为一种强大的数学软件,提供了一套全面的分析工具,可以帮助我们深入理解声音信号的特性…

k8s /apis/batch/v1beta1 /apis/policy/v1beta1 接口作用

在 Kubernetes 中,/apis/batch/v1beta1 和 /apis/policy/v1beta1 是两个 API 组的版本化接口,它们用于处理不同类型的资源和操作。 1. /apis/batch/v1beta1: API 组: batch版本: v1beta1资源类型: 此接口通常用于处理 Kubernetes 中的批量资源&#xf…

SSC338D/SSC338Q CA7*2+IPU5M/Multi-sensorISP: HDR/3DNR

SSC338D/SSC338Q系列产品是高度集成的多媒体片上系统(SoC)产品,适用于IP摄像机、车载摄像机和USB摄像机等高分辨率智能视频录制应用。该芯片包括32位双核RISC处理器、高级图像信号处理器(ISP)、高性能MJPEG/H.264/H.26…

python植物大战僵尸项目源码【免费】

植物大战僵尸是一款经典的塔防游戏,玩家通过种植各种植物来抵御僵尸的进攻。 源码下载地址: 植物大战僵尸项目源码 提取码: 8muq