ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Loki文件传输模块深度解析:SFTP通道如何实现远程文件双向上传下载

Loki文件传输模块深度解析:SFTP通道如何实现远程文件双向上传下载 Loki文件传输模块深度解析SFTP通道如何实现远程文件双向上传下载【免费下载链接】LokiRemote Access Tool项目地址: https://gitcode.com/gh_mirrors/loki1/LokiLoki 是一款简单的远程访问工具Remote Access Tool其文件传输模块是整套系统的亮点通过一条独立的 SSL 加密 SFTP 通道主控端一条upload命令即可把文件推送到远程机器download命令即可把远程文件取回本地轻松实现远程文件双向传输。 两套通道各司其职为什么文件传输不走命令通道Loki 采用经典的主控–机器人server–bot双端架构通信上有两条独立通道命令通道bot 连上服务器后保持长连接双方用 JSON 格式的{code, args}指令交互全程基于 RSA-2048 交换密钥 AES-256 加密只负责截屏开 SSH这类轻量指令文件通道文件流数据量大Loki 不把它塞进命令通道而是单独开放一个 SFTP 端口默认128定义在 lib/const.py。两端用原生 TCP SSL 套接字完成文件流传输。这种命令通道只传令、文件通道只运货的分离设计是理解 Loki 文件传输模块的关键。️ 快速上手三步让文件传输通道可用配置网络参数修改 lib/const.py 中的PRIVATE_IP/PUBLIC_IP与FTP_PORT若远程机器在局域网外需要在路由器上转发FTP_PORT、SSH_PORT及服务器端口启动服务器pip install -r requirements.txt安装依赖运行 loki.py访问http://localhost:5000默认账号loki/ikol连接远程机器生成 payload 并在目标机器执行bot 上线后会出现在控制台的 Bots 列表中。 上传文件到远程机器upload 命令的完整链路在命令控制台输入upload file即可触发整个上传流程命令定义见 static/js/command.js传令服务器通过命令通道向 bot 发送命令码3 文件名建监听服务器端 lib/server/lib/sftp.py 绑定FTP_PORT启动一次性临时监听握手验证bot 端 agent/bot/lib/sftp.py 发起 SSL 客户端连接发送测试串abc123并要求对端回显——即隧道检测确保通道真正双向可用流式传输先发送文件名再按 64KB 分块把文件内容逐块写出分块读写逻辑在 lib/server/lib/file.py最后关闭连接并记录耗时。 从远程机器取回文件download 与截屏共用同一条管线download file是镜像流程服务器发送命令码4bot 主动拨号接入 SFTP 端口把目标文件流式读回服务器将数据落盘到downloads/files/目录接收逻辑见 lib/server/lib/sftp.py落盘路径见 lib/const.py。截屏回传也复用同一条管线命令码5触发 bot 截图后经上传通道推送服务器在downloads/screenshots/下按时间戳保存。也就是说上传、下载、截屏三者共用同一条 SSL 文件通道。 传输进度监控ftp_status 与 --override 双保险文件传输在后台线程中执行控制台因此提供了两个配套命令ftp_status实时查询正在上传/下载哪个文件结束后还会显示是否成功与耗时实现见 lib/server/lib/interface.py--override已有传输在途时新请求会被拒绝使用download blueprint.pdf --override可强制覆盖旧进程。 值得注意的工程细节命名视角相反服务器端sFTP类中send()表示上传到远程机器、recv()表示从远程取回而 bot 端 agent/bot/lib/shell.py 的命令映射恰好相反3: download, 4: upload。先理解这一点读源码能少走一半弯路超时保护服务器端监听默认等待 60 秒lib/server/lib/interface.pybot 未及时接入会标记错误码并自动清理一次性套接字每次传输结束后服务器通过socket_closed()探测确认临时监听已关闭避免端口占用独立证书体系文件通道使用本地cert/public.crt/private.key做 SSL 握手与命令通道的加密体系互不干扰。 相关文件速查模块路径职责服务器端文件通道lib/server/lib/sftp.py监听、流式收发、隧道检测bot 端文件通道agent/bot/lib/sftp.py主动拨号、分块读写命令调度lib/server/lib/interface.pyFTP 封装、ftp_status、--overridebot 命令映射agent/bot/lib/shell.py以命令码 3/4/5 执行上传/下载/截屏分块文件读写lib/server/lib/file.py64KB 分块流式读写网络与路径配置lib/const.pyFTP_PORT、下载落盘路径Loki 文件传输模块的设计思路可以一句话概括让轻量命令通道负责调度让加密文件通道负责搬运让一次性套接字保证每次传输干净可追溯——这也是它在实现上既简洁又可靠的根本原因。【免费下载链接】LokiRemote Access Tool项目地址: https://gitcode.com/gh_mirrors/loki1/Loki创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表