0x01 前言

目前在一些攻防项目中,由于外网越来越不好打,钓鱼这种攻击手段,一旦成功就显的省时省力。最近攻防遇到了一家互联网大厂,所有员工使用的都是mac主机,这也是第一次钓mac。研究过程中发现网上这方面分享比较少,这里记录分享一下,如有错误欢迎各位师傅评论指正。

0x02 CrossC2部署

环境

cs版本4.1

cs服务端:linux vps

cs客户端中:mac

这里注意,经过测试cs服务端部署必须是linux,win不行,会出现执行不上线的情况。

插件安装

https://github.com/gloxec/CrossC2/releases/tag/v3.0.2

选择对应版本安装:

放在自己终端的任意目录下,注意路径名不能包含中文或特殊字符:

配置cna文件:

这里我自己的CC2path和bin的配置是这样,一定要确保这个路径和文件名是对应的,并且文件有可执行的权限。

这里注意还有一个地方需要注意,就是把自己服务端cs目录下的.cobaltstrike.beacon_keys文件放到和genCrossC2.MacOS同级目录下,不然会遇到key错误的提示。

生成上线马

加载cna插件

加载成功会看到插件

创建一个https的监听器,端口任意。这里需要注意,CC2上线实际也是通过创建的监听器上线,并且由于一些限制,只能是https的监听器(在github也有提到)。

使用插件生成一个马。端口可任意设置,第二个填文件的绝对路径,选择系统为macos木马,监听器选择刚才创建的https监听器,最后是生成可执行文件的目录和文件名。

这里很多师傅创建不成功,并且cs日志中也没有错误提示,这种情况可以把命令复制在终端执行,排查问题直到:

此时可以通过执行tmp目录下生成的可执行文件上线,或者利用插件生成命令执行上线

注意生成命令这里端口要和刚才设置的对应,才能请求到

0x03 封装app

此时实现了上线马的制作,可以命令或者执行可执行文件上线。但是对于钓鱼来说,可信度是远远不够的,为了制作一个完整的mac应用程序,我们先将上线命令封装成app

制作app

打开mac自带应用程序

选择新建文稿,点击应用程序

然后选择左侧选择运行shell脚本,然后把上线命令复制进去

然后command+s保存到应用程序中,app就制作结束了

这里可以换一个图标制作更逼真,点开应用程序,找到对应app右键显示简介,将icns图拖到图标处

0x04 dmg马

只有一个app是不够的,正常的mac安装程序是dmg或者pkg,首先制作dmg。

准备

一个.app,一张背景图(可选)以及安装路径的快捷方式

制作

应用程序处制作一个替身

磁盘工具,新建一个空白映像

之后桌面会生成demo.dmg和宗卷,打开宗卷编辑,把制作的app,应用程序文件夹,背景图拖到宗卷中,背景图可以右键显示选项拖动布置,之后删除即可。

编辑好后,就可以推出这个卷宗,进行最后一步转换,转换成一个不可修改的卷宗

选择磁盘工具,选择 映像-->转换,然后选择temp.dmg,打开后,重新命名就好了

这个转换之后的dmg就可以用作钓鱼的木马,受害者双击app或者安装点击之后,就会执行上线命令上线。

0x05 pkg马

如果用dmg去钓鱼,最后上线只是当前登录用户去点击,也就是普通用户权限,加上mac提权基本知识盲区,不容易做权限维持,这里可以制作pkg,设置管理员权限安装,就能上线root权限。

工具

pakeages 下载:http://s.sudre.free.fr/Software/Packages/about.html

Packages是一款开源的安装包制作工具,主要有两种模式:

Distribution(分布模式):这种模式下,安装包中可以包含多个组件,可以分别安装到指定的位置;

Raw Package(原始模式): 只适用于只有一个安装组件(安装内容)的情况,一个组件(package)就是一个具备特定安装属性的部分,是对需要安装的程序的一个逻辑划分。比如一个安装包中包含两部分,一部分需要安装到系统目录,一部分安装到用户目录。从逻辑上就可以划分为两个组件(package),分别为它们指定不同的安装属性。

制作

选择第一种模式

创建之后进入设置界面,首先是全局设置,默认是settings

然后第二个可以设置一些描述话语,或者背景图

设置全局之后设置包,第一个框是安装完之后要执行的,下面是安装的条件,第一个一定要选,安装时需要密码。这样才能确保root上线

把我们要安装的app拖到路径下,也可以自己创建目录

某些应用在安装时可能需要做一些额外的操作,可以执行脚本,分为安装前和安装后执行,这里把安装前的preinstall.sh和安装后的postinstall.sh全部变成上线命令

编辑完成之后,就可以直接build生成,可以看到执行时需要输入密码到高权限

安装结束之后,会执行两次脚本,也就会上线两次root,非常的nice

当然如果为了不被发现,也可以在制作pkg时放一个正常的app进去,只是安装时执行上线命令。

0x06 邮件发送

钓鱼邮件发送,如果为了方便可以参考横戈团队的工具:

https://github.com/SkewwG/henggeFish

但是工具中是写死163,只能用163账号发,可以自己改脚本,或者利用swaks批量发。

如果用swaks批量脚本发送,有可能会遇到spf校验,ip封禁,进垃圾箱等问题,不同的邮服策略也不同,有机会再写一篇钓鱼邮件批量发送。

0x07 参考

http://www.str1am.top/wordpress/?p=533

https://www.sqlsec.com/2020/07/cobaltstrike.html

https://www.jianshu.com/p/58be258a4465

https://blog.csdn.net/HeroGuo_JP/article/details/78049964

点击收藏 | 6 关注 | 2
登录 后跟帖