综合实战(3)

第1步:先看自己是谁(ifconfig / ip addr)

你打开Kali第一件事不是急着扫全网,而是先敲 ifconfig或者 ip addr

  • 想的是什么:我现在在哪段网络?我拿到的IP是什么?网关大概在哪?

  • 报告里的线索 :你看到 inet 192.168.100.100,掩码 255.255.255.0,说明你在 192.168.100.0/24 这个C段

  • 目的:后面所有扫描范围都基于这个结论来定,不会瞎扫整个B段浪费时间。

第2步:网段存活探测(nmap -sn)

接下来你才做 主机发现,而不是直接扫端口:

复制代码
nmap -sn 192.168.100.0/24
  • 为什么不用 -p-全端口先扫?

    • 惯性思维坑点:很多新手一上来就 nmap -A,流量大、慢,还容易触发IDS/防火墙。

    • 正确思路:先用 ARP Ping (同网段)或 ICMP Ping(跨网段)确认「谁活着」。

  • 你看到的结果

    • 192.168.100.100 → 是你自己

    • 192.168.100.200 → 是新发现的目标

  • 这时候你心里要有数 :接下来所有操作,目标IP就是 192.168.100.200

💡 补充技巧:如果 -sn没扫到机器,别急着放弃,可以换思路:

  • 试试 nmap -Pn 192.168.100.0/24(跳过Ping,直接扫端口)

  • 或者换时间策略:nmap -T4 -sn,避免被限速。

阶段二:端口与服务识别 ------ 找「能打进去的门」

核心思维:端口 = 入口,服务 = 攻击面。

第3步:扫目标端口(nmap -sV)

针对上一步发现的 192.168.100.200

复制代码
nmap -sV -p 1-1000 192.168.100.200
  • 为什么先扫1-1000?

    • 90%的常见服务都在前1024个端口里,效率高。
  • 你期待看到什么

    • 22 → SSH

    • 80/443 → Web

    • 3306 → MySQL

    • 445 → SMB

  • 推理动作

    • 如果有 80端口:下一步就去浏览器访问,看是不是老版本CMS(比如WordPress、Discuz)。

    • 如果有 22端口:记录版本,后面可以查有没有EXP。

    • 如果啥都没开:说明可能只开了高位端口,再补一个 nmap -p-

⚠️ 惯性思维提醒:

很多同学看到「没开常见端口」就放弃了,其实可以试:

复制代码
nmap -sS -p 10000-65535 192.168.100.200

第一步:处理干扰信息(清理 Nmap 警告)

你看到的 mass_dns: warning: Unable to open /etc/resolv.conf...虽然不影响这次扫描结果,但会干扰视线,甚至在后续需要反向解析域名时出问题。

  • 思考逻辑 :在做渗透测试时,保持输出界面的干净整洁非常重要,这能让你一眼看到关键信息,不被警告淹没。

  • 动作

    复制代码
    # 备份并重建 resolv.conf 文件
    echo "nameserver 8.8.8.8" > /etc/resolv.conf

    (补充:这是为了告诉系统用谷歌的 DNS,避免后续操作因为找不到 DNS 服务器而弹警告。)


第二步:深度解读图一的核心情报(思考链)

看着终端里这三行结果:

  • 21/tcp open ftp vsftpd 3.0.3

  • 22/tcp open ssh OpenSSH 9.2p1 ...

  • 80/tcp open http Apache httpd 2.4.65

你的思考路径应该是这样的:

  1. 看 22 端口 (SSH):版本是 OpenSSH 9.2p1。

    • 想法 :OpenSSH 9.x 版本目前相对较新,公开的未授权访问或 RCE(远程代码执行)漏洞极少。结论:暂时放弃 SSH,除非有弱口令。
  2. 看 21 端口 (FTP) :版本是 vsftpd 3.0.3

    • 想法 :vsftpd 是一个经典的 FTP 服务。版本号 3.0.3 ​ 是一个非常关键的情报!在渗透测试中,版本号就是武器 。我的大脑会立刻检索:"vsftpd 3.0.3 有没有历史漏洞?"

      • 补充知识 :vsftpd 2.3.4 有个著名的笑脸后门(Backdoor),但 3.0.3 没有那个后门。不过,它依然可能存在其他漏洞,或者配置不当(比如允许匿名登录)。结论:这是一个重点怀疑对象。
  3. 看 80 端口 (HTTP):Apache 2.4.65。

    • 想法 :这是 Web 服务,通常是信息量最大、突破口最多 的地方。Linux 上的 Apache 2.4.x 本身漏洞不多,但**网站程序(CMS)**可能会有漏洞。

    • 惯性思维 :如果我扫了端口没看到明显的漏洞利用点,我通常会习惯性地访问 http://192.168.100.200看看长什么样。结论:必看,而且是下一步的首要动作。


