前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Windows常见的持久化后门汇总

Windows常见的持久化后门汇总

作者头像
洛米唯熊
发布于 2020-06-16 02:44:05
发布于 2020-06-16 02:44:05
2.5K00
代码可运行
举报
文章被收录于专栏:洛米唯熊洛米唯熊
运行总次数:0
代码可运行

0x00:前言

持久化后门是指当入侵者通过某种手段拿到服务器的控制权之后,通过在服务器上放置一些后门(脚本、进程、连接之类),来方便他以后持久性的入侵,简单梳理一下日常遇见windows用的比较多的一些持久化方式方便以后排查问题使用.

Windows

0x01:"经典的"shift后门

这个算是比较古老还比较"经典的"的隐藏方式了,这里简单讲一下,在windows中有一些辅助功能,能在用户未登录系统之前可以通过组合键来启动它,类似的辅助功能有:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
C:\Windows\System32\sethc.exe 粘滞键,启动快捷键:按五次shift键
C:\Windows\System32\utilman.exe 设置中心,启动快捷键:Windows+U

在低版本的windows中,我们可以直接把setch.exe替换成我们的后门程序.并在用户的登录页面敲击五次shift键就可以出现CMD窗口.

0×2 注册表自启动

MSF的Persistence模块利用的就是写注册表自启动项来实现的,一般自启动项是这两个键:Run和RunOnce,两者的区别如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Run:该项下的键值即为开机启动项,每一次随着开机而启动。
RunOnce:RunOnce和Run差不多,唯一的区别就是RunOnce的键值只作用一次,执行完毕后就会自动删除

用户级

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce

系统级

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce

举个栗子(windown10用户级)

0x03:定时任务

Windows实现定时任务主要有schtasks与at二种方式.简单的说schtasks是at的升级版本.

at:at命令在win7-08等高版本的windows中是不能将任务在前台执行的,也就是只会打开一个后台进程.

schtasks:是将定时的任务在前台执行.

0x04:WMI

WMI是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机.主要与Powershell命令配合使用可以实现无文件攻击重要方式,具有良好的隐蔽性也是目前较为常用的持久化手段.

利用方式参考:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/mattifestation/WMI_Backdoor

利用WinRM实现内网无文件攻击反弹shell

0x05:屏幕保护程序

原创干货 | 利用屏幕保护程序进行权限维持

0x06:自启动服务

自启动服务一般是在电脑启动后在后台默认或者加载指定的服务程序,可以将exe应用程序注册为服务,也可以将dll文件注册为服务.

MSF可以使用Metsvc创建服务,此类操作极容易被AV查杀.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
meterpreter > run metsvc -A

运行run metsvc -A完将会在目标主机上以Meterpreter的服务的形式注册在服务列表中,并开机自动自动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
meterpreter > run metsvc -r

0x07:DLL劫持

如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去指定的目录下查找这个DLL.

如果攻击者能够控制其中的某一 个目录,并且放一个恶意的DLL文件到这个目录下,这个恶意的DLL便会被进程所加载,从而造成代码执行.

具体参考

看我如何利用微信反弹shell

另外一种思路是通过查看被劫持的DLL的导出函数表,编程实现劫持DLL向原DLL的导出函数的转发,并加入你的恶意代码达到一个劫持的效果.

0x08:影子账户

CMD创建用户时 后面加一个$可以创建一个匿名用户,创建完毕后我们再把这个用户添加到administrator组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
net user jaky$ luomiweixiong /add
net localgroup administrators jaky$ /add

可以看到net user是看不到我们创建的用户,但是计算机管理-用户和组中可以看到.这时我们还需要更改一下注册表

其键位置为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users

注意:SAM键值默认是只能system权限修改的,所以我们要修改一下SAM键的权限,给予administrator完全控制和读取的权限.

参考

https://jingyan.baidu.com/article/ca00d56c537a9fe99febcf79.html

0x09:COM劫持

主要通过修改CLSID下的注册表键值,实现对CAccPropServicesClass和MMDeviceEnumerator劫持,而系统很多正常程序启动时需要调用这两个实例,所以,这就可以用作后门来使用,并且,该方法也能够绕过Autoruns对启动项的检测.

参考

https://www.gdatasoftware.com/blog/2014/10/23941-com-object-hijacking-the-discreet-way-of-persistence

Powershell版本的poc

https://github.com/3gstudent/COM-Object-hijacking

0x10:BITS Jobs后门

