1.信息收集
端口扫描:
端口信息及思路:
22: ssh OpenSSH 8.2p1 —— 公钥、私钥
80:http —— 源码找线索、目录扫描、功能点测试
139和455:samba —— enum4linux工具枚举
nmap扫描出了80端口的robots.txt文件,显示目录/tiki/,访问该目录:
这是一个名为tiki的CMS系统,看到CMS系统一般就想到想办法登录到管理员,然后注入反弹shell。
2.枚举samba服务
那么查看一下samba吧,用enum4linux扫描靶机:
发现用户名:silky
samba share枚举中发现名为Notes的Share可以利用,尝试无用户名密码登录:
smbclient -U '' //192.168.71.153/Notes
连接成功!查看内容,Mail.txt文件中泄露了silky账户的CMS系统密码,还提示了CMS存在0 day漏洞。
3.利用CMS漏洞绕过管理员认证
利用账号密码silyky:51lky571k1登录tiki CMS系统:
在Silkys Homepage 中写道,他发现了一个CVE漏洞,但是不知道编号。这又是在提示需要利用这个漏洞。我去exploit-db搜了“tiki”,显示漏洞很多不知道哪一个。后来发现可以点击“History”按钮查看编辑记录,这篇文档编辑记录很多,显然有猫腻。
终于在第二篇编辑记录里发现了CVE编号。
漏洞CVE号:CVE-2020-15906
漏洞描述:在Tiki 21.2 之前的 版本中,tiki-login.php 在 50 次无效登录尝试后将管理员密码设置为空值。
想到用burpsuite登录50次,把拦截的登录数据包发送到“Intruder”模块,payload设置在密码处,然后随便加50个密码,我这里是数字1-50,然后进行攻击。
攻击完成之后,再次登录会有以下提示:50次以上密码错误,账号已停用。
再次拦截登录数据包,把密码部分删除,即为“空”。
然后点击“Intercept is on”切换为off状态,放出修改后的数据包,页面跳转,以admin用户登录成功!
登录之后,这里找了半天反弹shell注入点,但是事实证明我想多了,在Wiki里面有一个“Credentials”页面,直接把账号密码写里面了!(-。-!)
4.获取root权限
用账户密码silky:Agy8Y7SPJNXQzqA登录ssh:
连接成功!当前用户为silky,发现该用户拥有sudo权限:
用sudo su命令,输入silky的密码,提权到root用户成功!获取到flag。
5.总结
这个靶机是我没查别人的wp,完全靠自己做出来的第一个靶机。虽然简单吧,比如提权,可以说是完全没考察什么知识点,但是自己从头到尾做出来还是很开心的,怎么说呢,一个小菜鸟通过努力学习还是有进步哒!
这个靶机主要是考察对N day漏洞的利用能力,这个靶机提示了漏洞编号,很多是没有提示的,就是要靠自己对靶机应用的理解去筛选。
还有就是我把简单的问题想复杂了,看到CMS首先想到的是注入反弹shell,验证了好几个功能甚至还上传了shell.php文件,然后找不到触发点。但是这个靶机是把账密直接给你了,不然开22端口干嘛?直接反弹shell就好了啊!所以要综合考虑,大多数情况下,靶机的每个开放端口都不白给。