第三步:下一步的具体动作(按优先级排序)

根据上述分析,你的下一步动作应该是:

动作 A:浏览器访问 Web 服务(最高优先级)
  • 目的:确认 Web 应用的内容。也许是个开源 CMS(WordPress、Drupal),也许是自定义页面,也许有 robots.txt。

  • 操作

    • 在 Kali 的 Firefox 浏览器里输入:http://192.168.100.200
  • 预期与后续

    • 如果看到一个登录框 -> 尝试默认密码或 SQL 注入。

    • 如果看到一个首页 -> 右键查看源码,找注释、路径、技术栈(比如有没有 wp-content目录)。

    • 如果看到 403 -> 可能需要目录爆破。

动作 B:检查 FTP 服务状态(vsftpd 3.0.3)
  • 目的:确认 FTP 是否允许匿名登录,或者是否存在已知 CVE。

  • 操作

    复制代码
    # 1. 尝试匿名登录
    ftp 192.168.100.200
    # 用户名输入 anonymous,密码留空或随便输
  • 预期与后续

    • 如果登录成功 -> 直接拖文件下来,或者上传 Webshell(如果有权限的话)。

    • 如果失败 -> 记下这个服务,继续往下走。

FTP 21端口):死胡同

  • 你尝试登录 FTP (ftp 192.168.100.200),输入用户名 kali失败。

  • 系统提示 530 This FTP server is anonymous only.这个FTP只允许匿名登录)。

动作 C:目录爆破(DirBusting)------ 针对 80 端口的深度挖掘
  • 思考逻辑 :人眼浏览网页只能看到表面,机器可以帮你找隐藏的目录(如 /admin, /backup, /phpmyadmin)。

  • 操作(等你访问完网页,对网站有个大致印象后做):

    复制代码
    dirb http://192.168.100.200 /usr/share/wordlists/dirb/common.txt

Web 80端口):撞南墙

  • 你运行了 dirb进行目录扫描。

  • 结果:只扫出了两个东西:

    1. index.html(首页,大小10701,这是正常的)。

    2. server-status(状态码403,Forbidden,禁止访问)。

  • 关键点server-status是 Apache 的一个状态页面,用来给管理员看服务器负载的。你访问它会显示 403,说明你没有权限看。但这暴露了一个重要信息:目标的 Web 服务运行在 Apache 上,而且开启了这个模块。

现在的情报板是这样的:

端口 服务 状态 思考权重
80 Apache 2.4 只有 index.html (Web 是最大入口)
21 vsftpd 3.0.3 只允许匿名 (看看能不能下载配置文件)
22 OpenSSH 9.2 无漏洞 (除非有弱口令)

思考结论 :正面强攻(Exploit)不行,因为没有现成的 RCE 漏洞。那我们要走**"曲线救国"** 路线:信息泄露 + 弱口令 + 配置错误

现在先登录浏览器看网站信息

这个页面叫做 Apache2 Debian Default Page(Apache2 的默认测试页)。

在渗透测试中,"默认页面"通常等于"无效页面"或"占位符" 。但这并不代表没有信息,相反,这种页面往往能提供关于目标环境的关键线索

让我们像侦探一样,从这张图里榨取真正有用的情报

1. 核心信息:确认 Web 应用状态

  • 现象:页面显示 "It works!"。

  • 解读 :服务器的 Apache 服务是正常运行的。

  • 推论 :这是一个纯粹的静态页面,目标机器的 Web 服务目前没有挂载任何自定义的网站程序(比如 WordPress、DVWA、或者公司业务系统)。这意味着你无法通过寻找特定 CMS 的漏洞来直接突破(比如没有登录框,没有插件路径)。

2. 路径线索:/var/www/html/

注意看这段文字:

"replace this file (located at /var/www/html/index.html)"

