当前位置: 首页 > Python, 代码艺术, 安全工具 > 正文

简单NetCat的实现

在之前的博文《NC入门笔记》 中简单介绍了NC的四种常见的使用技巧。在本篇博文中将用python实现NC几个常用的功能。基本实现很简单,就是建立TCP socket连接进行通信,关于python的socket编程可以看我之前的文章:《python网络编程基础》。在命令执行这块就是使用subprocess(subprocess 模块允许你大量产生新的进程,然后连接到它们的输入/输出/错误管道,并获取它们的返回码)。它会创建子进程并在子进程中执行命令,和c中的fork出一个子进程,然后在子进程中运行exec执行另外一个进程类似。由于采用python单文件语编写,因此可以跨平台使用(在Windows下可以使用py2exe等打包程exe独立运行)。

首先,导入需要的python模块,并定义一些必要的全局变量:

编写主函数部分:使用getopt解析参数,这里的NC实现的基本的功能:1)文字交互; 2)远程shell连接; 3)文件上传。并根据参数选择执行server_loop()部分,还是发送数据部分的client_sender()函数:

接下来就是server_loop()部分,还是发送数据部分的client_sender()函数:

server_loop()部分建立TCP socket循环监听本地端口接收TCP连接并创建一个新的线程处理函数client_handler()。其线程处理函数如下:

在不使用-l参数时,就是像远程服务端发送数据,基本就是socket数据发送,详见下面代码:

至此,一个基本的NC的简单框架算是基本完成了。当然还有其他一些简单的函数部分,这里就不一一说明,完整的代码见GitHub:

https://github.com/Lingerhk/py_script/blob/master/simple_netcat.py

 



这篇博文由 s0nnet 于2015年12月08日发表在 Python, 代码艺术, 安全工具 分类下, 欢迎你在下面发表评论
如无特别说明,独木の白帆发表的文章均为原创,欢迎大家转载,转载请注明: 简单NetCat的实现 | 独木の白帆
关键字: ,

简单NetCat的实现:目前有2 条留言

  1. Wow, fantastic blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of
    your website is magnificent, as well as the content!

    2017-10-21 上午8:07 [回复]
    • s0nnet:

      haha,thanks for coming!

      2017-11-17 下午10:29 [回复]

发表评论

快捷键:Ctrl+Enter