第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
你的思考路径应该是这样的:
-
看 22 端口 (SSH):版本是 OpenSSH 9.2p1。
- 想法 :OpenSSH 9.x 版本目前相对较新,公开的未授权访问或 RCE(远程代码执行)漏洞极少。结论:暂时放弃 SSH,除非有弱口令。
-
看 21 端口 (FTP) :版本是 vsftpd 3.0.3。
-
想法 :vsftpd 是一个经典的 FTP 服务。版本号 3.0.3 是一个非常关键的情报!在渗透测试中,版本号就是武器 。我的大脑会立刻检索:"vsftpd 3.0.3 有没有历史漏洞?"
- 补充知识 :vsftpd 2.3.4 有个著名的笑脸后门(Backdoor),但 3.0.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
- 在 Kali 的 Firefox 浏览器里输入:
-
预期与后续:
-
如果看到一个登录框 -> 尝试默认密码或 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进行目录扫描。 -
结果:只扫出了两个东西:
-
index.html(首页,大小10701,这是正常的)。 -
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.html和server-status。 -
解读 :
server-status是 Apache 自带的状态页,不需要密码就能访问(但这里返回了 403,说明被管理员禁用了)。 -
推论 :除了这个默认首页,目前没有发现其他隐藏的管理后台、上传页面或 API 接口。
总结:这个页面告诉你什么?
-
坏消息:目标没有复杂的 Web 应用,没有现成的登录框,没有插件漏洞可挖。
-
好消息 :你拿到了服务器的真实物理路径 (
/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(漏洞利用),所以**"信息收集"要更细致**。
-
先搞定 FTP 的匿名登录,这是目前看起来最实在的突破口。
-
如果 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 登录失败的现状,解题逻辑通常是这样的:
-
你需要提升权限:既然普通用户进不去,你需要找漏洞。
-
回到 Web 服务(HTTP) :你最开始是在浏览器里访问了
192.168.100.200。- 还记得你之前下载的
apache2.conf吗?虽然 FTP 拿不到,但如果你能通过 Web 服务器(比如利用目录遍历漏洞、或者文件包含漏洞)把apache2.conf下载下来,里面可能会有数据库的密码 、其他用户的密码哈希 ,或者是网站的配置漏洞。
- 还记得你之前下载的
-
检查是否有其他端口:
在 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等)。

成功收集信息