如果只是获取进程列表,可以用
Get-Process如果是想知道某一个进程的详细信息,可以用下列命令:
Get-Process 进程名或
Get-Process 进程名 | FL -Property上面一个列出简单信息,下面一个列出所有的属性信息。
使用PowerShell获取0时区时间的方法如下:
1 首先,打开PowerShell,输入“Get-Date”命令,查看当前的时间;
2 然后,输入“Get-Date -uFormat %Y-%m-%d %H:%M:%S”命令,可以获取0时区的当前时间;
3 如果想获取其他时区的时间,可以使用“Get-Date -TimeZone 时区”命令,其中时区可以是UTC、GMT或者其他时区的名称;
4 最后,还可以使用“Get-Date -uFormat %Y-%m-%d %H:%M:%S”命令,结合“TimeZone”参数,获取指定时区的时间。
1 Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc 2 salt命令,将cmdrun ls命令从saltclientLocalClientcmd_cli发布到master,获取一个Jodid,根据jobid获取命令执行结果。如何使用saltstack运行powershell命令
设置电脑除了一些标准命令行工具,还需要WMI和CIM class
学习这些可以使我们了解到powershell与外部工具交互的方式。
唯一直接上锁的方法是调用 user32dll 里的 LockWorkstation() 函数
执行以下命令即可
rundll32exe user32dll,LockWorkStation
rundll32exe是一个可以执行windows dll的工具,user32dll里面包含了一系列管理的函数。
在本地系统中注销会话有几种方法,其中最简单的方法是使用命令行工具logoffexe。
( logoff / 查看具体使用帮助),直接执行logoff命令就会注销当前会话
也可以使用shutdownexe,l选项就是用于注销的。
shutdownexe -l
还有一个方法是使用WMI, Win32_OperatingSystem 的Shutdown方法
Get-CimInstance -Classname Win32_OperatingSystem | Invoke-CimMethod -MethodName Shutdown
这两个 *** 作是类似的工作。有两个直接的选项可以重启电脑 tsshutdnexe or shutdownexe 这两个命令行工具加上合适的参数就可以。
不过 powershell自身也提供了关闭电脑和重启的方法
Stop-Computer
Restart-Computer
我一般是搭配sleep命令实现定时关机
Start-Sleep -Seconds (60603) ; Stop-Computer -Force
当然shutdown这个命令工具的功能更加强大
Get-CimInstance -ClassName Win32_Desktop
这会获取所有的桌面信息。
因为大多数属性是以Cim开头的,可以用Select-Object来过滤掉这些Cim开头的项目
Get-CimInstance -ClassName Win32_Desktop | Select-Object -ExcludeProperty "CIM"
Get-CimInstance -ClassName Win32_BIOS
Get-CimInstance -ClassName Win32_Processor | Select-Object -ExcludeProperty "CIM"
获取处理器家族信息,可以加上SystemType属性
Get-CimInstance -ClassName Win32_ComputerSystem
Get-CimInstance -ClassName Win32_QuickFixEngineering
为了更简洁的输出,你可能想要排除掉一些属性。
但是你如果只指定一个属性比如 HotFixID ,还是会返回给更多的信息
这里我们同样需要用 Select-Object
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property BuildNumber,BuildType,OSType,ServicePackMajorVersion,ServicePackMinorVersion
也可以用Select进行过来吧,因为Build和ServicePack开头的信息比较重要
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property Build,OSType,ServicePack
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property NumberOfLicensedUsers,NumberOfUsers,RegisteredUser
更简洁的用法
Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object -Property user
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3"
统计使用空间和未使用空间
Get-CimInstance -ClassName Win32_LogicalDisk -Filter "DriveType=3" | Measure-Object -Property FreeSpace,Size -Sum | Select-Object -Property Property,Sum
Get-CimInstance -ClassName Win32_LogonSession
Get-CimInstance -ClassName Win32_ComputerSystem -Property UserName
Get-CimInstance -ClassName Win32_LocalTime
Get-CimInstance -ClassName Win32_Service | Select-Object -Property Status,Name,DisplayName
为了显示个别较长的名字,需要使用 Format-Table 调整格式
关于服务开启关闭的属性是State
可以使用以下两个命令获取,通过where命令来过滤
也可以构建过滤哈希表
Get-WinEvent -FilterHashtable @{ LogName='Application' ProviderName='defrag' }
我有一条获取server安装的各种组件的powershell命令,可以在server上正常命令行执行
powershell -command "& {get-windowsfeature | Out-File -FilePath C:\Commandtxt}"
但我用C语言写出来的exe去跑的时候总是不能正常执行,因为server环境里面没有debug环境,所以也不知道具体错在什么地方了,具体source如下:
C/C++ code
TCHAR szCommandLine[1024] = {0};
sprintf(szCommandLine,
"powershell -command \"& {get-windowsfeature | Out-File -FilePath C:\\Commandtxt}\"");
bSuccess = CreateProcess( NULL, // No module name (use command line)
szCommandLine, // Command line
NULL, // Process handle not inheritable
NULL, // Thread handle not inheritable
FALSE, // Set handle inheritance to FALSE
0, // No creation flags
NULL, // Use parent's environment block
NULL, // Use parent's starting directory
&si, // Pointer to STARTUPINFO structure
&pi ); // Pointer to PROCESS_INFORMATION structure
文章来 源: HACK之道
企业大规模数字化转型的浪潮下,各类网络入侵事件频发、APT和黑客团伙活动猖獗,合规性驱动的传统安全防护建设已无法满足需求。近年来随着各级红蓝对抗行动的开展,企业安全建设正逐步向实战化转型,而MITRE(一个向美国政府提供系统工程、研究开发和信息技术支持的非营利性组织)提出的ATT&CK框架正是在这一过程中能够起到指导性作用的重要参考。
ATT&CK框架在2019年的Gartner Security & Risk Management Summit会上,被F-Secure评为十大关注热点。ATT&CK是一套描述攻击者战术、技术和执行过程的共享知识库,能够关联已知的黑客组织、攻击工具、检测数据源和检测思路、缓解措施等内容。ATT&CK能够全面覆盖洛克希德-马丁公司提出的Kill Chain内容,并在此基础上提供更细粒度的攻击技术矩阵和技术详情。ATT&CK分为三个部分,分别是PRE-ATT&CK,ATT&CK for Enterprise和ATT&CK for Mobile。其中,PRE-ATT&CK包含的战术有优先级定义、选择目标、信息收集、脆弱性识别、攻击者开放性平台、建立和维护基础设施、人员的开发。ATT&CK for Enterprise包括的战术有初始化访问、执行、持久化、权限提升、防御逃避、凭据访问、发现、横向移动、收集、命令与控制、数据外传、影响。这些基于APT组织及黑客团伙的披露信息进行分析梳理的详细信息能够有效指导实战化的红蓝对抗,目前已在多个领域得到较好的应用。
在红蓝对抗中,防守方都可以按照事前、事中、事后三个阶段进行应对,在ATT&CK框架的指导下实现安全体系建立、运营和提升的闭环改进。
一、准备阶段
攻击面评估
攻击面指企业在遭受内、外部入侵时可能的起始突破点或中间跳板,包括但不限于:对外提供业务的Web系统、邮件系统、***系统,对内提供服务的OA系统、运维系统、开发环境,员工使用的各类账号、办公终端等。
企业的攻击面是广泛存在的,在企业内进行攻击面评估属于信息收集和脆弱性识别的过程,能够帮助企业在早期应对攻击者入侵活动。该过程映射到攻击链中属于“侦察”阶段。
由于攻防的不对称性,在红蓝对抗中防守方往往处于弱势,攻击方只需要单点突破即可,而防守方需要建立覆盖所有攻击面的纵深防御体系,很难做到万无一失。但在 信息收集阶段,是为数不多的防守方占优的阶段,主要原因包括:
1 攻击方只能通过互联网公开信息(Google、社交网站、Github)或传统社工方式获取部分企业信息,而防守方能够获得完整的企业内部信息,包括网络架构、业务系统、资产信息、员工信息等等,掌握以上信息不但能够梳理潜在入侵点、发现防御中的薄弱环节,还能够结合诱骗或欺诈技术(Deception,如蜜罐),在攻击者能够获取到的信息中埋点,实现类似软件“动态污染”的检测和追踪效果。
2 攻击面评估能够在特定阶段(如重保时期)通过采取更严格的管控措施降低入侵风险, 通过有限的代价获取最大攻击者入侵难度提升 ,具有很高的投资回报率。例如,获取***通道,相当于突破了企业传统的防护边界,直接获取内网漫游的权限。在特定情况下,通过增强***防护,能够大大缩减攻击者入侵成功的可能性。突破***主要有2种方式,利用***服务器本身的漏洞或通过合法***账号入侵。对于第一种方式,关注***厂商漏洞披露信息、做好补丁升级管理,能够有效减少大部分威胁;对于利用0day漏洞攻击***获取远程访问权限的场景,通过***自身日志审计的方式,关联***账号新建、变更及***服务器自身发起的访问内网的流量,也能够及时发现未知的漏洞攻击行为。对于第二种攻击***合法账号的入侵方式,增加***账号的口令复杂度要求、临时要求修改***账号口令并增加双因子验证(如绑定手机号短信验证),都可以在牺牲部分用户体验的情况下极大削减攻击者攻击成功的可能性。
ATT&CK框架内所有攻击技术都有对应的攻击目的和执行攻击所需的环境、依赖,对其分解可以提取每项攻击技术适用的攻击对象,参照企业内的资产和服务,评估攻击面暴露情况和风险等级,能够帮助制定有效的攻击面缩减、消除或监控手段。例如,防守方需要在红蓝对抗前检查企业内部的共享目录、文件服务器、BYOD设备是否符合安全基线要求,是否存在敏感信息,并针对这些内容设定合规性要求和强制措施,以缩减该攻击面暴露情况。
综上,ATT&CK框架可以帮助防守方了解攻击目标、提炼攻击面并制定攻击面缩减手段,同时也能够通过攻击面评估为后续增强威胁感知能力、总结防御差距、制定改进方案提供参考标准。
威胁感知体系建立
传统的安全防护和管控措施存在的主要问题在于没有全景威胁感知的体系,无法及时有效地监测威胁事件、安全风险和入侵过程。威胁感知体系的建立,可以有效地把孤立的安全防御和安全审计手段串联起来,形成完整的企业安全态势,为防守方实现实时威胁监控、安全分析、响应处置提供基础。建立威胁感知体系主要包括以下准备工作:
1数据源梳理: 数据是实现安全可见性的基础元素,缺少多维度和高质量的数据会严重影响监控覆盖面;同时,很多企业会为了满足网络安全法、等保标准等法律和标准要求存储大量设备、系统和业务日志数据。因此,在数据源的规划、管理上,由威胁驱动的数据源需求和由合规驱动的日志数据留存,存在匹配度低、使用率低、有效性低的诸多问题,需要防守方加以解决。
We can’t detect what we can’t see
在进行数据源规划时,需根据企业实际存在的攻击面、威胁场景和风险情况进行设计。例如:针对员工邮箱账号可能会遭受攻击者暴力破解、泄露社工库撞库的风险,需要采集哪些数据?首先需要考虑企业实际的邮件系统情况,比如使用自建的Exchange邮件服务,需要采集的数据包括:Exchange邮件追踪日志、IIS中间件日志、SMTP/POP3/IMAP等邮件协议日志。其次还需要具体考虑攻击者是通过OWA访问页面爆破?还是通过邮件协议认证爆破?还是通过Webmail或客户端接口撞库?不同的企业开放的邮箱访问方式不同,暴露的攻击面和遭受的攻击方法也有所区别,需要根据实情梳理所需的数据源。
在数据源梳理上,由于涉及到的威胁类型、攻击方法众多,考虑周全很困难,可以通过参考ATT&CK框架选取企业相关的攻击技术,统计所需的数据源类型,并梳理数据源采集、接入优先级。关于数据源优先级筛选,2019年MITRE ATT&CKcon 20会议上Red Canary发布的议题:Prioritizing Data Sources for Minimum Viable Detection 根据总体数据源使用的频率做了Top 10排序,如下图所示:
该统计结果并未考虑企业实际攻击面范围、数据源获取的难易程度等,不应生搬硬套照抄。但在大部分情况下可以考虑先构建包括网络镜像流量、终端行为审计日志、关键应用服务日志在内的基础数据源的采集规划,再通过实际的检测效果增强补充。
2 检测规则开发:大数据智能安全平台(或参考Gartner所提的Modern SIEM架构)已逐步取代传统的SIEM产品,成为企业威胁感知体系的核心大脑。传统的攻击检测方法大多是基于特征签名(Signature),采用IOC碰撞的方式执行,在实际攻防对抗过程中存在告警噪音过多、漏报严重、外部情报数据和特征库更新不及时等问题,且在防守方看来无法做到检测效果的衡量和能力评估。因此,新的检测理念需要从行为和动机出发,针对攻击者可能执行的 *** 作完善审计和监控机制,再采用大数据关联分析的方式去识别攻击活动。
ATT&CK框架在这里就起到了非常重要的参考作用,框架中的每项攻击技术,知识库都描述了相应的检测手段和过程,以T1110暴力破解为例,其Detection描述如下图所示。
虽然没有抽象出具体检测方法、检测规则,但提炼出了需要监控的设备以及能够提炼攻击痕迹的日志。参考这部分描述,防守方能高效的通过相关资料收集、内部攻击技术模拟、特征提炼等方式完成检测方法和检测规则的开发、部署、测试。此外,高级持续性威胁(APT)使用了较多的白利用技术,无法有效区分攻击者和普通工作人员。但通过开发检测规则对数据源进行过滤提炼,打上技术标签,后续再综合所有异常行为能够发现此类攻击活动。这样再与传统的检测方法结合,就提供了更加有效的补充手段。
综上,威胁感知体系的建立,需要通过数据源梳理和检测规则开发来完成基础准备工作,ATT&CK框架可以帮助防守方快速了解所需数据源、并协助开发对应的检测规则,使防守方脱离安全可见性盲区,实现安全防护能力的可量化、可改进。
内部模拟对抗
为摸清目前网络安全防御能力并找出薄弱点,部分企业会进行内部红蓝对抗模拟演练,ATT&CK知识库在模拟红队攻击、组织内部对抗预演上具有非常高的参考价值。
1红队技术指导:ATT&CK框架包含了266种攻击技术描述,模拟红队可以借鉴其中部分技术进行特定战术目的的专项测试或综合场景测试。在开展内网信息收集专项测试时,可以通过参考并复现“发现”、“收集”战术目的下的攻击技术,对内网暴露的攻击面逐一测试;在开展模拟场景演练时,可以挑选不同的战术目的制定模拟攻击流程,从矩阵中选择相关技术实施。以典型的红队钓鱼攻击场景为例,攻击技术链包括:钓鱼 -> hta执行 -> 服务驻留 -> 凭证获取 -> 远程系统发现 -> 管理员共享,如下图红色链路所示。
2 蓝队效果评估:内部模拟对抗是企业防守方检查实际威胁感知能力的最佳手段,对蓝队来说具有查漏补缺的效果。攻击行为是否被记录、检测规则是否有效、有无绕过或误报、攻击面梳理是否遗漏、威胁场景是否考虑充分等很多问题只有在实际测试中才会暴露。同时,防守方也可以通过模拟演练提炼极端情况下的缓解预案,包括:临时增加防御拦截措施、增加业务访问管控要求、加强人员安全意识教育和基线管理等。
综上,内部模拟是红蓝对抗实战阶段验证所有准备工作有效性的手段,作为大考前的模拟考,对防守方具有很大的查漏补缺、优化完善的作用,而ATT&CK框架在这个阶段,对模拟红队攻击、协助蓝队查找问题都起到了参考作用。
二、开展阶段
准备过程越充分,在实际红蓝对抗行动开展阶段对防守方来说就越轻松。经过验证的威胁感知体系在这里将起到主导作用。
资产风险监控
除了封堵、上报潜在的红队攻击IP外,对于已突破边界防护进入内网漫游阶段的攻击者,基于ATT&CK框架能够有效识别资产(终端/服务器)风险,发现疑似被攻陷的内网主机。
通过为每个资产创建独立的ATT&CK主机威胁分布矩阵图,汇聚该主机上近期被检测到的所有攻击技术活动,然后根据该矩阵图上所标注的攻击技术的分布特征训练异常模型,监控主机是否失陷。异常模型从以下三个维度识别攻击:
1攻击技术分布异常:多个战术下发生攻击、某个战术下发生多个不同攻击等。
2 攻击技术数量异常:主机上检测到大量攻击技术,与基线对比偏差很大。
3 特定高置信度失陷指标:主机上触发了高置信度规则检测到的高风险告警(传统的Trigger机制)。
以下图为例,主机短时间内触发一系列“发现”战术下的攻击技术,这在日常运维中是较为少见的,与该主机或同类型主机基线对比偏差非常大。在受害主机被控制后可能会执行大量此类 *** 作,故该机器风险很高,判定为失陷/高危资产。
可疑进程判定与溯源
根据采集的终端行为日志(包括:进程活动、注册表活动、文件活动和网络活动),可以通过唯一进程ID(GUID)进行父子进程关联 *** 作。当发现可疑进程活动时,能够回溯该进程的进程树,向上直到系统初始调用进程,向下包含所有子进程,并且为进程树中所有可疑进程添加ATT&CK攻击技术标签,如网络请求、域名请求、文件释放等丰富化信息,帮助防守方的安全分析人员判断该进程是否可疑并及时采取处置措施。
以下图为例,发现可疑进程wscriptexe后溯源其进程树,其中标记了感叹号的子进程为命中了ATT&CK攻击技术的进程,无感叹号的子进程也属于该可疑进程树下,有可能是攻击者利用的正常系统进程或规避了检测规则导致未检出的进程。通过该进程树展示的信息,可以直观发现wscript进程及其派生的powershell进程存在大量可疑行为,这些进程信息也为后续联动终端防护软件处置或人工上机排查处置提供了充足的信息。
应急响应对接
在发现失陷资产、溯源到可疑进程后可导出其进程树上的进程实体路径、进程命令行、进程创建文件、进程网络连接等信息提交给应急响应组进行清除工作。应急响应组通过以上信息可以快速在主机上处置并开展入侵路径分析,通过回溯攻击者入侵植入木马的手段,进一步排查是否存在数据缺失、规则缺失导致的攻击漏报;并通过关联所有具有相似行为的终端,确认是否存在其他未知失陷资产。
以上基于ATT&CK框架建立的资产风险监控和可疑进程判定方法,能够有效地在红蓝对抗过程中及时发现攻击者攻击成功的痕迹,并为溯源和应急响应处置提供数据支撑。而这些都脱离不了以威胁感知体系为核心的蓝队建设思路,更多与ATT&CK框架适配的应用方法也会在后续不断丰富、增强。
三、复盘阶段
防御效果评估
在红蓝对抗结束复盘阶段,防守方对防御效果的评估是非常重要的环节。具体包括以下内容:
安全设备漏报分析:结合攻击方提供的报告,把各个攻击类型归属到相应的安全检测设备,查看相关设备的告警与报告中的攻击过程是否匹配,分析当前安全设备检测能力,较低检出率的设备需要后续协调厂商优化、更新规则等,以加强完善。
规则误报调优:在红蓝对抗开展阶段,为了确保对攻击方攻击过程的全面覆盖检测,通常会采用限制条件较宽松的规则检测模式,以防漏报对防守方造成的失分影响。例如,对暴力破解场景,触发告警的连续登录失败请求阈值可能设定的较低;对Webshell植入场景,可能对所有尝试上传动态脚本文件的行为都做监控或拦截,以防攻击者通过一些编码、混淆的方式绕过特征检测等。这些限制条件宽松的检测规则,在红蓝对抗过程中能够尽量减少攻击漏报,具有比较好的效果;但同时,由于限制不严导致的告警噪音也会随之增加。在红蓝对抗结束复盘过程中,需要对产生误报的数据和误报原因进行统计分析,完善检测规则逻辑、边界条件限制,配置适当的白名单过滤,为后续能够日常运营提供更具备可 *** 作性和更实用的威胁检测规则。
攻击面再评估和数据可见性分析:在红蓝对抗准备和红蓝对抗开展阶段,防守方和攻击方分别进行了攻击面评估、攻击目标信息收集的工作,因此在复盘阶段可以通过对比双方掌握的攻击面信息和攻击目标的选择,来挖掘是否存在先前遗漏的边缘资产、未知攻击面,通过攻方视角查漏补缺。同时对遗漏的攻击面可以做相关的数据源需求分析,补充缺失的数据可见性和威胁感知能力。
防御差距评估与改进:针对红蓝对抗中发现的薄弱环节,防守方可以提炼改进目标、指导后续的安全建设工作。由于不同企业存在的攻击面差异性较大,重点关注的核心资产、靶标也有所差别,在准备过程中可能根据优先级选择了比较关键的几个领域优先开展,而通过红蓝对抗发现的其他薄弱环节,为后续开展哪些方向的工作提供了参考。例如,重点加强生产环境安全防护的,可能忽略了员工安全意识培训,导致被攻击者钓鱼的方式突破入侵;重点关注网站安全的,可能忽略了服务器存在其他暴露在外的端口或服务,被攻击者通过探测发现,利用已知漏洞或0day漏洞控制服务器绕过。结合ATT&CK框架补充对应的数据源和攻击技术检测手段,可以快速补足这方面的遗漏。
防御效果评估是红蓝对抗复盘阶段重要的总结过程,也为后续持续优化改进提供参考。在这里ATT&CK框架起到的作用主要是统一攻防双方语言,将每一个攻击事件拆分成双方都可理解的技术和过程,为红蓝对抗走向红蓝合作提供可能。
以上就是关于如何用PowerShell获取进程信息全部的内容,包括:如何用PowerShell获取进程信息、powershell获取0时区时间、如何使用saltstack运行powershell命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)