kali扫描网站
打开终端,扫描敲下 `nmap -sV -T4 target.com`,网站回车。扫描屏幕上一行行端口状态跳出来,网站80、扫描443、网站22、扫描3306——数据库端口居然开着。网站这不是扫描电影桥段,是网站我上周帮朋友检查他公司网站时的真实一幕。Kali Linux 自带的扫描扫描工具,能把一个站点的网站底裤扒得干干净净,前提是扫描你知道怎么用。 很多人以为扫描网站就是网站拿个工具一顿猛扫,等结果就行。扫描真这么干,大概率被防火墙拦成筛子,或者扫出一堆误报还浑然不知。扫描的本质是信息收集,不是暴力破解。你得先搞清楚目标是什么:静态站还是动态应用?有没有 CDN 挡在前面?用了哪些前端框架?这些判断比选工具重要得多。 直接对目标发扫描包是最蠢的做法。先看看公开信息:Whois 查注册人,DNS 记录看有没有邮件服务器泄露内网 IP,证书透明度日志能翻出子域名。Kali 里的 `theHarvester` 干这事很顺手,一条命令就能从搜索引擎、PGP 密钥服务器、Shodan 里捞出一堆关联资产。我习惯先跑这个,往往能发现主站之外的管理后台或者测试环境——那些地方防护通常弱得多。 被动侦察不碰目标服务器,不会触发任何告警。等手里攒了足够多的域名和 IP,再决定哪些值得主动扫。 nmap 是绕不开的。但 `-p 1-65535` 全端口扫一遍,动静大、耗时长,对方 IDS 早报警了。实际渗透测试里,我通常先扫 Top 1000 端口,加 `-T4` 提速,同时用 `-sS` 做 SYN 半开扫描,比全连接扫描隐蔽些。发现开放端口后再针对性做服务识别:`-sV` 探版本,`-sC` 跑默认脚本。 有个细节容易被忽略:UDP 端口。DNS 的 53、SNMP 的 161,这些 UDP 服务经常配置稀烂,但扫描慢得让人抓狂。我的做法是只扫常见 UDP 端口,配合 `--max-retries 1` 控制超时。曾经扫到一个开放 161 的设备,默认团体名 `public` 没改,直接读出了整台路由器的配置——这种低级错误现在依然遍地都是。 端口扫完只是知道门在哪,能不能进去得看 Web 应用本身。`nikto` 适合快速过一遍已知漏洞和敏感文件,但它的特征太明显,容易被 WAF 封 IP。我更喜欢用 `whatweb` 先指纹识别,确认是 WordPress 还是 ThinkPHP,再决定下一步。 目录爆破用 `gobuster` 或 `dirb`,字典选对能省一半时间。Kali 自带 `/usr/share/wordlists/` 下的字典够用,但针对特定 CMS 最好换专用字典。有次扫一个站,`gobuster` 跑出 `/backup/` 目录,里面躺着整个数据库的 SQL 导出文件——这种配置失误比任何 0day 都致命。 SQL 注入、XSS 这些漏洞扫描,`sqlmap` 和 `XSStrike` 能自动化,但别全信结果。误报率不低,手工验证是必须的。我见过 `sqlmap` 报注入点,实际是页面参数过滤不严导致的布尔差异,根本不是注入。 拿到结果只是开始。整理端口、服务、版本、潜在漏洞,形成一份可操作的清单。别急着写报告,先自己复现一遍关键发现。扫出漏洞和利用漏洞之间隔着一条河,很多新手卡在扫描结果上就以为完事了。 最后提醒一句:扫描未经授权的目标在国内属于违法行为。《网络安全法》第二十七条写得清清楚楚。自己搭靶场练,或者拿授权测试目标动手。技术本身没对错,用在哪才是关键。从被动侦察开始,别急着发包
端口扫描:nmap 的取舍
Web 层面才是重头戏
扫描之后的事