下载安装DC-1,并启动DC-1
下载地址:https://www.five86.com/downloads/DC-1.zip
下载完解压后会有一个以.ova为后缀的文件,直接在VM种用”打开虚拟机”,在设置中修改网络适配器为NET模式。
在这里记一下DC-1的MAC地址,等下用的到。
启动DC-1时开机就好,不用输用户名和密码登录(你也不知道呀)
打开kali,查看kali的IP地址和子网掩码
因为DC-1和kali现在属于同一个网段,查看kali的IP和子网掩码是为了获得DC-1的网络号
DC-1的网络号是:192.168.252.0/24
使用nmap扫描在一个网段内的主机(主机发现)
根据之前记下的MAC地址确定扫描到的主机哪一个是DC-1,因为MAC地址是主机的唯一标识。
可以得到DC-1的IP是:192.168.252.136
使用nmap扫描DC-1,看有什么服务是可利用的(端口扫描)
可以看出靶机的80端口是开启的,也就是我们可以在网页上查看这个IP
在kali的浏览器上查看一下DC-1的IP
打开如下图,需要用户名和密码才可以登录。
看到了网站管理系统,里面可能会有漏洞。
漏洞检测
使用Metasploit这款开源的安全漏洞检测工具检测这个网站的漏洞
Msfconsole是Metasploit框架下的一个接口,它提供了一个“一体化”集中控制台,并允许您高效访问MSF中可用的所有选项。
-q参数是为了启动Msfconsole不出现乱七八糟的字符
用search查找drupal的漏洞,我参考的b站的up主说扫描出来的这些漏洞他都试了,只有API注入这个模块是可以渗透的(小白不配,直接使用了这个结论)。
使用该模块并查看还可以设置的选项
用use命令使用API注入这个模块(类似于在多个数据库时使用某一个数据库)。
使用show options命令查看还有什么可以设置的选项,当Required=yes时表明还需要我们对他进行设置。
Rhost文件里面定义了主机和IP地址的对应关系,并且这个文件还需要我们设置。
用set命令设置DC-1靶机的rhost文件
使用exploit命令执行攻击
当你用metasploit(漏洞检测工具)成功的入侵一台Windows主机后,你会获得一个Meterpreter 的Shell。
Meterpreter session 1 opened (192.168.252.135:4444 -> 192.168.252.136:48245)表示你已经用192.168.252.135这台主机成功侵入192.168.252.136这台主机,也就是靶机。
查看靶机中有什么文件
可以看到有一个flag1.txt
查看flag1.txt
Flag1.txt中提示你要去找CMS中的一个配置文件。
打开靶机的一个shell,以靶机用户的身份使用靶机
使用python -c "import pty;pty.spawn( '/bin/bash')"开启交互模式。
用ls查看有什么可用的文件
用find命令查找CMS的配置文件会更快一点
看到有一个默认的配置文件。
查看这个默认的配置文件
可以看到有一个数据库文件,还有flag2。
Flag2中提示我们暴力破解不可取并且需要提权。
数据库中有一个drupaldb数据库。
登录数据库,查看drupaldb数据库中的内容
查看并使用drupaldb数据库
查看drupaldb数据库中的表
可以看到有一个users的表,估计就是存储网站注册用户的信息的表。
查看users表
表中有用户名name,加密的用户密码pass。
如果pass是明文,我们就可以直接登录192.168.252.136这个网站了,但现在不是,就要想想办法了。
网上搜CMS加密的方法不少,并且大多数都是用了md5算法,要是解密的话也只能使用穷举法,成本太高,并不适用。
换个思路,用户注册时使用的明文,存储在数据库时是密文,那后台一定使用了某种方法将明文经过一定的运算产生了密文,那我们也用这种方法产生一个我们知道的密码的密码,替换数据库中的密文,这样不就可以登录靶机网站了嘛。
B站up主说密文产生的脚本是/scripts/password-hash.sh,俺找了找,找到了!
使用这个脚本产生tql的密文
用产生的这个密文替换数据库中admin用户的密文,这样admin用户的密码就是tql啦
原步骤登录drupaldb数据库,修改admin用户的密码
使用update命令更新数据库中的某一项
使用用户名是admin,密码是tql的用户名和口令登录靶机网站
可以找到一个flag3的链接
查看flag3
Flag3提示我们要用find提权。
在靶机的shell中查找有什么flag的信息
可以看到有一个flag4.txt和thefinalflag.txt文件,thefinalflag.txt的权限是root,也就要听flag3的提示提高自己的DC-1靶机中的权限。
查看flag4.txt中的内容
他还是想要我们进入靶机的root权限。
按权限查找文件,如果错误则重定向到“黑洞”
-perm:按照权限查找
-type:查是块设备b、目录d、字符设备c、管道p、符号链接l、普通文件f
-u=s:拥有者是s权限
S权限:设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码。
查看/usr/bin/find文件
这个文件是有root权限的,且在这个权限下可读可写可执行。
提权
-exec:对匹配的文件执行该参数所给出的shell命令。形式为command {} \;。
查看thefinalflag.txt
Well done!!!
至此,全部完成!
参考资料:
https://www.bilibili.com/video/BV1Sz4y197MA?t=1785