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),谢谢大家支持. 其实框架开发大家都知道,不过要想写得通俗点,我个人觉得还是挺吃力 ...
随机推荐
- 使用阿里云服务器部署jupyter notebook远程访问
安装annaconda 与jupyter notebook annaconda在已经自带了jupyter notebook.jupyter lab.ipython 等一系列工具,不需要再单独安装这些工 ...
- kube-controller-manager源码分析-PV controller分析
kubernetes ceph-csi分析目录导航 概述 kube-controller-manager组件中,有两个controller与存储相关,分别是PV controller与AD contr ...
- bootstrap validate 验证插件 动态添加和动态删除验证项
//添加验证项 function addField(field, notEmptyMsg, othercon) { if (!othercon) { $("#gyssave").b ...
- Centos 6.5 GitLab安装配置搭建详细过程
GitLab搭建详细过程 一.前提 系统:Centos 6.5 软件版本:gitlab-7.8.4 Selinux:关闭 防火墙规则:先清空(搭建好了后续自己添加相关放行规则) 二.yum源配置和 ...
- Collections中的实用方法
总结一下java.util.Collections类内部的静态方法. checkedCollection(Collection<T> , Class<T> type) chec ...
- MYSQL数据库数据拆分之分库分表总结 (转)
数据存储演进思路一:单库单表 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 数据存储演进思路二:单库多表 随着用户数 ...
- HGAME_easyVM
64位的exe,拖入ida64静态分析一波. 一.先是一大堆的赋值语句,有点懵,后面在分析handler的时候,也直接导致了我卡壳,这里还是得注意一下这些局部变量都是临近的,所以可以直接看成一个连续数 ...
- 多线程笔记-CancellationToken(取消令牌)
介绍 为什么需要CancellationToken?因为Task没有方法支持在外部取消Task,只能通过一个公共变量存放线程的取消状态,在线程内部通过变量判断线程是否被取消,当Cancella ...
- .Net5 IdentityServer4下SqlServer和Mysql数据迁移
1.概念 以下概念从官网整理的,我也是看官网一步一步学习的 官网地址 https://identityserver4.readthedocs.io/en/latest/index.html 1.1 I ...
- ZSH主题
All the current themes can be found in the themes/ directory in the oh-my-zsh distribution. See list ...