用途:个人学习笔记,有所借鉴,欢迎指正!
总结:
(1)使用python脚本Scapy库实现指定网卡的流量抓包分析
(2)使用python脚本Watchdog实现指定目录文件行为监控
(3)兴趣拓展python脚本实现:将文本信息隐写入图片,图片效果不变
一、Python-蓝队项目-Scapy库完成网卡流量抓包分析
脚本简单功能:对指定网卡(可指定端口)的流量进行抓包,可拓展上传平台分析。
1、漏洞攻击-先监控流量发现攻击 预警(流量监控)
from scapy服务器托管网.all import *
def handelPacket(packet):
print(packet.show())
#可进一步对数据包分析,监控恶意流量
if __name__ == '__main__':
# sniff(prn=handelPacket,count=0) iface='以太网适配器 以太网 5',
# 显示网卡信息
show_interfaces()
sniff(filter='tcp port 5000',iface='Software Loopback Interface 1',prn=handelPacket, count=0, store=0)
#iface参数:填网卡名称或者网卡编号
2、详细解释参考:blog.51cto.com/frytea/4224260
二、Python-蓝队项目-Watchdog文件行为监控
脚本功能:监控指定的网站目录,如有新增、删除、修改、移动文件等就能捕获分析
1、文件分析-发现新出文件 将文件上传至平台分析(文件监控)
import sys,time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class FileEventHandler(FileSystemEventHandler):
# def on_moved(self, event):
# print(f"file moved from {event.src_path} to {event.dest_path}.")
def on_created(self, event):
print(f"file created:{event.src_path}.")
#手动分析新增文件,或上传平台分析......预警
def on_deleted(self, event):
print(f"file deleted:{event.src_path}.")
# def on_modified(self, event):
# print(f"file modified:{event.src_path}.")
if __name__ == "__main__":
src_path = '.' #指定监控的目录, .是指当前脚本所在目录
event_handler = FileEventHandler()
observer = Observer()
observer.schedule(event_handler, path=src_path, recursive=True)
print("Monitoring started")
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
三、Python-兴趣拓展-图片隐写技术
脚本功能:可以将指定文本隐藏在图片当中并不影响图片效果,也可以解码查看图片中的隐藏信息。
#!/usr/bin/env python3
#coding=utf-8
"""Encode png image via command-line.
Usage:
imageEncoding (-e|encode) [] []
imageEncoding (-d|decode)
Options:
-h,--help 显示帮助菜单
-e 加密
-d 解密
Example:
imageEncoding -e coffee.png hello textOrFileToEncode encodedImage.png
imageEncoding -d encodedImage.png
"""
from PIL import Image
from docopt import docopt
"""
取得一个 PIL 图像并且更改所有值为偶数(使最低有效位为 0)
"""
def RGBAmakeImageEven(image):
pixels = list(image.getdata()) # 得到一个这样的列表: [(r,g,b,t),(r,g,b,t)...]
evenPixels = [(r>>1>1>1>1>1>1>1 len(image.getdata()) * 4: # 如果不可能编码全部数据, 抛出异常
raise Exception("Error: Can't encode more than " + len(evenImage.getdata()) * 4 + " bits in this image. ")
encodedPixels = [(r+int(binary[index*4+0]),g+int(binary[index*4+1]),b+int(binary[index*4+2]),t+int(binary[index*4+3])) if index*4 len(image.getdata()) * 3: # 如果不可能编码全部数据, 抛出异常
raise Exception("Error: Can't encode more than " + len(evenImage.getdata()) * 3 + " bits in this image. ")
encodedPixels = [(r+int(binary[index*3+0]),g+int(binary[index*3+1]),b+int(binary[index*3+2])) if index*3 1 else '') if x else ''
# rec = lambda x, i服务器托管网: x and (x[2:8] + (i > 1 and rec(x[8:], i-1) or '')) or ''
fun = lambda x, i: x[i+1:8] + rec(x[8:], i-1)
while index + 1 >1>1>1>1>1>1>1'] is None:
arguments[''] = "待加密的文本"
if arguments[''] is None:
arguments[''] = "encodedImage.png"
if isTextFile(arguments['']):
with open(arguments[''], 'rt') as f:
arguments[''] = f.read()
print("载体图片:")
print(arguments['']+"n")
print("待加密密文:")
print(arguments['']+"n")
print("加密后图片:")
print(arguments['']+"n")
print("加密中……n")
im = Image.open(arguments[''])
if im.mode == 'RGBA':
RGBAencodeDataInImage(im, arguments['']).save(arguments[''])
# elif im.mode == 'RGB':
# RGBencodeDataInImage(im, arguments['']).save(arguments[''])
else:
print("暂不支持此图片格式……")
print("加密完成,密文为:n"+arguments['']+"n")
elif arguments['-d'] or arguments['decode']:
print("解密中……n")
im = Image.open(arguments[''])
if im.mode == 'RGBA':
print("解秘完成,密文为:n"+RGBAdecodeImage(im)+"n")
# elif im.mode == 'RGB':
# print("解秘完成,密文为:n"+RGBdecodeImage(im)+"n")
else:
print("非法的图片格式……")
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net