DC-1靶机渗透测试

DC-1靶机渗透测试

前言:这是我的第一个靶机教程,刚开始自己打的时候也查询了很多资料,也是一步步学过来的。现在也把自己的学习过程和思路也记录一下,希望对大家有帮助。

视频讲解:DC-1靶机讲解_哔哩哔哩_bilibili

一、信息收集

  1. 对目标ip/端口进行探测

    使用nmap进行扫描探测: nmap介绍:nmap是用来探测计算机网络上的主机和服务的一种安全扫描器。为了绘制网络拓扑图,Nmap的发送特制的数据包到目标主机,然后对返回数据包进行分析。Nmap是一款枚举和测试网络的强大工具。

    nmap使用教程:

  2. 先查询攻击机ip

    命令:

    ifconfig
    

在这里插入图片描述

​ 得到攻击机的ip为:192.168.2.128

  1. 收集靶机ip

    因为是靶机,其ip地址我们在创建虚拟机的时候,网络设置和攻击机需要设定成一样的。我们找靶机的ip,就需要在和攻击机的相同网段下查找

    扫一下攻击机所在的网段:

    命令:

    arp-scan -l
    

在这里插入图片描述

​ 查看靶机的ip地址,对应的IP是192.168.2.130

  1. 对靶机进行端口探测

    使用nmap扫描:

    命令:

    nmap -sV -p- 192.168.2.130
    

    -sV 扫描目标主机端口上运行的软件信息

    -p- 扫描全部端口0-6553

在这里插入图片描述

80端口是常见的业务端口,访问一下

  1. 访问80端口:192.168.2.130:80

    在这里插入图片描述

    使用Wappalyzer插件查看指纹信息:

    CMS是

    Drupal

    Apache 2.2.22

    PHP 5.4.45

    jQuery 1.4.4–>

    可以利用cms漏洞来进行突破

二、漏洞查找及利用

  1. 什么是cms呢?

    CMS是"Content Management System"的缩写,意为"内容管理系统"。 它采用统一的信息组织的方法即分类,对同一类型的信息进行分类,且每一类信息都可以进行新建(Add)、查看(View)、编辑(Edit)和删除(Delete)四种不同的操作。除了使用分类的方式组织信息以外,又采用了统一的用户和权限管理对信息的使用进行控制,即构成了一个完整的信息组织和管理的体系。内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较新的市场.
    简单来说,就是建的房子的模板,可能是欧式,可能是中式,也可能是小平房

    为什么要知道cms?

    使用的cms可能会出现漏洞,不同的cms有对应的不同的漏洞,知道了目标网站用的是什么cms,再去网上收集这个cms爆过的漏洞,就可以实现漏洞的利用

    ​ 简单来说,知道了这个小区的的模板房是什么模式的,再去找其对应的之前爆过的漏洞,然后进行利用

  2. 寻找漏洞

    直接百度drupal漏洞,就可以看到其爆过的漏洞
    在这里插入图片描述

    那我们怎么利用这些漏洞呢?

  3. 使用Metasploit

    其是目前世界上领先的渗透测试工具,也是信息安全与渗透测试领域最大的开源项目之一。

    【P3】最强渗透工具 - metasploit(安装配置及使用教程详解)-优快云博客

    简单来说,我们可以利用Metasploit来**查找漏洞,利用**漏洞

    • 使用Metasploit查找漏洞

      kali是自带Metasploit的

      打开Metasploit

      命令:

      msfconsole
      

      再查找drupal的相关漏洞

      命令:

      search Drupal
      

在这里插入图片描述

 这里我们使用第二个

 命令:

 ```shell
 use 2
 ```

在这里插入图片描述

  • 使用Metasploit利用漏洞

    • 看需要什么必要参数

      命令:

      show missing
      
    • 需要配置目标ip地址

      命令:

      set rhosts 192.168.2.130
      
    • 运行

      命令:

      run
      

      在这里插入图片描述

    这时候我们就利用了drupal的漏洞,进入到了靶机的系统

    先shell

    shell
    

    再利用python来反弹一个shell,得到可交互的shell

    命令:

    python -c ‘import pty;pty.spawn(“/bin/bash”)

    这个命令利用了pty模块的功能,该模块是Python标准库的一部分,提供了对伪终端(pseudo-terminal)的支持。伪终端允许程序模拟终端交互,就像在命令行界面中操作一样。

    1.导入pty模块‌:首先,它导入pty模块,这是使用伪终端功能的第一步。‌

    2.使用pty.spawn()函数‌:这个函数用于创建一个子进程,并将该子进程与一个伪终端关联起来。在这个例子中,子进程是执行/bin/bash命令的bash shell。‌

    3.创建交互式shell‌:通过pty.spawn()函数,可以在Python程序中启动一个交互式shell,这样你就可以在Python脚本中执行bash命令,就像在终端中直接输入命令一样。

    在这里插入图片描述

三、获取flag

  1. flag1

    得到shell了,先ls,查看一些文件发现有flag1.txt

    在这里插入图片描述

    命令:

    cat flag1.txt
    

    得到了flag1,其给的之后的线索是去找cms的配置文件

  2. flag2

    不知道drupal的配置文件路径啊?直接网上搜(这就是知道cms的好处)

在这里插入图片描述

得到配置文件的路径:sites/default/settings.php

cat查看settings.php文件

在这里插入图片描述

