渗透测试实验_DC-9 靶机渗透

文章目录

  • 1. 安装靶机
  • 2. 使用kali linux 进行信息收集
    • 2.1 发现主机(靶机)
    • 2.2 目标主机端口扫描
  • 3. 启动BurpSuite
  • 4. 挖掘漏洞
    • 4.1 访问HTTP服务
    • 4.2 sqlmap 注入
      • 4.2.1 获取数据库信息
      • 4.2.2 获取Staff库中表名
      • 4.2.3 获取Staff库中Users表的列名
      • 4.2.4 获取Staff库中Users表的username和password数据
      • 4.2.5 获取Staff库中StaffDetails表的列名
      • 4.2.6 获取Staff库中StaffDetails表中的指定信息id,firstname,lastname
      • 4.2.7 获取users库中表名
      • 4.2.8 获取users库中UserDetails表的列名
      • 4.2.9 获取users库中UserDetails表的username和password
      • 4.2.10 获取当前连接的数据库名
      • 4.2.11 判断当前用户是否为数据库管理员,是的话返回True,否的话返回False
      • 4.2.12 获取数据库的所有用户
  • 5. Web页面登陆
    • 5.1 登陆admin
    • 5.2 在web页面底部发现"File does not exist"
    • 5.3 选择manage.php进行尝试文件包含漏洞,成功
  • 6. 利用knockd打开ssh
  • 7. SSH连接目标主机
  • 8. 提权
  • 9. 切换用户获得root权限,成功!!!

1. 安装靶机

  1. 靶机下载之后,用VMware Workstation导入 .ova
    双击 .ova文件后使用VMware Workstation打开
    渗透测试实验_DC-9 靶机渗透_第1张图片

  2. 选择靶机的存储路径
    渗透测试实验_DC-9 靶机渗透_第2张图片

  3. 此处注意,导入靶机后,需要将其网路模式由“桥接模式”改为“NAT模式”
    渗透测试实验_DC-9 靶机渗透_第3张图片渗透测试实验_DC-9 靶机渗透_第4张图片

  4. 安装成功后,打开虚拟机,界面如下图
    渗透测试实验_DC-9 靶机渗透_第5张图片

2. 使用kali linux 进行信息收集

2.1 发现主机(靶机)

  1. 通过ifconfig命令得到linux主机的IP,
    由此得知靶机的网段是192.168.228.0/24
    渗透测试实验_DC-9 靶机渗透_第6张图片

  2. 使用nmap -sP 类似ping扫描,进行ping扫描后会显现出在线(做出响应)的主机,使用该命令扫描可以轻易获取目标信息而不会被轻易发现
    靶机的IP是192.168.228.135
    渗透测试实验_DC-9 靶机渗透_第7张图片

2.2 目标主机端口扫描

  1. namp -sS 指使用TCP的SYN进行扫描(半开放扫描,只发送SYN,如果服务器回复SYN,ACK,那么证明端口开放,不建立完整连接)

    nmap -A 指大多数功能开关,后接IP即可
    –script=vuln 指漏洞扫描

    从命令的输出结果得知:
    HTTP的80端口处于“open”
    SSH的22端口处于“filtered”
    渗透测试实验_DC-9 靶机渗透_第8张图片

3. 启动BurpSuite

  • 启动BurpSuite,运行火狐浏览器代理服务
    渗透测试实验_DC-9 靶机渗透_第9张图片渗透测试实验_DC-9 靶机渗透_第10张图片

4. 挖掘漏洞

4.1 访问HTTP服务

  1. 访问192.168.228.135:80
    渗透测试实验_DC-9 靶机渗透_第11张图片

  2. 已知数据库中有一个用户是tom,通过这个信息在search.php处发现注入点
    使用BurpSuite抓包,将HTTP报文保存到指定文件/home/yao/桌面/1.txt,利用sqlmap工具尝试注入
    渗透测试实验_DC-9 靶机渗透_第12张图片渗透测试实验_DC-9 靶机渗透_第13张图片

4.2 sqlmap 注入

在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第14张图片

4.2.1 获取数据库信息

在这里插入图片描述
渗透测试实验_DC-9 靶机渗透_第15张图片

4.2.2 获取Staff库中表名

在这里插入图片描述

渗透测试实验_DC-9 靶机渗透_第16张图片

4.2.3 获取Staff库中Users表的列名

在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第17张图片

4.2.4 获取Staff库中Users表的username和password数据

  • 这里是admin及其密码,
  • 之后的实验需要使用这对密码登陆web的manage.php
    在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第18张图片

4.2.5 获取Staff库中StaffDetails表的列名

在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第19张图片

4.2.6 获取Staff库中StaffDetails表中的指定信息id,firstname,lastname

在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第20张图片

4.2.7 获取users库中表名

在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第21张图片

4.2.8 获取users库中UserDetails表的列名

在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第22张图片

