
SoCaz是一款替代socat的工具,专为CTF(夺旗赛)场景开发,提供比传统socat更丰富的CTF特定功能。它支持端口绑定、命令执行、动态标志生成、连接控制、权限管理及DoS防护等,适用于CTF竞赛中服务部署、动态flag生成和安全连接管理等需求。
bash# 通过--cmd参数指定执行命令 ./socaz --bind 1337 --cmd "python3 ./test.py" # 直接将命令作为位置参数传递(--后为命令) ./socaz --bind 1337 -- python3 ./test.py
Usage: socaz [OPTIONS] --bind <BIND> [CMD]...
位置参数
[CMD]...:要执行的命令(例如 "run.sh", "python ./script.py")选项说明
| 短选项 | 长选项 | 描述 |
|---|---|---|
-b | --bind <BIND> | 绑定地址(格式:0.0.0.0:8000 或 8000,省略主机则绑定所有接口) |
-c | --cmd <CMD> | 要执行的命令(与位置参数[CMD]功能相同) |
-e | --stderr | 将命令的stderr重定向到TCP连接 |
-d | --debug | 将命令的stderr重定向到SoCaz自身的stderr |
-t | --timeout <TIMEOUT> | 超时时间(秒),0表示无限制(默认:0) |
--max-connections <MAX_CONNECTIONS> | 最大允许连接数 | |
--max-connections-ip <MAX_IP_CONNECTIONS> | 单IP最大连接数(需配合--drop-connections使用) | |
--drop-connections | 达到最大连接数后丢弃新连接(默认:等待旧连接结束) | |
-u | --uid <UID> | 降级到指定用户ID(仅Unix系统) |
-g | --gid <GID> | 降级到指定组ID(仅Unix系统) |
-v | --verbose | 启用详细输出模式 |
-F | --flag <FLAG> | 作为环境变量传递的flag模板(格式见下文) |
--flag-from-env <ENV_VAR> | 从环境变量读取flag模板(格式同上) | |
--clear-env | 执行命令前清除所有环境变量 | |
--keep-env <ENV_VARS> | 仅保留指定环境变量(逗号分隔,如"PATH,USER") | |
-P | --pow [<BITS>] | 启用PoW防护,指定难度位数(默认:20) |
-h | --help | 显示帮助信息 |
-V | --version | 显示版本信息 |
Flag模板支持嵌入指令,指令用方括号[]包围,由命令和0个或多个过滤器组成,过滤器间用竖线|分隔,支持链式处理。
random N:生成N位[0-9a-f]随机字符串(N为正整数)ip:获取客户端IP地址hash:对字符串进行SHA256哈希,返回十六进制结果base64:对字符串进行Base64编码cut N:截取字符串前N个字符(N为正整数)encrypt KEY [NONCE_LENGTH]:使用ChaCha20加密,KEY为密钥,NONCE_LENGTH为随机nonce长度(默认:4字节,详见“加密与签名”)sign KEY [SIGNATURE_LENGTH]:使用HMAC-SHA256签名,KEY为密钥,SIGNATURE_LENGTH为签名长度(默认:4字节,详见“加密与签名”)flag{[random 16|hash|cut 8]_[ip|base64]}flag{9598f995_MTI3LjAuMC4x}(假设客户端IP为127.0.0.1)使用ChaCha20算法加密数据,随机nonce前置到密文中,nonce长度可指定(默认4字节)。
步骤:
NONCE_LENGTH的随机“小nonce”(前置到输出)小nonce + 密文使用HMAC-SHA256生成签名,签名长度可指定(默认4字节)。
步骤:
SIGNATURE_LENGTH字节作为输出签名PoW用于防止DoS***,基于Hashcash实现,每个连接生成随机“资源”,客户端需计算满足难度的Hashcash值。
Do Hashcash for 20 bits with resource "WXm98Mz89uQb" https://pow.cybersecnatlab.it/?data=WXm98Mz89uQb&bits=20 or hashcash -mCb20 "WXm98Mz89uQb" Result:
(客户端需输入计算出的Hashcash结果才能建立连接)
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务