去年秋天,黑客我帮一个做电商的攻防朋友查服务器。登录日志里有个IP,从入凌晨三点每隔17分钟试一次密码,精通连续试了四天。黑客第五天停了。攻防不是从入放弃了,是精通成功了——它用的是一个离职运营的账号,密码是黑客对方生日。这事让我意识到,攻防大部分人以为黑客攻击是从入电影里那种噼里啪啦敲键盘、屏幕跳绿字,精通实际上真正的黑客入侵往往安静得像水管漏水。
入门阶段最该搞明白的攻防不是工具,是从入路径。攻击者拿到一台机器,通常走这几步:踩点、扫描、拿权限、提权、留后门、清痕迹。踩点就是搜集信息,比如用Whois查域名注册人邮箱,用theHarvester扒公开邮箱和子域名。扫描用Nmap,一条 nmap -sV -p- 192.168.1.1 就能把开放端口和服务版本全列出来。很多人卡在这一步,因为扫出一堆端口却不知道哪个能打。我的经验是,先看版本号,老版本Apache、未打补丁的Struts2、暴露的Redis,这些才是入口。
拿权限这步,Web方向绕不开OWASP Top 10。SQL注入现在少了,但逻辑漏洞多了。见过一个商城,修改购物车数量为负数,结算时余额反而增加。这种漏洞扫描器扫不出来,得靠人去看业务流程。二进制方向就啃栈溢出、格式化字符串,从ret2text练到ret2libc,把保护机制一个个绕过。别急着上CTF,先把《0day安全》里的实验做三遍,手感和肌肉记忆是两码事。
提权是分水岭。Windows下用whoami /priv看令牌,Linux下 sudo -l 和 find / -perm -4000 是必修课。有次拿到一个低权限shell,内核是3.13,直接上overlayfs漏洞,三分钟root。但更多时候得耐心翻配置文件,.bash_history里可能藏着数据库密码,crontab里可能有可写脚本。这些细节比漏洞利用代码更值钱。
防守方视角反过来看,思路清晰很多。日志集中收集,用ELK或Graylog,别只盯着/var/log/secure。部署蜜罐,比如honeyd,能提前看到扫描行为。最关键的,权限最小化——那个电商朋友后来把所有离职账号全删了,数据库账号按表授权,Web目录设为只读。他说早该这么干,但人总是被打了才想起锁门。
工具层面,Kali是标配,但别当收藏家。Metasploit用熟msfconsole和searchsploit就够了,Burp Suite的Intruder和Repeater比插件重要。写脚本用Python,requests加scapy能覆盖八成场景。我见过有人装了几十个工具,真到打点的时候还是靠curl手工测。
法律红线得说清楚。没授权扫别人端口,哪怕只是ping,也可能踩到《网络安全法》第二十七条。自己搭靶场,VulnHub和HackTheBox够练了。有个朋友在甲方做渗透,每次测试前邮件确认范围,测试中截图留证,报告里写清风险等级和修复建议。他说这行干久了,最怕的不是攻不进去,是攻进去了说不清楚。
最后说个观察:很多新手纠结学Python还是C,学Web还是二进制。其实先动手。装个VMware,开两台虚拟机,一台Kali一台Metasploitable2,把msfconsole里exploit/unix/ftp/vsftpd_234_backdoor跑通,比看十小时视频有用。攻防是手艺活,跟学木工一样,刨子推多了自然直。