这是整页文字里最有价值的一句话

  • 解读 :它直接告诉你,当前这个页面的物理存放位置在服务器的 /var/www/html/目录下。

  • 渗透思维(下一步动作)

    • 在 Linux 系统中,/var/www/html/是 Web 根目录。

    • 如果我能找到办法上传文件,或者存在其他漏洞(如文件包含),这个路径就是我写入 Webshell 的目标地址

    • 同时,这也暗示了服务器的文件系统结构,为后续提权时的路径猜测做准备。

3. 配置文件线索:/etc/apache2/

再看这段话:

"Configuration layout ... /etc/apache2/"

  • 解读:它列出了 Apache 的配置文件夹。

  • 渗透思维

    • 虽然你作为访客无法直接读取这些文件,但在后续的**"本地文件包含 (LFI)"** 或**"路径穿越"**攻击中,如果目标存在漏洞,你可以尝试去读取这些配置文件。

    • 例如,读取 /etc/apache2/apache2.conf可能会泄露服务器的一些全局配置,甚至有时能找到数据库连接字符串。

4. 排除法:没有隐藏目录

  • 现象 :DIRB 扫出来的结果是 index.htmlserver-status

  • 解读server-status是 Apache 自带的状态页,不需要密码就能访问(但这里返回了 403,说明被管理员禁用了)。

  • 推论 :除了这个默认首页,目前没有发现其他隐藏的管理后台、上传页面或 API 接口


总结:这个页面告诉你什么?

  1. 坏消息:目标没有复杂的 Web 应用,没有现成的登录框,没有插件漏洞可挖。

  2. 好消息 :你拿到了服务器的真实物理路径 ​ (/var/www/html/),这是一个极好的锚点

下一步的"思维跳跃"(老师给你的建议)

既然 Web 页面是个空的,你有两个大方向可以走:

  • 方向 A:回到 FTP (21端口)

    • 既然 Web 没戏,就去搞 FTP。还记得那个 anonymous only吗?

    • 动作 :尝试 ftp 192.168.100.200,用户名输入 anonymous,密码随便填或直接回车。

    • 目的 :看看匿名用户能不能下载文件。如果能下载,也许能下载到这个 /var/www/html/目录下的备份文件(比如 .bak.sql),里面可能有密码。

  • 方向 B:尝试"目录回退"或"子域名"

    • 有时候 Web 服务配置了多个站点,或者默认页面只是个伪装。

    • 动作 :在浏览器里访问 http://192.168.100.200/.git/http://192.168.100.200/backup/

    • 目的 :测试是否存在目录遍历备份文件泄露

  • 方向 C:检查 80 端口的其他服务

    • Apache 默认是 80 端口,有没有可能 8080 或其他端口也有服务?

    • 动作 :重新扫一下端口 nmap -sV -p 1-65535 192.168.100.200,看看有没有漏掉的 HTTP 服务。

老师的最终建议

现在你的"武器库"里没有直接的 Exploit(漏洞利用),所以**"信息收集"要更细致**。

  1. 先搞定 FTP 的匿名登录,这是目前看起来最实在的突破口。

  2. 如果 FTP 也没东西,再考虑用 Nikto ​ 或 Wpscan​ 对 80 端口做一次更深度的扫描(虽然它是默认页,但工具能发现一些 DIRB 看不到的 Header 信息或备份文件)。

登录成功看看里面有什么

下一步:把它下载下来!

现在你需要把这个文件"搬"到你的 Kali 机器上。

ftp>提示符后面,输入下面这个命令并回车:

复制代码
get bitacora-01.txt

回到你的 Kali 终端后,输入下面这个命令来查看文件里写了什么:

尝试 SSH 登录(最有可能)

既然有了疑似用户名(tripulante7),我们可以试试能不能通过 SSH(远程登录)进去。

  • 在 Kali 终端输入:

    复制代码
    ssh tripulante7@192.168.100.200
  • 密码可能是什么?

    • 试试空密码(直接回车)。

    • 试试常见的密码:password, 123456, tripulante, admin

    • 或者,密码可能就在那篇日记里(比如 NoSoyAlone之类的,虽然这篇日记没写明显密码,但有时其他日志里有)

SSH 的"拒绝"是什么意思?

你看到的 Permission denied意味着:

  • 系统里有 tripulante7这个用户。

  • 但是,这个账户的密码不是tripulante7,也不是tripulanteX,更不是空密码。

  • 作者并没有打算让你通过"猜密码"的方式直接进入系统。

