如何突破Windows环境限制打开“命令提示符”
如今,许多企业或组织都会通过使用受限的windows环境来减少系统表面的漏洞。系统加固的越好,那么也就意味着能被访问和使用到的功能就越少。
我最近遇到的情况是,一个已经加固的系统同时受到McAfee Solidcore的保护。Solidcore几乎阻止用户对系统任何的更改操作,如安装/取消软件安装,运行可执行文件,启动应用程序等。
我所测试的系统(Windows 7)被系统管理员设置了登录密码,因此除了访问登录界面和重启系统外,我无法访问该系统任何其他的功能。
为此,我花了近一个礼拜来收集关于该应用和系统的信息,其中包括使用社会工程学的手段。最终,我通过Google dork获取到了管理员的登录凭据。
成功登录目标系统后,我发现主机的大多数功能依旧无法被正常访问。该应用程序设计得非常的好,对用户的访问权限做了较为严格的管控。
但我发现,该应用程序有一个选项就是允许用户打印文档,这意味着我们可以访问主机的文件资源管理器。
Print-->printer settings-->add a printer-->location-->browse location
每个Windows文件资源管理器都有一个Windows帮助选项,它提供关于Windows特性的免费帮助。那么,我们有没有可能通过帮助选项,来尝试打开命令提示符呢?这是有可能的。
在成功调出cmd后,我发现在cmd中我依旧无法正常访问一些其他的Windows应用,并且也无法在系统中做任何更改操作(即使是打开一个记事本)。每当我试图打开某个应用时,均会出现以下报错信息:
从报错信息可以看出应用程序被进行了锁定,我们需要从注册表或组策略编辑器中才能启用它。但由于Solidcore的限制,我并没对此的任何访问权限。我使用以下批处理脚本修改注册表项并启用任务管理器(虽然我并不确定,报错的真正原因是否和注册表或组策略编辑器有关):
在成功执行批处理脚本后,我获取到了任务管理器以及控制面板的访问权限。我的主要目的是禁用或卸载Solidcore,但一切并没有我想象的那么轻松,Solidcore依旧无法被禁用或卸载(其他软件可被正常禁用或卸载)。
那么只剩一种可能性了,就是通过“组策略编辑器”来禁用Solidcore/启用其他软件的安装。然而我并没有直接访问gpedit,而是使用了以下方式进行了访问:
Open Task manager-->File -->New task-->Type MMC and enter
打开微软管理策略
In mmc File-->Add/Remove snap-in--> Select Group Policy Objects and click on add
现在,我能够执行许多操作,例如启用被锁定的系统应用、访问桌面、禁用Windows限制等等。如上所述,我的主要目的是禁用Solidcore,并在系统上运行任何windows的可执行性文件。
组策略编辑器提供了运行/锁定Windows软件的选项。设置如下:
Group Policy editor-->User Configuration > Administrative Templates > System
在右选项框有一个“不要运行特定windows应用程序”的选项。点击它:
Edit-->Select Enabled-->Click on show list of disallowed applications--> 然后添加你想要锁定的应用名称(这里我填的是solidcore)。然后点击"Ok"。
为了使更改生效,我重启了系统。同样,你也可以使用该方法在windows上运行一些其他的软件(例如恶意软件等)。
- golang的HTTP基本认证机制实例详解
- hdu----(3065)病毒侵袭持续中(AC自动机)
- Spark机器学习库(MLlib)指南之简介及基础统计
- 监控利器之 Prometheus
- C线程同步/异步
- Spring-Security-入门(一):登录与退出
- Shell系列-Shell概述
- sqoop2系统入门之2汇总:用户指南shell命令
- 深入解析golang编程中函数的用法
- MySQL数据库(一):安装MySQL数据库
- Spring Security入门(二):基于数据库验证
- flume搜集日志:如何解决实时不断追加的日志文件及不断增加的文件个数问题
- hduoj-----(2896)病毒侵袭(ac自动机)
- MySQL数据库(二):基本管理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法