BITS Jobs是windows后台智能传输服务,全称Background Intelligent Transfer Service (BITS),用于HTTP或SMB文件传输.

它可以给任务设置优先级和异步下载,智能调节带宽,从而不占用其他应用的网络资源.

Powershell和bitsadmin.exe都可用于创建和管理Bits Job,但Powershell似乎只支持文件传输,windows原生程序bitsadmin.exe还支持传输完成后执行代码.

常见的bitsadmin命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bitsadmin /create [type] DisplayName //创建一个任务
bitsadmin /cancel <Job> //删除一个任务
bitsadmin /list /allusers /verbose //列出所有任务
bitsadmin /AddFile <Job> <RemoteURL> <LocalName> //给任务test添加一个下载文件
bitsadmin /SetNotifyCmdLine <Job> <ProgramName> [ProgramParameters] //设置在任务完成传输时或任务进入状态时将运行的命令行命令。
bitsadmin /Resume <Job> //激活传输队列中的新任务或挂起的任务。
bitsadmin /cancel <Job> //删除某个任务
bitsadmin /reset /allusers //删除所有任务
bitsadmin /complete <Job> //完成某个任务

举个栗子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bitsadmin /create test  #创建一个任务
bitsadmin /addfile test C:\windows\system32\calc.exe C:\Users\mac\Desktop\calc.exe #给任务添加一个下载或者负责对象,我这里直接复制本地calc.exe
bitsadmin /SetNotifyCmdLine test cmd.exe "cmd.exe /c calc.exe" #设置任务完成时将运行的命令
bitsadmin /resume test  #激活任务

0x11:INF文件后门

INF文件或安装信息文件是Microsoft Windows用于安装软件和驱动程序的纯文本文件.

INF文件最常用于安装硬件组件的设备驱动程序.Windows包含用于创建基于INF的安装的IExpress工具.

INF文件是Windows安装程序API及其后续版本Windows Installer的一部分.

举个栗子

0x12:文件关联

文件关联就是将一种类型的文件与一个可以打开它的程序建立起一种依存关系.一个文件可以与多个应用程序发生关联.可以利用文件的"打开方式"进行关联选择.

我们可以用assoc命令显示或修改文件扩展名关联,我们可以看一下.txt文件和jpg文件的关联

可以用ftype命令显示或修改用在文件扩展名关联中的文件类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
txtfile=C:\Windows\system32\calc.EXE %1

