|
最近难得有时间深入了解下大模型,之前工作中也有偶有用到,比如写代码,分析日志等等。用下来感觉大模型对技术岗的影响挺大。首先是写代码这一块,搞安全运营,免不了要写点脚本。比如从一堆日志里提取特定字段,或者把不同格式的告警数据做个格式化处理。这些事不难,但特别“脏活累活”,耗时间。试用了最近比较火的trae,大模型进化的已经可以根据提示词写工程化项目了,并且能跑通,这是我比较意外的,以前吭哧吭哧一下午才能搞定的工具,有了大模型加持一小时搞定。
比如,写一个弱口令扫描工具,我的提示词是这样的。 你是一个专业的AI prompt专家,写一个弱口令扫描器,逻辑是这样的。数据源有两种,一是从fofa上获取配置文件中fofa搜索语法的结果,fofa搜索语法比如protocol:ssh、title="phpmyadmin",二是读取本地文件,读取本地文件需要指定扫描的插件。来源fofa的读取到扫描结果后直接调用对应的弱口令扫描插件进行扫描,扫描插件从插件路径plugins目录里拉取,调用弱口令扫描插件,扫描完成后把结果更新到data目录的result.json文件中。程序加入多线程扫描,fofa每天拉取的结果保存下来,命名安装语法加日期.txt,扫描时候支持进度条显示,根据这个需求你生成一个prompt。 然后发给千问生成专业的提示词。 ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">AI Prompt:设计并实现一个支持多数据源的弱口令扫描器系统ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">你是一个专业的网络安全工具开发者。请设计并实现一个弱口令扫描器,具备以下核心功能和架构要求: ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">📌1. 背景与目标ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">构建一个自动化、可扩展的弱口令检测工具,支持从FOFA 网络空间搜索引擎和本地文件两种数据源获取目标资产,调用插件化弱口令检测模块进行扫描,并将结果持久化存储。系统需支持多线程、进度可视化、结果去重与历史记录管理。 ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">🧩2. 核心功能需求ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">✅ 2.1 数据源支持ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1">数据源一:FOFA API 拉取 - 从配置文件(如
config.yaml或config.json)读取 FOFA 查询语法(如protocol:ssh、title="phpMyAdmin")。 - 使用 FOFA API(
https://fofa.info)获取匹配的 IP ort 列表。 - 保存原始结果到本地文件:
路径:data/fofa/ 命名规则:{搜索语法简写}_{YYYYMMDD}.txt(如phpmyadmin_20250802.txt)
数据源二:本地文件导入 - 支持从本地文本文件读取目标列表(格式:
IP ort,每行一条)。 - 必须在启动时指定对应的弱口令扫描插件名称(如
phpmyadmin、redis),用于后续调用。
ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">✅ 2.2 插件化弱口令扫描引擎ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-size: 16px;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;" class="list-paddingleft-1">扫描逻辑通过插件实现,插件存放于plugins/目录。每个插件为独立 Python 文件(如plugins/ssh.py、plugins/phpmyadmin.py),需实现统一接口:python深色版本 defscan(target:str, timeout:int=10) ->dict: """ target: IP ort return: { "target": "1.1.1.1:22", "plugin": "ssh", "status": "success|failure|error", "vulnerable": True|False, "credentials": [{"user": "root", "pass": "123456"}] | [], "message": "optional info" } ```
ingFang SC", miui, "Hiragino Sans GB", "Microsoft Yahei", sans-serif, "Source Han Serif";font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;letter-spacing: 0.064px;orphans: 2;text-align: start;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;white-space: normal;background-color: rgb(255, 255, 255);text-decoration-thickness: initial;text-decoration-style: initial;text-decoration-color: initial;">✅ 2.3 扫描调度与执行- 支持从 FOFA 或本地文件加载目标后,自动匹配并调用对应插件。
- 示例:FOFA 查询
title="phpMyAdmin"→ 自动调用plugins/phpmyadmin.py
- 支持多线程并发扫描,线程数可在配置文件中设置(默认 50)。
- 扫描过程显示实时进度条(使用
tqdm或类似库),显示:已扫描/总数、成功数、失败数。
✅ 2.4 结果存储与管理- 扫描结果统一写入 JSON 文件:
data/result.json - 文件结构为数组,每条记录包含:
json深色版本 { "scan_id":"uuid", "target":"1.1.1.1:80", "plugin":"phpmyadmin", "source":"fofa|local", "source_query":"title=\"phpMyAdmin\"", "scan_time":"2025-08-02T10:00:00", "vulnerable":true, "credentials": [{"user":"admin","pass":"admin"}], "status":"success" }
- 每次扫描追加新结果,避免覆盖历史数据(可考虑按日期分文件或数据库,但当前阶段用 JSON 即可)。
✅ 2.5 配置管理- 配置文件
config.yaml示例:yaml深色版本 fofa: email:"your@fofa.email" key:"your_fofa_api_key" queries: -"protocol:ssh" -'title="phpMyAdmin"' -"app:Redis"
scan: threads:50 timeout:10 plugins_dir:"plugins" result_file:"data/result.json"
logging: level:"INFO"
⚙️3. 系统流程
- 若为 FOFA 查询:调用 API 获取目标,保存原始结果,提取协议/标题 → 映射插件名。
- 若为本地文件:读取 IP
ort,结合用户指定插件名。
|