反邮箱审查系统 - 外网向内网发送任意文件
背景
内网完全隔离外网情况下,需要向内网发送一些例如python包等二进制/压缩包文件。在内网完全隔离背景下,信息只能通过内网审查邮件系统完成,且附件不超过20MB。
日常工作发送文本信息文件是不会被拦截,但如果要发送一些非文档类的二进制文件时,直接使用压缩软件以19MB切分压缩后发现邮件被识别拦截,尝试了使用文件后缀名伪装、使用pptx套壳在某一页插入附件后发送pptx、伪装后再次压缩等多种方法,均无法发送。
最终采用python原生写法(内网有单独python下载地址,但只有基础版,且任何pip安装均无效-无外网)将文件以二进制读入后以十六进制字符进行分隔,并以19MB进行切分;在接收端再以相同的方法批量读入并恢复二进制文件。
如果文件较大,产出的小文本文件数量会比较多,故增加一个自动将文件夹内所有文件逐个发邮件附件的脚本,可酌情使用。
文件说明
- write_split.py
将某个文件批量转为16进制字符串的txt,并以19MB切分,支持自动清理文件夹/命名.
- read_join.py
将某个文件夹下的若干文件批量读入,按照规则恢复出原二进制文件
- send_email_split.py
将某个文件夹下的文件自动逐个以邮件附件形式发送出去(需提供邮箱账号和smtp的授权码,以及修改接收邮箱地址)
运行方法: python xxx.py即可
TODO
仅使用二进制bytes流转十六进制字符串保存来绕过识别,若仍无法绕过,可采用自定义字典对十六进制字符串再次映射完成加密/伪装