Windows应急响应和系统加固(4)——Windows帐号角色权限的安全检查分析以及PowerShell的使用介绍

Windows帐号角色权限的安全检查分析以及PowerShell的使用介绍

一、Windows帐号角色权限的安全检查分析

  1.net user:检查用户情况;

    net user X:检查某个特定的用户X。

  2.lusrmgr.msc --> local user manger缩写:本地用户和组管理器。

  3.whoami /all :查看所有有效用户名;

    whoami  /user :查看当前的用户信息。  

  4.net  localgroup :检查用户组情况;

    net localgroup X:查看X用户组的情况。

  5.eventvwr.msc:日志查看器。

  6.权限检查的几个工具:SubInACL(查看更多:https://www.microsoft.com/en-us/download/details.aspx?id=23510)、accesschk64、ProcessExplorer:procexp、ProcessMonitor、ProcessMonitor、icacls,Windows自带的文件/进程权限检查:icacls "C:\Windows\System32\winlogon.exe"

扫描二维码关注公众号,回复: 9525798 查看本文章

    secpol.msc:用户权限分配检查。

 

二、Windows PowerShell的使用介绍

  1.PowerShell简介:

    <1>.PowerShell(Include:PowerShell Core)是Windows任务自动化和配置管理的命令行脚本环境,有.NET Framework、.NET Core;是构建命令行界面壳层(Comand Shell Line)相关脚本语言组成;最初只是Windows组

件,后来,2016年8月18日开源并跨平台支持。

    <2>.PowerShell管理任务通常由cmdlets(command-lets,小命令 )执行,是执行特定操作的专用.NET类。可将cmdlet集合至脚本、可执行文件中,或通过常规.NET类、WMI/COM对象实例化。面向对象、完全支持对象的强大

Shell管理工具。

    <3>.当前PowerShell有4个版本,分别为:v1,v2、v3、v4、v5:

      Window 7 或 Server 2008,默认内置v2;

      Windows 8 或 Server 2012,内置v3;

      Windows 8.1 或 Server 2012 R2,内置v4;

      Windows 10 或 Server 2016/R2,内置v5。

    <4>.文件扩展名:

      .ps1,脚本文件;

      .ps1xml,XML文档;

      .psc1,控制台文件;

      .psd1,数据文件;

      .psm1,脚本模块;

      .pssc,会话配置文件;

      .cdxml ,Cmdlet定义的XML文档。

    <5>.官方参考资料:

      https://docs.microsoft.com/zh-cn/powershell/

    <6>.获取源代码和安装包:

      https://github.com/PowerShell/PowerShell

  2.PowerShell攻击频频:

    <1>.以PowerShell作为攻击平台的概念,首次在2010年Dave Kennedy & Josh Kelley的Def Con18演讲,演示了PowerShell编写的绑定和反向shell进行攻击。

      2012 年,Matt Graeber开发了PowerSploit并发表博文,从此,PowerShell利用率大幅提升!

      2013年,Mimikatz开始支持PowerShell调用(aka Invoke-Mimikatz)。PowerShell彻底流行起来!

      成熟的PowerShell工具,如:Nishang、PowerSploit、Empire。

      Empire,可实现无需powershell.exe就可运行PowerShell代理功能,快速部署后期漏洞利用模块,从Key Logger到Mimikatz,且能够躲避多种安全检测。

    <2>.使用过PowerShell攻击技术的APT组织:

      “海莲花”(APT-TOCS);

      “白象”(White Elephant);

      “方程式”(Equation);

      “绿斑”(GreenSpot);

      Fub7;

      APT-C-01:针对中国政务/科技/教育/国防等机构。

      PowerShell开源,跨平台支持,攻击将会越来越常见!

    <3>.为什么PowerShell会成为黑客攻击的最爱?

      对Network Socket访问简单、高效、直接;

      可动态地在内存组装恶意的二进制文件,直接运行在内存,杀毒软件极难检测;PowerShell结合 .NET 实施“无文件”攻击(攻击代码下载、执行均在内存实现,无需在系统创建攻击文件,可有效逃避安全软件检测拦截),混

合在正常网络流量,难以追踪。攻击行为便捷、有效、隐蔽;

      直接访问Win32应用程序编程接口(API);

      使用Windows管理工具的简单接口(WMI);

      强大的脚本环境;

      动态的调用运行时间方法;

      轻而易举地访问密码库,例如:IPSec、哈希算法;

      能够钩住托管代码;

      完全绑定组件对象模型(COM)。

    <4>.PowerShell危害分析:

      对企业而言,服务器被攻击,拉取PowerShell进程,远程执行恶意代码,多数情况下是由于企业自身安全意识不足防御有破绽,对爆出的系统漏洞、应用程序漏洞未及时修复,导致服务器被入侵,影响企业信息安全。

      统计表明,攻击者通常利用高危漏洞进行攻击:永恒之蓝、Weblogic反序列化、MS17-010、Struts2系列漏洞,备受青睐!

      

      弱口令”也给企业带来约51%的安全隐患。该漏洞攻击成本低,结合社工、钓鱼方式,利用恶意邮件( Foxmail),结合Office宏执行恶意代码,实施深层次攻击。

      统计表明,攻击者入侵成功后,最喜欢投放:挖矿木马、勒索病毒。都与数字货币直接相关。窃密木马、远控木马,实施对目标企业定向攻击。给企业带来严重安全威胁!

    

  3.PowerShell开发工具:

    <1>.Windows系统自带的工具:PowerShell ISE;

      启动方式:输入powershell,进入powershell界面,输入ise即可打开。

    <2>.其他工具:PowerShell Studio & Visual Studio;

      查看更多:https://www.sapien.com/software/powershell_studio

  4.PowerShell脚本调用的方法:

    如果脚本是直接写的代码而不是只定义了函数,则直接执行脚本.script.ps1即可;

    如果载入了函数,则需要:+空格+.script.ps1;

    或使用Import-Module .script.ps1,直接使用有脚本的函数。

  5.PowerShell执行的可选参数:

    PowerShell[.exe] [-PSConsoleFile <file> | -Version <version>] [-EncodedCommand <Base64EncodedCommand>] [-ExecutionPolicy<ExecutionPolicy>] [-File <filePath> <args>] [-InputFormat {Text | XML}] [-NoExit] [-NoLogo] [-

NonInteractive] [-NoProfile] [-OutputFormat {Text | XML}] [-Sta] [-WindowStyle <style>] [-Command { - | <script-block> [-args <arg-array>] | <string>[<CommandParameters>] } ]PowerShell[.exe] -Help | -? | /?

      <1>.-Command,需要执行的代码;

      <2>.-ExecutionPolicy,设置默认的执行策略,一般使用Bypass;

      <3>.-EncodedCommand,执行Base64代码;

      <4>.-File,需要执行的脚本名;

      <5>.-NoExit,执行完成命令之后不会立即退PS会话;

      <6>.-NoLogo,不输出PS的Banner信息;

      <7>.-Noninteractive,不开启交互式的会话;

      <8>.-NoProfile,不使用当前用户使用的配置文件;

      <9>.-Sta,以单线程模式启动PS;

      <10>.-WindowStyle,设置Powershell的执行窗口:Normal、Minimized、Maximized、Hidden;

      <11>.-Version,设置用什么版本去执行代码。

     Powershell混淆框架nvoke-Obfuscation,下载地址:https://github.com/danielbohannon/Invoke-Obfuscation

  6.PowerShell执行策略:

    PowerShell提供:Restricted、AllSigned、RemoteSigned、Unrestricted、Bypass、Undefined,六种执行策略。

      <1>.Restricted:

        受限制。可执行单个命令。不能执行脚本。Windows 8/8.1/10、Server 2012默认策略,执行会报错。

        可通过:Set-ExecutionPolicy -ExecutionPolicy Bypass,即可设置策略为Bypass,即可执行脚本。

        Get-ExecutionPolicy,获取当前的执行策略:

      <2>.AllSigned::

        允许执行所有具有数字签名的脚本。

      <3>.RemoteSigned:

        执行从网上下载的脚本,需要脚本具备数字签名,否则,脚本运行失败。

        如果在本地创建的脚本,可直接执行,不要求数字签名。

      <4>.Unrestricted:

        比较宽容的策略,允许运行未签名的脚本。从网上下载的脚本,运行前安全提示,需确认是否执行。

      <5>.Bypass:

        脚本执行不设任何限制,任何脚本都可执行,并且不会有安全提示。最宽松!

      <6>:Undefined:

        没有设置脚本策略。当然,此时会发生继承或应用默认的脚本策略。

  7.PowerShell的语法:

    变量、数组、哈希表(Hash table)、条件判断、循环语句、函数、对象、

  8.PowerShell命令举例:

    获取所有命令:Get-Command;

    停止所有当前运行中的以"p"字符开头命名的程序:get-process p* | stop-process;

    停止所有当前运行中的所有使用大于1000MB存储器的程序:get-process | where { $_.WS -gt 1000MB } | stop-process;

    计算一个目录下文件内的字节大小:get-childitem | measure-object -property length -sum;

    等待一个叫做"notepad"的程序运行结束:

      $processToWatch = get-process notepad;

      $processToWatch.WaitForExit();

    把"$UserProfile"设置成数值"UserProfile"的环境变量:$UserProfile = $env:UserProfile;

  9.PoshC2:

    基于PowerShell和C#的命令控制工具-PoshC2,不仅实现了各种各样攻击技术,还能够绕过目标主机中部署的各种安全检查。

    https://github.com/nettitude/PoshC2

    

    

猜你喜欢

转载自www.cnblogs.com/catt1e/p/12394503.html