当前位置: 首页 > news >正文

瑞士军刀:netcat(nc)、socat

文章目录

    • 1 老版瑞士军刀:netcat(nc)
      • 部分参数:
      • 示例:
    • 2 新版瑞士军刀:socat
      • 基本命令:
      • 示例:
    • 3 最后

1 老版瑞士军刀:netcat(nc)

参考:https://zhuanlan.zhihu.com/p/83959309

netcat 主要有 GNU版 和 OpenBSD版,一般软连接为nc
查看方法:readlink -f $(which nc)
/bin/nc.traditional: 默认 GNU 基础版本,一般系统自带。
/bin/nc.openbsd: openbsd 版本,强大很多。
nmap 自带的一个更好的 netcat 分支,比 openbsd 版本还强

  • 部分参数:

-N 传输完就退出
-n 不进行dns解析
-l 侦听
-p 端口号
-u 代表udp协议
-z 代表不发送数据,仅连接
-vv 显示更多信息 -v、-vv、-vvv

  • 示例:

# http端口测试(tcp 80):
$ nc -vz 192.168.32.13 80     # 类别telnet 192.168.32.13 80# tcp端口测试:
$ nc -l -p 8080         # 服务器端侦听8080端口,默认tcp协议
$ nc 192.168.1.2 8080   # 连接服务器(192.168.1.2)的8080端口# udp端口测试:
$ nc -u -l -p 8080        # 服务器端侦听8080端口
$ nc -u 192.168.1.2 8080# 传输目录:
$ nc -l -p 3333 | tar -x ./                  # 服务器端侦听3333端口。收到tar包数据流,并解包到当前目录
$ tar -cO ./2018 | nc -N 192.168.32.13 3333  # 创建tar包,并输出到标准输出,再通过管道传输到服务器(192.168.32.13)的3333端口。  说明:-O 输出到标准输出。
## 或压缩后传输:
$ nc -l -p 3333 | tar -zx ./                 # 服务器端侦听3333端口。收到tar.gz包数据流,并解压解包到当前目录
$ tar -zcO ./2018 | nc -N 192.168.32.13 3333 # 创建tar.gz包,并输出到标准输出,再通过管道传输到服务器(192.168.32.13)的3333端口。# 传输目录为tar文件:
$ nc -l -p 3333 > xx.tar.gz                  # 服务器端侦听3333端口。收到tar.gz包数据流保存到xx.tar.gz
$ tar -zcO ./2018 | nc -N 192.168.32.13 3333 # 创建tar.gz包,并输出到标准输出,再通过管道传输到服务器3333端口# 传输文件:
$ nc -l -p 3333 > xx.tar.gz                  # 服务器端侦听3333端口。收到tar.gz包数据流保存到xx.tar.gz
$ nc -N 192.168.32.13 3333  < xx.tar.gz      # 将文件xx.tar.gz输出到服务器3333端口# 网速吞吐量测试:
$ nc -vv -n -l -p 3333 > /dev/null                               # 服务器端侦听3333端口。将收到的数据丢弃
$ dd if=/dev/zero bs=1MB count=100 | nc -N -n 192.168.32.13 3333 # 通过dd输入 100x1MB 数据到服务器3333端口
## 或方法二即时显示网速
$ nc -l -p 3333 | pv         # 需要安装:sudo apt install pv
$ nc 192.168.32.13 3333 < /dev/zero# 连接bash shell:
$ mkfifo /tmp/f                                               # 新建管道文件
$ cat /tmp/f | /bin/bash 2>&1 | nc -v -n -l -p 3333 > /tmp/f  # 这个命令要从nc命令处开始理解,首先nc收到远程传来的内容(命令),将其输出到管道,然后将管道里的内容cat到bash,然后bash执行完成后又输出到stdout,stdout又会被输出到远程的屏幕进行回显
$ nc 192.168.32.13 3333
## 用完注意将 /tmp/f 这个 fifo 管道文件删除。

2 新版瑞士军刀:socat

