游客发表
用Kali Linux去攻击一个网站,击网这件事在技术圈里被谈论得太多,击网但真正动手过的击网人知道,它远没有影视剧里敲几下键盘就“黑掉”那么戏剧化。击网大多数时候,击网你面对的击网是一个配置了WAF、CDN、击网日志审计的击网现代站点,而Kali只是击网一把瑞士军刀——工具齐全,但能不能撬开门,击网取决于目标有多大意,击网以及你有多了解它。击网
我拿一个自己搭建的击网测试环境举例。一台Ubuntu Server跑着DVWA(Damn Vulnerable Web Application),击网IP是击网192.168.1.50。Kali虚拟机的网络设成桥接模式,确保和靶机在同一网段。打开终端,第一步永远是信息收集,不是上来就掏sqlmap。
nmap -sV -sC 192.168.1.50 这条命令扫端口、探服务版本、跑默认脚本。结果出来:80端口Apache 2.4.29,3306端口MySQL 5.7。看到MySQL直接暴露在外,心里就有数了——这靶机设得够糙。真实站点不会这么干,但练手嘛,要的就是这种“破绽百出”的爽感。
浏览器访问http://192.168.1.50/dvwa,登录进去。DVWA的SQL Injection模块有个输入框,输入1返回正常,输入1'报错。经典的SQL注入信号。这时候才轮到sqlmap登场。
sqlmap -u "http://192.168.1.50/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=你的session; security=low" --dbs 注意那个--cookie参数。DVWA需要登录才能访问漏洞页面,不带cookie,sqlmap连门都进不去。很多人卡在这一步,以为工具不好使,其实是没搞懂HTTP会话机制。跑了几分钟,sqlmap列出了数据库:dvwa和information_schema。接着--tables -D dvwa,--dump -T users,用户名和密码哈希全出来了。MD5的,丢进hashcat或者在线彩虹表,几分钟就还原成明文。
整个过程听起来顺风顺水,但实际渗透中,你可能会遇到:目标用了参数化查询,sqlmap跑半天返回“not injectable”;或者WAF把UNION SELECT拦了,你得手动绕编码;又或者目标只允许内网访问,你连不上。Kali的工具再强,也绕不过“目标没漏洞”这个硬道理。
再说个真事。有次帮朋友检查他公司的一个老旧CMS,我用Kali里的whatweb识别出是Drupal 7.x,版本号对应一个已知的远程代码执行漏洞(CVE-2018-7600,俗称Drupalgeddon2)。Metasploit里有现成模块,use exploit/unix/webapp/drupal_drupalgeddon2,设置RHOSTS和TARGETURI,run。拿到了一个www-data权限的shell。但也就到此为止了——对方服务器打了补丁的子系统挡住了提权路径,最后只能读几个配置文件,没法进一步渗透。朋友松了口气,我倒是觉得有点遗憾,毕竟没拿到root。
Kali攻击网站的核心逻辑其实就三步:侦察、利用、维持访问。侦察靠nmap、dirb、whatweb;利用靠Metasploit、sqlmap、Burp Suite;维持访问靠nc、socat或者webshell。但每一步都充满变数。你以为扫到了开放端口就能打?服务可能绑定了白名单IP。你以为注入点存在就能拖库?数据库用户可能只有读权限。
工具是死的,思路是活的。我见过有人用Kali只跑nikto扫出一堆误报就宣称“网站有漏洞”,也见过有人手动构造payload绕过ModSecurity规则。区别不在于谁的命令更长,而在于谁更愿意去读HTTP响应头、分析JavaScript里的API端点、理解后端框架的路由逻辑。
最后说句实在的:拿Kali去攻击没有授权的网站,是违法行为。上面所有操作,我只在自己的虚拟机里做。真实世界里,渗透测试需要书面授权、范围界定、时间窗口。技术本身没有善恶,但用技术的人得有底线。Kali只是个发行版,里面装的是Debian的包,真正决定结果的,是你脑子里的东西,不是终端里敲出来的字符。
友情链接