4.2.9 获取users库中UserDetails表的username和password

  • 注意!得到的这些username和password分别存储到/home/yao/桌面/下的User.txt和Pass.txt文件中。这两个文件是后面实验需要用到的字典,用来爆破SSH密码使用的。

在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第23张图片

  • User.txt如下:
    渗透测试实验_DC-9 靶机渗透_第24张图片
  • Pass.txt如下
    渗透测试实验_DC-9 靶机渗透_第25张图片

4.2.10 获取当前连接的数据库名

在这里插入图片描述
渗透测试实验_DC-9 靶机渗透_第26张图片

4.2.11 判断当前用户是否为数据库管理员,是的话返回True,否的话返回False

在这里插入图片描述
渗透测试实验_DC-9 靶机渗透_第27张图片

4.2.12 获取数据库的所有用户

在这里插入图片描述渗透测试实验_DC-9 靶机渗透_第28张图片

5. Web页面登陆

5.1 登陆admin

  • 在 4.1.4 节中,密码在之前已经被获取
    渗透测试实验_DC-9 靶机渗透_第29张图片渗透测试实验_DC-9 靶机渗透_第30张图片

5.2 在web页面底部发现"File does not exist"

  • 同时,浏览其他的页面welcome.php、manage.php、addrecord.php,发现都有这个提示,说明可能存在文件包含漏洞
  • 传参file=…/…/…/…/etc/passwd获取文件信息

渗透测试实验_DC-9 靶机渗透_第31张图片渗透测试实验_DC-9 靶机渗透_第32张图片

5.3 选择manage.php进行尝试文件包含漏洞,成功

  • 传参file=…/…/…/…/etc/passwd获取文件信息
    渗透测试实验_DC-9 靶机渗透_第33张图片

6. 利用knockd打开ssh

  1. knockd.conf是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中,也可以直接用nc敲击端口。
  • 传参?file=…/…/…/…/etc/knockd.conf获取文件信息
  • 得到了3个端口7469,8475,9842

渗透测试实验_DC-9 靶机渗透_第34张图片

  1. 如果试探连接 7469,8475,9842 这三个端口,将会开放iptables防火墙对于22端口的流量,敲击9842,8475,7469 三个端口,会过滤连接22端口的流量。

  2. 接下来进行端口的敲击打开:(这里使用的是nc命令)
    渗透测试实验_DC-9 靶机渗透_第35张图片

  3. nmap 查看22端口是否开启
    渗透测试实验_DC-9 靶机渗透_第36张图片

  4. 利用上面保存的字典User.txt和Pass.txt,使用hydra对目标SSH服务进行爆破
    获得部分的SSH账户和密码
    渗透测试实验_DC-9 靶机渗透_第37张图片

7. SSH连接目标主机

  1. 爆破出来有3个用户可用,其中有个管理员用户
    先选用joeyt用户登录,查看其隐藏目录,发现都是空的。不是管理员用户
    在这里插入图片描述
    渗透测试实验_DC-9 靶机渗透_第38张图片

  2. 选用chandlerb用户登录,查看其隐藏目录,发现都是空的。不是管理员用户
    渗透测试实验_DC-9 靶机渗透_第39张图片

  3. 选用janitor用户登录,查看其隐藏目录,发现有个secrets-for-putin目录。进一步查看,获得新的密码。janitor是管理员用户。
    渗透测试实验_DC-9 靶机渗透_第40张图片渗透测试实验_DC-9 靶机渗透_第41张图片

  4. 将爆破出新的密码添加到之前的字典Pass.txt中,再次使用hydra对目标SSH服务进行爆破。
    渗透测试实验_DC-9 靶机渗透_第42张图片渗透测试实验_DC-9 靶机渗透_第43张图片

8. 提权

  1. 使用新爆出的fredf用户登陆SSH
    渗透测试实验_DC-9 靶机渗透_第44张图片

  2. 这个用户可以sudo使用root权限在运行一个test程序(/opt/devstuff/dist/test/test),而且不需要密码
    /opt/devstuff/dist/test/test是一个python编译后的文件。

    通过阅读其python源文件,可以知道该py文件就是将一文件内容追加到指定文件的后面。(由于存在sudo权限,可以向/etc/passwd文件写入拥有root权限的账户)
    渗透测试实验_DC-9 靶机渗透_第45张图片渗透测试实验_DC-9 靶机渗透_第46张图片

  3. 使用Openssl构造加密密码,构造新用户admin
    将新用户的信息保存到临时文件/tmp/admin中
    渗透测试实验_DC-9 靶机渗透_第47张图片

  4. 使用test程序将构造的用户和密码追加到/etc/passwd中
    这条命令需要注意相对路径!
    在这里插入图片描述

  5. 查看/etc/passwd,确认是否添加成功
    渗透测试实验_DC-9 靶机渗透_第48张图片

9. 切换用户获得root权限,成功!!!

渗透测试实验_DC-9 靶机渗透_第49张图片渗透测试实验_DC-9 靶机渗透_第50张图片

你可能感兴趣的:(生产实习,linux,web安全,安全,网络,sql)