参考:https://zhuanlan.zhihu.com/p/347722248

  • 基本命令:

socat [参数] <地址1> <地址2>

[参数]请参考help

使用 socat 需要提供两个地址,然后 socat 做的事情就是把这两个地址的数据流串起来,把第左边地址的输出数据传给右边,同时又把右边输出的数据传到左边。最简单的地址就是一个减号“-”,代表标准输入输出,例如:

$ socat - -          # 把标准输入和标准输出对接,输入什么显示什么
  • 示例:

# 网络测试:
$ socat - TCP-LISTEN:8080          # 启动 server 监听 TCP
$ socat - TCP:192.168.32.13:8080   # 连接server 8080
## 或:
$ socat TCP-LISTEN:8080 -
$ socat TCP:192.168.32.13:8080 -
## 说明:上面两种方法效果一样,因为就是把左右两个地址的输入输出接在一起,除非前面指明 -u 或者 -U 显示指明数据“从左到右”还是“从右到左”。# 也可以用udp协议:
$ socat - UDP-LISTEN:8080               # 终端1 上启动 server 监听 UDP
$ socat - UDP:192.168.32.13:8080        # 终端2 上启动 client 链接 UDP# 一般如果客户端结束结束会话,服务端也会结束,但加额外参数可以避免:
$ socat - TCP-LISTEN:8080,fork,reuseaddr      # 终端1 上启动 server
$ socat - TCP:192.168.32.13:8080              # 终端2 上启动 client
## 注释:
## fork      能同时应答多个链接过来的客户端,每个客户端会 fork 一个进程出来进行通信
## reuseaddr 地址重用,防止链接没断开玩无法监听的问题# 端口转发1:
$ socat TCP-LISTEN:8080,fork,reuseaddr  TCP:www.baidu.com:443  # 转发本地端口的数据到远程www.baidu.com:443# 端口转发2:
$ socat TCP-LISTEN:8080,fork,reuseaddr  EXEC:/usr/bin/bash    # 服务端提供 shell
$ socat - TCP:192.168.32.13:8080                              # 客户端登录

3 最后

img

爱你!

http://www.lryc.cn/news/570482.html

相关文章:

  • LED光源的种类与LED光源与灯具的定义介绍
  • 微软图形控件(Chart或MSchart)的用法 急用!!!
  • iOS开发笔记之十——dealloc的用法
  • c语言求10000以内所有对称数,js面试题:打印1-10000内的对称数的四种解法
  • pyhton基础【9】容器介绍四
  • 创建ActionForm
  • 常用的iPhone app快捷url链接
  • 如何用ai设计测试
  • 5G核心网UPF负载控制信息上报机制:SMF动态选路的关键技术
  • 【学习】RSA技术
  • Python•元组集合字符串
  • 09. 【Android教程】表格布局 TableLayout
  • 安全测试工具APPScan安装与使用教程
  • 一文梳理人脸识别,看完全都懂了!
  • 碎片拼接
  • urp教务系统简单利用
  • Ecovadis认证意义是什么?什么是Ecovadis认证?
  • 奇偶排序(Odd-Even Sort)
  • 如何给Fedora 15添加磁盘(或盘片)
  • wireshark使用抓包详细图文教程
  • 学习何凯明在图像中的降噪技术和识别率问题
  • 项目文章 ▏组蛋白乳酸化驱动的B7-H3表达促进肿瘤免疫逃避
  • 快准牌电脑发软件_做自媒体视频剪辑、加字幕、文字音频互转,什么软件免费又好用?...
  • AI 神经网略小白学习笔记(一) -- 环境搭建
  • 第11章 结构 笔记
  • MyBatis+Spring整合示例程序
  • 技术突破与落地应用:端到端 2.0 时代辅助驾驶TOP10 论文深度拆解系列【第四篇(排名不分先后)】
  • 2024年【全套】Android零基础入门教程(知识精讲+强化实战(1),今日头条android面试
  • 工厂模式Factory Pattern
  • 英一真题阅读单词笔记 12年