端口扫描实验文档格式.docx
《端口扫描实验文档格式.docx》由会员分享,可在线阅读,更多相关《端口扫描实验文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
connect()"
函数完成系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。
如果端口处于侦听状态,那么"
函数就能成功。
否则,这个端口是不能用的,即没有提供服务。
这个技术的一个最大的优点是不需要任何权限,系统中的任何用户都有权利使用这个调用。
另一个好处是速度。
如果对每个目标端口以线性的方式,使用单独的"
函数调用,那么将会花费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。
使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。
但这种方法的缺点是很容易被发觉,并且很容易被过滤掉。
目标计算机的日志文件会显示一连串的连接和连接是出错的服务消息,目标计算机用户发现后就能很快使它关闭。
(2)TCPSYNScan
这种技术也叫"
半开式扫描"
(half-openscanning),因为它没有完成一个完整的TCP协议连接。
这种方法向目标端口发送一个SYN分组(packet),如果目标端口返回SYN/ACK标志,那么可以肯定该端口处于检听状态;
否则,返回的是RST/ACK标志。
这种方法比第一种更具隐蔽性,可能不会在目标系统中留下扫描痕迹。
但这种方法的一个缺点是,必须要有root权限才能建立自己的SYN数据包。
(3)TCPFINScan
这种方法向目标端口发送一个FIN分组。
按RFC793的规定,对于所有关闭的端口,目标系统应该返回一个RST(复位)标志。
这种方法通常用在基于UNIX的TCP/IP协议堆栈,有的时候有可能SYN扫描都不够秘密。
一些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能检测到这些扫描。
相反,FIN数据包可能会没有任何麻烦的通过。
这种扫描方法的思想是关闭的端口会用适当的RST来回复FIN数据包。
另一方面,打开的端口会忽略对FIN数据包的回复。
这种方法和系统的实现有一定的关系,有的系统不管端口是否打开,都回复RST,这样,这种扫描方法就不适用了。
并且这种方法在区分Unix和NT时,是十分有用的。
(4)IPScan
这种方法并不是直接发送TCP协议探测数据包,而是将数据包分成两个较小的IP协议段。
这样就将一个TCP协议头分成好几个数据包,从而过滤器就很难探测到。
但必须小心,一些程序在处理这些小数据包时会有些麻烦。
(5)TCPXmasTreeScan
这种方法向目标端口发送一个含有FIN(结束),URG(紧急)和PUSH(弹出)标志的分组。
根据RFC793,对于所有关闭的端口,目标系统应该返回RST标志。
(6)TCPNullScan
这种方法向目标端口发送一个不包含任何标志的分组。
(7)UDPScan
这种方法向目标端口发送一个UDP协议分组。
如果目标端口以"
ICMPportunreachable"
消息响应,那么说明该端口是关闭的;
反之,如果没有收到"
响应消息,则可以肯定该端口是打开的。
由于UDP协议是面向无连接的协议,这种扫描技术的精确性高度依赖于网络性能和系统资源。
另外,如果目标系统采用了大量分组过滤技术,那么UDP协议扫描过程会变得非常慢。
如果你想对Internet进行UDP协议扫描,那么你不能指望得到可靠的结果。
(8)UDPrecvfrom()和write()扫描
当非root用户不能直接读到端口不能到达错误时,Linux能间接地在它们到达时通知用户。
比如,对一个关闭的端口,第二个write()调用将失败。
在非阻塞的UDP协议套接字上调用recvfrom()时,如果ICMP出错还没有到达时回返回“EAGAIN”(重试)。
如果ICMP到达时,返回“ECONNREFUSED”(连接被拒绝)。
这是用来查看端口是否打开的技术。
黑客常用工具:
Nmap,Fluxay,X-Scan,SSS等。
扫描是入侵的前奏,为了保护自身安全常用端口扫描检测工具如ProtectX,PortSentry,安装防火墙等来防治端口扫描阻止非法入侵行为。
3.实验环境
1)预备知识要求
●了解网络的基本知识;
●熟练使用windows操作系统;
●充分理解第2节“网络端口扫描实验原理”
2)下载和安装这些扫描工具时请关闭杀毒软件的自动防护,否则程序会被当成病毒而被杀。
3.1运行环境
1)本实验需要用到靶机服务器,实验网络环境如图3-1所示。
靶机服务器配置为Windows2000Server,安装了IIS服务组件,并允许FTP匿名登录。
由于未打任何补丁,存在各种网络安全漏洞。
在靶机服务器上安装有虚拟机。
该虚拟机同样是Windows2000Professional系统,但进行了主机加固。
做好了安全防范措施,因此几乎不存在安全漏洞。
2)学生首先在实验主机上利用Xscan和流光软件扫描靶机服务器P3上的漏洞,扫描结束发现大量漏洞之后用相同方法扫描靶机服务器上的虚拟机P4。
由于该靶机服务器上的虚拟机是安装了各种补丁和进行了主机加固的,因此几乎没有漏洞。
在对比明显的实验结果中可见,做好安全防护措施的靶机服务器虚拟机上的漏洞比未做任何安全措施的靶机服务器少了很多,从而加强学生的网络安全意识。
实验网络拓扑如图3-1,IP地址如表3-1。
图3-1利用靶机服务器实验环境
根据实验环境将IP地址填写在下表中。
攻防实验服务器IP
P1:
本机IP
P2:
靶机服务器IP
P3:
靶机服务器上的虚拟机IP
P4:
表3-1实验IP地址
3.实验内容和步骤
1)流光Fluxay5.0的使用(注意:
请把安装有流光的主机病毒防火墙关闭,有时病毒防火墙会把流光的某些组件认为是病毒。
)
2)使用X-Scan扫描主机端口和漏洞。
XSCAN扫描具有其他多数扫描器都能做的工作。
然而,X-Scan包括了一个增加的功能:
如果它找到了一个脆弱的目标,它会立即加入记录。
X-Scan的其他优点还包括:
可以一次扫描多台主机。
这些主机可以在行命令中作为变量键入(并且你可以通过混合匹配同时指定)
4.1实验任务一:
Xscan的应用
本实验需要使用Xscan工具先后对靶机服务器和靶机服务器上的虚拟主机进行漏洞扫描,并对扫描结果进行分析。
1)Xscan使用
X-scanv3.3采用多线程方式对指定IP地址段进行扫描,扫描内容包括:
SNMP信息,CGI漏洞,IIS漏洞,RPC漏洞,SSL漏洞,SQL-SERVER、SMTP-SERVER、弱口令用户等。
扫描结果保存在/log/目录中。
其主界面如下图3-5。
图3-5Xscan主界面
2)开始扫描
第一步:
配置扫描参数,先点击扫描参数,在下面红框内输入你要扫描主机的ip地址(或是一个范围),本说明中我们设置为靶机服务器的IP地址,192.168.20.245,如图3-6、3-7、3-8所示。
图3-6扫描参数设定
图3-7扫描参数设定
为了大幅度提高扫描的效率我们选择跳过PING不通的主机,跳过没有开放端口的主机。
其它的如“端口相关设置”等可以进行比如扫描某一特定端口等特殊操作(X-scan默认也只是扫描一些常用端口,如图3-8。
图3-8扫描参数设定
第二步,选择需要扫描的项目,点击扫描模块可以选择扫描的项目,如图3-9所示:
图3-9选择扫描项目
第三步,开始扫描,如图3-10。
该扫描过程会比较长,请大家耐心等待,并思考各种漏洞的含义。
扫描结束后会自动生成检测报告,点击“查看”,我们选择检测报表为HTML格式,如图3-11。
图3-10开始扫描
图3-11选择报表类型
第四步,生成报表如下图3-12所示。
图3-12扫描报表内容
我们从扫描结果可以看出,靶机服务器存在大量的安全漏洞。
接下来请用相同的方法扫描靶机服务器上的虚拟机。
对比结果后,请大家针对其中的两种漏洞进行详细分析,并找出防范该漏洞的方法。
附录:
命令行下,Xscan命令语法介绍
命令格式:
xscan-host<
起始IP>
[-<
终止IP>
]<
检测项目>
[其他选项]
xscan-file<
主机列表文件名>
<
其中<
含义如下:
-tracert:
跟踪路由信息;
-port:
检测常用服务的端口状态(可通过\dat\config.ini文件的"
PORT-SCAN-OPTIONS\PORT-LIST"
项定制待检测端口列表);
-snmp:
检测Snmp信息;
-rpc:
检测RPC漏洞;
-sql:
检测SQL-Server弱口令(可通过\dat\config.ini文件设置用户名/密码字典文件);
-ftp:
检测FTP弱口令(可通过\dat\config.ini文件设置用户名/密码字典文件);
-ntpass:
检测NT-Server弱口令(可通过\dat\config.ini文件设置用户名/密码字典文件);
-netbios:
检测Netbios信息;
-smtp:
检测SMTP-Server漏洞(可通过\dat\config.ini文件设置用户名/密码字典文件);
-pop3:
检测POP3-Server弱口令(可通过\dat\config.ini文件设置用户名/密码字典文件);
-cgi:
检测CGI漏洞(可通过\dat\config.ini文件的"
CGI-ENCODE\encode_type"
项设置编码方案);
-iis:
检测IIS漏洞(可通过\dat\config.ini文件的"
-bind:
检测BIND漏洞;
-finger:
检测Finger漏洞;
-sygate:
检测sygate漏洞;
-all:
检测以上所有项目;
[其他选项]含义如下:
-v:
显示详细扫描进度
-p:
跳过Ping不通的主机
-o:
跳过没有检测到开放端口的主机
-t<
并发线程数量[,并发主机数量]>
:
指定最大并发线程数量和并发主机数量,默认数量为100,10。
例如:
xscan–host192.168.3.1-192.168.3.254–port–ftp–v–p–o
表示的就是扫描从192.168.3.1到192.168.3.254之间所有主机开放的常用端口、是否有ftp弱口令、显示详细的扫描报告、跳过Ping不通的主机并且跳过没有检测到开放端口的主机。
再如:
xscan–filec:
\host.txt–port–ftp–v–p–o
表示的就是扫描c:
\host.txt中所有的主机(其中c:
\host.txt是主机列表文件),分析开放的常用端口、是否有ftp弱口令、显示详细的扫描报告、跳过Ping不通的主机并且跳过没有检测到开放端口的主机。
4.2实验任务二:
流光Fluxay5.0的应用
本实验需要使用流光软件先后对靶机服务器和靶机服务器上的虚拟机进行扫描,并对扫描结果进行分析。
1)流光Fluxay5.0应用
流光是一款非常优秀的综合扫描工具,不仅具有完善的扫描功能,而且自带了很多猜解器和入侵工具,可方便地利用扫描的漏洞进行入侵。
流光主界面如图3-13。
图3-13流光主界面
2)扫描主机漏洞
第一步,扫描主机漏洞:
首先需要进行必要的信息配置
(1)打开“文件”菜单下的“高级扫描向导”选项,如图3-14。
填入要扫描主机的起始地址和结束地址,在此我们只扫描靶机服务器一台主机故填入的主机IP地址一样。
如果想要同时扫描靶机服务器和该服务器上的虚拟机则可以在“起始地址”中填入靶机服务器IP“192.168.20.245”;
在“结束地址”中填入靶机服务器上的虚拟机IP地址“192.168.20.247”。
“Ping检查”一般要选上,这样会先Ping目标扫描主机,若成功再进行扫描,这样可节省扫描时间。
在检测项目选项中选上PORTS,FTP,TELNET,IPC,IIS,PLUGINS,我们只对这些漏洞进行扫描。
图3-14高级扫描向导
(2)接着我们进入扫描对话框,如图3-15。
在“标准端口扫描”选项中,流光会扫描约几十个标准服务端口,而自定义扫描端口的范围可以在1-65535内任选。
我们选择“标准端口扫描”。
图3-15扫描对话框
(3)接下来要配置的对话框是尝试获取POP3的版本信息,用户密码,以及获取FTP的Banner,尝试匿名登录,尝试简单字典对FTP帐号进行暴力破解的对话框,我们选中这3项,再单击“下一步”。
弹出询问获取SMTP,IMAP和操作系统版本信息以及用户信息的提示,并询问扫描SunOS/bin/login远程溢出弱点的对话框。
多次单击“下一步”之后出现对话框如图3-16,扫描Web漏洞的信息,可按照事先定义的CGI漏洞列表,选择不同的漏洞对目标计算机进行扫描。
【问题1】:
*.ida,.idq,*.idc究竟是什么漏洞?
图3-16扫描Web漏洞信息
(4)我们经过默认对MSSQL2000数据库漏洞,SA密码和版本信息进行扫描的对话框后,接着弹出如图3-17的对话框。
在这里,将对主机系统的IPC漏洞进行扫描,查看是否有空连接,共享资源,获得用户列表并猜解用户密码。
【问题2】:
什么是系统的IPC漏洞?
图3-17选择IPC漏洞扫描
在图3-17中我们选择需要扫描的选项,如果不选最后一项则此软件将对所有用户的密码进行猜解,否则只对管理员用户组的密码进行猜解。
接着弹出如图3-18所示对话框。
图3-18IIS选择配置
(5)这个对话框将设置IIS的漏洞扫描选项,包括扫描Uniclde编码漏洞,是否安装了FrontPage扩展,尝试得到SAM文件,尝试得到PCAnywhere的密码等。
连续单击两次“下一步”,将出现如图3-19所示对话框。
图3-19插件漏洞扫描配置选择
(6)在这里,流光提供了对6个插件的漏洞扫描,可根据需要把对勾打上,这里我们建议全选。
【问题3】:
IIS漏洞是什么?
图3-20猜解用户名字典选项
(7)在上面的对话框图3-20中,我们通过“猜解用户名字典”尝试暴力猜解的用户,用于除了IPC之外的项目。
此外,如果扫描引擎通过其他途径获得了用户名,那么也不采用这个用户名字典。
保存扫描报告的存放名称和位置,默认情况下文件名以【起始IP】-【结束IP】.html为命名规则。
最后单击“完成”,弹出扫描引擎对话框如图3-21。
图3-21扫描引擎
(8)在扫描引擎对话框中选择默认的本地主机作为扫描引擎。
至此我们就完成了扫描前的所有配置选项,下面单击“开始”,开始扫描。
经过一段时间后会有类似扫描结果,如图3-22
图3-22探测结果
3)分析主机漏洞
根据图3-22的探测结果,进行分析并模拟入侵
(1)端口漏洞分析
主要是21,23,25,53,80,139,443,3389端口。
端口21:
FTP端口,攻击者可能利用用户名和密码过于简单,甚至可以匿名登录到目标主机上,并上传木马或病毒进而控制目标主机。
端口23:
Telnet端口,如果目标主机开放23端口,但用户名和密码过于简单,攻击破解后就可以登录主机并查看任何消息,设置控制目标主机。
端口25:
25端口,为SMTP服务器所开放,主要用于发送邮件。
端口53:
53端口,为DNS服务器所开放,主要用于域名解析。
端口80:
HTTP端口,80端口最易受到攻击。
端口139:
NETBIOS会话服务端口,主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。
139端口可以被攻击者利用,建立IPC连接入侵目标主机,获得目标主机的root权限并放置病毒或木马。
端口443:
网页浏览端口,主要用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。
端口3389:
这个端口的开放使安装终端服务和全拼输入法的Windows2000服务器存在着远程登录并获得超级用户权限的严重漏洞。
(2)FTP漏洞分析
在扫描结果中可以看到目标主机FTP可以匿名登录,我们直接利用流光提供的入侵菜单进行FTP登录,单击密码破解成功的帐号,然后选择“连接”,直接通过FTP连接到了目标主机上,如下图3-23。
图3-23FTP匿名漏洞利用成功
此时,立即弹出命令行下FTP登录界面,如图3-24,我们就可以往目标主机上传任何文件,包括木马,病毒。
可见,FTP匿名登录的危险性是巨大的。
图3-24命令行下FTP登录界面
(3)IPC$漏洞分析:
再次扫描后得到扫描结果如下图3-25,分析后发现我们与192.168.20.245建立了空连接。
即利用IPC$,我们可以与目标主机建立一个空的连接而无须用户名和密码。
利用此空连接,我们还可以得到目标主机上的用户列表。
此处我们得知他有6个用户。
图3-25扫描结果图
于是我们尝试利用已经得到的用户Administrator入侵目标主机,首先不妨猜测密码为“123456”,在命令行用net命令与目标主机连接,如图3-26
图3-26命令行下键入net命令连接
使用穷举法反复实验,猜解密码直到命令行显示:
“命令成功”,表明与目标主机建立连接成功,如图3-27
图3-27ipc连接成功
这时我们可以先把目标主机得硬盘映射到本机上,然后可以把本机的任何文件(如病毒、木马等),用copy指令上传到目标主机上,如图3-28
图3-28映射远程主机的c盘到本地并拷贝文件到这盘中
再通过在“C:
\DocumentsandSettings\AllUsers\「开始」菜单\程序\启动”目录下写入启动脚本,如图3-29
图3-29开机脚本
等目标主机重启之时自动运行我们得程序,或者用工具PSEXEC直接运行我们上传得文件也可以,如图3-30
图3-30利用ipc管道远程执行命令
也就是说我们几乎控制了目标主机。
可见,IPC$漏的破坏性也是巨大的。
5.实验报告要求
写出实验完成过程,查找资料,回答实验任务的相关问题。
6.分析与思考
1)在Windows操作系统中安装并运行Nmap,扫描目标主机端口,嗅探网络服务和操作系统,提交扫描步骤和扫描结果。
(注意:
在安装Nmap之前必须先安装Winpcap)
2)用Windows自带的安全工具(如TCP/IP筛选器)或者安装网络防火墙尝试关闭某个指定的端口(如139,21,23,3389等),以防止通过某个端口来扫描或入侵主机。
3)完成流光Fluxay实验,查看扫描结果,了结各种漏洞原理和可能造成的危害,根据提示下载并安装补丁包,修补完毕后再次扫描,查看扫描结果中相应的漏洞是否已经去掉。
4)把Administrator的密码设得复杂些,观察流光是否还能使用简单字典暴力破解成功,若不行,请用流光中自带的其他复杂字典再试一次,通过这个过程学会设置符合复杂性要求的密码。