Cobalt Strike--使用c#生成的payload进行免杀
2021-03-21 21:51:51 Author: www.freebuf.com(查看原文) 阅读量:211 收藏

1616330497_60573f016591ff28a630a.png!small?1616330495652

一、使用c#进行免杀--复现

一、首先启动cs的服务端和客户端

此过程略

二、生成C#的payload

1.生成c#的payload

首先创建一个监听

1616330708_60573fd4832d862bfc014.png!small?1616330706820

再生成一个payload

1616330721_60573fe1dbeabe94dae20.png!small?1616330720173

输出选择c#的

1616330731_60573feb5fb30b366e050.png!small?1616330729630

其实和其他payload生成是一样的,输出到桌面上

1616330740_60573ff43915be4fda798.png!small?1616330738427

打开之后发现生成成功

1616330751_60573fffc90072dc058d6.png!small?1616330750126

三、找到一个模板进行免杀

这里是我用的荔枝给我发的模板,他说很老了,但是我们只是为了复现去掌握他的方法,免杀被杀了但是不能扼杀我们的思路

我们进行操作:

将原来生成的payload给注释掉,然后把刚才生成的payload复制进去

一定要注意一点,字节数一定要相同

1616330762_6057400a4f4d23475161e.png!small?1616330760909

还要注意一点就是,要将buf改成shellcode,要不然下面转换文件的时候会报错

1616330771_605740131b98a1e114da9.png!small?1616330769642

四、将cs文件(c#文件)转换成exe文件、

模板前面给出了要执行的命令和位置

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /unsafe /out:shellcodeLauncher.exe shellcodeLauncher.cs

注意:需要一个.net环境

下面有一个csc.exe

咱们将刚才生成的东西给进行放到.net下,进行转换成exe文件

1616330780_6057401cb82ff50bbdf98.png!small?1616330779475

目录:C:\Windows\Microsoft.NET\Framework64\v4.0.30319

然后使用csc命令进行转换:

csc.exe /unsafe /out:chaosec.exe shellcodeLauncher.cs

1616330789_60574025b2e8c055e9a47.png!small?1616330787937

发现生成成功

1616330798_6057402ee487821d03bc1.png!small?1616330797339

csc命令详解:

out:是指定生成后exe的文件名称

/unsafe:是使用非安全模式来编译代码,非安全模式的代码允许其操作内存地以及这些地址上的直接,会引起不安全代码的执行,有安全风险,所以是定为不安全模式

运行查看是否能正常上线

1616330813_6057403d81b5e5e8f17fb.png!small?1616330811854

发现可以成功上线

在检测一下他的免杀效果

发现过腾讯管家是没问题的

1616330824_60574048449ba162523ed.png!small?1616330823355

五、定时任务安排

刚才运行的时候,发现一直有这个弹窗,所以很鸡肋,我们要借助windows上面的定时任务进行持久上线

1616330833_6057405135ec84781b853.png!small?1616330831408

1.定时任务介绍:

定时任务的参数:

schtasks ( schdule task:计划任务)

schtasks /create /RL HIGHEST /F /RU "SYSTEM" /TN "WindowsS" /TR "C:/chaosec.exe" /SC DAILY /MO 1 /ST 00:00

/RL:设置任务的运行级别。有效值为LIMITED和HIGHEST。默认为LIMITED。

/F∶如果指定的任务已存在,则强制创建任务并禁止警告的值。

/Ru∶指定运行任务的用户上下文。

/TN:指定唯—标识计划任务的名称。

/TR:指定要在计划的时间运行的任务的路径和文件名。

/SC:指定计划频率,DAILY为每天。

/MO:对于MINUTE,HOURLY,DAILYWEEKLY有效,可选参数,默认为1.

/ST:指定运行任务的开始时间,格式为HH : mm ( 24小时制)。

2.操作:

首先将chaosec.exe放到c盘下

1616330846_6057405e110b3e456d1dd.png!small?1616330844385

3.执行命令.

发现成功

1616330855_605740676550b3fd2c8e1.png!small?1616330853807

4.查看计划任务

schtasks /query |findstr "WindowsS" //这里我命令执行不可以,那么我们就直接用图形化查看,发现创建成功

1616330866_6057407228a14f16b71fd.png!small?1616330864376

5.立刻运行,执行、删除会话

schtasks /run /TN "chaosec"

schtasks /delete /F /TN "chaosec"

1616330879_6057407f928b6d214d5fb.png!small?1616330877708

发现成功上线

1616330888_605740883604076113b98.png!small?1616330886867


文章来源: https://www.freebuf.com/sectool/266939.html
如有侵权请联系:admin#unsafe.sh