跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透技能——计划的分散启动


CHQ1d

推荐的帖子

0x00 前言

在渗透测试中,经常需要更改程序启动的权限(包括提升和降低权限)。

权限提升包括从普通用户权限到管理员权限和从管理员权限到系统权限。在渗透测试中,权限缩减通常是指从系统权限缩减为普通用户权限(从管理员权限缩减为普通用户权限的方式有很多种),常用于操作当前用户的文件内容(如抓取桌面、操作注册表等)。).

本文将介绍减少权限(从系统权限到普通用户权限)的具体方法,明确重点,开启一个判断进程权限的小工具。

0x01 简介

本文将介绍以下内容:

为什么要降低功率?

将管理员权限降为普通用户权限的方法

将系统权限降为普通用户权限的方法

使用SelectMyParent实现权限的提升和降低

注:

测试系统:Win7

0x02 为什么要降权

使用系统权限的进程可能会遇到以下问题:

1、无法获得当前用户的文件内容

例如,无法捕获用户的屏幕。

2、环境变量有差异

例如以下环境变量:

APPDATA

临时雇员

终端监督程式(Terminal Monitor Program的缩写)

用户域

用户名

用户配置文件

Cmd可以通过echo查看环境变量,比如查看环境变量APPDATA的命令是:

回显%appdata%

在系统权限下,查询到的环境变量APPDATA是c:\ windows \ system32 \ config \ system profile \ APPDATA \ roaming。

在管理员权限下,查询到的环境变量APPDATA为C:\Users\a\AppData\Roaming。

如下图

2-1.png

通过API SHGetSpecialFolderPath获取指定的系统路径,比如APPDATA,也可以找到权限不同导致的差异。

c代码如下:

#包括

#包括

bool IsSystemPrivilegeCmp()

{

静态bool isSystemPrivilege=false

char * flag=' C:\ \ Windows ';

if (isSystemPrivilege)

{

返回isSystemPrivilege

}

char SZ PATH[MAX _ PATH]={ 0 };

if(SHGetSpecialFolderPathA(NULL,szPath,CSIDL_APPDATA,TRUE))

{

printf('APPDATA路径:%s\n ',SZ Path);

if(memcmp(szPath,flag,strlen(flag))==0)

printf('[]我是系统特权\ n ');

其他

printf('[-]不是系统特权\ n ');

}

返回isSystemPrivilege

}

int main(int argc,CHAR* argv[])

{

IsSystemPrivilegeCmp();

返回0;

}

如下图

2-2.png

注:

SHGetSpecialFolderPath支持查询系统路径,可以在Shlobj.h中获取

如下图

2-3.png

3、注册表有差异

HKCU上的一些注册管理机构操作将被重定向到HKEY用户。系统默认值

如下图

2-4.png

0x03 从管理员权限降到普通用户权限的方法

1、runas

cmd:

运行方式/用户:calc.exe

然后输入密码:123456。

calc.exe的权限就是用户a的权限

如下图

3-1.png

缺点:

等待用户手动输入密码不是自动的。

但是可以通过管道的方式实现自动密码输入,需要第三方工具Sanur。方法不具体介绍。

2、第三方工具:lsrunas

下载地址:

http://www.verydoc.com/exeshell.html

cmd:

lsrunas.exe/用户:a/密码:123456/域:/命令:' calc . exe '/运行路径:c:\

注:

/domain:如果参数为空,则表示本地机器。

从管理员权限到普通用户权限,成功,如下图所示

4-1.png

3、第三方工具:CPAU

下载地址请参考我的github:

https://github . com/3g student/From-System-authority-to-Medium-authority

cmd:

CPAU.exe-u a-p 123456-ex ' calc . exe '-CWD c:\ windows \ system32-lwp

注:

必须添加参数-lwp或-lwop,否则无法降低权重。

从管理员权限到普通用户权限,成功,如下图所示

4-2.png

4、powershell

代码如下:

$uname='a '

$ pwd=convert to-secure string ' 123456 '-AsPlainTextForce

$ cred=新对象系统。management . automation . PS credential($ uname,$pwd)

开始-进程-文件路径' calc . exe '-凭据$cred

5、c++

使用API:

CreateProcessAsUser

创建流程

0x04 从system权限降到普通用户权限的方法

注:

该测试的系统权限是通过漏洞获得的。

1、runas

cmd:

运行方式/用户:calc.exe

然后输入密码:123456。

成功降级电源,但未能启动,如下图所示。

5-1.png

2、第三方工具:lsrunas

cmd:

lsrunas.exe/用户:a/密码:123456/域:/命令:' calc . exe '/运行路径:c:\

同上,成功降级,但启动失败。

3、第三方工具:CPAU

cmd:

CPAU.exe-u a-p 123456-ex ' calc . exe '-lwp

CPAU不支持系统权限启动,如下图所示

5-2.png

4、powershell

1、成功降级,但未能启动。

5、c++

你可以使用迪迪尔史蒂文斯的工具SelectMyParent。

注:

代码还没有在github中分享,所以我上传到了我的github上,注明作者是Didier Stevens。

代码地址:

https://github . com/3g student/From-System-authority-to-Medium-authority/blob/master/select my parent . CPP

SelectMyParent:

用于用选定的父进程创建windows进程。

例如,要创建新的流程calc.exe,请使用SelectMyParent将新的流程calc.exe设置为流程winlogon.exe的子流程。

使用步骤:

1、获取进程winlogon.exe的pid

在我的测试系统中,进程winlogon.exe的pid是504。

2、启动SelectMyParent

参数如下:

SelectMyParent.exe calc.exe 504

Calc.exe显示为winlogon.exe的子进程,如下图所示。

6-1.png

这种方法主要可以用来提高进程的隐蔽性,欺骗用户。

特别的地方:

因为子进程将继承父进程的权限,而winlogon.exe的权限是system,所以其子进程calc.exe的权限也将变成system。

如下图

6-2.png

也就是说,我们可以基于SelectMyParent实现以下权限提升和降低操作:

权限提升:从管理员权限到系统权限

去中心化:从系统权限到管理员权限

降权:从系统特权到普通用户特权

操作步骤:

1、获取进程pid

cmd下获取过程pid的方法;

任务列表/v /fo列表

您可以获取每个进程对应的pid和权限(由用户名的值表示),如下图所示

6-3.png

为了便于测试,可以使用过滤来过滤掉具有特定权限的进程,比如过滤NT AUTHORITY\SYSTEM。

该命令如下所示:

任务列表/v /fo列表/fi '用户名eq NT权限\系统'

如果是获取普通用户权限的过程,可以将过滤后的用户名设置为whoami的返回结果。

2、使用SelectMyParent.exe

从管理员权限到system权限:

上面已经论证过了,不再赘述。

从system权限到admin权限:

Tasklist分不清一个进程是管理员还是普通用户。

于是我通过C写了一个小工具,功能如下:

遍历过程

判断流程权限,如果是管理员权限就标记出来。

代码下载地址:

https://github . com/3g student/From-System-authority-to-Medium-authority/blob/master/process authority . CPP

使用如下所示的工具。

6-4.png

从system权限到普通用户权限:

选择pid为3864的普通用户权限流程,创建的calc.exe权限也将拥有普通用户权限,如下图所示。

6-5.png

成功地将权限从系统权限降低为普通用户权限。

0x05 小结

本文对常用的减肥方法进行了测试,结论是部分条件减肥方法会失效。一般的做法是用SelectMyParent来减肥。

结合实际,一个遍历和判断流程权限的小工具是开源的,用来提高效率。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...