码迷,mamicode.com
首页 > 其他好文 > 详细

实践三 网络嗅探与协议分析

时间:2020-03-28 20:04:45      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:注册   自己的   http   导入   soc   数据包   class   ack   网络抓包   

任务一:

问题: 根据教材参考代码,编写有个简单网络抓包工具。要求核心代码和运行结果截图1-2张。

解决办法:
1.在拿到这个任务之后,我去查找如何去编写一个简单的抓包工具,发现python有一个抓包用的库scapy和解析包用到的库dpkt。于是我就打算使用python来进行编写。下面是安装这两个库的截图(由于pip版本不能更新问题导致无法导入库,将近耗费了我一整天的时间修复,头大!)

技术图片

2.我将代码分为两个部分,一个是抓包文件grab packet.py和一个解析包文件Analysis packet.py,截图如下:

技术图片

3.首先,抓包文件grab packet.py代码如下:

from scapy.all import *
def packet_callback(packet):    #输出格式
    print(packet.show())
dpkt = sniff(filter="tcp src host 192.168.3.62", prn=packet_callback, count=30) #这里指定本地ip地址192.168.3.62,输出格式为上面的packet_callback函数,输出结果为30条
wrpcap("demo.pcap", dpkt)   #将抓到的包存储到demo.pcap,是使用dpkt解析包

4.代码执行结果如图所示,我们可以看到生成的demo.pcap,并且从运行的结果中可以看到抓包的结果,其中ttl=128说明本地ip地址是与ip150.138.89.35直接通信,说明我们抓包是很成功的。

技术图片

5.有了抓到的包的文件,我们就可以使用解析代码来进行数据包的解析了,解析包代码Analysis packet.py如下:

import dpkt
import socket
import datetime

def printPcap(pcap):

    try:

        for timestamp, buf in pcap:

            eth = dpkt.ethernet.Ethernet(buf) #获得以太包,即数据链路层包

            print("网络层协议:"+eth.data.__class__.__name__) #以太包的数据既是网络层包

            print("传输层协议:"+eth.data.data.__class__.__name__) #网络层包的数据既是传输层包

            print(‘时间戳: ‘, str(datetime.datetime.utcfromtimestamp(timestamp))) #打印出包的抓取时间

            if not isinstance(eth.data, dpkt.ip.IP):

                print(‘无ip包 %s‘ % eth.data.__class__.__name__)

                continue

            ip = eth.data

            do_not_fragment =bool(ip.off & dpkt.ip.IP_DF)

            more_fragments =bool(ip.off & dpkt.ip.IP_MF)

            fragment_offset = ip.off & dpkt.ip.IP_OFFMASK

        print(‘IP: %s -> %s (len=%d ttl=%d DF=%d MF=%d offset=%d)‘ % (socket.inet_ntoa(ip.src), socket.inet_ntoa(ip.dst), ip.len, ip.ttl, do_not_fragment, more_fragments,fragment_offset))

    except:
        pass

def main():


    f =open(‘demo.pcap‘,‘rb‘)

    pcap = dpkt.pcap.Reader(f)

    printPcap(pcap)

if __name__ ==‘__main__‘:
    main()

6.解析包代码运行结果如下,我们可以看到它成功解析出了网络层和传输层的协议,并且正确显示了时间戳:

技术图片

任务二:

问题: 找一个网站或者搭建一个本地网站,登录网站,并嗅探,分析出账号和密码,结果截图1-2张。可以用邮箱、各类博客、云班课,只能分析自己的账号,严禁做各类攻击,否则后果自负。

解决办法:
1.在网上搜了好久使用http明文网站,最终终于找到了一个龙珠直播,网站界面截图如下:

技术图片

2.开启windows端的wireshark,并选取我正在使用的网络WLAN2,截图如下:

技术图片

3.按要求注册时候,登录帐号,截图如下:

技术图片

4.到wireshark进行查看http追踪流,发现帐号与密码,截图如下:

技术图片

5.在实验完成后,为了安全,我修改了密码。。。。

任务三:

问题: 加分项2分:注意本次加分项不加到额外10分里,加到本次实验中。例如,本次实验7分,算上加分可得9分。抓取手机App的登录过程数据包,分析账号和密码。

*解决办法:
1.

实践三 网络嗅探与协议分析

标签:注册   自己的   http   导入   soc   数据包   class   ack   网络抓包   

原文地址:https://www.cnblogs.com/j1551163790/p/12586692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!