资源简介
【实例简介】
ShadowSocks(SS) traffic sniffer
ShadowSocks以其随机性功能而闻名。但是,通常不希望连接的第一个数据包是随机的。即使在TLS会话中,我们也希望在握手阶段看到一些纯文本部分。因此,只需查看最初的几个数据包并计算其熵(作为对随机性的一种度量),就可以检测ShadowSocks流量。加上一些小的调整,此方法就足以高精度地检测当前的ShadowSocks协议。
【核心代码】
sssniff-master
├── README.md
├── requirements.txt
└── sssniff.py
0 directories, 3 files
代码片段和文件信息
#! /usr/bin/env python
from scipy.stats import entropy
from scapy.all import *
import numpy as np
import dpkt
def conn(ip1 ip2 port1 port2):
swap = False
if ip1 > ip2:
ip1 ip2 = ip2 ip1
port1 port2 = port2 port1
swap = True
if ip1 == ip2 and port1 > port2:
port1 port2 = port2 port1
swap = True
return (ip1 ip2 port1 port2) swap
def dist(str):
p = np.zeros(256)
for i in str:
p[ord(i)] += 1
return p
score = {}
blocked = {}
thres = 15
def add_score(c x):
if blocked.has_key(c):
return
if not score.has_key(c):
score[c] = x
else:
score[c] += x
if score[c] >= thres:
print c
blocked[c] = True
def add(c x):
add_score((c[0] c[2]) x)
add_score((c[1] c[3]) x)
track = {}
def sniffer(pkt):
ip = pkt.payload
tcp = ip.payload
c s = conn(ip.src ip.dst tcp.sport tcp.dport)
if tcp.flags & dpkt.tcp.TH_SYN != 0:
track[c] = []
if not track.has_key(c):
return
if tcp.flags & dpkt.tcp.TH_FIN != 0 or tcp.flags & dpkt.tcp.TH_RST != 0:
del track[c]
return
if tcp.flags & dpkt.tcp.TH_PUSH != 0:
track[c].append((entropy(dist(str(tcp.payload))) s))
if len(track[c]) >= 4:
if track[c][0][0] > 4.8 or \
(track[c][0][0] > 4.4 and track[c][1][0] > 4.2) or \
(track[c][0][0] > 4.2 and track[c][2][0] > 4.2 and \
track[c][0][1] == track[c][2][1]) or \
track[c][0][1] == track[c][1][1]:
add(c 1)
else:
add(c -1)
del track[c]
sniff(filter=‘tcp‘ store=False prn=sniffer)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-25 20:39 sssniff-master\
文件 1325 2017-03-25 20:39 sssniff-master\README.md
文件 30 2017-03-25 20:39 sssniff-master\requirements.txt
文件 1478 2017-03-25 20:39 sssniff-master\sssniff.py
- 上一篇:基于表面肌电的手势识别.py
- 下一篇:《Python从小白到大牛》源代码
相关资源
- 查找两个路径中相同文件(get_same_f
- 机器学习numpy和pandas基础
- Python 3 Web Development. Beginners Guide
- 模拟自动滑块验证码.py(基于chromed
- Supervised Learning with Python
- tensorflow2.0 yolo3目标检测算法
- numpy,pandas,matplotlib速查手册
- CpuMemSets在Linux操作系统中的实现
- python实现SGBM图像匹配算法
- scrapy_qunar_one
- python +MYSQL+HTML实现21蛋糕网上商城
- Python操作Excel表格并将其中部分数据写
- 图标连连看--js版连连看
- python3.5可用的scipy
- 计算机科学导论-python.pdf
- windows鼠标自动点击py脚本
- python机器学习Sebastian Raschka中文最新完
- MNIST手写体数字训练/测试数据集(图
- abaqus 网格自动划分插件 python语言
- python3.5.4_windows下32与64位安装包
- 12306火车班次.zip
- SIFT源码python实现
- python pygame 自制飞机大战游戏(加入
- RSA_python
- 图像分割-snake算法 python版本
- python数据分析源代码Ivan Idris
- 用python的pyecharts模块绘制世界地图疫
- tensorflow制作自己的灰度图像数据集并
- Deep Learning Cookbook_ practical recipes to g
- selenium中python包&对应版本的firefox
评论
共有 条评论