mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 05:56:46 +08:00

- 实现Windows键盘Hook机制,支持低级键盘事件捕获 - 实现Linux输入设备监听,支持/dev/input/eventX设备读取 - 实现macOS Core Foundation事件监听,支持CGEventTap - 添加键盘记录配置参数:-keylog-output和-keylog-duration - 修复Windows消息循环阻塞问题,改用PeekMessage非阻塞模式 - 支持跨平台键盘输入捕获和文件输出 - 集成到FScan本地插件系统,支持-localplugin keylogger调用
58 lines
2.2 KiB
Go
58 lines
2.2 KiB
Go
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"os"
|
||
|
||
"github.com/shadow1ng/fscan/common"
|
||
"github.com/shadow1ng/fscan/core"
|
||
|
||
// 引入本地插件以触发注册
|
||
_ "github.com/shadow1ng/fscan/plugins/local/fileinfo" // 已重构,可用
|
||
_ "github.com/shadow1ng/fscan/plugins/local/dcinfo" // 已重构,可用
|
||
_ "github.com/shadow1ng/fscan/plugins/local/minidump" // 已重构,可用
|
||
_ "github.com/shadow1ng/fscan/plugins/local/reverseshell" // 已重构,可用
|
||
_ "github.com/shadow1ng/fscan/plugins/local/socks5proxy" // 已重构,可用
|
||
_ "github.com/shadow1ng/fscan/plugins/local/avdetect" // 已重构,可用
|
||
_ "github.com/shadow1ng/fscan/plugins/local/forwardshell" // 新增,可用
|
||
|
||
// Linux持久化插件
|
||
_ "github.com/shadow1ng/fscan/plugins/local/ldpreload" // Linux LD_PRELOAD持久化
|
||
_ "github.com/shadow1ng/fscan/plugins/local/shellenv" // Linux Shell环境变量持久化
|
||
_ "github.com/shadow1ng/fscan/plugins/local/crontask" // Linux Cron计划任务持久化
|
||
_ "github.com/shadow1ng/fscan/plugins/local/systemdservice" // Linux Systemd服务持久化
|
||
|
||
// Windows持久化插件
|
||
_ "github.com/shadow1ng/fscan/plugins/local/winregistry" // Windows 注册表持久化
|
||
_ "github.com/shadow1ng/fscan/plugins/local/winstartup" // Windows 启动文件夹持久化
|
||
_ "github.com/shadow1ng/fscan/plugins/local/winschtask" // Windows 计划任务持久化
|
||
_ "github.com/shadow1ng/fscan/plugins/local/winservice" // Windows 服务持久化
|
||
_ "github.com/shadow1ng/fscan/plugins/local/winwmi" // Windows WMI事件订阅持久化
|
||
|
||
// 监控插件
|
||
_ "github.com/shadow1ng/fscan/plugins/local/keylogger" // 跨平台键盘记录
|
||
)
|
||
|
||
func main() {
|
||
var Info common.HostInfo
|
||
common.Flag(&Info)
|
||
|
||
// 在flag解析后初始化logger,确保LogLevel参数生效
|
||
common.InitLogger()
|
||
|
||
// 解析 CLI 参数
|
||
if err := common.Parse(&Info); err != nil {
|
||
os.Exit(1)
|
||
}
|
||
|
||
// 初始化输出系统,如果失败则直接退出
|
||
if err := common.InitOutput(); err != nil {
|
||
common.LogError(fmt.Sprintf("初始化输出系统失败: %v", err))
|
||
os.Exit(1)
|
||
}
|
||
defer common.CloseOutput()
|
||
|
||
// 执行 CLI 扫描逻辑
|
||
core.RunScan(Info)
|
||
}
|