前言
本教程专为网络安全初学者设计,采用最详细的"傻瓜式"操作步骤,确保零基础用户也能完全看懂并实际操作。所有内容均以实践为导向,包含操作流程、注意事项、常见错误分析和解决方法,以及对应的防御措施。
因为内容较多,建议 1、逐步学习,2、个别技术点有困惑时,及时查询,再继续往下。
第一章 域名信息收集
1.1 Whois查询
工具详细解释
● whois命令:Linux/Windows系统自带的WHOIS查询工具
● 功能作用:直接在命令行中查询域名注册信息
● 使用方法:
win+R 输入 cmd ,启动windows自带的命令行
whois example.com (目标网站,根据情况修改)
注意事项
● 不同注册商返回的信息格式可能不同
● 部分信息可能被隐私保护服务隐藏
常见错误及解决
● 错误:查询结果为空
● 解决:检查域名拼写,尝试其他WHOIS服务器
工具准备:
● 在线Whois查询网站: https://whois.domaintools.com/
● 命令行工具:Windows自带的命令提示符
● 备用工具: https://who.is、https://www.whois.com/
详细操作步骤:
1. 打开浏览器,访问 https://whois.domaintools.com/
2. 在搜索框中输入目标域名(例如:example.com)
3. 点击"Whois Lookup"按钮
4. 等待查询结果加载完成
5. 仔细查看返回的信息,重点关注:
○ 域名注册人姓名
○ 注册人邮箱地址
○ 域名注册商
○ 域名创建日期和过期日期
○ 域名服务器(DNS)
6. 可点击“Raw Whois”查看原始数据,进一步挖掘隐藏信息
7. 记录关键时间节点,用于判断域名生命周期风险
注意事项:
● 部分域名启用了隐私保护,可能看不到真实注册信息
● 不同国家的域名注册信息格式可能略有不同
● 避免频繁查询同一域名,以免被网站封禁IP
● 注意区分国际域名(.com/.net)与国别域名(.cn/.uk)的信息结构差异
常见错误分析:
1. 错误:查询结果为空
○ 原因:域名不存在或输入错误
○ 解决:检查域名拼写,确认域名是否有效,尝试使用其他Whois平台交叉验证
2. 错误:显示"请求过于频繁"
○ 原因:短时间内查询次数过多,触发平台防护机制
○ 解决:等待10-15分钟后再试,或更换网络环境(如切换Wi-Fi/有线),也可使用代理工具降低频率
防御措施
详细防御步骤:
1. 启用域名隐私保护
○ 登录域名注册商管理后台(如阿里云、腾讯云、GoDaddy)
○ 找到域名管理页面
○ 选择需要保护的域名
○ 开启"隐私保护"或"WHOIS隐私"功能
○ 确认开启并支付相关费用(通常免费或少量费用)
○ 验证是否生效:通过外部Whois工具再次查询,确认显示为代理信息
2. 使用隐私邮箱
○ 注册时使用专门的隐私保护邮箱(如注册商提供的转发邮箱)
○ 避免使用个人真实邮箱或企业主邮箱
○ 定期检查并更新联系方式,防止因过期导致域名被回收
3. 定期检查Whois信息
○ 每月登录注册商后台检查一次
○ 确认隐私保护功能处于开启状态
○ 及时更新过期信息,确保域名续费和管理不受影响
4. 设置域名锁
○ 启用“注册局锁”或“域名转移锁”,防止未经授权的转移操作
防御注意事项:
● 确保隐私保护功能已生效,可通过在线工具验证
● 定期更换管理密码,使用强密码(至少12位,含大小写、数字、符号)
● 不要在公开平台泄露域名管理账号信息
● 注意隐私保护服务的有效期,部分服务商需手动续期
防御常见错误:
1. 错误:忘记开启隐私保护
○ 风险:真实信息暴露在Whois查询中,易遭钓鱼、社工攻击
○ 解决:立即登录注册商后台开启该功能,并追溯是否有信息泄露记录
2. 错误:使用个人邮箱注册
○ 风险:邮箱地址被收集用于钓鱼攻击或撞库
○ 解决:更换为专门的业务邮箱,并设置强密码和二次验证
1.2 DNS信息收集
收集方法
工具准备:
● nslookup命令(Windows/macOS/Linux自带) 域名查询工具
● dig命令(Linux/macOS自带,Windows需安装)功能更强大的DNS查询工具
● 图形化工具:DNSQuerySniffer、Wireshark
详细操作步骤:
1. 打开命令提示符(Windows按Win+R,输入cmd)
2. 输入命令:nslookup example.com
3. 查看返回结果,重点关注:
○ 域名服务器(DNS Server)
○ IP地址(Address)
○ 邮件服务器(MX记录)
○ 名称服务器(NS记录)
4. 查询特定记录类型:
○ 查询MX记录:nslookup -type=mx example.com
○ 查询NS记录:nslookup -type=ns example.com
○ 查询TXT记录:nslookup -type=txt example.com
○ 查询SOA记录:nslookup -type=soa example.com
5. 尝试区域传输测试(仅限授权测试):
nslookup -type=any example.com @ns1.example.com
注意事项:
● 部分DNS服务器可能限制查询频率或禁止区域传输
● 确保网络连接正常,DNS解析通畅
● 不同操作系统的命令输出格式可能略有差异
● 区域传输测试仅在获得明确授权时进行,避免误判为攻击行为
防御措施
详细防御步骤:
1. 配置DNSSEC
○ 登录域名注册商管理后台
○ 找到DNSSEC设置选项
○ 生成DS记录并提交给注册商
○ 启用DNSSEC验证功能,防止DNS欺骗和缓存污染
2. 限制DNS查询
○ 在DNS服务器配置中设置查询频率限制(如BIND的rate-limiting)
○ 只允许授权的IP地址进行区域传输(AXFR/IXFR)
○ 禁用递归查询对公网开放,防止被用作放大攻击跳板
○ 定期检查DNS日志,发现异常查询及时处理
3. 隐藏内部信息
○ 避免在DNS记录中暴露内部网络结构(如db-server、admin-pc等命名)
○ 使用通用的主机名,避免使用敏感词汇
○ 定期审查DNS记录,删除不必要的信息
○ 对内部DNS与外部DNS进行分离,实施视图(Split-DNS)策略
防御注意事项:
● DNSSEC配置复杂,建议由专业人员操作,错误配置可能导致解析失败
● 过度限制可能影响正常业务访问,需平衡安全与可用性
● 定期测试DNS配置的正确性,确保解析稳定
● 使用权威DNS服务商时,确认其是否提供自动DNSSEC支持
第二章 网络扫描
2.1 主机发现
收集方法
工具准备:
● Nmap: https://nmap.org/download.html
● Advanced IP Scanner: https://www.advanced-ip-scanner.com/
● Fing(移动端): https://www.fing.com/
详细操作步骤(使用Nmap):
详细操作步骤(使用Advanced IP Scanner):
1. 下载并安装Advanced IP Scanner
2. 打开软件,点击"扫描"按钮
3. 软件会自动扫描局域网内的所有设备
4. 扫描完成后,查看设备列表,包括IP地址、MAC地址、设备名称、厂商信息等
5. 可导出为CSV或HTML格式用于后续分析
注意事项:
● 扫描前确保有合法授权,避免法律风险
● 避免在生产环境中进行大规模扫描,防止影响关键业务
● 注意扫描可能产生的网络流量,尤其是ICMP和ARP广播
● 移动端可使用Fing进行快速扫描,适合现场排查
防御措施
详细防御步骤:
1. 配置防火墙规则
○ 打开Windows防火墙设置或企业级防火墙(如Cisco ASA、FortiGate)
○ 点击"高级设置"
○ 在"入站规则"中新建规则
○ 选择"自定义"规则类型
○ 设置阻止ICMPv4和ICMPv6请求(可选择性关闭Echo Reply)
○ 应用规则到所有网络类型(域、专用、公用)
○ 对非必要端口关闭响应
2. 启用IDS/IPS系统
○ 安装Suricata或Snort等入侵检测系统
○ 配置规则库,启用扫描检测规则(如GPL scan rules)
○ 设置告警和自动阻断功能(如配合pfSense或Security Onion)
○ 定期更新规则库,订阅Emerging Threats等开源规则源
3. 网络分段
○ 将网络划分为多个子网(如办公网、服务器区、IoT设备区)
○ 在子网之间设置访问控制列表(ACL)
○ 限制不同部门之间的直接访问,实施最小权限原则
○ 使用VLAN技术隔离广播域,配合802.1X认证增强安全性
防御注意事项:
● 防火墙配置错误可能导致业务中断,建议先在测试环境验证
● IDS/IPS需要定期维护和调优,避免误报过多导致“告警疲劳”
● 网络分段会增加管理复杂度,需配套使用集中管理平台
● 建议启用日志审计与SIEM系统进行关联分析
防御常见错误:
1. 错误:防火墙规则配置错误
○ 风险:合法业务被阻断,影响工作效率
○ 解决:先在测试环境验证,逐步上线,保留回滚方案
2. 错误:IDS规则过于敏感
○ 风险:产生大量误报,掩盖真实威胁
○ 解决:根据实际环境调整规则灵敏度,关闭非相关规则
2.2 端口扫描
收集方法
工具准备:
● Nmap(同上)
● Angry IP Scanner: https://angryip.org/
● Masscan(高速扫描): https://github.com/robertdavidgraham/masscan
详细操作步骤:
1. 打开命令提示符
2. 输入命令:nmap -p 1-1000 192.168.1.1
○ -p参数指定扫描的端口范围
○ 1-1000表示扫描1到1000号端口
○ 192.168.1.1是目标IP地址
3. 可升级为全端口扫描:nmap -p- 192.168.1.1
4. 使用SYN扫描(隐蔽性更高):sudo nmap -sS -p 1-1000 192.168.1.1
5. 等待扫描完成,查看开放端口列表
6. 分析端口对应的服务(如22端口对应SSH,80端口对应HTTP,443对应HTTPS)
7. 导出结果:nmap -p 1-1000 192.168.1.1 -oX scan.xml
注意事项:
● 扫描速度不宜过快,避免触发防御机制(可使用–max-rate 100限制速率)
● 注意扫描可能被目标系统记录(防火墙、HIDS)
● 扫描结果需要结合实际情况分析,避免误判
● 使用Masscan时注意其不进行服务识别,需配合Nmap使用
防御措施
1. 关闭不必要的端口
○ 在Windows中:打开"服务"管理器,停止不需要的服务(如Print Spooler、Remote Registry)
○ 在Linux中:使用systemctl disable [服务名]命令禁用服务
○ 定期检查开放端口:netstat -an | find "LISTEN"(Windows)或netstat -tuln(Linux)
○ 使用lsof -i :端口号定位具体进程
2. 配置端口过滤
○ 在防火墙中设置只允许必要的端口通信
○ 例如:只允许80、443端口对外服务
○ 阻止所有其他入站连接,实施默认拒绝策略
○ 对管理端口(如22、3389)限制源IP访问
3. 使用端口敲门技术
○ 安装PortKicker等端口敲门软件
○ 配置敲门序列,只有正确敲门才能访问特定端口(如先发SYN到2222,再开22端口)
○ 定期更换敲门序列,防止被暴力破解
○ 结合fail2ban实现自动封禁
防御注意事项:
● 关闭端口前确保不影响正常业务,与相关部门确认
● 防火墙规则需要定期审查,删除冗余规则
● 端口敲门技术可能影响用户体验,建议用于高安全场景
● 所有防御措施应形成文档,便于审计与交接
第三章 服务识别
3.1 操作系统识别
收集方法
详细操作步骤:
1. 使用Nmap进行操作系统识别
2. 输入命令:nmap -O 192.168.1.1
○ -O参数启用操作系统识别功能
○ Nmap会通过分析TCP/IP协议栈的特征来识别操作系统
3. 查看扫描结果中的"OS details"部分
4. 注意识别结果的准确性(通常会给出多个可能的操作系统)
5. 可添加–osscan-guess增强识别能力
6. 结合TTL、窗口大小、TCP选项等特征进行人工辅助判断
注意事项:
● 操作系统识别不是100%准确,受防火墙、NAT、中间设备影响
● 部分系统可能伪装或修改协议栈特征(如Windows防火墙启用后行为变化)
● 扫描结果需要结合其他信息验证(如开放端口、服务版本)
● 避免对关键系统频繁扫描,防止引发异常
防御措施
1. 修改协议栈特征
○ 在Windows中:修改注册表HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters
○ 添加或修改以下键值:
■ DefaultTTL:修改TTL值(如改为64或128)
■ EnablePMTUDiscovery:禁用路径MTU发现(设为0)
■ TcpMaxConnectBacklog:修改连接队列长度
■ DisableIPSourceRouting:禁用源路由(设为2)
2. 使用协议栈混淆技术
○ 安装专门的协议栈混淆软件(如iptables + TPROXY、或专用防火墙规则)
○ 随机化TCP初始序列号(ISN)
○ 修改TCP窗口大小特征,避免典型值
○ 伪装成其他操作系统的协议特征(如模拟Linux响应)
3. 定期更新系统
○ 及时安装操作系统补丁
○ 更新网络协议栈实现
○ 关注安全公告,修复已知漏洞
○ 对虚拟化环境同步更新Hypervisor层
防御注意事项:
● 协议栈修改可能影响网络性能或兼容性,需充分测试
● 混淆技术可能导致某些应用异常(如VoIP、视频会议)
● 需要专业人员操作,避免配置错误导致断网
● 建议在非生产环境先行验证
3.2 服务版本识别
收集方法
详细操作步骤:
1. 使用Nmap识别服务版本
2. 输入命令:nmap -sV 192.168.1.1
○ -sV参数启用服务版本探测
○ Nmap会尝试连接开放端口,获取服务版本信息
3. 查看扫描结果中的"Version"列
4. 分析服务版本是否存在已知漏洞(结合CVE数据库)
5. 可使用–version-all强制探测所有端口,提高识别率
6. 导出结果用于漏洞管理平台导入
注意事项:
● 版本识别可能触发服务异常(如脆弱服务崩溃)
● 部分服务会隐藏版本信息(如Nginx默认不显示)
● 需要结合漏洞数据库(如NVD、Exploit-DB)进行分析
● 注意扫描频率,避免被IDS/IPS捕获
防御措施
1. 隐藏服务版本信息
○ Web服务器(Apache/Nginx):修改配置文件,关闭版本显示
■ Apache:在httpd.conf中添加ServerTokens Prod 和 ServerSignature Off
■ Nginx:在nginx.conf中添加server_tokens off;
○ 数据库服务:修改配置,禁止远程版本查询(如MySQL的version_comment)
○ 应用服务:在响应头中移除X-Powered-By、X-AspNet-Version等字段
○ 使用反向代理隐藏后端真实信息
2. 及时更新服务软件
○ 建立软件版本管理清单(CMDB)
○ 订阅安全公告(如厂商邮件列表、RSS)
○ 制定更新计划,定期升级服务版本
○ 对关键服务实施灰度发布
3. 使用WAF保护
○ 部署Web应用防火墙(如ModSecurity、Cloudflare、AWS WAF)
○ 配置规则阻止版本信息泄露(如拦截/server-info、/version等路径)
○ 启用异常请求检测功能,识别扫描行为
○ 定期审计WAF日志,优化规则
防御注意事项:
● 版本更新前需要充分测试兼容性,避免业务中断
● 隐藏版本信息不能替代真正的安全防护,仅作为纵深防御一环
● WAF配置需要专业人员维护,错误规则可能导致服务不可用
● 建议结合RASP技术实现运行时防护
预知后事如何,请看下回讲解~
免责声明: 本教程仅用于教育和学习目的。在未经授权的情况下使用这些技术可能违反法律法规。请确保所有操作都在合法授权的范围内进行。作者和发布者不对因误用本教程内容而导致的任何后果承担责任。





