HackfutSec/Shell-Finder
GitHub: HackfutSec/Shell-Finder
Shell Finder 是一款 Python 编写的安全工具,通过批量扫描网站常见目录来检测是否存在已知的恶意 Web Shell 文件。
Stars: 12 | Forks: 3
# Shell 查找器
## 描述
**Shell Finder** 是一款旨在识别网站上**恶意 shell** 的安全工具。它通过扫描用户提供的 URL 列表,并检查常见 Web 目录中是否存在已知的 shell 文件来工作。该工具会发送 HTTP 请求来检测这些文件,如果存在 shell,则会返回 HTTP 200 状态码。结果可以保存到文件中,或者在配置后直接发送到 Telegram。
该工具提供了一个简单的命令行界面,允许用户在预定义的 shell 列表或自定义文件之间进行选择以进行搜索。
## 功能
- **快速 Shell 扫描**:在常见的 Web 目录中搜索恶意 shell。
- **灵活的输入选项**:手动或通过文件提供 URL。你也可以使用默认或自定义的 shell 列表。
- **Telegram 支持**:如果提供了 bot token 和 chat ID,会自动将结果发送到 Telegram。
- **多线程执行**:通过使用线程同时发出 HTTP 请求来加快执行速度。
- **代理支持**:允许在搜索 shell 时使用代理来隐藏你的 IP。
## 要求
- **Python 3.x**:该工具兼容 Python 3.6 及更高版本。
- **Python 库**:需要 `requests`、`time`、`os`、`re`、`concurrent.futures`。
```
pip install requests
```
## 安装说明
克隆仓库并进入该目录:
```
git clone https://github.com/HackfutSec/Shell-Finder.git
cd Shell-Finder
```
## 使用说明
1. **运行工具**:
只需运行 Python 脚本即可开始该过程:
python3 shell_finder.py
2. **横幅显示**:
工具启动时,将显示一个包含作者信息和许可证详细信息的横幅。
3. **提供 Shell 列表**:
系统将提示你在两个选项之间进行选择:
- 使用已知 shell 的默认列表。
- 提供一个包含 shell 路径的文件,每行一个。
4. **提供要扫描的网站列表**:
系统将要求你:
- 手动输入 URL。
- 加载一个包含 URL 列表的文件。
5. **通过 Telegram 发送结果的选项**:
工具会询问你是否希望通过 Telegram 发送结果。如果你选择**是**,你需要输入一个 **Telegram bot token** 和一个 **chat ID**。一条包含找到的 shell 列表的消息将被发送到指定的聊天中。
6. **结果**:
扫描结果将连同每个请求的 HTTP 状态码一起在控制台上实时显示。如果找到了 shell,它将被保存在当前目录下名为 `found.txt` 的文件中。
7. **结果文件**:
在扫描过程中找到的 shell 将保存在当前目录的 `found.txt` 中。
## 示例执行
```
[+] Choose how to provide the websites for shell search:
1. Enter a list of URLs manually (separated by new lines).
2. Provide a file containing URLs (one per line).
Your choice (1 or 2): 1
[+] Enter the URLs (one per line). Type 'done' when you are finished.
[+] Enter URL: http://example.com
[+] Enter URL: http://anotherexample.com
[+] Enter URL: done
[+] Choose how to provide the shell list:
1. Use the default list of shells.
2. Provide a file containing shells (one per line).
Your choice (1 or 2): 1
[+] Scanning http://example.com for shells...
[+] Shell found: http://example.com/wp-admin/js/widgets/about.php [Code: 200]
[+] Shell found: http://anotherexample.com/wp-content/themes/aahana/json.php [Code: 200]
[+] Found shells saved in: /home/user/Shell-Finder/found.txt
[+] Press enter to exit...
```
## 通过 Telegram 发送结果
如果你希望通过 Telegram 接收扫描结果,工具将提示你提供以下信息:
- **Bot Token**:你可以通过 [BotFather](https://core.telegram.org/bots#botfather) 创建 bot 来获取 token。
- **Chat ID**:这是你的聊天标识符。你可以通过向你的 bot 发送消息并使用 Telegram API 的 `getUpdates` 方法来获取它。
通过 Telegram API 发送消息的示例命令:
```
https://api.telegram.org/bot/sendMessage?chat_id=&text=
```
## 高级功能
- **代理使用**:如果配置了代理,工具将尝试使用它们进行 HTTP 请求。如果未提供代理,工具将尝试直接连接。
- **请求延迟**:在每个请求之间添加了 1 秒的延迟,以避免被网站阻止。
- **错误处理**:该工具处理各种类型的 HTTP 错误,包括超时(`Timeout`)、禁止访问(`403`)和一般连接错误。
## 安全与责任
**Shell Finder** 是一款功能强大的工具,应负责任地使用。此脚本仅应用于对你拥有明确分析权限的网站进行合法的安全测试。作者对任何恶意使用此工具的行为不承担责任。
## 许可证
**MIT License**
你可以根据 MIT 许可证的条款使用、修改和分发此软件。有关更多详细信息,请参阅 `LICENSE` 文件。
## 支持
如果你在使用该工具时遇到任何问题,可以在 GitHub 仓库上提出一个 **issue**,或者通过 [Telegram](https://t.me/HackfutS3c) 直接联系我。
## 免责声明
Shell Finder 仅应用于教育目的或合法场景,例如对你拥有明确授权的系统进行渗透测试。严禁任何恶意使用。
标签:Python, Web安全, 扫描器, 无后门, 蓝队分析, 逆向工具