{"id":13842139,"url":"https://github.com/SkewwG/henggeFish","last_synced_at":"2025-07-11T14:30:47.657Z","repository":{"id":37629465,"uuid":"411211421","full_name":"SkewwG/henggeFish","owner":"SkewwG","description":"自动化批量发送钓鱼邮件（横戈安全团队出品）","archived":false,"fork":false,"pushed_at":"2021-09-28T12:18:30.000Z","size":3836,"stargazers_count":724,"open_issues_count":2,"forks_count":145,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-08-05T17:30:39.475Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SkewwG.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-28T09:10:23.000Z","updated_at":"2024-07-26T03:08:37.000Z","dependencies_parsed_at":"2022-07-14T00:50:40.229Z","dependency_job_id":null,"html_url":"https://github.com/SkewwG/henggeFish","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkewwG%2FhenggeFish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkewwG%2FhenggeFish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkewwG%2FhenggeFish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SkewwG%2FhenggeFish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SkewwG","download_url":"https://codeload.github.com/SkewwG/henggeFish/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225729861,"owners_count":17515179,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T17:01:27.959Z","updated_at":"2024-11-21T12:30:56.060Z","avatar_url":"https://github.com/SkewwG.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# henggeFish-自动化批量发送钓鱼邮件（横戈安全团队出品）\n\n\n\n## 0x00 前言\n\n此工具是横戈安全团队成员一起研究落地，感谢chacha、小洲、yu等师傅提供的帮助。\n\n\n\n## 0x01 介绍\n\n**解决护网中大量目标需要发送钓鱼邮件的痛点**\n\n1. 每次护网都是一堆的目标，要是发送钓鱼邮件，你得一家一家的发。为什么呢？你正文内容不得改成某某企业，某某银行吗？通过脚本可以实现自动化修改。\n\n2. 然后又是拿什么发的问题了，自搭建的邮服，如何能保证不被标记，不进垃圾邮箱？所以这里选择了**邮箱池**，注意你买的邮箱列表必须要开放SMTP协议。\n\n3. 接下来就是脚本的出口IP问题了，经过测试，发现如果从同一个IP出口的话，发的邮件数量一多，可能后面的邮件全都被标记垃圾邮箱，或者你买的邮箱被封等等各种问题。所以这里选择了**云函数**去跑脚本。\n\n综上所述，为了解决批量发送钓鱼邮件的需求，开发了此工具。目前不足的就是无法伪造发件邮箱，不过这个问题在实战中影响也不大，你只要改下发件名称（例如: 信息部）就行，没安全意识的人，看到你的发件名称就信了。\n\n\n\n## 0x02 功能演示\n\n### 云函数效果展示\n\n详细记录邮箱池中每个邮箱对哪个目标发送的邮件\n\n![image-20210928185352101](imgs/image-20210928185352101.png)\n\n设置了阈值，邮箱池中的每个邮箱只能发送10封钓鱼邮件，根据需求可以在脚本里自行更改阀值。\n\n![image-20210928185517649](imgs/image-20210928185517649.png)\n\n详细记录了每个邮箱发送的目标邮箱列表和未发送的目标邮箱列表\n\n![image-20210928185816702](imgs/image-20210928185816702.png)\n\n\n\n### 邮件内容效果展示\n\n![image-20210928190040692](imgs/image-20210928190040692.png)\n\n\n\n## 0x03 如何避免成为垃圾邮件\n\n经过多次测试，如何有效的绕过各大厂商的邮件网关，这里总结几种方法\n\n1. 正文不要添加超链接\n\n2. 正文内容要长一点，太短的内容会被认为是垃圾邮件。\n\n3. 附件里Zip压缩包双层加密，测试过某厂，会检测你附件压缩包里有没有exe后缀的文件\n\n   假设木马是exe后缀的，先给木马压缩，这一步不需要加密。然后再次压缩，只不过这次要加密。这样因为最外层的加密了，它无法解压。然后压缩包里的文件还是压缩包，不是exe后缀的，它就不拦截了。\n\n   ![image-20210928190812270](imgs/image-20210928190812270.png)\n\n4. 7z压缩，对文件名加密，这样打开压缩包的时候也看不到文件名\n\n![image-20210928190856495](imgs/image-20210928190856495.png)\n\n![image-20210928190937303](imgs/image-20210928190937303.png)\n\n5. 目前的邮件内容编码都是base64，可以通过查看邮件原文可以看到。那么可以换个编码格式，例如使用Content-Transfer-Encoding: quoted-printable编码，效果如下\n\n   ![image-20210928191217918](imgs/image-20210928191217918.png)\n\n\n\n## 0x04 使用方法\n\n### 0x04-1 代码解释\n\n先看下项目的结构，main.go是主程序，go.mod是依赖，主要是看下面的四个文件。\n\n`conf.ini、kami.txt、target.txt、1.zip`\n\n**conf.ini是配置文件**\n\n对应关系如下，根据自己的需求更改就行，主要是邮件正文。\n\n![image-20210928195019555](imgs/image-20210928195019555.png)\n\n邮件正文可以是html格式，也可以是纯文本。只需要将内容base64编码即可。\n\n建议可以现在https://c.runoob.com/front-end/61/这个地址将你的话术整理好先\n\n![image-20210928195722950](imgs/image-20210928195722950.png)\n\n在http://tool.chinaz.com/tools/imgtobase/这里将图片base64编码\n\n![image-20210928195707180](imgs/image-20210928195707180.png)\n\n\n\n**kami.txt是邮箱池账号密码**\n\n保存了邮箱池的账号密码，格式如下。\n\n![image-20210928195357586](imgs/image-20210928195357586.png)\n\n**target.txt是目标邮箱列表**\n\n![image-20210928195450031](imgs/image-20210928195450031.png)\n\n\n\n**1.zip是你木马的附件**：程序会从1.zip中读取内容，然后当作附件发送。\n\n\n\n**打包程序**\n\n运行下面两行命令得到了main.zip文件。后面在云函数中需要上传main.zip\n\n```\nGOOS=linux GOARCH=amd64 go build -o main main.go\nzip main.zip main kami.txt 1.zip target.txt conf.ini\n```\n\n![image-20210928195843182](imgs/image-20210928195843182.png)\n\n\n\n\n\n\n\n### 0x04-2 创建云函数\n\n参考链接：https://blog.csdn.net/q2760259/article/details/116983027\n\n新建一个云函数\n\n![image-20210928192029117](imgs/image-20210928192029117.png)\n\n![image-20210928192425713](imgs/image-20210928192425713.png)\n\n这里选择900秒，这样可以在日志中看到脚本运行的结果\n\n![image-20210928193125782](imgs/image-20210928193125782.png)\n\n触发器的配置\n\n![image-20210928193313631](imgs/image-20210928193313631.png)\n\n这样就创建成功了\n\n![image-20210928193355273](imgs/image-20210928193355273.png)\n\n进入api服务\n\n![image-20210928193502055](imgs/image-20210928193502055.png)\n\n通过调试运行脚本\n\n![image-20210928193521638](imgs/image-20210928193521638.png)\n\n点击发送请求后，就运行脚本了\n\n![image-20210928193728467](imgs/image-20210928193728467.png)\n\n\n\n在日志查询中可以实时查看脚本运行的结果\n\n![image-20210928193820621](imgs/image-20210928193820621.png)\n\n\n\n成功的收到了邮件\n\n![image-20210928194422374](imgs/image-20210928194422374.png)\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSkewwG%2FhenggeFish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSkewwG%2FhenggeFish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSkewwG%2FhenggeFish/lists"}