wubba lubba dub dub.

set-content:

1
2
$decoded = [System.Convert]::FromBase64CharArray($e, 0, $e.Length)
Set-Content out.png -Value $decoded -Encoding Byte
阅读此文

Compression:

1
2
3
4
5
6
7
$s = @'YourInputHere"@
$ms = New-Object System.IO.MemoryStream
$cs = New-Object System.IO.Compression.GZipStream($ms, [System.IO.Compression.CompressionMode]::Compress)
$sw = New-Object System.IO.StreamWriter($cs)
$sw.Write($s)
$sw.Close();
$s = [System.Convert]::ToBase64String($ms.ToArray())
阅读此文

我的环境

1
2
3
OS type:mac
Software:vscode
Dotnet core version:2.0/3.1

dotnet sdk下载地址:https://dotnet.microsoft.com/download/dotnet-core/2.0

准备

先到上面提供的下载地址,下载对应平台的dotnet装上,然后在命令行窗口输入dotnet --version查看输出是否安装成功。

然后,安装visual studio code,安装之后还需要安装C#拓展,要不然每次打开cs文件都会报错。

创建项目

新建一个空目录,例如mvc-test

使用命令dotnet new查看可以新建的项目类型:

第一次尝试,使用ASP.NET Core Empty就可以,代号是web,使用命令dotnet new web就可以新建一个空项目,项目的名称就是当前目录的名字mvc-test

阅读此文
post @ 2020-07-04

前言

最近,看到好多不错的关于“无文件 Webshell”的文章,对其中利用上下文动态的注入 Filter 的技术做了简单验证,写一下测试过程总结,不依赖任何框架,仅想学习一下 tomcat 的 filter。

先放几篇大佬的文章:

Filter 介绍

详细介绍略,简单记录一下我的理解:

  • 过滤器(Filter):用来对指定的 URL 进行过滤处理,类似 .net core 里的中间件,例如登录验证过滤器可以用来限制资源的未授权访问;
  • 过滤链(FilterChain):通过 URL 匹配动态将所有符合 URL 规则的过滤器共同组成一个过滤链,顺序有先后,类似 .net core 的管道,不过区别在于过滤链是单向的,管道是双向;

同 Servlet,一般 Filter 的配置方式:

  • web.xml
  • @WebFilter 修饰

Filter 注册调用流程

阅读此文

测试信息

Dev Machine:

1
2
3
4
Windows Version: 2004 (19041.264)
WDK Version: 10.0.19041.1
SDK Version: 10.0.19041.1
Visual Studio: Community 2019

Test Machine:

1
Windows 7 SP1 + KMD Manager + DbgView

开发环境搭建

参照:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk

除了在安装 VS2019 的时候,选择C++ 桌面开发环境,里面自带一个和当前系统版本一致的SDK,也可以自己修改,但是可能会和系统不兼容。

还需要安装的组件:

1
2
3
4
5
6
MSVC v142 - VS 2019 C++ ARM build tools (v14.25)
MSVC v142 - VS 2019 C++ ARM Spectre-mitigated libs (v14.25)
MSVC v142 - VS 2019 C++ ARM64 build tools (v14.25)
MSVC v142 - VS 2019 C++ ARM64 Spectre-mitigated libs (v14.25)
MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.25)
MSVC v142 - VS 2019 C++ x64/x86 Spectre-mitigated libs (v14.25)
阅读此文

Configuration

注:建议提前备份所有修改内容,可能会导致无法开机。

我的测试环境:

  • server: windows 10 + windbg
  • client: windows 7

Server

Server代表被调式机,修改 vmx 文件,查找并删除所有 serial 项,添加以下串口配置:

1
2
3
4
5
serial0.present = "TRUE"
serial0.fileType = "pipe"
serial0.fileName = "/private/tmp/com1"
serial0.tryNoRxLoss = "FALSE"
serial0.pipe.endPoint = "server"

Client

Client表示 Windbg 机器,修改 vmx 文件,查找并删除所有 serial 项,添加以下串口配置:

1
2
3
4
5
serial0.present = "TRUE"
serial0.fileType = "pipe"
serial0.fileName = "/private/tmp/com1"
serial0.tryNoRxLoss = "FALSE"
serial0.pipe.endPoint = "client"
阅读此文

