标签 SFTP 下的文章

🚀 ZenSSH —— 简单、轻量、安全的 SSH 工具

大家好,给大家推荐一个我最近做的开源项目:ZenSSH,一款实用的 SSH 工具。
当前处于早期测试版,开发人员就我自己,也是针对我自己的需求才做的,市面上大部分 SSH 工具连个配置同步都收费,又或者没有全平台覆盖,不同平台装不一样的软件配置同步更别说了;又或者一堆堆的功能,实际我就是想简单的连接到服务器上,简单运维一下。
适合开发者、运维工程师,基于 Tauri 构建,提供全平台覆盖(不过我没有 iPhone 所以没有构建),配置同步通过 GitHub 或 Gitee 的 Gist 实现,支持 SSH 和 SFTP ,并且支持跳板机连接。

👉 项目链接:
https://github.com/kisChang/ZenSSH

✨ 项目亮点

🔐 专注 SSH — ZenSSH 致力于提供跨平台的 SSH 客户端,配置同步,随时随地登录服务器。

📦 开源免费 — 完全开源免费,代码托管在 GitHub 上,欢迎大家查看、使用和贡献代码。

🛠 轻量易用 — 与传统的繁琐配置相比,ZenSSH 更强调上手速度和用户体验,适合日常快速 SSH 连接、文件上下载等需求。

✨ 说明

稳定性 — 早期测试版本,我也只测试了基础功能(在 Android 、Linux 、Windows 上),已经在日常使用了,有问题随时反馈到 issues ,同样感谢贡献代码~

开源协议 — 现在只公开了前端代码,rust 代码也托管在了 GitHub 但暂时没有开源,后续会考虑开源,整体构建都是基于 GitHub Actions ,安全性可以放心。

前言

刚好有机会接触到卫生行业的运维赛,这里只有机会接触到测试赛,简单谢谢wp吧,测试赛的话主办方也是用心了的,难度的话相比较决赛的内容还是比较简单的。

题目

【题目背景】 模拟了一台公网上的服务器,内置 MYSQL\SSH\WEB 等应用服务,但是因为安全意识不到位导致该服务器存在若干安全风险,现在要求对该服务器实施断网并作全方面的安全检查,由于服务的迁移,在系统中保留了一些历史服务的流量包,需要对流量包进行分析和研判。

【题目要求】

1、通过修改服务器登录相关的配置文件实现:密码有效期90天、连续输错三次密码,账号锁定五分钟。

2、通过修改mysql相关配置实现:开启数据库查询日志、限制任意地址登录,只允许127.0.0.1登录。

3、从 /root/analyse.pcapng 文件中分析被读取走的flag值,写到 /root/flag.txt 中。

4、对系统中存在的其他安全隐患进行排查和处置(恶意配置后门请直接删除)。

5、还有其他的一些要求,但是没在题干中

【注意事项】

1、不涉及修改密码和修改私钥的动作,如果因为修改密码或私钥导致无法得分,选手自行负责。

2、禁止使用防火墙等相关IP封锁技术对IP进行隔离,如果因为隔离IP导致无法得分,选手自行负责。

【接入信息】

1、SSH服务端口22,账号密码为root/root

2、MYSQL服务账号密码为root/mysql

步骤

登录ssh,发现处于docker容器内,其实这里很多命令是无法使用的。

先修改登录过期事件

vim /etc/login.def

PASS_MAX_DAYS 90

连续输入错误三次,锁定5分钟

vim /etc/pam.d/sshd

auth required pam_tally.so deny=3 onerr=fail unlock_time=300 #最夯一行添加配置文件

auth required pam_faillock.so preauth audit silent deny=3 unlock_time=300
auth required pam_faillock.so authfail audit deny=3 unlock_time=300

或者修改

/etc/pam.d/common-auth

隐藏后门

查看发现异常用户hacker

userdel -f hacker

这里需要强制删除,因为不添加参数的话会重新创建该用户。

访问控制

访问控制在/etc/hosts.allow中发现存在异常的访问控制,删除该文件即可

安全配置

mysql暴力破解用户名密码root/mysql

mysql -uroot -pmysql

SET GLOBAL general_log = 'ON'; //开启数据库查询日志

