b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

0x04编写程序分析流量检测ddos攻击

电脑杂谈  发布时间:2019-06-22 18:09:51  来源:网络整理

隐藏ip_loic 隐藏ip_qq隐藏ip

2

解析Hive服务器上的IRC命令

findHivemind()函数--主要用于检测僵尸网络流量中的IRC命令

实现思路分析:

要发起攻击,“匿名者”成员需要登录到指定的irc服务器上发出一条攻击指令,例如

!lazor targetip=66.211.169.66 message=test_test port 80 method=tc wait=false random=true start

通常irc服务器使用的是tcp 6667端口,在编写我们的findHivemind()函数时就可以利用这一点loic 隐藏ip,我们先把数据包中的以太网部分、ip层、tcp层分解出来,在获得tcp层部分的数据后,我们检查它的源端口和目标端口是不是6667,如果我们看到 !lazor 指令的目标端口是6667,则可以确定某个成员提交了一个攻击指令,如果我们看到了 !lazor 指令的源端口为6667,则可以认为这是服务器在向hive中的成员发布攻击的消息。

3

检测DDoS攻击

实现思路:

要识别攻击,需要设置一个不正常的数据包数量的阀值。如果某个用户发送到某个地址的数据包的数量超过了这个阀值,就把它认为是发动了攻击。

整合脚本:

实现能检测到下载行为,到hive指令并检查出攻击行为

不过个人还是建议你打10010人工台、未定制gprs流量包、未定制含gprs流量的增值业务包的可直接订购3g省内流量包,“ljkt3gll10”立即生效. 30元包:。在selenium官网上可以下载到最新的开源的包loic 隐藏ip,根据编写测试脚本所使用的语言下载对应的包文件,本人学习用的是java语言,貌似就只有java有点基础了。3导入编写的java脚本需要依赖的jar:vuser->运行时设置-->java环境设置-->classpath,点添加jar的按钮,将编写脚本依赖的工程里的jar包导入,点确定。

4

工具源代码

#!/usr/bin/python

#coding=utf-8

import dpkt

import socket

import optparse

#设置阈值为1000

THRESH = 1000

#检测下载loic行为

def findDownload(pcap):

隐藏ip_loic 隐藏ip_qq隐藏ip

for (ts, buf) in pcap:

try:

eth = dpkt.ethernet.Ethernet(buf)

ip = eth.data

src = socket.inet_ntoa(ip.src)

# 获取TCP数据

tcp = ip.data

# 解析TCP中的上层协议HTTP的请求

http = dpkt.http.Request(tcp.data)

# 若是GET方法,且请求行中包含“.zip”和“loic”字样则判断为下载LOIC

if http.method == 'GET':

uri = http.uri.lower()

if '.zip' in uri and 'loic' in uri:

print "[!] " + src + " Downloaded LOIC."

except:

pass

#hive指令

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

qq隐藏ip_隐藏ip_loic 隐藏ip

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

#检查出攻击行为

def findAttack(pcap):

pktCount = {}

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)

qq隐藏ip_loic 隐藏ip_隐藏ip

tcp = ip.data

dport = tcp.dport

# 累计各个src地址对目标地址80端口访问的次数

if dport == 80:

stream = src + ':' + dst

if pktCount.has_key(stream):

pktCount[stream] = pktCount[stream] + 1

else:

pktCount[stream] = 1

except:

pass

for stream in pktCount:

pktsSent = pktCount[stream]

# 若超过设置检测的阈值,则判断为进行DDoS攻击

if pktsSent > THRESH:

src = stream.split(':')[0]

dst = stream.split(':')[1]

print '[+] ' + src + ' attacked ' \

+ dst + ' with ' + str(pktsSent) + ' pkts.'

def main():

parser = optparse.OptionParser("[*]Usage python findDDoS.py "\

+"-p

-t ")

parser.add_option('-p', dest='pcapFile',

type='string',

隐藏ip_loic 隐藏ip_qq隐藏ip

help='specify pcap filename')

parser.add_option('-t', dest='thresh',

type='int',

help='specify threshold count ')

(options, args) = parser.parse_args()

if options.pcapFile == None:

print parser.usage

exit(0)

if options.thresh != None:

THRESH = options.thresh

pcapFile = options.pcapFile

# 若用f = open(pcapFile)

#则这里的pcap文件解析只能调用一次,

#而这里需要多次调用,所以应该使用with open

with open(pcapFile, 'r') as f:

pcap = dpkt.pcap.Reader(f)

findDownload(pcap)

with open(pcapFile, 'r') as f:

pcap = dpkt.pcap.Reader(f)

findHivemind(pcap)

with open(pcapFile, 'r') as f:

pcap = dpkt.pcap.Reader(f)

findAttack(pcap)

if __name__ == '__main__':

main()

下期

预告

0x05编写脚本劫持tcp会话


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-107691-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...