怀念 2008

我以为这个年代了,中文路径问题应该解决了,记得 vs 2008 写 c 的时候曾因中文路径的问题导致编译不通过,从 2015 版本开始发现有时候项目名称和路径里包含中文也可以编译通过了,习惯之后后面所有的编译报错问题很难再去想到中文路径上去。

一次在编译内核文件的时候,发现总是编译失败,起初有一些常见的错误,例如 inf 文件校验,通过修改项目属性解决之后没有任何的报错,依然编译失败,没有报错的 error 是最气人的。

为此将系统升级到了 win10 2004 版本,以及 vs 2019 升级到最新,终于看到报错了:

1
1>Z:\ 项目 \C\ 内核驱动编程 \testDriver\testDriver.inf : error 1299: Additional validation checks skipped due to parsing errors.

看样子是校验 inf 的时候,某一步的解析有问题,无论怎么设置项目属性都不可以,然后就思考这个 inf 是模板自动生成的应该内容不会有问题,那就从这一行报错找原因,才想到是不是中文路径的原因,在 C 盘建一个英文目录后不出所料的编译通过了。

但是呢,将项目移动到 Z 盘,所有路径改成英文的,编译仍然失败:

那看来不是中文路径的问题了,是我错怪了时代的发展。这样的话,我大概知道是什么问题了,Z 盘是我挂载的网络共享盘,磁盘格式既不是 NTFS 也不是 FAT32,换成本地磁盘后编译通过。

阅读此文

描述

SaltStack 是一套 C/S 架构的运维工具,服务端口默认为 4505/4506,两个端口如果对外网开放危害非常大,黑客利用SaltStack 的远程命令执行漏洞 CVE-2020-11651 可以直接绕过 Salt-Master 的认证机制,调用相关函数向 Salt-Minion 下发指令执行系统命令,最终导致挖矿。

现象

受害 Salt-Minion 机器上存在挖矿进程salt-minions

tmp目录下存在可疑二进制文件:

  • salt-store
  • salt-minions

排查

  1. 确定所有 salt-master 机器列表;
  2. 查看当天 salt-master 的日志文件/var/log/salt/minion,是否存在可疑命令执行,筛选cmdmod

阅读此文
post @ 2020-04-27

BypassUAC

本篇主要介绍如何以 ICMLuaUtil 方式BypassUAC,主要内容如下:

  • 过掉 UAC 提示框的方法总结
  • UACME项目
  • 什么类型的 COM interface 可以利用?
  • 如何快速找到系统中的所有可利用的 COM 组件?
  • 定位 ICMLuaUtil 的虚函数表vftable
  • 如何调用 ICMLuaUtil.ShellExec 执行命令?
    • C++ version
    • CSharp version
      • 两个注意点
  • DLL形式
    • C++ dll 导出函数方式
    • C# dll 导出函数方式
      • 一个坑
  • 值得研究的 C2 推荐

过掉 UAC 提示框的方法总结

这里主要说的是 dll 的形式,通过上面的实操,可以发现有两种方法:

  • 基于白名单程序绕过UAC
  • 伪装进程 PEB 绕过UAC
  • 无文件技术

伪装进程的方式其实也可以算做借助了白名单,但是没有直接调用白名单进程,所以单独列出来了。

基于白名单程序绕过 UAC

有些系统程序是直接获取管理员权限,而不会触发 UAC 弹框,这类程序称为白名单程序,例如:slui.exewusa.exetaskmgr.exemsra.exeeudcedit.exeeventvwr.exeCompMgmtLauncher.exerundll32.exeexplorer.exe等等。

常见的利用方式有:

阅读此文
post @ 2020-04-06

项目地址

cnsimo/CVE-2020-2551

CVE-2020-2551

weblogic iiop 反序列化漏洞

该项目的搭建脚本在 10.3.6 版本经过测试,12 版本未测试。

环境

kali+weblogic10.3.6+jdk6u25

保证部署 weblogic 的机器内存至少1.5G,因为脚本中参数指定的-x1024m

使用方法

git clone https://github.com/cnsimo/CVE-2020-2551.git克隆本项目到本地。

阅读此文
⬆︎TOP