长亭百川云 - 文章详情

新类型 PSWindows 预览

学蚁致用

58

2024-07-13

写在前面

  记得在  AntSword新类型 CmdLinux 预览 这篇文章最后立了个 Flag (Windows 下纯命令执行WebShell的图形化连接) 一直没解决,今天有了个雏形,主要是证明了这个思路可行。

正文

老规矩,先看视频。(嫌公众号视频不清晰的,可以点阅读原文去 B 站看 720P 的)。

看完视频我们来说说具体的实现。想看代码的直接去 (https://github.com/AntSwordProject/antSword/commit/dc3c1680bae523cd823444dd19933a1a237a2ec2)

因为 AntSword 的历史原因,数据格式的设定都是为脚本语言来设计的,输出相对比较灵活,所以 CMD 类的 WebShell 在使用 AntSword 时最麻烦的事情就是数据格式的输出了。最开始我是想用 cmd.exe 来完成数据格式的切割和拼接。算了不扯这么多了,反正就是 cmd.exe 麻烦的一匹,最后看上了 Powershell

Powershell 的好处都有啥

  1. 丰富的内置模块

这个你们应该比我熟太多了,我就不展开了。类比 ls 命令的 Get-ChildItem (简写 gci) ,创建文件时用的 New-Item, 发起 http 请求时的 Invoke-WebRequest 等等,可以极大的方便我们去构造Payload. 除此之外,PowerShell 提供的 Foreach-Object , Select-Object, Where-Object 等操作也是很方便的。

比如 create_file 可以这样来实现:

try {
  1. 调用 C#/.Net

这个就有意思多了,因为 PowerShell 的版本原因,有些命令的一些参数在低版本下根本没有,没错我说的就是上面那个 New-Item,在高版本有 -Encoding 参数用来设置写入文件时的字符编码,然而低版本没有,在没有的时候就按系统默认的编码来了。此时就很容易因为字符编码的问题导致二进制数据上传出错

所以现在写文件的 Payload 长这个样子

$C=[byte[]] -split ('#{buffer::content}' -replace '..', '0x$& ');

直接调用 System.IO.File 的静态方法 WriteAllBytes 以二进制方式写入文件

嗯,静态方法好是好,可是也不够丰富呀。于是 New-Object 这个方法让我看到了。这玩意儿是真好使,举个例子:

// PowerShell

看出来区别了吗?基本没啥区别。这样就可以直接把 ASPXCsharp 类型中的 Payload 改改,然后一个新的连接类型 PSWindows 就这么诞生了。

说点需要注意的地方

1. 文件下载只能下载文本类的文件

因为 cmd 类的 WebShell 在使用 Download 的时候,原理是先将文件输出到 stdout 然后再到 response 之后到 AntSword。目前的 Download 请求是直接怼的二进制流,所以在传输的时候是没有经过编码/加密转换的。

于是问题来了,PowerShell 的 Stdout 它不能显示扩展 ASCII 码表的字符。什么意思?比如说一张图片的文件头是 ff d8 ff e0 00 10 4a 46 , 输出到 PowerShell 的 Stdout 后就成了 ff 3f 3f 10 4a 46 49 46

结论: 不在 ASCII 可显示范围内的字符都会给你整成 3F,难受。所以目前的 Download 机制下,下载二进制文件时会不正常。这块后期考虑更改 download 机制来解决。

2. 关于文件权限

文件权限不再是以我们熟知的 0777 这样的八进制数来表示了,而是用 darhs 这五个组合来表示,具体看微软文档中的表示:

而目前仅支持 rhs 这三个属性的修改,当然了,你要想改更多的属性你自己写 powershell 命令去

3. 有关视频当中查询数据库出现的类型转换问题

我后面再抽时间看看怎么整,我现在用的是 GetString方法,没来得及研究那么多。另外像 insert/update/delete 这些语句也是支持的,视频当中没演示,自已去测试环境里试吧。

写在最后

PowerShell 封杀那么严重,实战中有没有用?嗯,不知道,自行解决,我只是学习用。

CMD类的连接,这玩意儿的意义在哪里?嗯,直连RCE漏洞,没有语言的限制 Python/Go/Balabala...,无文件落地,比如像...就不比如了。

就这样吧,Byebye~


不如关注一波再走?

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2