cobaltstrike之execute-assembly内存加载—后渗透利用

通过execute-assembly内存加载来执行文件,从而避免后渗透中被杀毒软件静态报毒,使更多的工具能够继续利用,常见的方式有权限维持,代理上线等操作

远程bin文件加载

首先尝试远程加载bin文件
使用项目https://github.com/shanekhantaun9/SharpLoader
在vps上传一个
在这里插入图片描述
这个文件生成方法,使用rc4.py脚本进行加密

import sys


def rc4(data, key):
    keylen = len(key)
    s = list(range(256))
    j = 0
    for i in range(256):
        j = (j + s[i] + key[i % keylen]) % 256
        s[i], s[j] = s[j], s[i]

    i = 0
    j = 0
    encrypted = bytearray()
    for n in range(len(data)):
        i = (i + 1) % 256
        j = (j + s[i]) % 256
        s[i], s[j] = s[j], s[i]
        encrypted.append(data[n] ^ s[(s[i] + s[j]) % 256])

    return encrypted


if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: ./rc4.py <key> <filename>")
        exit(0)

    key = sys.argv[1]
    filename = sys.argv[2]

    with open(filename, 'rb') as f:
        data = f.read()

    encrypted = rc4(data, key.encode())

    with open(f"{filename}.enc", 'wb') as f:
        f.write(encrypted)

    print(f"Written {filename}.enc")

在这里插入图片描述
那么执行如下
在这里插入图片描述
可以看到成功上线

在cs上execute-assembly试试
在这里插入图片描述
可以看到说不是.NET程序,但是它确实是,说明.NET版本问题,那么我用之前《dotnet4.0编译问题》进行编译
再次尝试在这里插入图片描述
在这里插入图片描述
可以看到成功运行并上线,可以看到上线的进程是svchost.exe

远程c#程序(exe)加载

但是实际操作过程中发现有问题,因为对于exe的文件没办法远程加载
那么我又找到一个项目https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader
需要先加密,看看能不能成功上线
在这里插入图片描述
然后放到vps上的可访问目录
在这里插入图片描述
在这里插入图片描述

那么接下来把powershell的代码写成c#的加载器,目的是为了直接execute-assmbly使用远程加载
完整代码放在https://github.com/qieziwa/Invoke-SharpLoader_dotnet
用dotnet4.0编译即可
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
可以看到成功导出,那么之后再其功能上扩展就可以了

正式来体验下效果,用cs上的
在这里插入图片描述
成功导出

使用场景后渗透代理上线,可内存加载一个远程加载程序(该程序调用远端shellcode)
在这里插入图片描述

即可代理上线

还可以扩展一些c#的功能来更方便后渗透
项目代码:https://github.com/qieziwa/Invoke-SharpLoader_dotnet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值