Python Django项目开发(WIFI-SNIFF)

因为数据收集的代码是利用Python写的,因此想到了利用Django进行项目开发,实现的具体功能是在局域网内进行信息嗅探,并将嗅探得到的信息展示在WEB网页上。

一.数据嗅探模块

1.利用ettercap进行局域网欺骗

首先主机利用ARP欺骗,使得所有的数据包都经过攻击机。(工具选择ettercap)
Python Django项目开发(WIFI-SNIFF)_第1张图片

2.python模块利用

python在数据包截获方面有现成的模块,例如pcap。

#listen to sniff packet
pc = pcap.pcap()
b = 'tcp port 80'
pc.setfilter(b)
#可以直接对经过网卡的所有数据包进行捕获

在数据包分析方面,例如dpkt。

eth = dpkt.ethernet.Ethernet(buf)
ip = eth.data
tcp = ip.data
#可以把截获的数据包分层处理 如上所示分成 以太网层,IP层,tcp层······

对数据中URL的分析就是利用http层的协议内容进行截获分析

3.数据包分析

通过python现有的模块将所截获的数据包分层处理。
目前对用户访问的URL的分析是通过http协议中的host头部获得。
用户的种类的分析也是根据http协议user-agent头部获得。
对于图片的的截取,目前做到的是匹配关键字的方法获得(匹配是否有image、jpg、png等,下一阶段直接从数据包中获得图片数据)。

二.数据库模块

1.数据库设计

Django框架自带sqlite数据库可以直接使用。
设计一个用于存储用户信息的数据表victim

字段包括 序号、用户种类、mac地址、连接时间、IP地址
CREATE TABLE "victim" (
    `id`    INTEGER,
    `useragent` TEXT,
    `mac`   TEXT,
    `time`  TEXT,
    `ip`    TEXT
)

Python Django项目开发(WIFI-SNIFF)_第2张图片
设计记录url的数据表Record_urls

字段包括 序号、访问的URL、访问URL对应的时间
CREATE TABLE `Record_urls` (
    `id`    INTEGER,
    `url`   TEXT,
    `time`  TEXT
)

Python Django项目开发(WIFI-SNIFF)_第3张图片

2.嗅探代码与数据库的连接

嗅探到的数据信息通过Python语句存储至sqlite数据库,方便web网页访问。

通过该语句连接至数据库
#link to database
conn = sqlite3.connect("db.sqlite3") 
并通过下面的语句访问数据库
conn.execute(sql1)
conn.commit()

三.WEB页面模块

1.Django开发简介

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。框架把控制层给封装了,无非与数据交互这层都是数据库表的读,写,删除,更新的操作.在写程序的时候,只要调用相应的方法就行了,感觉很方便。程序员把控制层东西交给Django自动完成了。 只需要编写非常少的代码完成很多的事情。所以,它比MVC框架考虑的问题要深一步,因为我们程序员大都在写控制层的程序。现在这个工作交给了框架,仅需写很少的调用代码,大大提高了工作效率。

Python Django项目开发(WIFI-SNIFF)_第4张图片
用户访问的目录存在urls中

from django.conf.urls import url
from django.contrib import admin
from yz import views as yz_views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$',yz_views.index),
    url(r'^login.html$',yz_views.login),
    url(r'^index.html',yz_views.index),
    url(r'^test.html$',yz_views.test),
    url(r'^show_url.html$',yz_views.show_url),
    url(r'^image.html$',yz_views.image),
]   

只有目录还不行,必须有新建的项目下views的引导。

def index(request):
    ······
def test(request):
    ······
def show_url(request):
    ······
def image(request):
    ······
def login(request):
    ······

templates里面存放的views中解析的静态网页
Python Django项目开发(WIFI-SNIFF)_第5张图片

2.WEB页面功能介绍

(1)登录页面

设计了登录页面,因为网站在局域网内可以被访问,提高网站的安全性。
Python Django项目开发(WIFI-SNIFF)_第6张图片

(2)用户展示

受害者用户名单展示平台
Python Django项目开发(WIFI-SNIFF)_第7张图片

(3)URL展示

点击其中一个用户的URL,可进入展示该用户访问所有URL的页面
Python Django项目开发(WIFI-SNIFF)_第8张图片

(4)image展示

点击其中一个用户的image,可进入展示该用户访问部分image的页面
Python Django项目开发(WIFI-SNIFF)_第9张图片

四.后期工作

1.完善图片截获功能

目前只能从访问连接中识别是否是图片链接,下一步实现直接从数据包结构中分析出图片数据。

你可能感兴趣的:(python)