解析TCP資料報,針對符合埠條件的資料關鍵字過濾

2021-08-14 16:22:06 字數 932 閱讀 1186

#!/usr/bin/python

#coding=utf-8

import dpkt

import socket

def findhivemind(pcap):

for (ts, buf) in pcap:

try:

eth = dpkt.ethernet.ethernet(buf)

ip = eth.data

src = socket.inet_ntoa(ip.src)

dst = socket.inet_ntoa(ip.dst)

tcp = ip.data

dport = tcp.dport

sport = tcp.sport

# 若目標埠為6667且含有「!lazor」指令,則確定是某個成員提交乙個攻擊指令

if dport == 6667:

if '!lazor' in tcp.data.lower():

print '[!] ddos hivemind issued by: '+src

print '[+] target cmd: ' + tcp.data

# 若源埠為6667且含有「!lazor」指令,則確定是伺服器在向hive中的成員發布攻擊的訊息

if sport == 6667:

if '!lazor' in tcp.data.lower():

print '[!] ddos hivemind issued to: '+src

print '[+] target cmd: ' + tcp.data

except:

pass

f = open('hivemind.pcap')

pcap = dpkt.pcap.reader(f)

findhivemind(pcap)

如何獲取符合條件的資料

在日常編寫 的過程中,有很大一部分時間我們需要從一堆資料中找到符合條件的資料,這個過程很簡單,即便是新手也能夠完成。在乙個流程中,由於這樣的工作常常要做,讓大家覺得很煩,有時候直接就在乙個大的邏輯裡面把它給加上了,搞得 很亂。本人編寫了乙個函式,功能比較簡單,就是完成這個功能,大家可以在此函式基礎之...

TCP資料報的接收過程

1,一般網絡卡接收資料是以觸發中斷來接收的,在網絡卡driver中,接收到資料時,往kernel的api netif rx 丟 2,接著資料被送到ip層ip local deliver finish 經過剝離ip頭部,把資料往tcp層發 3,tcp層tcp v4 rcv 收到資料後,再呼叫tcp r...

TCP與UDP資料報的區別

size small b tcp與udp的區別 b color darkred 1 基於連線與無連線 2 對系統資源的要求 tcp較多,udp少 3 udp程式結構較簡單 4 流模式與資料報模式 5 tcp保證資料正確性,udp可能丟包,tcp保證資料順序,udp不保證另外結合gprs網路的情況具體...