1. 安装靶机

  1. 靶机下载之后,用VMware Workstation导入 .ova
    双击 .ova文件后使用VMware Workstation打开
    在这里插入图片描述

  2. 选择靶机的存储路径
    在这里插入图片描述

  3. 此处注意,导入靶机后,需要将其网路模式由“桥接模式”改为“NAT模式”
    在这里插入图片描述在这里插入图片描述

  4. 安装成功后,打开虚拟机,界面如下图
    在这里插入图片描述

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

2.1 发现主机(靶机)

  1. 通过ifconfig命令得到linux主机的IP,
    由此得知靶机的网段是192.168.228.0/24
    在这里插入图片描述

  2. 使用nmap -sP 类似ping扫描,进行ping扫描后会显现出在线(做出响应)的主机,使用该命令扫描可以轻易获取目标信息而不会被轻易发现
    靶机的IP是192.168.228.135
    在这里插入图片描述

2.2 目标主机端口扫描

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

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

    从命令的输出结果得知:
    HTTP的80端口处于“open”
    SSH的22端口处于“filtered”
    在这里插入图片描述

3. 启动BurpSuite

  • 启动BurpSuite,运行火狐浏览器代理服务
    在这里插入图片描述在这里插入图片描述

4. 挖掘漏洞

4.1 访问HTTP服务

  1. 访问192.168.228.135:80
    在这里插入图片描述

  2. 已知数据库中有一个用户是tom,通过这个信息在search.php处发现注入点
    使用BurpSuite抓包,将HTTP报文保存到指定文件/home/yao/桌面/1.txt,利用sqlmap工具尝试注入
    在这里插入图片描述在这里插入图片描述

4.2 sqlmap 注入

在这里插入图片描述在这里插入图片描述

4.2.1 获取数据库信息

在这里插入图片描述
在这里插入图片描述

4.2.2 获取Staff库中表名

在这里插入图片描述

在这里插入图片描述

4.2.3 获取Staff库中Users表的列名

在这里插入图片描述在这里插入图片描述

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

  • 这里是admin及其密码,
  • 之后的实验需要使用这对密码登陆web的manage.php
    在这里插入图片描述在这里插入图片描述

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

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

在这里插入图片描述在这里插入图片描述

  • User.txt如下:
    在这里插入图片描述
  • Pass.txt如下
    在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

4.2.12 获取数据库的所有用户

在这里插入图片描述在这里插入图片描述

5. Web页面登陆

5.1 登陆admin

  • 在 4.1.4 节中,密码在之前已经被获取
    在这里插入图片描述在这里插入图片描述

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

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

在这里插入图片描述在这里插入图片描述

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

  • 传参file=…/…/…/…/etc/passwd获取文件信息
    在这里插入图片描述

6. 利用knockd打开ssh

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

在这里插入图片描述

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

  2. 接下来进行端口的敲击打开:(这里使用的是nc命令)
    在这里插入图片描述

  3. nmap 查看22端口是否开启
    在这里插入图片描述

  4. 利用上面保存的字典User.txt和Pass.txt,使用hydra对目标SSH服务进行爆破
    获得部分的SSH账户和密码
    在这里插入图片描述

7. SSH连接目标主机

  1. 爆破出来有3个用户可用,其中有个管理员用户
    先选用joeyt用户登录,查看其隐藏目录,发现都是空的。不是管理员用户
    在这里插入图片描述
    在这里插入图片描述

  2. 选用chandlerb用户登录,查看其隐藏目录,发现都是空的。不是管理员用户
    在这里插入图片描述

  3. 选用janitor用户登录,查看其隐藏目录,发现有个secrets-for-putin目录。进一步查看,获得新的密码。janitor是管理员用户。
    在这里插入图片描述在这里插入图片描述

  4. 将爆破出新的密码添加到之前的字典Pass.txt中,再次使用hydra对目标SSH服务进行爆破。
    在这里插入图片描述在这里插入图片描述

8. 提权

  1. 使用新爆出的fredf用户登陆SSH
    在这里插入图片描述

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

    通过阅读其python源文件,可以知道该py文件就是将一文件内容追加到指定文件的后面。(由于存在sudo权限,可以向/etc/passwd文件写入拥有root权限的账户)
    在这里插入图片描述在这里插入图片描述

  3. 使用Openssl构造加密密码,构造新用户admin
    将新用户的信息保存到临时文件/tmp/admin中
    在这里插入图片描述

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

  5. 查看/etc/passwd,确认是否添加成功
    在这里插入图片描述

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

在这里插入图片描述在这里插入图片描述

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