举个栗子

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 洛米唯熊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R海拾遗-双因素重复测量方差分析
重复测量方差分析 sunqi 2020/7/26 概述 双因素的重复测量资料方差分析 代码 数据获得 library(tidyverse) library(ggpubr) library(rstatix) rm(list=ls()) set.seed(123) data("selfesteem2", package = "datarium") # 抽样 selfesteem2 %>% sample_n_by(treatment, size = 1) ## # A tibble: 2 x 5 ## id
火星娃统计
2020/09/15
1.9K0
R海拾遗-双因素重复测量方差分析
R海拾遗-单项重复测量方差分析
对于单项的方差分析,如果不满足上述假设,使用Friedman test进行,对于双向、三向的方差分析没有替代的非参数方法,只能通过装换数据
火星娃统计
2020/09/15
2K0
R海拾遗-单项重复测量方差分析
数据分析:假设检验方法汇总及R代码实现
显著性检验方法,通常也被称为假设检验方法,是统计学中用于评估样本统计量是否显著不同于某个假设值的一种重要工具。以下是假设检验方法使用时需要考虑的三个条件的书面化表述:
生信学习者
2024/06/20
7700
数据分析:假设检验方法汇总及R代码实现
R语言单、双因素方差分析及结果可视化的简单小例子
这里用到的是R语言的内置数据集sample_n_by()函数很有用,能够分组随机抽样%>% 是管道符 是将前面的结果传输给后面的函数
用户7010445
2021/08/31
6.3K1
R语言单、双因素方差分析及结果可视化的简单小例子
R语言重复测量数据的多重比较
使用的数据来自孙振球,徐勇勇《医学统计学》第4版。课本的电子版已上传到QQ群,加群即可免费获取!
医学和生信笔记
2022/11/15
1.1K0
R语言重复测量数据的多重比较
「R」管道统计分析——rstatix使用指南
rstatix 包提供了一个与「tidyverse」设计哲学一致的简单且直观的管道友好框架用于执行基本的统计检验, 包括 t 检验、Wilcoxon 检验、ANOVA、Kruskal-Wallis 以及相关分析。
王诗翔呀
2020/07/03
2.9K0
「R」管道统计分析——rstatix使用指南
R海拾遗_naniar
通常情况下,我们使用summary函数或者is.na对缺失值进行查看,但是当数据量增大的时候,就显得有点费力了,在visdat包中,有两个函数vis_dat和vis_miss用于可视化缺失查看
火星娃统计
2021/01/12
9580
R海拾遗_naniar
R海拾遗-tidyverse
tidyverse函数高效,代码简洁,受过专业训练的一般都用这个,除非记不住,能记一点是一点吧。 love&peace
火星娃统计
2020/09/15
1.2K0
R语言方差分析总结
这篇文章涵盖了孙振球,徐勇勇《医学统计学》第4版中关于方差分析的章节,包括:多样本均数比较的方差分析/多因素实验资料的方差分析/重复测量设计资料的方差分析/协方差分析。
医学和生信笔记
2022/11/15
2.7K0
R语言方差分析总结
R海拾遗_再谈非标准评估
上面的例子summary的变量是disp,分组变量是cyl和am,使用三个点这里传递了任意个参数
火星娃统计
2021/06/29
7270
R语言倾向性评分:回归和分层
倾向性评分有4种应用,前面介绍了倾向性评分匹配及matchIt和cobalt包的使用:R语言倾向性评分:匹配
医学和生信笔记
2023/02/14
1.4K0
R语言倾向性评分:回归和分层
R优雅的进行统计分析(2)自定义添加统计信息
❝本节来介绍如何使用R语言来做统计分析,通过「rstatix」包进行统计检验,完全使用tidyverse体系进行数据清洗及可视化,使用add_pvalue,stat_pvalue_manual两个函数来自定义添加p值 ❞ 加载R包 library(tidyverse) library(rstatix) library(ggprism) library(ggpubr) library(ggsci) 数据清洗 df <- ToothGrowth %>% mutate(dose=as.factor(d
R语言数据分析指南
2022/09/21
7600
R优雅的进行统计分析(2)自定义添加统计信息
超强的gtSummary ≈ gt + comparegroups ??
在R语言中绘制表格的包我们介绍了非常多,除了专门绘制基线资料表的compareGroups/tableone/table1,还介绍了绘制普通表格的gt,以及扩展包gtExtra。
医学和生信笔记
2022/11/15
1.8K0
超强的gtSummary ≈ gt + comparegroups ??
R:绘制临床三线表
R数据处理能力非常强大,而且输出也非常灵活。当然在R里面的输出都是print字符形式,我们在R里面看到结果很一目了然,但是往往需要把这些结果放在三线表里面。 在临床研究中,我们经常要用到三线表来展示数据与统计值。R可以输出统计参数及检验参数,一个个往上粘贴很困难。
Jamesjin63
2022/10/25
8550
R:绘制临床三线表
dplyr_下篇
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.
火星娃统计
2020/09/15
6980
临床预测模型概述6-统计模型实操-单/多因素Logistic回归
既往推文已经介绍过了logistic,cox,lasso回归(https://mp.weixin.qq.com/s/pXRZ1rYUr3lwH5OlDeB0_Q),接下来将重点进行代码的实操。
凑齐六个字吧
2024/08/07
1760
临床预测模型概述6-统计模型实操-单/多因素Logistic回归
R包基础实操—tidyverse包
核心软件包是ggplot2、dplyr、tidyr、readr、purrr、tibble、stringr和forcats,它们提供了建模、转换和可视化数据的功能。
生信技能树jimmy
2021/10/11
3.5K0
R包基础实操—tidyverse包
临床预测模型概述6-统计模型实操-单/多因素Cox回归
https://mp.weixin.qq.com/s/pXRZ1rYUr3lwH5OlDeB0_Q
凑齐六个字吧
2024/08/08
3600
临床预测模型概述6-统计模型实操-单/多因素Cox回归
「R」数据操作(七):dplyr 操作变量与汇总
除了选择已存在的列,另一个常见的操作是添加新的列。这就是mutate()函数的工作了。
王诗翔呀
2020/07/06
2.6K0
「R」数据操作(七):dplyr 操作变量与汇总
R语言亚组分析及森林图绘制
亚组分析的森林图很常见,在各种高分SCI文章中经常见到,其中我最喜欢NEJM的格式,美观,信息量也多。
医学和生信笔记
2023/08/30
1.9K0
R语言亚组分析及森林图绘制
相关推荐
R海拾遗-双因素重复测量方差分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验