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

案例一: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 等相同,遵循

python 复制代码
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"
python 复制代码
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层协议

python 复制代码
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格式写入,每一行进行循环,判断这段字符串是否在这一行中

python 复制代码
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 文件行为

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

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

python 复制代码
from watchdog.observers import Observer
from watchdog.events import *
import time


class 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坏掉了,别的免费的不好用,收费的买不起............

相关推荐
你的电影很有趣6 小时前
lesson72:Node.js 安全实战:Crypto-Js 4.2.0 与 Express 加密体系构建指南
javascript·安全·node.js
Giser探索家7 小时前
遥感卫星升轨 / 降轨技术解析:对图像光照、对比度的影响及工程化应用
大数据·人工智能·算法·安全·计算机视觉·分类
全栈工程师修炼日记7 小时前
ARMv8系统的安全性(二):TrustZone架构如何重塑移动设备安全生态
安全
嗨丶王哪跑8 小时前
网络安全主动防御技术与应用
运维·网络·安全·web安全
火白学安全12 小时前
《Python红队攻防脚本零基础编写:入门篇(一)》
python·安全·web安全·网络安全·系统安全
携欢12 小时前
PortSwigger靶场之Exploiting server-side parameter pollution in a REST URL通关秘籍
前端·javascript·安全
好家伙VCC12 小时前
**发散创新:渗透测试方法的深度探索与实践**随着网络安全形势日益严峻,渗透测试作为评估系统安全的
java·python·安全·web安全·系统安全
人邮异步社区12 小时前
内网攻防实战图谱:从红队视角构建安全对抗体系
网络·安全·web安全
胡耀超13 小时前
大数据平台安全指南——大数据平台安全架构全景:从认证授权到数据治理的企业级实践指南——认证、授权、审计、加密四大支柱
安全·数据治理·数据安全·权限管理·安全架构·hadoop生态·合规审计
深盾科技16 小时前
C/C++逆向分析实战:变量的奥秘与安全防护
c语言·c++·安全