网络攻防实验1Word文档下载推荐.docx

上传人:b****1 文档编号:3711684 上传时间:2023-05-02 格式:DOCX 页数:10 大小:19.33KB
下载 相关 举报
网络攻防实验1Word文档下载推荐.docx_第1页
第1页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第2页
第2页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第3页
第3页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第4页
第4页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第5页
第5页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第6页
第6页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第7页
第7页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第8页
第8页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第9页
第9页 / 共10页
网络攻防实验1Word文档下载推荐.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

网络攻防实验1Word文档下载推荐.docx

《网络攻防实验1Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《网络攻防实验1Word文档下载推荐.docx(10页珍藏版)》请在冰点文库上搜索。

网络攻防实验1Word文档下载推荐.docx

错误、缺失

指导教师(签名)

年月日

说明:

指导教师评分后,实验报告交院(系)办公室保存。

实验一信息搜集

一、实验目的

1、了解信息搜集的一般步骤;

2、学会熟练使用Ping命令;

3、学会利用Nmap等工具进行信息搜集

4、学会编写端口全扫描程序

二、实验步骤

1、信息搜集

此实验物理机A与虚拟机B同时相互搜集对方信息,下面的步骤以主机A为例讲解。

(1)Ping探测

物理机A开启命令行,对虚拟机B进行Ping探测,根据虚拟机B的回复,可以确定物理机A与虚拟机B之间的连通情况,还可以根据回复数据包的TTL值对操作系统进行猜测。

回复数据包的TTL值:

(128),虚拟机B中的操作系统可能为:

(windowsxp)。

2、NMap扫描

(1)对活动主机进行端口扫描

物理机A使用NMap工具对虚拟机B进行TCP端口同步扫描(范围1-150):

NMAP命令(nmap-p1-65535-T4-A-v172.18.36.125);

虚拟机B开放的TCP端口(1025/139/21/23/445/135/80/1026);

对虚拟机B进行UDP端口扫描(范围110-140):

NMAP命令(nmap-sS-sU-T4-A-v172.18.36.125);

虚拟机B开放的UDP端口(137);

(2)对活动主机操作系统进行探测

物理机A对虚拟机B进行TCP/IP指纹特征扫描:

NMAP命令(nmap-O172.18.36.125);

查看扫描结果(Nmapscanreportfor172.18.36.125

Hostisup(0.00slatency).

Notshown:

992closedports

PORTSTATESERVICE

21/tcpopenftp

23/tcpopentelnet

80/tcpopenhttp

135/tcpopenmsrpc

139/tcpopennetbios-ssn

445/tcpopenmicrosoft-ds

1025/tcpopenNFS-or-IIS

1026/tcpopenLSA-or-nterm

MACAddress:

00:

0C:

29:

5E:

67:

9D(VMware)

NoexactOSmatchesforhost(IfyouknowwhatOSisrunningonit,seehttp:

//nmap.org/submit/));

(3)对活动主机IP协议进行探测

物理机A使用NMap命令对虚拟机B进行IP协议探测:

NMAP命令(nmap-sO172.18.36.125);

252open|filteredprotocols

PROTOCOLSTATESERVICE

1openicmp

6opentcp

17openudp

132closedunknown

9D(VMware));

3、使用C语言实现端口全扫描程序。

//端口扫描函数 

UINTportscan(LPVOIDport) 

intaddr=portip;

//取得要扫描的地址 

intsock;

structfd_setmask;

structtimevaltimeout;

structsockaddr_inserver;

unsignedlongflag=1;

//创建一个sock 

sock=socket(AF_INET,SOCK_STREAM,0);

//创建sock失败处理 

if(sock==INVALID_SOCKET) 

printf("

/r/nSockError:

%s"

WSAGetLastError());

maxth--;

return-1;

//给sock成员赋值 

server.sin_family=AF_INET;

server.sin_addr.s_addr=htonl(addr);

//要扫描的地址 

server.sin_port=htons(short(port));

//要扫描的端口

//显示进度 

playx();

//调用ioctlsocket()设置套接字为非阻塞模式 

if(ioctlsocket(sock,FIONBIO,&

flag)!

=0) 

//设置失败处理 

closesocket(sock);

//调用connect()连接远程主机端口 

connect(sock,(structsockaddr*)&

server,sizeof(server));

timeout.tv_sec=18;

//超时限制为18秒 

timeout.tv_usec=0;

FD_ZERO(&

mask);

//清空集合mask 

FD_SET(sock,&

//将sock放入集合mask中 

//用select()处理扫描结果 

switch(select(sock+1,ZERO,&

mask,ZERO,&

timeout)) 

case-1:

printf("

/r/nSelect()error"

);

maxth--;

return-1;

}

//sock超时处理 

case0:

closesocket(sock);

default:

if(FD_ISSET(sock,&

mask)) 

//禁止sock发送和接受数据 

shutdown(sock,0);

//设置输出结果格式 

[Found:

]%sPort:

%dopen./r/n"

inet_ntoa(server.sin_addr),ntohs(server.sin_port));