3. 真正的突破口在哪里?

你之前在 FTP 里遇到了 550 Failed to open file错误,这说明 FTP 匿名用户无法读取 /etc/apache2/apache2.conf

结合 SSH 登录失败的现状,解题逻辑通常是这样的:

  1. 你需要提升权限:既然普通用户进不去,你需要找漏洞。

  2. 回到 Web 服务(HTTP) :你最开始是在浏览器里访问了 192.168.100.200

    • 还记得你之前下载的 apache2.conf吗?虽然 FTP 拿不到,但如果你能通过 Web 服务器(比如利用目录遍历漏洞、或者文件包含漏洞)把 apache2.conf下载下来,里面可能会有数据库的密码其他用户的密码哈希 ,或者是网站的配置漏洞
  3. 检查是否有其他端口

    在 Kali 终端输入 nmap -sV 192.168.100.200,看看除了 21 (FTP) 和 22 (SSH),还有没有其他开放的端口(比如 80, 443, 8080, 3306 等)。

总结

别再纠结密码了,tripulante7这个账户现在是个死胡同

回到前面的端口扫描,尝试"子域名"爆破(如果上面都不行)

有时候漏洞不在根目录,而在子域名。试试:

复制代码
ffuf -w /usr/share/wordlists/seclists/discovery/dns/subdomains-top1million-110000.txt -u http://FUZZ.192.168.100.200

发现不行,尝试ssh爆破

阶段三:拿到权限 ------ 从「能看见」到「能控制」

第一步:建立 SSH 连接

直接在终端输入以下命令登录(虽然你刚才用 Hydra 测出来了,但正式登录建议不加 -v参数,界面更干净):

复制代码
ssh tripulanteX@192.168.100.200

系统提示 Are you sure you want to continue connecting (yes/no)?时输入 yes

提示输入密码时,输入你刚刚破解出来的 candy1(输入时屏幕不会显示字符,输完直接回车)。


第二步:初步信息收集(Reconnaissance)

登录成功后,你的命令行提示符会变成类似 tripulanteX@orca:~$的样子。

这时候千万别乱动,先按部就班地收集情报。输入以下命令,把结果记下来:

1. 查看当前用户是谁,以及有哪些特权
复制代码
id

uid是不是 0(root),以及有没有加入一些奇怪的组(比如 sudo, docker, adm)。

2. 查看当前目录下有什么(找隐藏文件)
复制代码
ls -la

重点看有没有 .txt, .sh, .py结尾的文件,或者名字叫 flag, user.txt, proof的文件。

3. 重点突破:检查 .logs-sombrios目录(名字就很可疑)

目录名字翻译过来是"黑暗日志"或"隐秘日志",这通常是出题人藏线索的地方。

  • 操作:

    复制代码
    cd .logs-sombrios
    ls -la
    cat *
  • **预期:**​ 里面可能有密码、下一个用户的 SSH 密钥、或者提示你去某个特定端口/文件找东西

    cat /etc/passwd

找找除了 tripulanteX之外,还有没有其他看起来像人名的用户(比如 orca, admin, secundario等)。

成功收集信息

相关推荐
bucenggaibian1 小时前
搭建CMD编译C语言环境
linux·c语言·windows
weixin_BYSJ19872 小时前
基于Django的非物质文化遗产管理系统设计与实现(源码 + 文档)98950
java·javascript·spring boot·python·django·flask·php
ylscode2 小时前
微软发布针对 Windows 11 的 KB5089573 补丁,以修复“周二补丁日”安装问题
windows·安全·microsoft·安全威胁分析
weixin_BYSJ19872 小时前
springboot鹿邑县旅游网站99312(源码+文档)
java·javascript·spring boot·python·django·flask·php
yaoxin52112312 小时前
419. 现代 Java IO 最佳实践 - 写入文本文件
java·windows·python
printfLILEI13 小时前
php中的类与对象以及反序列化
linux·开发语言·php
IOT.FIVE.NO.114 小时前
2026-05-30-Codex更新后对话消失和沙盒失效:适用人群、问题背景、解决方式与原因分析
人工智能·windows
华科大胡子14 小时前
AI开发者的网络卡点:Anthropic连接超时
开发语言·php
bill328227804315 小时前
AE 的 Animation Composer 描边动效玩法 + 极简 MG 制作流程(含示例)
php·composer