《2023年端口扫描实验报告.docx》由会员分享,可在线阅读,更多相关《2023年端口扫描实验报告.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、网络端口扫描实验报告姓名:刘俊峰学号:1 1 0 54 1 14班级:1 1052 4 11课程:网络攻防技术老师:张旻soc k = sock e t(A F JNET, SOCK_S TREAM, 0 );if (sock =INVALID_SO CKET) p rin t f (r nS o ck Error: %s, W S AG e tLas t Error();m a xt h ;return 1 ;)ser v e r .sin_ f amil y =AF_INET;server.sin_ad d r.s_ a ddr = h t onl(ad d r );serve r . s
2、in_port = h t o n s (short( p ort);pl a yx();i f (i o ctlsocket ( s o ck, FIONBIO , & f lag) ! = 0 ) p r intf(rn S ock E rror:%s , WSAGet L astErro r (); closesocket (sock);m a x t h ;r etu r n -1;connect(so c k, (str u c t s ockaddr* )& ser ver, s i ze o f (serve r ); timeout, t v_ s e c = 18;t i m
3、eout.t v _use c = 0;FD_ZERO(&mask);F D_ S ET( s ock, &mask);s vvitch(se 1 e c t( s o c k +1 , ZERO, &ma s k, ZE R O, &timc out)c ase - 1 :p rint f ( r n S e 1 e ct() error);m a xth ;r et u r n 1 ;Ic a s e 0:m a xt hclo s esocket(soc k );retur n - 1;)default:if( F D_ I S S ET(so c k, &mask)(sh u t d
4、o vvn( s ock, 0):p r i mf( Fo u nd: %s Port: %d openA r n , i n e t_ntoa(s e r ver.si n_ad d r), n to h s (se r ver.sin_ p ort);c 1 ose s o c k et ( s ock);s c a n ok +;max t h 一;return 1;)re t u r n 0;v o id po r t sc a nno w( i nt xp) int sport:char * tim e no w, timebuf32;c har *p o rts 3 2 =21 H
5、 22 , 23 ,2 5 , 5 3; 7 9 8 0 , 110 ,11 1 % 113, n 123 , M 13 5, I39,l 4 3, 4 4 3、 5 12 ,“5 13”, “51 4 “,5 5, 5 40, 1 0 80; 1 43 3 , 1 521 , 1524,3306, 338 9 ,5 631”, 60 0 0” J 6 112”,“800 08 0 80 , n 1 23 4 5 ;(im e now = _strlime(timeb u f);pri n tf(r n Po r tScan Start Time: %srnn, t imenow);maxth
6、 =0 ;sea nok = 0;sc a nnum = 0 ;searched = 0;sea r c h num = hoststop - host s tar t +1;if (xp = 3)se a r c h num = sear chnum *32;if(x p = 4)se a rchnum = s e arc h n um * (endport - star t p o rt +1);f or (p o rt i p = h o ststa r t ; p ortip = hos t s t op; p o rti p +, scannum+) if ( (portip % 2
7、 5 6)= 0 I I (portip % 2 5 6 ) = 2 5 5)i f( x p = 3)sear chnum = sea r c h n uni - 32;if( x p = 4)sea rchnum = s e arch n um - (end p ort startp ort + 1 );scannuin -playx(); co n t inue;)i f (xp =3 )(for (sport = 0 ; sport 500 )(f or( s p ort = s t artport; sport = e n dport; sport +, m a xth +, se
8、a rched +)T e stTh r e a d(2 0 23);CWj n T h read * p t h read = A fxB e ginT h r ead( p o rts c a n , LPV 0 I D( s p o rt); S leep(10);) else (f or(sport = startp o r t ; sp o r t = end p ort: s po r t +, m a xth +, se a r c h ed +)(T e s (Th r e a d(250);CWinTh r ea d * pthread = Af x B e ginT h r
9、 ead(portscan, LPVOID(spo r t);Sleep (100); pl ayx();)I ) Wai t Threa d En d ();t imenow = _s t rtime (timebuf);printf( rnP o rtScan En d Time: %s, t imen o w);print f ( rnScan % d H o sts c ompleted.Open %d Ports! r n , s cannum,scano k);)六、代码实现在刚开始的时候编译是成功的,但是build是有错误的,如图: : ClassV. JO FileView.1
10、Debug/gs.exe : Fatal error LNK1120: 2 unresolued externals 中执行link.exe时出褶.gs.exe - 1 error(s), 0 vjarning(s)TK组建乂调试在文件1中查找在文件2中查找已结果入SQL Debugging /在网上找解决的方法,发现是MFC连接的问题,在工程一设立一micros。f t基础类中不B u ild成功后代码可以成功运营,端口扫描成功ttinclude winsoc 编译时需使用白 ttpragna comnent( / select。成员 ltdefine ZERO (fd 变量定义 int r
11、oaxth, scano int portip, host long searchnun, uoid usage(char uoid playx(int); uoid setip2(char uoid customport(ttinclude winsoc 编译时需使用白 ttpragna comnent( / select。成员 ltdefine ZERO (fd 变量定义 int roaxth, scano int portip, host long searchnun, uoid usage(char uoid playx(int); uoid setip2(char uoid cust
12、omport(=命令行端口扫描器PortScanncr U1.0 jf XDesktopXDebu9XDebucjXs .exe :-p ( PortStartPort-EndPort J Exanple:C: Usei*sljf DesktopDebugDebugQS .exeC: MJsersXljfDesktopDebugDebugQS.exeC:UsersljfDesktopDebugDebuggs.exe C:XJUsers ljf Deskt0pDebugXDebug9s .exePress eny k匕y to continue=Usago : C: Usersl-p 192.1
13、68.A.1-p 21-八、实验总结.实验中的碰到的问题:刚开始老师布置作业的时候完全不知道怎么做,在网 上找了一些资料和借鉴同学的实验过程才完毕了这个实验,着实不易。1 .实验中的收获:一定限度上加深了对MFC和socket编程的的理解,对课程学 习打下了一个比较好的基础;用一些设计模式在一定限度能提高开发效能,减少 开发的复杂度,并且深刻地结识到实践才干出真知这个硬道理。一、网络端口扫描简介TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。端口便是计 算机与外部通信的途径。一个端口就是一个潜在的通信通道,也就是一个入侵通 道。对目的计算机进行端口扫描,能得到许多有用的信息。
14、进行扫描的方法很多, 可以是手工进行扫描,也可以用端口扫描软件进行。在手工进行扫描时,需要熟 悉各种命令,对命令执行后的输析出进行分,效率较低。用扫描软件进行扫描时, 许多扫描器软件都有分析数据的功能。通过端口扫描,可以得到许多有用的信息, 从而发现系统的安全漏洞。扫描工具根据作用的环境不同可分为:网络漏洞扫描 工具和主机漏洞扫描工具。前者指通过网络检测远程目的网络和主机系统所存在 漏洞的扫描工具。后者指在本机运营的检测本地系统安全漏洞的扫描工具。本实 验重要针对前者。端口是TCP协议中定义的,TCP协议通过套接字(soc k et)建立起两台计算机 之间的网络连接。它采用【IP地址:端标语】
15、形式定义,通过套接字中不同的端 标语来区别同一台计算机上启动的不同TCP和UDP连接进程。端标语在0565535 之间,低于1 0 24的端口都有确切的定义,它们相应着因特网上常见的一些服务。 这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口 (无连接如写信)两种。端口与服务进程一一相应,通过扫描开放的端口就可以判 断计算机中正在运营的服务进程。二、实验目的.了解熟悉MFC及的基本原理和方法。1 .加深对tcp的理解.,学习端口扫描技术和,原理熟悉sock et编程。2 .通过自己编程实现简朴的I P端口扫描器模型。3 .通过端口扫描了解目的主机开放的端口和服务程序。
16、三、实验环境Wind。ws操作系统VC+6. 0开发环境四、实验设计实验原理通过调用s o eke t函数co n ne c t ()连接到目的计算机上,完毕一次完整的三次 握手过程,假如端口处在侦听状态,那么connect()就可以成功返回,否则这 个端口不可用,即没有提供服务。实验内容.设计实现端口扫描器1 . IP地址、端口范围可以用户输入。2 .规定有有好的可视化操作界面。实验环节:1、用户界面:使用vc6.0里的MFC来开发用户界面2、端口扫描:使用s。c ket函数中的conn ect()连接计算机来鉴定目的计算机是 否开放了要测试的端口五、代码实现# in c hide #inc
17、lude #pragm a comm e n t (I i b,wsoc k 32.li b )#define ZERO (fd_set*) 0int ma x t h, s c an o k , sea nnum;int port i p , hosts tart, host s top, star t p o r t, e ndport; long s e arc h n u m, scar c h e d ;vo i d usage(char *);void playx(int);void s e tip2(cha r * );void custompo r t(c h ar *,cha
18、 r *, c ha r *);void portscannow(i n t);i nt mai n (int arg c , c h ar * a rgv )WSA D ATA wsad ata;system(c 1 s .exe );prin t f ( r n=命令行端口扫描器 PortScan n er V 1 . 0 = =);if( (argc 4)u s a ge (argv01);re t urn - 1;)if (! (stricmp(st r 1 wr(argv 1), -p) = 0 )|usa g e(argv0);re t u r n -1;)i f (W S ASt
19、artu p (MAK E WORD( 1,1), &wsadata) != 0)pri n t f ( r n Ws a t a r tup e r ror);r e t u m -1 ;if (argc = 3) s e tip2(ar g v2);elseif (ar gc = 4)customp o rt( a rg v 0, a r g v 2, argv 3);)elseusage(argvO);ret u rn - 1 ;p ort s cann o w( a rgc);W S ACle a n up();r etu r n 0;)void u s a g e(char * pr
20、o g )pr i n t f(U s age: % s , p r o g);p rintfCVX nn :);p r i ntf(*rn - p Port|S tartPort End P or t );p r intf ( rn n E xample:);pr i n t f(rn %s p 19 2 .168. 0 .1, prog);p r intfC r n %s -p 192.168.0.1-192.168. 0 .2 5 4 pro g );printf(rn %s - p 21-80 1 92.16 8.0.1, prog );p rintf( rn % s -p 21-80
21、 1 92.16 8.0.1-192. 168. 0. 2 54rn, prog ); relu r n;void pla y x (i n t play = 0) char * p 1 aysl 2 =“ I / , -W I;/,-, (W, I H ,;if ( s earchnum != 0 )for ( i n t i = 0 ; i 15 & s t rle n (cp) h _add r , 4);host stop= h o st s t a r t = n t o hl(host);1)void TestTh r ead (ini t hre a d = 2 0 0)(for
22、 (;)Playx ();i f (maxth t h read)S 1 ee p (100):else b re a k;)r etu r n;1v oid W aitThrcadEnd()S lcep(6000);pr i n t f( r rn);p rintf( Wai t ( % d )Thread end.r n , ma x th):fo r(;;)(if (max t h 0)S leep( 10 0 );pl ayx ();co n tinu e ;)else break;)prinlf (八 n);rc t urn;) void c u stompor t (char *
23、c p, ch a r *c p 2, char *c p 3) int intpo r t;c h a r * c h e cker;startp o rt = a t oi(c p 2);endp o r t = at o i ( c p 2);if (s t rstr(cp2,i ntpor t = atoi(ch e ckcr = s trchr(c p 2,) + 1 );if ( i n t port 0 & i n t por t 65536)en d port = int p ort;)i f (st a r t p ort 6 5 5 3 6 | I e ndp o r t 6 5535)(u sage(cp):exit(-l);)s eti p 2 (cp3);IUINT portscan (LPVOID po rt)int addr = port i p ;i n t so c k;s truct fd_s e t m a s k ;s truct tim e v a 11 i meout;st r uct s ock add r_in server;unsi g ned 1 ong f 1 ag