• 大小: 1.96KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2024-05-06
  • 语言: Python
  • 标签: 222  sss  s  sSniff  

资源简介

【实例简介】

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

评论

共有 条评论