自学渗透测试第28天(协议补漏与FTP抓包)
10.3 协议补漏与FTP抓包第28天核心目标掌握FTP/SMTP/Telnet协议细节理解其工作模式、命令-响应模型及认证过程。熟练使用Wireshark进行协议分析能够捕获、过滤、分析特定协议的数据包并提取关键信息。深刻理解明文协议的安全风险通过抓包实战直观认识凭证在网络中明文传输的危险性。模块一明文协议深度解析1.1 FTP协议详解两种模式主动模式客户端打开一个随机端口N连接服务器的21端口命令端口然后告诉服务器自己的N1端口服务器主动从20端口连接客户端的N1端口进行数据传输。问题客户端防火墙可能阻止服务器主动连接。被动模式客户端连接服务器的21端口后服务器打开一个随机高端口P并告知客户端客户端再主动连接服务器的P端口进行数据传输。现代网络常用。关键命令与响应USER username指定用户名。PASS password指定密码。LIST列出目录内容。RETR filename下载文件。STOR filename上传文件。331需要密码。230登录成功。150文件状态正常准备打开数据连接。1.2 SMTP协议与TelnetSMTP用于发送邮件。HELO client.example.com MAIL FROM:senderexample.com RCPT TO:recipienttarget.com DATA Subject: Test This is a test email. . QUITTelnet远程登录协议所有交互明文传输。模块二Wireshark抓包实战2.1 环境搭建与捕获搭建FTP服务器在Kali或另一台Linux机器上安装并启动vsftpd。sudo apt install vsftpd sudo systemctl start vsftpd # 创建一个测试用户 sudo useradd -m testftp sudo passwd testftp启动Wireshark选择正确的网卡如eth0开始捕获。设置显示过滤器在捕获前或后使用过滤器ftp || ftp-data聚焦FTP流量。2.2 捕获与分析FTP会话发起FTP连接从客户端使用ftp命令或FileZilla连接服务器。ftp 服务器IP # 输入用户名 testftp密码 ls quit分析捕获的数据包TCP三次握手找到FTP服务器21端口的SYN, SYN-ACK, ACK包。FTP命令流追踪TCP流右键 - Follow - TCP Stream。你将清晰看到220 (vsFTPd 3.0.3) USER testftp 331 Please specify the password. PASS your_plaintext_password_here 230 Login successful. ...数据连接观察建立数据连接端口20或随机高端口的过程和传输的文件列表。2.3 提取敏感信息在Wireshark中使用编辑 - 查找分组搜索字符串“PASS”可以直接定位到包含密码的数据包。使用文件 - 导出对象 - FTP可以尝试提取通过FTP传输的文件。模块三安全风险与防御3.1 明文协议的风险凭证窃取攻击者通过中间人攻击或监听网络流量可直接获取用户名和密码。数据泄露传输的文件内容可被直接读取。命令注入在某些不安全的实现中可能通过特制命令进行注入。3.2 安全替代方案FTP - SFTP/FTPSSFTP基于SSH协议使用加密通道。FTPSFTP over SSL/TLS对控制通道和数据通道进行加密。Telnet - SSH使用SSH进行加密的远程管理。SMTP - SMTPS/STARTTLS使用SSL/TLS加密邮件传输。模块四当日达标实战任务4.1 协议分析挑战搭建并抓包按照模块二指导搭建FTP环境完成一次完整的FTP登录和文件列表操作并使用Wireshark捕获全过程。分析报告从捕获的数据包中回答以下问题本次FTP会话使用的是主动模式还是被动模式你是如何判断的找到并记录下登录使用的用户名和密码。找到数据连接建立的整个过程端口号变化。将包含“LIST”命令和其响应的TCP流内容截图保存。4.2 模拟攻击与防御思考风险演示假设你是一个攻击者在同一个局域网内。请描述你如何利用ARP欺骗第19天内容结合本课的抓包技术窃取目标主机的FTP登录凭证。写出简要的攻击步骤。防御方案作为管理员你需要确保公司内部的文件传输安全。请给出将明文FTP服务迁移到加密方案的具体步骤建议包括服务端配置和客户端连接方式。4.3 扩展协议分析SMTP抓包使用telnet或swaks工具手动连接一个公共的SMTP服务器如smtp.gmail.com:587需要TLS可先尝试本地搭建的postfix发送一封测试邮件并用Wireshark捕获流量。观察在未使用STARTTLS的情况下邮件内容是否明文传输。模块五常见问题与解决方案5.1 抓不到FTP流量检查网卡确保Wireshark捕获的是正确的、有流量的网络接口。检查过滤器确认没有设置过于严格的捕获过滤器。开始时可以不设过滤器捕获所有流量再分析。本地回路流量如果FTP客户端和服务器在同一台机器localhost流量可能走lo环回接口需要捕获该接口。5.2 看不懂数据包内容使用追踪流右键点击相关数据包选择“追踪流 - TCP流”这是分析应用层协议最直观的方式。学习协议RFC对于复杂协议查阅官方RFC文档是终极解决方案。5.3 现代服务默认加密问题很多现代FTP/SMTP服务器默认强制使用加密FTPS/SMTPS导致抓包看不到明文。解决为了学习可以在本地搭建旧版本或明确配置为允许明文传输的服务仅限实验环境。在实际测试中遇到加密协议是正常且应该鼓励的。明日预告第29天将进行Linux SUID/SGID基础实验这是Linux本地提权中最常见、最经典的路径之一。我们将通过手动查找、分析和利用配置错误的SUID文件来深入理解Linux权限模型的安全隐患。