)
从攻击到防御读懂Weeman源码学会识别和防范钓鱼网站附检测清单【免费下载链接】weemanHTTP server for phishing in python项目地址: https://gitcode.com/gh_mirrors/we/weemanWeeman 是一个用 Python 编写的钓鱼网站模拟 HTTP 服务器安全圈常把它当作攻击者视角的经典教材。读懂它的源码你就能搞清楚钓鱼网站是怎么被搭建出来的进而掌握识别钓鱼网站、防范钓鱼攻击的完整思路。文末附上一份可直接使用的钓鱼网站检测清单建议收藏。⚠️ 本文仅用于安全学习与防御目的。未经授权对他人网站实施钓鱼攻击属于违法行为。 Weeman 是什么为什么值得读它的源码Weeman最终版本 1.7.1运行在 Linux/Mac 上基于 Python 2.7核心能力可以用一句话概括克隆一个真实网站的登录页 → 劫持表单 → 把用户输入的账号密码偷偷记录下来 → 再假装什么都没发生地转发到原站。它的能力清单能力说明一键克隆登录页自动下载目标页面并修改 HTML表单劫持所有表单被改指向本地redirect.html凭证落盘用户提交的内容被写进本地日志文件假转发回显用户看起来登录成功毫无察觉模块框架内置网站存活检测、链接提取、WHOIS 查询等模块项目结构非常小巧适合通读路径作用weeman.py程序入口检查 Python 版本和平台core/shell.py交互式命令 shellshow/set/runcore/config.py配置项url、action_url、port、user_agent等core/httpd.py核心克隆页面、捕获提交、生成假转发页modules/扩展模块is_website_up.py、extract_links.py、whois_ip.py、email.pyprofiles/预设配置文件如localhost.profile想动手通读源码的话可以先克隆仓库git clone https://gitcode.com/gh_mirrors/we/weeman️ 先看运行界面Weeman 的交互式 Shell启动后是一个命令式 Shell常用指令包括show查看配置、set修改选项、run启动服务器、framework加载模块框架从界面可以看到它内置了一个模块框架例如is_website_up可以借助外部 API 检查目标网站是否在线源码见modules/is_website_up.py——攻击者用它确认猎物网站存活防御者同样可以拿它做网站存活巡检。 源码拆解钓鱼网站是这样克隆出来的整个攻击链条就藏在core/httpd.py里分四步看懂即可。1️⃣ 克隆并篡改页面clone()函数clone()做三件事见 core/httpd.py用仿冒的 User-Agent配置在core/config.py的user_agent请求目标页面或加载本地html_file用 BeautifulSoup 解析 HTML把页面上所有form的action全部改写成redirect.html——这就是钓鱼网站表单被劫持的关键一行写入新的index.html供访客访问并可选注入external_js外部脚本。 这就是第一条检测线索登录表单的提交地址如果不是站点自身的域名/路径而是redirect.html之类的可疑路径页面大概率是被克隆篡改过的。2️⃣ 凭证捕获do_POST()把输入写进日志当访客在假登录页提交表单时do_POST()会拦截 POST 请求把每个字段的key value逐行追加写入以目标域名命名的日志文件例如example.com.log账号、密码就这样落盘了。 防御启示真正的登录页提交后响应通常由同一个可信域名返回如果提交地址与当前页面域名不一致尤其指向外部或陌生路径应立即停止输入。3️⃣ 伪装回显create_post()生成redirect.html捕获完成后create_post()会动态生成一个redirect.html里面是一个包含**隐藏域hidden input**的表单 一段 JavaScript 自动submit()把刚捕获的凭证原封不动转发到攻击者预设的action_url真实站点。 效果是用户看到登录成功数据却同时进了攻击者的日志和真实站点——双重投递无感知的欺骗。4️⃣ 攻击前的侦察modules 模块modules/目录展示了攻击者的完整工具链is_website_up.py确认目标存活 →extract_links.py从页面里批量提取链接做侦察 →whois_ip.py查询域名/IP 归属信息。✅ 识别钓鱼网站的 10 项检测清单结合上面的源码逻辑普通用户在登录前可以逐项自查#检测项判断要点1表单提交地址查看页面源码中form action...是否与当前域名一致出现redirect.html等陌生路径要警惕2域名拼写检查是否使用形近字/多余后缀如paypa1.com可查询域名注册时间3协议类型登录页是否提供 HTTPS纯 HTTP 直接输密码风险极高4证书签发锁形图标点开看证书个人签发的自签名证书要警惕5页面细节克隆页常见图片缺失、文案错乱、语言混杂6诱导话术突然提示账号异常、即将冻结并要求立刻重新登录7链接真实去向鼠标悬停/长按查看链接原始地址与显示文字是否一致8弹窗登录框网页中非预期的登录确认弹窗是经典钓鱼手法9双因素被绕过攻击者常伪造验证码输入框真正的 2FA 不会出现在陌生页面10替代通道关键操作改用官方 App 或键盘手动输入域名而非点击邮件/短信链接️ 防范钓鱼攻击的 5 个好习惯手动输入官网域名书签常用网站不点邮件、短信里的链接看表单再看地址栏输入密码前花 1 秒确认域名完整拼写重点看注册局后缀如.com.cn常被伪装用密码管理器密码管理器只会在完全匹配的可信域名下自动填充——它不填充说明域名不对开启双因素认证2FA即使凭证被窃取攻击者也难以登录敏感操作走官方 App银行转账、改密等操作优先使用官方客户端。 源码文件速查文件看点weeman.py入口与平台/版本检查core/httpd.py克隆、劫持、捕获、转发全流程核心core/shell.py交互式 Shell 与配置读写core/config.pyurl、action_url、port等配置项modules/is_website_up.py网站存活检测模块modules/extract_links.py页面链接提取模块profiles/localhost.profile预设配置示例写在最后Weeman 的价值恰恰在于简单到触目惊心几十行核心代码就能搭出一个高仿钓鱼网站。了解攻击者如何用四步克隆你的登录页比单纯恐惧钓鱼更能保护你——对照上面的 10 项检测清单养成先看表单、再看地址栏的习惯绝大多数钓鱼攻击都会在你输入密码之前失效。【免费下载链接】weemanHTTP server for phishing in python项目地址: https://gitcode.com/gh_mirrors/we/weeman创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考