环境:vm虚拟机、kali 2019.4、NAT网络模式。
kali开机,dc-1开机。
step1.打开终端,输入命令“ifconfig”查看当前网段(要将靶机与kali设置在同一网段下)。
step2.打开nmap,扫描自己网段下的主机,发现靶机。(在终端中输入nmap或者加帮助选项nmap -h 即可查看帮助手册)可以看到靶机开放了22号端口提供ssh服务以及80端口http服务。
step3.打开浏览器,访问靶机,这里可以发现,该站点使用了“Drupal” cms建站系统,可以尝试使用该cms相应的工具或漏洞。
step4.打开msfconsole,搜索drupal相关内容。法相相关模块后,选择一个较新的使用,更具参数要求设置相关参数,最后 run!成功后,输入shell,发现我目前以www-data身份在服务器上(在终端输入msfconsole进入后可以使用help查看使用手册)
step5.使用python获得一个交互式终端 点击这里查看python pty相关解释 这里发现了flag1.txt,它提示我们CMS需要一个配置文件,且非常有用。
step6.翻可疑的文件,文件夹,找到配置文件(/sites/default/sittings.php)这里发现了该站点使用的mysql的用户名和密码
step7.登录MySQL,进入相关数据库(use drupaldb;)发现users表(show tables;),查看表(select * from users;),发现该表里有uid、name、pass、mail等字段,我只关心用户名和密码,为了好看,只查询name和pass字段。这里看见两个用户名和密码,不过这密码加密了,毕竟谁会设置一个这么丑陋的密码。既然密码被加密了,无法使用,那我们就把密码改掉。加密一般会有一个脚本来执行(前后端都有可能)接下来就是翻文件,找到这个脚本。
step8.找到这个脚本(在 sctipts/password-hash.sh/),其实这个也不用找哈,打开Google或者百度搜索该cms框架忘记密码的解决办法,就可以看到别人做好的明文和密文,可以拿来直接用,也有文章直接说明它是如何加密的(我还是直接找到了这个脚本)运行该脚本,获得123456的密文,将它复制下来。
step9.登录MySQL,将admin用户的密码改成123456
step10.登录该网站,发现flag3(在Find content里)根据提示找passwd,在/etc/passwd中发现flag4用户,进入flag4用户家目录,打开flag4.txt,提示下面要去root目录下找下一个flag。
step11.进入root目录的时候提示不得行,那就要考虑提权了,利用find命令,先看一下我现在能用啥(不受限的命令)。flag3中提醒了“-exec”,这里发现find(点击这里查看find命令详解)执行“find . -exec '/bin/sh' \;" 这时我们以及拿到了root权限,成功打开thefinalflag.txt。到此,渗透结束。
总结
对于第一次玩这个的小伙伴(我)还是要花一些时间和精力慢慢来。刚开始nmap扫描的结果告诉我们这台服务器既有HTTP服务也有ssh服务,那我的思路就有了两个方向,可以对http下手,也可以对ssh下手,但翻了一圈,对ssh下手的线索不太多,我是只考虑到了暴力破解,但走http的话,先访问一下就发现它用了CMS建站系统,这向来是重要的突破口(我看了其他小伙伴暴力破解ssh好像没有成功)。之后一路顺利的拿到flag3,拿flag4的时候有点迷,看到flag3,感觉帮助并不大,flag4完全就是翻出来的。在最后一步才感觉到了flag3的作用。在最后步其实我需要的就是一个执行命令的途径,根据提示和查阅资料得知可以 find [...] -exec [...] 来执行命令,find后面的命令并不重要,重要的是-exec后面的命令,只要让这条find命令顺利执行就可以了。
OUTOFTEN 发布了1 篇原创文章 · 获赞 0 · 访问量 19 私信 关注