版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、NetCat的使用NetCat是一个非常简单的Unix工具,可以读、写TCP或UDP网络连接 (network connection)。它被设计成一个可靠的后端(back-end)工具,能被其它 的程序程序或脚本直接地或容易地驱动。同时,它又是一个功能丰富的网络调试和开发工具,因为它可以建立你可能用到的几乎任何类型的连接,以及一些非常有意思的内建功能。NetCat,它的实际可运行的名字叫nc,应该早很就被提供, 就象另一个没有公开但是标准的 Unix工具。最简单的使用方法,” nc host port ”,能建立一个TCP连接,连向指定的 主机和端口。接下来,你的从标准输入中输入的任何内容都会
2、被发送到指定的主 机,任何通过连接返回来的信息都被显示在你的标准输出上。这个连接会一直持续下去,至到连接两端的程序关闭连接。注意,这种行为不同于大多数网络程序, 它们会在从标准输入读到一个文件结束符后退出。NetCat还可以当服务器使用,监听任意指定端口的连接请求(inboundconnection),并可做同样的读写操作。除了较小限制外,它实际并不关心自己 以“客户端”模式还是“服务器”模式运行,它都会来回运送全部数据。在任何 一种模式下,都可以设置一个非活动时间来强行关闭连接。它还可以通过UDP来完成这些功能,因此它就象一个tel net那样的UDP 程序,用来测试你的UDP服务器。正如它
3、的“ U”所指的,UDP跟TCP相比是 一种不可靠的数据传输,一些系统在使用 UDP传送大量数据时会遇到麻烦,但 它还有一些用途。你可能会问“为什么不用tel net来连接任意的端口” ?问题提得好(valid), 这儿有一些理由。Tel net有“标准输入文件结束符(sta ndard in put EOF) ”问题,所以需要在脚本中延迟计算以便等待网络输出结束。这就是netcat持续运行直到连接被关闭的主要原因。Telnet也不能传输任意的二进制数据,因为一些特定 的字符会被解释为Telnet的参数而被从数据流中去除。Telnet还将它的一些诊 断信息显示到标准输出上,而NetCat会将这
4、信息与它的输出分开以不改变真实数据的传输,除非你要求它这么做。当然了,Tel net也不能监听端口,也不能使用UDP。NetCat没有这些限制,比Tel net更小巧和快捷,而且还有一些其它的 功能。NetCat的一些主要功能:1. 支持连出和连入(outbound and inbound connection),TCP和UDP,任意源和目的端口2. 全部DNS正向/反向检查,给出恰当的警告3. 使用任何源端口4. 使用任何本地设置的网络资源地址5. 内建端口扫描功能,带有随机数发生器6. 内建 loose source-routing 功能7. 可能标准输入读取命令行参数8. 慢发送模式,每
5、N秒发送一行9. 以16进制显示传送或接收的数据10. 允许其它程序服务建立连接,可选11.对Tel net应答,可选编译NetCat编译NetCat是非常简单的。检查一下 Makefile,找到符合你的系统类型的 SYSTYPE如何拼写 撚后运行“ make ”,然后可执行的nc就会出现了。如果 没有合适的SYSTYPE,用” generic”试试。其 Makefile 中有 dos, ultrix, sunos, solaris-static, Solaris, aix, linux, irix, osf, freebsd, bsdi, n etbsd, hpux, uni xware,
6、aux, n ext, gen eric等 SYSTYPE,其中generic不算系统类型,则dos其实并不支持。在本文一开始的 NetCat的链 接页面中,也有一个 Windows版本的NetCat,是另一个人做的移植。Linux的sys/time.h并不真正支持FD_SETSIZE的表示,编译时会有一个 无害的警告。在一些系统中编译时,可能会与 signal()有关的指针类型警告,但 不影响编译结果。开发NetCat的功能NetCat小巧且功能强大,描述它的功能就是象描述瑞士军刀的功能一样。如果没有提供命令行参数,NetCat会提示你从标准输入来输入命令参数, 然后NetCat会在内部解析
7、输入。用这种办法输入命令式参数,可以用来防止借 助“ps”来查看你的命令行参数。主机参数可以是一个名字或一个IP地址。如果-n出现,则它接受IP地址, 而不再对计算机的名字或域名进行解析。如果没有 -n,但加上-v,则NetCat可 进行正 /反向域名解析,并警告 the all-too-common problem of mismatched name in DNS。这会耗费稍多一点时间,但在某些情况下会有用处。如,你想知 道某个IP的主机名,NetCat可省却你手工查找的时间。要建立对外的连接,必须提供一个端口号,可以是个数字,也可以 /etc/services列表中的端口服务名。当-n出
8、现时,则只有数字形式的端口可以 接收。-v参数,可以将一些关于连接建立信息输出到标准错误。-v参数多出现几次,则显示的信息会更多一些。如果-V参数没有出现,则NetCat将默默地工作, 至到出现错误为止。-w参数后跟一个时间值,用以指定建立链接时的等待时间,-w如果多次出现,则后面的值将取代前面的设置。-w还用来设置连接非活动时间,当标准输 入结束以后,如果等待指定的一段时间后仍没有数据返回,则NetCat会再试一次,然后关闭连接并退出。当-u参数出现时,用UDP建立连接。用-o logfile参数,可以将连接上往来传输的数据以16进制的形式记录到logfile中(每行的左半部分是16进制显示
9、,右半部分为ascii显示)。其中,每 行的第一个字符为” ”,分别表示接收的数据或发送的数据。NetCat用-s ip-addr或-s name来绑定本地网络资源地址,-p portarg来绑 定本地端口。除了因权限限制或端口已经使用外, -p可以绑定任何端口。Root 用户可以绑定保留的1024以内的端口。如果不用-p指定端口,则使用系统给定 的未使用的端口。(-p功能在客户端状态也可以使用,-s功能并不是在所有的平台 上都可用)-I参数可以使NetCat以服务器状态运行。” nc -l -p 1234 remote host name remote port ”可以用来指定入连的主机和端
10、口, 如果申请连接的主机或端口不符指定,则会断开连接当编译时置-DGAPING_SECURITY_HOLE ,则-e 参数被 NetCat 支持。-e 后面跟一可执行程序的名称,当一个连接(入或出)被建立时,这个程序被运行。 尤其当NetCat以服务器端运行时,-e参数使其有点象inetd 了,只是只能运行 一个进行而已。需要说明的是,-e后的程序不能从NetCat的命令行接收参数, 如果有参数要传递,可能需要一个脚本。当编译时置-DTELNET,则-t参数被支持,此时NetCat可以登录到一个 telnetd服务器,并提供相关的握手应答,至到出现登录提示符。NetCat用8k的读写,来尽可能
11、高效将收到数据显示到标准输出上及将标准 输入写到连接上。-i参数,可以用来设置发送一行标准输入信息的间隔,以减少 发送速度。端口扫描是一探测主机服务的流行方法。NetCat的命令行中,先是参数,再是主机,最后是端口。端口可以是一些服务名、端口号,或者是一个端口范围(形如 N-M )。” nc -v -w 2 -z -i 1 20-30 ”用来扫描 target 主机的 20-30(两端 包含)端口,-z表示不发送任何数据到TCP连接或非常有限的数据到 UDP连接。-i用以指明两个端口建立连接的时间的间隔。-w用以指明连接不活动时间。通 常情况下,扫描按从高到低的顺序依次扫描指定的端口,-r参数
12、可以让NetCat在指定的端口范围内随机地扫描端口。(当-r被用于单个连接时,本地的端口在 8192以上,除非用-p指定)-g可以用来指定网关(最多可达 8个),-G可以用来指定source-routingpointer。(这是原文,但我还是不明白。:(-g = Group hopsMany people are in terested in testi ng n etwork conn ectivity using IP source routing, even if its only to make sure their own firewalls are blocking source-
13、routed packets. On systems that support it, the -g switch can be used multiple times up to 8 to con struct a loose-source-routed path for your connection, and the -G argument positions the hop pointer within the list.If your network allows source-routed traffic in and out, you can testconn ectivity
14、to your own services via remote points in the intern et. Note that although newer BSD-flavor telnets also have source-routing capability, it isnt clearly docume nted and the comma nd syn tax is somewhat clumsy. Netcats han dli ng of -g is modeled after traceroute. )NetCat不是一个任意包发生器,但可以与 raw socket通话
15、,nit/bpf/dlpi 有时也能行(nit/bpf/dlpi may appear at some point).推荐 Drren Reed 的ip_filter包,里面有一个工具能创建并发送raw packets.记到最后,越来越感觉到这个东东不简单,而且一旦为牛人所用,威力更是 无比。上网一搜,果然一有名的工具。:(在 NetCat说明的最后,有许多的例 子和探讨,却是不敢写在这儿了。Posted by Hilt on at October 25, 2003 11:50 PM |TrackBackComme nts不客气.我也是个初学者,学习就是个交流的过程:)不知什么原因,最后的一部
16、分居然没加上,我说怎么看着不对劲:(四.ftp服务器nc可以从任何地方接受输入,不仅仅是-e指定的程序,还可以是文件;nc可以将输 入重定向到任何地方,不仅仅是默认的屏幕.指定的方法很简单,使用 和somefile例 2; server: nc -l -c -p 1234 somefileclient: nc 1234 /check/host.diskl然后,可以利用linux内核的loopback特性,把host.disk以只读的方式mount上, 然后就可以做取证分析了 .如果真的做取证分析,一定不要在原始的受害主机硬盘上find和类似的操作,因 为这会修改时间标记
17、而破坏原始的证据例4.将文件压缩后再传送.如果你的文件很大,何不先压缩它呢,利用管道,我们甚至不用生成压缩后的中间 文件!源主机:tar czf - work|nc -l -c -p 1234目的主机:nc 1234|tar xzvf -tar打包时最好不要使用绝对路径,虽然GNU的tar能把它转换成相对路径,但不 是所有的平台都能做到,所以如果不想把你的文件系统搞乱的话,就使用相对路径 吧!这里的server和client的组合是可以互换的,以第六节中例1来说明:你也可以这样:干净主机: nc -l -p 1234 -c |md5sum -c -|grep -v OK
18、被入侵主机:find /etc -type f|xargs md5sum| nc 1234其实,这些都不是固定的程式,根据你的实际需要,你可以想出更多的使用方法。 因为,你是在使用 UNIX,这就是UNIX。thats all.抛砖引玉,写到这里吧,这就是瑞士军刀,觉得怎么样?其实netcat还有 许多许多其他的用法,唯一限制就是你的想象力,把你知道的告诉我,OK?当然还有些方面我没有写出来,比如,netcat中继的问题.某些黑客就拿netcat中 继功能用做跳板来躲避追踪的这方面没有怎么研究过,再者也没有时间,如果哪位高手知道,请告诉我.:)Posted by:lin
19、xd at December 12, 2003 08:22 AM非常感谢linxd的文字。同样是这么一个程序,在不同的人手中,发挥的功能就差别很大。从你的文 字中,我学到了很多。谢谢!Hilt onPosted by:Hilt on at December 11, 2003 09:53 PM有关netcat的文章实在是太多了,关于它的强大我就不再复述了 .netcat可以作为类似于tele nt的客户端,也可以监听某个端口作为服务器,还可以 作为扫描工具扫描对方主机的端口 ,还可以用来传输文件,不相信吗?听我慢慢道 来:)首先我们要弄明白netcat的工作原理,其实netcat的原理很简单,它
20、就是从网络的 一端读入数据,然后输出到网络的另一端,它可以使用tcp和udp协议.之所以叫做 netcat,因为它是网络上的cat,想象一下cat的功能,读出一个文件的内容 撚后输 出到屏幕上(默认的stdout是屏幕,当然可以重定向到其他地方).netcat也是如此, 它读取一端的输入,然后传送到网络的另一端,就这么简单.但是千万不要小看了它,netcat可以完成很多任务,尤其是和其他程 序组合时.好了,废话少说,进入正题吧.:p网上有两种版本的netcat, 一个是stake公司的netcat, /cgi-bi n/mallgate/2004051
21、4/http:/www.atsta /research/tools/network_utilities/ 也就是最初的版本,还有一个是GNU的n etcat. /cgi-b in/mallgate/20040514/http:/ netcat.sou /download.php我个人更倾向于使用GNU的netcat,因为它的功能更多,不过GNU的没有wi ndows平台的版本:con fused:至于编译和安装我想就不用说了 ,如果这关都过不了,我想也有点太,看看readme 和 in stall 文件,一般情况下.
22、/con figure&make&make in stall 就 ok 了,具体的./configure选项看看帮助。netcat的命令行程序名字为nc,是netcat的缩写,安装完了是找不到netcat这个 程序的.:)rootmail etc #nc -hGNU netcat 0.7.0, a rewrite of the famous networking tool.Basic usages:connect to somewhere: nc opti ons host name port port .liste n for inbound: nc -l -p port optio ns
23、host name port .tunnel to somewhere: nc -L host name:port -p port opti onsMan datory argume nts to long opti ons are man datory for short opti ons too.Opti ons:-c, -close close conn ecti on on EOF from stdi n-e, -exec=PROGRAM program to exec after connect-g, -gateway=LIST source-routi ng hop poin ts
24、, up to 8-G, -poi nter=NUM source-rout ing poi nter: 4, 8, 12,.-h, -help display this help and exit-i, -i nterval=SECS delay in terval for lines sent, ports sca nned-l, -liste n liste n mode, for inbound conn ects-L, -tu nn el=ADDRESS:PORT forward local port to remote address-n,-d on t-resolve nu me
25、ric- only IP addresses, no DNS-o, -output=FILE output hexdump traffic to FILE (implies -x)-p, -local-port=NUM local port nu mber-r, -ra ndomize ran domize local and remote ports-s, -source=ADDRESS local source address (ip or host name)-t, -tcp TCP mode (default)-T, -tel net an swer using TELNET n eg
26、otiati on-u, -udp UDP mode-v, -verbose verbose (use twice to be more verbose)-V, -versio n output versi on in formatio n and exit-x, -hexdump hexdump incoming and outgo ing traffic-w, -wait=SECS timeout for conn ects and final net reads-z, -zero zero-l/O mode (used for sca nning)Remote port number c
27、an also be specified as range. Example: 1-1024我用的是GNU的netcat,比起stake公司的netcat多了 -c选项不过这是很有用 的一个选项,后面我们会讲到还有GNU的-L,-t ,-T选项和stake的-L -t用途是 不一样的,自己琢磨吧一 客户端这是最简单的使用方式,ncnc 80get / http/1.1HTTP/1.1 400 Bad RequestDate: Mo n, 08 Dec 2003 06:23:31 GMTServer: Apache/2.0.48-dev (Unix)Content-
28、Length: 310Connection: closeConten t-Type: text/html; charset=iso-8859-1400 Bad RequestBad RequestYour browser sent a request that this server could not un dersta nd.Apache/2.0.48-dev (Unix) Server at Port 80呵呵,看到了什么,我什么也没说哦:p二.简单服务器nc -l -p /这里-l参数表明nc处于监听模式,-p指定端口号.nc -l -p 1234假设这台
29、主机 ip 为 然后从客户端输入,nc 1234然后你从任一端输入的数据就会显示在 另一端了 .其实netcat的server和client的区别并不大,区别仅仅在于谁执行了 -I 来监听端口,一旦连接建立以后,就没有什么区别了 .从这里我们也可以了解 netcat的工作原理了,通过网络链接读写数据.It is a simple Unix utility which reads and writes data across n etwork conn ecti ons, using TCP or UDP protocol-stake主页是这么说的.
30、三. telnet服务器nc有一个-e的选项,用来指定在连接后执行的程序.在windows平台上可以指定-e cmd.exewinxp,win2000,如果是98就指定command.exe.linux 则指定-e bash,或者任何你喜欢的shell,或者是你自己编写 的程序,通常是做为后门:p指定-e的效果是由你指定的程序代替了 nc自己来接受另一端的输入,并把输入(命令)后反馈的结果显示到另一端.server: nc -l -p 1234 -e bashclient: nc 1234 就可以远程登陆 server 了其实我们不一定非要在server端指定-e,也可以在client端指定.server: nc -l -p 1234cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中班科学教案磁铁能吸什么
- 中国会展设计趋势与空间体验升级战略报告
- 中国会展营销创新与客户关系管理研究报告
- 中国会展经济对社会经济综合贡献评估报告
- 2026年中国汽车行业发展趋势及投资前景分析报告(目录)
- 环境监测实验室管理规范-微生物检验玻璃器皿灭菌管理制度
- 中班科学教案去逛动物园
- 2026年小雷向爸妈借钱测试题及答案
- 2026年高考选择专业测试题及答案
- 2026保护江豚面试题及答案
- 《烹饪美学》课件-第五章 饮食器具美学
- 大厦消防安全培训案例课件
- 2019新人教版高中英语新教材选择性必修三课文及翻译
- 留园完整版本
- 三年级语文下册基础知识默写单(含答案)
- 建设工程工程量清单计价标准(2024版)
- 果林合股协议书
- 2025新热处理工程师考试试卷及答案
- 硬笔书法全册教案共20课时
- 《数智时代下的供应链管理:理论与实践》课件 第1-7章 理解供应链- 供应链经典的生产计划
- 知情同意告知培训
评论
0/150
提交评论