或者图形化界面执行修改也可以

访问控制2

限制登录地址为127.0.0.1

修改配置文件

vim /etc/mysql/mysql.conf.d/mysql.cnf

bind-address = 127.0.0.1

定时任务

这个定时任务题目有问题,没有定时任务但是需要删除root的定时任务

rm /var/spool/cron/crontabs/root

其实这里的定时任务文件是没内容的,但是check的机制就是检测文件是否存在

特殊权限

find / -type f -perm -4000 -exec ls -l {} \;

find /:从根目录开始查找(你也可以指定特定的目录,例如 /usr/bin)。

-type f:只查找文件,不查找目录。

-perm -4000:查找设置了 SUID 权限的文件(SUID 权限对应的数字是 4000)。

-ls:显示详细信息,包括文件的权限、所有者、大小、修改时间等。

所有具有suid权限的文件都在/bin下,一般whoami权限是没有suid权限的,所以这个文件被动过,所以这里干掉这个文件就可以了。

流量分析

需要开启SFTP服务,注释掉配置文件

#RSAAuthentication yes 这个配置文件是老版本openssh

另外添加ftp配置文件

Subsystem sftp internal-sftp

检索关键字,追踪tcp流分析找到一串base64编码内容

导出分组字节流解码得到flag

echo "flag{d9d2c4b2-7cf2-472f-a8e8-2aad1e466099}" > /root/flag.txt

web漏洞

目录扫描发现info目录,发现属于xxe的报错,构造xxe语句

system是可执行文件,url路径需要传参,fuzz无果手工测试

回显显示需要参数,简单测试构造发现存在任意文件读取

修复直接就是定位到位置点儿进行修复即可。其实这里最简单的就是直接代码审计,审计即可,因为前期导完数据包的时候环境有问题,修改配置文件无法SFTP连接获取源码,所以就黑盒进行FUZZ了。

最近 AI coding 能力突飞猛进,距离之前发布 NovaAccess 这个无需 VPN 连接 Tailscale 内网的 SSH 服务器已经有几个月,于是新年伊始,抽了点时间继续 Vibe Coding 了一把。

这个 App 除了网络连接这块有部分手写外,之前的版本以及包括这个版本大部分都是 Vibe Coding 得来,作为一个系统程序员,AI 的进展实在是突飞猛进,建议尽快拥抱。

免费功能(更新):

  • 升级 SwiftTerm 这个依赖,优化 Terminal Emulator 体验,重新设计了用来输入 modifier 等内容的辅助按键
  • 支持自定义认证服务器,作为 xEdge 的开发和运营者,这个还是非常需要的
  • UI/UX 重新设计,相比之前版本,个人认为有所提升,仁者见仁啦,轻喷

付费功能(新增):

  • 支持 SFTP 文件管理,支持在线编辑和预览等功能
  • 支持 Web 访问,直接可以访问 Tailnet 内部的网络服务(不过俺试了 Jellyfin 的播放一直有点卡顿,但似乎 vpn+chrome 也是这个体验,可能还有潜在问题,需要后面再研究解决)
  • 支持 Monitoring Linux host ,基于 proc 文件系统,不需要也不会额外安装软件
  • 支持多 Tailnet ,官方+自建等各种组合

话不多说,lifetime 码子在二楼,有需要的自取,注意拿走后烦请回复一下帖子,避免浪费有需要的朋友

附:

  1. App 下载链接: https://apps.apple.com/us/app/novaaccess-tailnet-tools/id6749938291
  2. App 开发背景相关的原始帖子: https://global.v2ex.com/t/1153035

我个人使用系统原版的 ssh,它里面不像其他 ssh 客户端那样内嵌了 sftp 客户端,使用原版命令行 ssh 很容易遇到文件上传 / 下载的麻烦。

最近,我发现了很好用的开源软件: winfsp/sshfs-win: SSHFS For Windows,它让资源管理器可以挂载 sftp。有了它,我们可以轻松在 windows 系统上轻松上传 / 下载服务器上的文件啦。

以下为实际截图(后面那个 xai 是我的 tailscale 内网域名,大家可以等价看待为一个 ip​):


📌 转载信息
转载时间:
2026/1/4 12:24:11