简单实现http流量包异常检测

环境配置:

参考http://www.jianshu.com/p/34ad48e4ec78


代码:

#! /usr/bin/env python
#coding=utf-8

from scapy.all import *
import time
import re

def timestamp2time(timestamp):
    timeArray = time.localtime(timestamp)
    mytime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
    return mytime

def pack_callback(packet):
    if packet[TCP].payload:
        strpacket=str(packet[TCP].payload)
        host = re.search('Host: ([a-zA-Z0-9.-]*)\r\n', strpacket)
        URL = re.search('(GET|HEAD|POST|DELETE) (.*) HTTP/1.1\r\n', strpacket)
        useragent = re.search('User-Agent: (.*)\r\n', strpacket)

        if URL:
            domain = host.group(1)
            url = URL.group(2)
            agent = useragent.group(1)

            if "/etc/passwd" in url.lower():
                print "%s --- %s:%s --> %s:%s(%s) >>>文件包含" \
                %(timestamp2time(packet.time),packet[IP].src,packet.sport,packet[IP].dst,packet.dport,domain)
                print "URL: http://%s/%s" % (domain,url)
                print "User-Agent: %s" % agent
                print "\n"

            elif "%27%20union" in url or "%27union" in url.lower():
                print "%s --- %s:%s --> %s:%s(%s) >>>注入漏洞"  \
                %(timestamp2time(packet.time),packet[IP].src,packet.sport,packet[IP].dst,packet.dport,domain)
                print "URL: http://%s%s" % (domain,url)
                print "User-Agent: %s" % agent
                print "\n"


sniff(filter="tcp port 80 and src host 192.168.88.3",prn=pack_callback,iface="eth0",count=0)

效果截图


2222.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,134评论 25 709
  • 小时候,写作是一种负担,每天都被老师逼迫写日记,每天的日记不是流水账就是胡编乱造。 长大了,由于专业的缘故,接触到...
    晨光思维阅读 472评论 0 8
  • 姓名:张冰 公司:宁波禾隆新材料有限公司 组别:312期努力一组 【日精进打卡第26天】 【知~学习】 《六项精进...
    木头戏阅读 152评论 0 0
  • 随着岁月的流逝,我已不再任性,但有缘与你相识;随着生活里的酸甜苦辣,我已不再浮躁,但有幸与你相知;随着孩子们茁壮的...
    心安是福铃儿响叮当阅读 285评论 2 1