发现flag2和数据库的账号密码:

用户名:dbuser

密码:R0ck3t

  1. flag3

    居然知道了数据库的账号密码,登入一下

    命令:

    mysql -u dbuser -p R0ck3t
    

    在这里插入图片描述

    注意:进入了数据库之后,就需要使用数据库的相对于的语句,mysql数据库的查询语句需要在后面加";"号

    1.查看数据库

    show databases;
    

    发现有两个数据库:

    第一个数据库information_schema

    其是MySQL自带的,它提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等,通过information_schema我们可以窥透整个MySQL实例的运行情况。

    简单来说,就是储存了一些数据库的基础信息

    具体可以看这篇文章:mysql中information_schema说明 - 一叶扁舟_test - 博客园

    第二个数据库drupaldb,很显然,这个数据库是我们这个靶站cms相关的一个数据库,我们可以先看看drupaldb

    2.先需要使用drupaldb

    use drupaldb;
    

    3.再查看drupaldb

    show tables;
    

在这里插入图片描述

发现有个用户表,查看一下

命令:

select * from users;

在这里插入图片描述

可以得到两个用户的用户名和密码,一个是admin的,一个是Fred的。

这里密码明显是经过加密的,无法直接改密码来获取admin用户的权限。

所以我们接下来就有两个思路:

要找到这个加密算法是什么,如果是弱加密算法,可以试试直接破译。然后登入

还有一种方法:因为它加密密码肯定是有一套源码的,而且大概率是存储在本机(靶机)上,如果我们可以直接找它加密密码的脚本,利用这个脚本,来解密或者更改密码。

我们试试第二种方法

先退出数据库(脚本肯定不会存在数据库里面),我们需要去靶机的文件目录查找看看

先搜索一下以password命名相关的文件(这是一个推测,我们猜加密脚本的命名可能带有password字段啥的)

命令:

find  / -name password*

在这里插入图片描述

可以看到var/www/scripts下有个.sh的脚本。看名字是猜测是以hash加密密码的脚本

尝试直接运行脚本

在这里插入图片描述

发现,我们可以利用这个脚本是可以加密一个我们已知的密码,如"mynewpassword"

那有什么用呢?
如果我们加密一个我们已知的密码,然后再进入数据库更改admin用户的密码,是不是就可以达到登入admin用户的目的

先得到一个加密后的密码:123456

在这里插入图片描述

得到123456的加密后的值了,这时候我们再利用这个加密后的值,替换掉数据库中users的密码,就可以实现登入这个用户了

这个时候我们再进入数据库,去更改admin的密码

mysql -u dbuser -p R0ck3t

进入数据库后:

update users set pass='加密后的密码' where name='admin';

这个时候,admin的密码就变成123456了(在数据库中还是以加密值的形式存储着)

在这里插入图片描述

知道了admin的账户和密码,登入网页看看

在这里插入图片描述

登入进去,找到了flag3

  1. flag4

    看flag4的提示信息,翻译过来就是:

    特殊的权限会帮助我们找到passwd,但是需将用到 -exec 命令来找出隐藏的信息

    按照意思来,我们需要找到有特殊权限的用户,并且尝试着提权

    这时候我们查看一下靶机有哪些的用户(这个用户和数据库里的admin/Fred不是一个概念的,我们要找的是靶机、也就是Linux系统的用户,刚刚数据库里的是drupal这个网站的用户)

    那我们去哪里找有特殊权限的用户呢?

    可以去看看/etc/passwd文件

    其是Linux系统的用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读®操作。

    Linux /etc/passwd 内容详解_etcpasswd文件中包含的信息有-优快云博客

在这里插入图片描述

发现有名字为flag4的用户

知道了用户名,其它什么信息也没有,结合flag2的提示,我们试试爆破密码。可以使用hydra工具来爆破密码

由于主机开放了22ssh端口,使用ssh连接

命令:

hydra -l flag4 -P /usr/share/john/password.lst 192.168.2.130 ssh

-l 指定用户名

-P 指定要爆破的密码所需要的字典,这里我们用的是hydra自带的字典

192.168.2.130 ssh 我们需要使用ssh连接靶机,然后爆破密码

在这里插入图片描述

我们通过爆破,得到了flag4用户的密码:orange

这个时候,我们有了靶机的用户名和其对于的密码,是不是就可以光明正大的登入靶机了(不再像之前我们用msf工具利用cms漏洞登入靶机获取shell)

如何登入呢?之前我们扫描端口的时候,发现靶机是不是开放了ssh连接,所以,我们可以通过ssh连接登入靶机

使用ssh连接靶机:

ssh flag@192.168.2.130

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

然后输入密码orange

连接上后,我们先ls查看当前目录文件

在这里插入图片描述

发现flag4.txt,查看flag4.txt,得到flag4

  1. thefinalflag

    看flag4的提示信息,说到我们能不能以root权限的方法再来一遍?

    其实就是提示我们要进行提权或者越权,这时候我们可以用到suid提权

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

    suid提权全解(超细)-优快云博客

    首先,我们先看我们可以使用那些提权命令

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

    find / -perm -4000
    

在这里插入图片描述

发现find指令可以使用SUID命令,可以利用其进行提权

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 环境。

在这里插入图片描述

使用提权命令,查看我们当前的用户,发现是root用户的权限

进入root目录

ls,找到thefinalflag.txt

四、总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值