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,通常会绕过一些安全限制。