ranto-dev/keylogger_simulation
GitHub: ranto-dev/keylogger_simulation
一个教育用途的键盘记录器模拟项目,用于演示数据外泄与隐蔽存储的工作原理。
Stars: 0 | Forks: 0
# 🛡️ 教育用键盘记录器模拟
一个轻量级的**概念验证**项目,专为学术演示设计。该项目通过拦截按键并将数据存储到远程服务器,展示了现代基于网页的键盘记录器的工作原理。
### ⚠️ 伦理警告与免责声明
**本项目仅供教育用途。** 未经明确许可,在系统上使用键盘记录器是非法且不道德的。此模拟旨在帮助学生和安全专业人员理解攻击向量,以便更好地构建防御措施。
### 🏗️ 项目架构
模拟分为两个主要组件:
| 组件 | 技术 | 角色 |
| :--------- | :------------------------ | :------------------------------------------------------------------------------- |
| **前端** | HTML5 / CSS3 / JavaScript | 模拟一个合法银行登录页面,包含“钩子”(事件监听器)。 |
| **后端** | Python / Flask | 作为攻击者服务器,接收并存储拦截的数据。 |
### 🛠️ 功能特性
- **实时拦截**:通过 JavaScript `keydown` 事件在表单提交前捕获按键。
- **持久化存储**:自动创建隐藏日志文件(`.hidden_log.txt`)以保存数据供后续分析。
- **异步外泄**:使用 `fetch` API 在不刷新页面的情况下将数据发送到服务器,使攻击对用户不可见。
- **用户体验模拟**:功能性的登录模态框显示“成功”或“错误”消息,以维持真实网站的假象。
### 🚀 安装与使用
#### 1. 前置条件
确保已安装 **Python 3.x**。需要以下库:
```
pip install -r requirements.txt
```
#### 2. 运行模拟
1. **启动攻击者服务器:**
```bash
python app.py
```
服务器将在 `http://127.0.0.1:5000` 启动监听。
2. **打开受害者页面:**
在任何现代浏览器(Chrome、Firefox、Edge)中打开 `index.html`。
3. **交互操作:**
在输入框中键入内容,观察 Python 终端实时显示按键。
### 🔍 工作原理
1. **捕获阶段**:JavaScript `addEventListener` 监听整个文档的键盘输入。
2. **外泄阶段**:每个字符被打包为 `POST` 请求,发送到 Flask 的 `/log` 端点。
3. **存储阶段**:Python 后端过滤特殊键(如 `Enter` 或 `Backspace`),并将字符串追加到本地文本文件。
### 🛡️ 缓解与防御
为防止此类攻击,建议采取以下措施:
- **使用多因素认证(MFA)**:即使密码被盗,没有第二因素攻击者也无法访问账户。
- **密码管理器**:自动填充凭据绕过了物理按键输入,使大多数键盘记录器失效。
- **CORS 策略**:正确配置内容安全策略(CSP)可防止浏览器向未经授权的第三方服务器发送数据。
标签:CMS安全, CSS3, Flask, .hidden_log.txt, HTML5, HTTP工具, IP 地址批量处理, JavaScript, Keylogger, Proof of Concept, Python, RuleLab, Web攻击, 事件监听, 前端攻击, 取证教学, 后端攻击, 学术研究, 安全演示, 异步请求, 恶意前端, 攻击向量, 教育模拟, 数据可视化, 数据外泄, 数据窃取, 无后门, 登录模拟, 网络安全, 逆向工具, 键盘记录, 防御训练, 隐私保护, 隐蔽存储, 隐蔽文件, 隐藏日志