//关闭sock 

scanok++;

return1;

return0;

//扫描开始主函数 

voidportscannow(intxp) 

intsport;

char*timenow,timebuf[32];

//定义默认扫描的端口 

char*ports[32]={ 

"

21"

 

22"

23"

25"

53"

79"

80"

110"

111"

113"

123"

135"

139"

143"

443"

512"

513"

514"

515"

540"

1080"

1433"

1521"

1524"

3306"

3389"

5631"

6000"

6112"

8000"

8080"

12345"

//这里你也可以自己定义要扫描的端口

};

//显示扫描开始的时间 

timenow=_strtime(timebuf);

/r/nPortScanStartTime:

%s/r/n/n"

timenow);

//计数器初始化. 

maxth=0;

scanok=0;

scannum=0;

searched=0;

//计算要扫描的端口数量 

searchnum=hoststop-hoststart+1;

if(xp==3) 

searchnum=searchnum*32;

if(xp==4) 

searchnum=searchnum*(endport-startport+1);

//端口扫描开始 

for(portip=hoststart;

portip<

=hoststop;

portip++,scannum++) 

//*.*.*.0和*.*.*.255地址处理 

if((portip%256)==0||(portip%256)==255) 

if(xp==3) 

searchnum=searchnum-32;

if(xp==4) 

searchnum=searchnum-(endport-startport+1);

scannum--;

playx();

continue;

if(i>

11)i=0;

//默认端口扫描 

//scan192.168.0.1 

//scan192.168.0.1-192.168.0.254 

if(xp==3) 

for(sport=0;

sport<

32;

sport++,maxth++,searched++) 

//测试当前线程是否大于180 

TestThread(180);

//产生新的线程处理端口扫描 

CWinThread*pthread=AfxBeginThread(portscan,LPVOID(atoi((char*)ports[sport])));

//延时 

Sleep(120);

//自定义端口扫描 

//scan-p21192.168.0.1 

//scan-p21-80192.168.0.1-192.168.0.254 

if(xp==4) 

{//计算要扫描的端口 

sport=endport-startport;

if(sport>

500) 

//扫描自定义的端口 

for(sport=startport;

=endport;

TestThread(2000);

CWinThread*pthread=AfxBeginThread(portscan,LPVOID(sport));

//延时 

Sleep(10);

else 

//测试当前线程是否大于250 

TestThread(250);

Sleep(100);

//等待所有的线程结束 

WaitThreadEnd();

//显示端口扫描结束时间 

/r/nPortScanEndTime:

%s"

timenow);

/r/nScan%dHostscompleted.Open%dPorts!

/r/n"

scannum,scanok);

注:

此程序的扫描结果与实验得到的端口总数上有差别,具体原因未知

3、实验心得

本次实验通过对windowsxp系统虚拟机进行网络配置,让虚拟机连接到网络中,学会使用简单的nmap命令。

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

当前位置:首页 > 工程科技 > 能源化工

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

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