From 39e5ca3924be7df38b145363ff84b4ba8f72bf89 Mon Sep 17 00:00:00 2001 From: MasonLiu <2857911564@qq.com> Date: Sun, 8 Dec 2024 00:18:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core.py | 72 +- JSON/4hou.json | 42 +- JSON/anquanke.json | 272 ++-- JSON/doonsec.json | 1424 ++++++++--------- JSON/freebuf.json | 266 +-- JSON/qianxin.json | 14 +- JSON/seebug.json | 34 +- JSON/xianzhi.json | 282 ++-- README.md | 6 +- SendBot.py | 9 +- __pycache__/GotoSend_4hou.cpython-312.pyc | Bin 5499 -> 5501 bytes __pycache__/GotoSend_anquanke.cpython-312.pyc | Bin 5360 -> 5362 bytes __pycache__/GotoSend_doonsec.cpython-312.pyc | Bin 5607 -> 5609 bytes __pycache__/GotoSend_freebuf.cpython-312.pyc | Bin 5523 -> 5525 bytes __pycache__/GotoSend_qianxin.cpython-312.pyc | Bin 5273 -> 5275 bytes __pycache__/GotoSend_xianzhi.cpython-312.pyc | Bin 5242 -> 5244 bytes config.yaml | 2 +- db/4hou.db | Bin 229376 -> 229376 bytes db/anquanke.db | Bin 12288 -> 12288 bytes db/doonsec.db | Bin 69632 -> 69632 bytes db/freebuf.db | Bin 20480 -> 20480 bytes db/qianxin.db | Bin 12288 -> 12288 bytes db/seebug.db | Bin 20480 -> 20480 bytes db/xianzhi.db | Bin 24576 -> 24576 bytes log/spider.log | 0 media/__pycache__/common.cpython-312.pyc | Bin 5854 -> 8128 bytes media/__pycache__/freebuf.cpython-312.pyc | Bin 2775 -> 4344 bytes media/__pycache__/xianzhi.cpython-312.pyc | Bin 3304 -> 3995 bytes media/common.py | 181 ++- media/freebuf.py | 31 +- media/xianzhi.py | 22 +- 31 files changed, 1371 insertions(+), 1286 deletions(-) create mode 100644 log/spider.log diff --git a/Core.py b/Core.py index d53a0ba..51d20f8 100644 --- a/Core.py +++ b/Core.py @@ -21,6 +21,23 @@ from GotoSend_xianzhi import Src_xianzhi from GotoSend_freebuf import Src_freebuf from GotoSend_qianxin import Src_qianxin from GotoSend_seebug import Src_seebug +import logging + +# 设置日志记录 +logger = logging.getLogger() +logger.setLevel(logging.INFO) +logger.handlers.clear() # 清除已有的处理器 + +file_handler = logging.FileHandler('./log/spider.log', mode='a', encoding='utf-8') +file_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) + +console_handler = logging.StreamHandler() +console_handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')) + +logger.addHandler(file_handler) +logger.addHandler(console_handler) +logger.propagate = False # 禁用日志传递 + # 加载参数 with open('./config.yaml', 'r', encoding="utf-8") as file: @@ -32,7 +49,13 @@ webhook_url_once, timestamp_once, sign_once = gen_sign() def send_job(time_1): # 爬取数据 print("正在启动各爬虫并获取资源中...") - run() + seebug_main() + M_4hou_main() + anquanke_main() + # sec_wiki_main() + huawei_main() + doonsec_main() + qianxin_main() freebuf_main() xianzhi_main() @@ -51,83 +74,83 @@ def send_job(time_1): # 发送嘶吼资讯 if reslt_4hou: print("-" * 40) - print("嘶吼资讯递送中:") + logger.info("嘶吼资讯递送中:") SendToFeishu(reslt_4hou, "嘶吼资讯递送", webhook_url, timestamp, sign) print("-" * 40 + "\n") time.sleep(60) else: print("-" * 40) - print("嘶吼数据为空,跳过执行。") + logger.info("嘶吼数据为空,跳过执行。") # 发送安全客资讯 if reslt_anquanke: print("-" * 40) - print("安全客资讯递送中:") + logger.info("安全客资讯递送中:") SendToFeishu(reslt_anquanke, "安全客资讯递送", webhook_url, timestamp, sign) print("-" * 40 + "\n") time.sleep(60) else: print("-" * 40) - print("安全客数据为空,跳过执行。") + logger.info("安全客数据为空,跳过执行。") # 发送洞见微信安全资讯 if reslt_doonsec: print("-" * 40) - print("洞见微信安全资讯递送中:") + logger.info("洞见微信安全资讯递送中:") SendToFeishu(reslt_doonsec, "洞见微信安全资讯递送", webhook_url, timestamp, sign) print("-" * 40 + "\n") time.sleep(60) else: print("-" * 40) - print("洞见微信安全数据为空,跳过执行。") + logger.info("洞见微信安全数据为空,跳过执行。") # 发送先知社区资讯 if reslt_xianzhi: print("-" * 40) - print("先知社区资讯递送中:") + logger.info("先知社区资讯递送中:") SendToFeishu(reslt_xianzhi, "先知社区资讯递送", webhook_url, timestamp, sign) print("-" * 40 + "\n") time.sleep(60) else: print("-" * 40) - print("先知社区数据为空,跳过执行。") + logger.info("先知社区数据为空,跳过执行。") # 发送FreeBuf资讯 if reslt_freebuf: print("-" * 40) - print("FreeBuf资讯递送中:") + logger.info("FreeBuf资讯递送中:") SendToFeishu(reslt_freebuf, "FreeBuf资讯递送", webhook_url, timestamp, sign) print("-" * 40 + "\n") time.sleep(60) else: print("-" * 40) - print("FreeBuf数据为空,跳过执行。") + logger.info("FreeBuf数据为空,跳过执行。") # 发送奇安信攻防社区资讯 if reslt_qianxin: print("-" * 40) - print("奇安信攻防社区资讯递送中:") + logger.info("奇安信攻防社区资讯递送中:") SendToFeishu(reslt_qianxin, "奇安信攻防社区资讯递送", webhook_url, timestamp, sign) print("-" * 40 + "\n") time.sleep(60) else: print("-" * 40) - print("奇安信攻防社区数据为空,跳过执行。") + logger.info("奇安信攻防社区数据为空,跳过执行。") # 发送Seebug资讯 if reslt_seebug: reslt_seebug = Src_seebug(1000) webhook_url, timestamp, sign = gen_sign() print("-" * 40) - print("Seebug社区资讯递送中:") + logger.info("Seebug社区资讯递送中:") SendToFeishu(reslt_seebug, "Seebug社区资讯递送", webhook_url, timestamp, sign) print("-" * 40 + "\n") else: print("-" * 40) - print("Seebug社区数据为空,跳过执行。") + logger.info("Seebug社区数据为空,跳过执行。") def signal_handler(sig, frame): - print("接收到退出信号,程序即将退出...") + logger.info("接收到退出信号,程序即将退出...") sys.exit(0) @@ -140,14 +163,14 @@ def main_loop(): while True: try: # 执行任务 - print(f"第{n}次执行,当前时间为:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") + logger.info(f"第{n}次执行,当前时间为:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") send_job(e_hour) - print("执行完毕,等待下一次执行...") + logger.info("执行完毕,等待下一次执行...") n += 1 time.sleep(e_hour * 60 * 60 - 5 * 60) except Exception as e: - print(f"发生错误: {e}, 程序已暂停") + logger.error(f"发生错误: {e}, 程序已暂停") # SendToFeishu(f"发生错误: {e}, 程序已退出", "报错信息") exit() @@ -193,13 +216,18 @@ if __name__ == "__main__": start_info += "程序已启动,当前时间为:" + datetime.now().strftime("%Y-%m-%d %H:%M:%S") + "\n" start_info += "程序作者:MasonLiu \t 开源地址:[GM-gitea](https://git.masonliu.com/MasonLiu/PyBot)" + "\n" start_info += "时间配置:每隔" + str(e_hour) + "小时执行一次推送\n" - SendToFeishu(start_info, "程序信息", webhook_url_once, timestamp_once, sign_once) + result = SendToFeishu(start_info, "程序信息", webhook_url_once, timestamp_once, sign_once) + logger.info(result) + print("-" * 40) # print(start_info) - SendToFeishu(rss_info, "RSS源状态", webhook_url_once, timestamp_once, sign_once) + result = SendToFeishu(rss_info, "RSS源状态", webhook_url_once, timestamp_once, sign_once) + logger.info(rss_info) + logger.info(result) + print("-" * 40) # print(rss_info) # 首次运行先暂停两分钟 - time.sleep(2 * 60) + # time.sleep(2 * 60) # 主程序 main_loop() \ No newline at end of file diff --git a/JSON/4hou.json b/JSON/4hou.json index 6146f09..36d8e4f 100644 --- a/JSON/4hou.json +++ b/JSON/4hou.json @@ -1,4 +1,25 @@ [ + { + "title": "警方查获Matrix 加密聊天服务", + "link": "https://www.4hou.com/posts/om8k", + "description": "
代号为“Operation Passionflower”的国际执法行动已经关闭了 MATRIX,这是一个加密消息平台,网络犯罪分子利用该平台协调非法活动,同时逃避警方追捕。
MATRIX 与同名的安全开源、去中心化、实时通信协议是不同的实体,继续使用是完全合法的。该行动在欧洲各地进行,包括法国、荷兰、意大利、立陶宛、西班牙和德国,并由欧洲刑警组织和欧洲司法组织协调。
犯罪推动者
警方在找到一名 2021 年 7 月试图暗杀记者的枪手的手机后,顺藤摸瓜找到了 MATRIX。在分析手机后,他们发现该手机经过定制,可以连接到名为 Matrix 的加密消息服务。
荷兰和法国当局之间的联合调查小组 (JIT) 允许警方监控和拦截通过这些设备发送的 33 种不同语言的 230 万条消息。但是,没有提供有关如何做到这一点的技术细节。
“三个月来,当局能够监控可能犯罪分子的信息,这些信息现在将用于支持其他调查。”欧洲刑警组织发布了一份声明。
在欧洲司法组织和欧洲刑警组织支持的协调行动中,荷兰和法国当局关闭了该消息服务,意大利、立陶宛和西班牙当局采取了后续行动。
MATRIX 遍布欧洲的 40 台服务器促进了至少 8,000 个用户帐户的通信,这些用户帐户支付了 1350 至 1700 美元的加密货币购买基于 Google Pixel 的设备以及手机上安装的服务的六个月订阅。
MATRIX 还以“Mactrix”、“Totalsec”、“X-quantum”和“Q-safe”等名称出售,但它们都使用相同的基础设施。 MATRIX 还提供加密视频通话、跟踪交易和匿名浏览互联网的功能。
扣押和逮捕
本周,执法部门在四个国家同时进行了突袭和搜查,导致法国和德国的 40 台服务器被关闭,西班牙和法国的 5 名嫌疑人被捕。
其中一名被捕者是一名 52 岁的立陶宛男子,他被怀疑是 MATRIX 的所有者和主要运营商。当局还查获了 970 部加密手机、152,500 美元现金、525,000 美元加密货币以及四辆汽车。 MATRIX 网站上张贴的查封横幅警告该服务的用户他们的通信已被暴露,调查将继续进行。
扣押通知
荷兰警方在另一份公告中指出,任何出于隐私和匿名目的而选择该服务且未参与犯罪活动的 MATRIX 用户应发送电子邮件请求豁免调查。尽管 MATRIX 的运营商技术先进,并且相信它优于之前被拆除的加密电话服务,但 MATRIX 仍被拆除。
然而,之前取缔类似加密电话服务(如 Ghost、EncroChat、Exclu 和 Sky ECC)的执法行动表明,一旦执法部门了解其基础设施,他们就可以通过监控截获的消息或通过查获的信息来收集犯罪行为的重要证据。这些证据导致数千名毒贩、武器经销商、有组织犯罪分子、杀人犯和洗钱犯被捕。
", + "pubDate": "Fri, 06 Dec 2024 12:00:00 +0800", + "author": "胡金鱼" + }, + { + "title": "伏特加制造商 Stoli 因勒索软件攻击申请破产", + "link": "https://www.4hou.com/posts/nl7P", + "description": "Stoli 集团的美国公司在 8 月份遭遇勒索软件攻击后申请破产,俄罗斯当局查封了该公司在该国的剩余酿酒厂。Stoli 集团的两家子公司 Stoli USA 和 Kentucky Owl 的总裁兼全球首席执行官在最近的一份文件中表示,这是因为 8 月份的攻击严重破坏了其 IT 系统(包括企业资源规划 (ERP))之后发生的。此次网络攻击还迫使整个集团进行手动操作,影响了会计等关键流程,预计要到 2025 年初才能完全恢复。
Caldwell 表示:“2024 年 8 月,Stoli 集团的 IT 基础设施因数据泄露和勒索软件攻击而遭受严重破坏。” 由于 Stoli 集团的企业资源规划 (ERP) 系统被禁用,并且 Stoli 集团的大部分内部流程(包括会计职能)被强制,此次攻击给 Stoli 集团内的所有公司(包括 Stoli USA 和 KO)造成了严重的运营问题。
这一事件还导致 Stoli 美国子公司无法向两家公司拖欠 7800 万美元债务的贷款人提供财务报告。2024 年 7 月,该集团在俄罗斯仅存的最后资产——两家价值 1 亿美元的酿酒厂也因 Stoli 集团及其创始人 Yuri Shefler 被认定为“极端分子”而被没收。
此外,Stoli 集团还花费了数千万美元与俄罗斯国有企业 FKP Sojuzplodoimport 就 Stolichnaya 和 Moskovskaya 伏特加商标权进行了长达 23 年的长期法庭诉讼,涉及多个司法管辖区,其中包括美国。
这场法律斗争源于 2000 年 3 月总统普京的一项行政命令,旨在“恢复和保护国家对伏特加商标的权利”,这些商标的权利在 20 世纪 90 年代被私营公司购买。该公司创始人谢夫勒也因批评普京政权而受到出于政治动机和“捏造”的指控,于 2002 年被迫逃离俄罗斯。
", + "pubDate": "Fri, 06 Dec 2024 12:00:00 +0800", + "author": "胡金鱼" + }, + { + "title": "ChatGPT 诞生两周年:AI 世界的一次代际飞跃", + "link": "https://www.4hou.com/posts/pnBm", + "description": "人工智能 (AI) 技术已有数十年的历史,推动着从机器人到预测分析等方方面面的创新。两年前,伴随着 ChatGPT 的横空出世,生成式人工智能 (GenAI) 成为了 AI 发展史上的一个里程碑式转折点。ChatGPT 被设计用于以近乎人类的水平进行对话、创作和理解。得益于这一变革性功能,AI 走出技术领域,进入日常生活,以前所未有的方式推动着先进技术的广泛普及。
ChatGPT 于 2022 年底推出,在短短 5 天内迅速走红,用户数量达到了 100 万。2024 年,ChatGPT 的活跃用户数量骤增至 2 亿,成为历史上增长速度最快的应用之一。 凭借实时生成上下文相关的连贯回答的能力,ChatGPT 让 AI 成为了一个家喻户晓的名词。这两年以来,人类仿佛又迎来了一次技术革命,全球各个行业都在AI应用中看到了无限可能。
在十一月乌镇举办的2024年世界互联网大会上,人工智能成为展示重点,涵盖低空经济、智能网联汽车、人形机器人、数字文创等热点,40余个大模型及垂直模型、10余个机器人集中亮相。今年十月,我国一位儿童用户通过视频展示了两个AI就“愚公是否应该移山”这一主题展开辩论,这两个应用占线的严密逻辑以及“类人化”的表达方式在短短几天就收获了数十万观看与数万条评论。可以看出,在短短两年时间内,各个AI应用已经开始“飞入寻常百姓家”。
然而,在ChatGPT 及其他类似工具应用于各行各业、为专业人士和个人的工作和生活赋能的同时,此类工具的“两面性”也日益凸显。
ChatGPT 的崛起:助力各行各业创新
从客户服务到内容创建,AI应用已迅速成为个人和企业必不可少的生产工具。虽然想要达到人类顶级人才的水平仍有待时日,但大型语言模型 (LLM) 通常都能够根据需求提供不错的解决方案,可让专业人士专注于创造性、分析性和战略性任务。GenAI 的即时性和可扩展性促进了范式转变,即“AI 无处不在”不再只是一种趋势,而是实实在在的现实。
GenAI 工具为各行各业提供了支持,它可通过回答 StackOverflow 等平台上的技术问题,帮助快速解决问题,并加快项目进度,将为期一周的任务缩短至数小时。ChatGPT 等 GenAI 工具还通过创新性地应用语言模型来破译功能和理解复杂代码,将其功能扩展到了逆向工程。
在网络安全领域, GenAI 已经产生了深远的影响。例如,ChatGPT 能够分析庞大的数据集,以检测异常和模式,从而帮助用户发现以前可能无法察觉的威胁。这种增强的可视性是一项颠覆性特性,有助于高效打击日益复杂的网络攻击。
从积极的方面看,GenAI 已成为加强安全运维不可或缺的工具:
1. 加速工作流程:网络安全专业人员现在使用 ChatGPT 等 GenAI 工具快速排除故障、破解复杂问题并从海量数据集中提取实用洞察——这些任务以前都需要数周或数天的时间才能完成。
2. 威胁检测:GenAI 能够快速、深入地分析海量数据,从而帮助机构检测到可能被忽视的威胁。
3. 事件响应:GenAI 正被探索用于总结攻击模式、缩短响应时间并加强防御能力。
然而,GenAI 的兴起也带来了重大风险。若无适当的安全防护措施,输入到 ChatGPT 等工具中的敏感数据可能会在不经意间被泄漏。一次数据处理不当就可能带来毁灭性后果,如果这些数据被用于未来网络攻击的话。
从某些方面来看,这项变革性技术为网络犯罪分子肆无忌惮的滥用提供了可乘之机:
· 恶意代码开发:ChatGPT 和类似工具甚至支持新手攻击者创建和调试恶意软件,这大大降低了网络犯罪发起攻击的门槛。
· 复杂的网络钓鱼电子邮件:黑客可利用 GenAI 制作出更具迷惑性的逼真电子邮件。与传统的网络钓鱼电子邮件相比,这些电子邮件更有可能骗到收件人,因为前者措辞不够严谨并缺乏对相关情况的了解,所以可能会被明眼人识破。
· 深度伪造:GenAI 生成的视频和音频片段往往难辨真伪,主要用于欺诈、造谣和勒索,致使社交工程威胁升级。
这些滥用案例凸显了一个残酷的现实:正如 GenAI 可以让防御者如虎添翼一样,它也可能为虎作伥,成为攻击者的帮凶。
保障 GenAI 领域的安全
随着 GenAI 的快速普及,用户需要采取主动式安全防护来缓解风险。Check Point 建议采取以下措施:
1. 开展员工培训:让员工了解 GenAI 特定的威胁和风险,例如逼真的网络钓鱼电子邮件、深度伪造和幻觉,以便他们能够发现和报告潜在事件。
2. 实施数据保护:采用可靠工具防止在不经意间与 AI 平台共享敏感数据,从而降低数据泄漏或滥用风险。
3. 监控和规范 AI 使用:制定明确的政策,确保在机构内以合乎道德的方式安全使用 GenAI,让使用者和开发人员承担起相应的责任。
4. 实施自动化数据控制:部署自动化解决方案来监控和限制与第三方 AI 系统的数据共享,确保敏感信息始终安全无虞。
5. 采用基于 AI 的防御:利用 AI 工具有效防范攻击,增强威胁检测和响应能力。
未来愿景:负责任地使用 AI,维护网络安全
毫无疑问,ChatGPT 等 GenAI 将在塑造网络安全格局方面发挥日益重要的作用。我们所面临的挑战在于如何正确发挥其潜力,同时最大限度地降低滥用风险。
使用 GenAI 的好处显而易见:用户可以使用其算法高效使用之前很难处理的海量数据。然而,GenAI 并不是人类的自动化替身,也不仅仅是一套先进的算法。虽然 GenAI 潜力巨大,但其风险也不容小觑。
为了确保 GenAI 正面助力网络安全,各机构必须对其使用承担起责任。无论是通过监管敏感应用、培养 AI 文化素养,还是部署高级监控工具,业界都必须与这项技术同步发展。通过保持警惕性和前瞻性,我们可确保 ChatGPT 等工具不断推动创新,同时防止其被滥用。
近日,一则安全事件刷爆了朋友圈:10月12日,多名网友反映收到了来自“某省教育厅”的短信,短信内容中带有黄色网站非法链接。经查,这些短信并非某省教育厅发送,而是不法分子入侵了短信平台后,以教育厅的名义发送的。该事件引发了广泛的社会关注和担忧。
✦ 事件分析
短信平台群发短信通常需要和短信服务平台公司合作通过API接口实现。短信平台API接口是一种用于实现短信发送和接收功能的编程接口,它允许合作的短信服务平台公司将自己的应用程序与短信平台的功能进行集成,可以方便地调用短信平台提供的各种功能,如短信发送、状态查询等。
在某省教育厅短信平台被入侵事件中,暴露了短信平台在安全防护机制、身份认证和监控预警等存在缺陷。不法分子可能通过API接口发送了包含非法链接的短信,包含但不限于通过弱口令、身份认证信息的窃取或伪造、系统漏洞的利用、失效的API接口验证以及不当的权限管理等来实现诈骗和信息传播,试图诱骗用户点击并泄露个人信息。可见,加强API接口的安全防护刻不容缓。
✦ 防护建议
针对此类事件,盛邦安全推出面向短信业务平台的API安全治理方案,结合API安全当前面临的典型问题,覆盖API学习、API画像、攻击防护、权限保护、API审计和应急响应等各个阶段,以业务风险识别与防护控制为核心目标,通过对业务流量的识别分析来梳理API接口,在此基础上通过数据建模、行为建模和算法分析等技术,实现API接口识别与梳理、数据调用识别与保护、接口访问安全控制及审计等安全能力,从而实现面向API接口全生命周期的安全监测与治理。
✦ 五大核心能力
主被动结合的API学习引擎
方案采用主动学习与被动流量分析相结合的API学习引擎,可以全面梳理业务中存在的API资产,并结合流量特征进行语义提取,识别API状态、用途等属性,从而实现标签化的画像管理。
启发式攻击检测与防护引擎
采用特征检测、语义分析与AI学习三合一的启发式检测引擎,通过对已知的攻击规则与行为特征简化判断逻辑,并对引擎持续训练,提升针对未知风险的发现能力,从而对API相关的注入攻击、命令攻击、异常访问和非法内容进行防护处置。
基于人机识别的API访问控制
基于流量变化和行为特点等角度进行建模分析,梳理API访问的基线并进行动态跟踪,对未授权访问、未知请求、非法调用和异常高频请求等行为进行识别判断,并利用反向校验、访问限制和白名单等方式进行访问控制。
面向业务的API数据调用管控
采用全面的检查点和丰富的数据处理模型,结合业务特点,对组织敏感数据、个人隐私信息、业务关键信息和系统账户口令等进行精准识别、统计和分类梳理,并结合擦除、替换和访问限制等手段来达到脱敏保护等目的。
面向API生命周期的态势监控
基于时间、空间、业务属性和数据类型等多种维度对API资产进行监控,对API上线状态、运行状况、调用可靠性、数据合法性以及威胁态势进行综合研判,实现API资产的细粒度审计和可视化分析。
✦ 方案价值
防止未经授权的访问
通过加强API安全防护,可以确保只有授权用户才能访问API,防止未经授权的访问和数据泄露。
监控和审计API行为
建立回溯审计和监控措施,对业务、短信服务、短信网关三个环节发送的短信回执进行校验,对数量、频率、内容的异常情况进行阈值预警和阻断,防止被攻击者非法调用。
保护敏感数据
对发送内容进行审查过滤,对敏感数据的流转进行监控和过滤,避免非法信息传播,防止敏感数据的泄露。
随着教育数字化转型的加速,网络和数据安全威胁日益严峻。此次事件再次凸显了API安全防护的重要性。各单位应高度重视API安全问题,采取有效措施加强防护与管理,确保短信平台的安全性和可靠性。同时,个人也应提升安全意识,有效识别并过滤恶意信息,保护自身合法权益。让我们共同维护网络空间的安全和有序,助力教育数字化转型健康发展。
网安秘字〔2024〕152号
各有关单位:
落实《全球数据跨境流动合作倡议》,为促进粤港澳大湾区个人信息跨境安全有序流动,网安标委秘书处联合香港私隐公署编制了《网络安全标准实践指南——粤港澳大湾区(内地、香港)个人信息跨境处理保护要求》。
本《实践指南》规定了粤港澳大湾区(内地、香港)个人信息处理者或者接收方,在大湾区内地和香港间通过安全互认方式进行大湾区内个人信息跨境流动应遵守的基本原则和要求,适用于指导大湾区内个人信息处理者开展个人信息跨境处理活动。
附件:《网络安全标准实践指南——粤港澳大湾区(内地、香港)个人信息跨境处理保护要求》
全国网络安全标准化技术委员会秘书处
2024年11月21日
文章来源自:全国网安标委
", - "pubDate": "Thu, 28 Nov 2024 12:00:00 +0800", - "author": "企业资讯" - }, - { - "title": "RomCom 黑客利用 Firefox 和 Windows 零日漏洞", - "link": "https://www.4hou.com/posts/9jG8", - "description": "总部位于俄罗斯的 RomCom 网络犯罪组织在最近针对欧洲和北美 Firefox 和 Tor 浏览器用户的攻击中发现了两个零日漏洞。
第一个漏洞 (CVE-2024-9680) 是 Firefox 动画时间线功能中的释放后使用错误,该功能允许在 Web 浏览器的沙箱中执行代码。 Mozilla 于 2024 年 10 月 9 日(ESET 报告该漏洞一天后)修补了该漏洞。
利用的第二个零日漏洞是 Windows 任务计划程序服务中的权限升级漏洞 (CVE-2024-49039),该漏洞允许攻击者在 Firefox 沙箱之外执行代码。 Microsoft 在本月初(即 11 月 12 日)修复了此安全漏洞。
RomCom 将这两个漏洞作为零日链漏洞利用,帮助他们无需用户交互即可获得远程代码执行。他们的目标只需访问一个由攻击者控制的恶意制作的网站,该网站会在其系统上下载并执行 RomCom 后门。
根据攻击中使用的 JavaScript 漏洞之一的名称 (main-tor.js),威胁者还针对 Tor 浏览器用户(根据 ESET 的分析,版本 12 和 13)。
RomCom 攻击流程
ESET 研究员表示:“妥协链由一个虚假网站组成,该网站将潜在受害者重定向到托管漏洞的服务器,如果漏洞成功,就会执行 shellcode,下载并执行 RomCom 后门。”
虽然不知道假网站的链接是如何分发的,但是,如果使用易受攻击的浏览器访问该页面,则有效负载会被丢弃并在受害者的计算机上执行,无需用户交互。
一旦部署在受害者的设备上,该恶意软件使攻击者能够运行命令并部署额外的有效负载。将两个零日漏洞链接在一起,就会为 RomCom 提供了无需用户交互的漏洞。这种复杂程度也表明了威胁者获取或开发隐秘能力的决心和手段。
此外,这些攻击中成功利用攻击的次数最终导致 RomCom 后门部署在受害者的设备上,这使得人们有理由相信这是一次广泛的活动。根据 ESET 遥测数据,潜在目标的数量从每个国家一名受害者到多达 250 名受害者不等。
这并不是 RomCom 第一次利用零日漏洞进行攻击。 2023 年 7 月,其运营商利用多个 Windows 和 Office 产品中的零日漏洞 (CVE-2023-36884) 攻击参加立陶宛维尔纽斯北约峰会的组织。
RomCom(也被追踪为 Storm-0978、Tropical Scorpius 或 UNC2596)与出于经济动机的活动、精心策划的勒索软件和勒索攻击以及凭证盗窃(可能旨在支持情报行动)有关。该威胁组织还与 Industrial Spy 勒索软件行动有关,该组织后来转向地下勒索软件。
据 ESET 称,RomCom 现在还针对乌克兰、欧洲和北美的组织进行跨行业的间谍攻击,包括政府、国防、能源、制药和保险。
", - "pubDate": "Thu, 28 Nov 2024 12:00:00 +0800", - "author": "胡金鱼" - }, - { - "title": "盛邦安全2024“乌镇时间”,权小文入选人工智能专委会推进计划牵头人", - "link": "https://www.4hou.com/posts/VWlB", - "description": "以“拥抱以人为本、智能向善的数字未来——携手构建网络空间命运共同体”为主题的2024年世界互联网大会乌镇峰会于11月19日至22日在浙江乌镇举行。盛邦安全受邀参与本次峰会,董事长权小文入选人工智能专委会推进计划牵头人,并参与“2024年世界互联网大会乌镇峰会智能交通论坛”专题对话环节,与业界专家学者共同探讨智联网环境下网络安全前沿技术与发展趋势。
图片来源于世界互联网大会官方
2024年世界互联网大会乌镇峰会,谋划了一系列新议题、新亮点,世界互联网大会人工智能专业委员会正式在会上成立。盛邦安全积极响应,董事长权小文入选专委会推进计划牵头人名单。作为大会国际组织成立后设立的第一个专业化、常态化分支机构,专委会将搭建人工智能国际交流合作平台,开展专题研讨、成果分享、倡议发布等活动,推动人工智能技术以人为本、向上向善。
权小文表示,人工智能在提高社会生产效率、突破技术难题、新应用方面有巨大作用,对于人工智能建议提前做好约束和规范,通过制度约束,加强人工智能技术应用的监管,加强国际合作,倡导技术向善的价值观。
图片来源于世界互联网大会官方
以“智联未来,交通无界—共创智能交通新生态”为主题的智能交通论坛将于11月22日上午召开。盛邦安全董事长权小文受邀参加“智能网联汽车与交通基础设施的协同”专题对话,聚焦智慧交通,分享如何利用卫星互联网推动智能交通安全防护系统的全面升级。
今年,世界互联网大会乌镇峰会迈入第11个年头,正式开启“下一个十年”的新篇章。这十年间网络安全作为护航国家数字经济发展的核心力量,与行业生态紧密协同、持续发展。盛邦安全作为世界互联网大会的会员单位,将继续充分发挥其在网络安全领域的积淀与优势,为构建网络空间命运共同体贡献中国智慧和力量,携手各界共绘“下一个十年”的辉煌未来。
联发科(MediaTek)是全球领先的Android平板电脑和智能手机芯片供应商,同时也是全球第二大智能手机芯片制造商,拥有超过15亿活跃的Android设备。该公司以其集成的先进5G、人工智能、成像、连接和游戏技术而闻名,致力于提供高性能解决方案,以增强全球范围内各种设备的用户体验。
各位 Buffer 周末好,以下是本周「FreeBuf周报」,我们总结推荐了本周的热点资讯、安全事件、一周好文和省心工具,保证大家不错过本周的每一个重点!
最近在俄罗斯联邦安全局(FSB)查获的手机上发现了一种新的Android间谍软件,这突显了用户隐私和安全持续面临的风险,特别是当设备被当局没收然后归还时。
下面都是使用goron的混淆进行符号执行以及模拟执行处理的结果
还原前
还原后
据Cyber Security News消息,臭名昭著的勒索软件组织 Brain Cipher 近日声称入侵了世界四大会计师事务所之一德勤,并从中窃取了1TB的压缩数据。
据BleepingComputer消息,一种名为“DroidBot”的新型安卓系统银行恶意软件试图窃取77 家加密货币交易所和银行应用程序的凭证,涉及英国、意大利、法国、西班牙、葡萄牙等多个国家。
据发现恶意软件的 Cleafy 研究人员称,DroidBot 自 2024 年 6 月以来一直活跃,并作为恶意软件即服务 (MaaS) 平台运行,每月的使用价格为3000美元。
", + "category": "资讯", + "pubDate": "Fri, 06 Dec 2024 13:47:34 +0800" + }, + { + "title": "漏洞挖掘与复现", + "link": "https://www.freebuf.com/articles/web/414845.html", + "description": "漏洞复现与挖掘", + "body": "大家好,我是一个在IT行业十余年的小菜鸟,今天与大家聊一聊漏洞的挖掘与复现。
例如我对CVE-2023-3519漏洞进行了分析,该漏洞是Citrix ADC 和 Citrix Gateway 中存在未经身份验证的远程代码执行漏洞。
由于不同版本会导", + "category": "Web安全", + "pubDate": "Fri, 06 Dec 2024 12:03:12 +0800" + }, + { + "title": "freebuf快速同步语雀文章", + "link": "https://www.freebuf.com/sectool/417015.html", + "description": "把时间花在重要的事情上,减少浪费时间在重复动作上", + "body": "
日常笔记使用语雀记录文章,想要快速同步内容至freebuf,寻找已有工具无果,遂写了个工具方便快速同步文章。
# coding=gbk\nimport re\nimport requests\nfrom urllib.parse import urlparse, parse_qs\nimport os\nimport ",
+ "category": "工具",
+ "pubDate": "Fri, 06 Dec 2024 11:03:02 +0800"
+ },
+ {
+ "title": "I-O Data路由器0Day漏洞被利用,无修复补丁",
+ "link": "https://www.freebuf.com/news/417010.html",
+ "description": "日本CERT发布公告称,黑客正在利用I-O Data路由器设备中的零日漏洞来修改设备设置、执行命令,甚至关闭防火墙。",
+ "body": "日本计算机紧急响应小组(CERT)警告称 ,黑客正在利用I-O Data路由器设备中的零日漏洞来修改设备设置、执行命令,甚至关闭防火墙。
I-O Data在其网站上发布的安全公告中承认确实存在三个零日漏洞,但目前暂无完整的修复补丁,预计将在2024年12月18日发布,因此在此之前用户将面临比较严重的风险。全球动态
1. 上海全面开展个人信息保护,对“刷脸支付”等过度索取个人信息行为说“不”
12月4日,上海市网信办在“亮剑浦江·2024”消费领域个人信息权益保护专项执法行动总结交流会议上发布成效评估报告并透露,今年全市范围3704家公共停车场全面落实停车缴费“纯净码”,24家重点咖啡企业开展自查整改。 【Stoli集团在美国的子公司因8月份遭受的勒索软件攻击,以及俄罗斯当局没收其在俄剩余酿酒厂而不得不申请破产保护。
Stoli美国公司及其子公司肯塔基猫头鹰公司的总裁兼全球首席执行",
+ "category": "资讯",
+ "pubDate": "Thu, 05 Dec 2024 13:56:42 +0800"
+ },
{
"title": "谷歌浏览器类型混淆漏洞让攻击者能够执行远程代码",
"link": "https://www.freebuf.com/news/416908.html",
@@ -7,6 +95,14 @@
"category": "资讯",
"pubDate": "Thu, 05 Dec 2024 11:29:27 +0800"
},
+ {
+ "title": "利用断开的域管理员RDP会话提权",
+ "link": "https://www.freebuf.com/vuls/416904.html",
+ "description": "当域内管理员登录过攻击者可控的域内普通机器运维或者排查结束后,退出3389时没有退出账号而是直接关掉了远程桌面,那么会产生哪些风险呢?",
+ "body": "
前言
当域内管理员登录过攻击者可控的域内普通机器运维或者排查结束后,退出3389时没有退出账号而是直接关掉了远程桌面,那么会产生哪些风险呢?有些读者第一个想到的肯定就是抓密码,但是如果抓不到明文密码又或者无法pth呢?
通过计划任务完成域内提权
首先模拟域管登录了攻击者可控的普通域内机器并且关掉了3389远程",
+ "category": "漏洞",
+ "pubDate": "Thu, 05 Dec 2024 11:10:43 +0800"
+ },
{
"title": "警惕这类黑产,近百万老年机被远程控制,每月莫名扣费……",
"link": "https://www.freebuf.com/news/416899.html",
@@ -15,6 +111,38 @@
"category": "资讯",
"pubDate": "Thu, 05 Dec 2024 10:46:34 +0800"
},
+ {
+ "title": "安全研究年终总结-分享2024年RCE类的CVE漏洞高危EXP集合!",
+ "link": "https://www.freebuf.com/articles/web/416887.html",
+ "description": "网络安全漏洞不断变化且威胁日益严重,及时了解和修复这些漏洞至关重要。本文介绍的多个CVE漏洞,涉及常见的企业级软件和硬件,黑客可以利用这些漏洞远程控制系统、窃取敏感数据甚至完全破坏服务。",
+ "body": "
缘起
网络安全漏洞不断变化且威胁日益严重,及时了解和修复这些漏洞至关重要。本文介绍的多个CVE漏洞,涉及常见的企业级软件和硬件,黑客可以利用这些漏洞远程控制系统、窃取敏感数据甚至完全破坏服务。
对于企业和开发者来说,了解这些漏洞不仅能帮助保护自己的系统,还能减少数据泄露、经济损失和品牌信誉的风险。因此,深入研究",
+ "category": "Web安全",
+ "pubDate": "Thu, 05 Dec 2024 09:42:13 +0800"
+ },
+ {
+ "title": "信息安全管 | 企业端点与主机安全",
+ "link": "https://www.freebuf.com/articles/endpoint/400836.html",
+ "description": "本文主要探讨企业在管理和强化端点与主机安全方面所面临的挑战,并介绍一些最佳实践和策略,帮助企业构建一个坚固的安全防线。",
+ "body": "
前言:
随着网络威胁的日益复杂化和攻击手段的不断进化,企业端点与主机安全的重要性愈发凸显。端点安全不仅涉及保护企业内部员工的工作站、笔记本电脑、移动设备等,还包括确保服务器、虚拟化环境以及企业数据中心的安全。这些端点作为企业网络的入口和出口,若管理不善,将可能成为网络攻击者的温床和突破口。本文主要探讨企业在管理和强化端点与主机安全方面所面临的挑战,并介绍一",
+ "category": "终端安全",
+ "pubDate": "Thu, 05 Dec 2024 08:46:32 +0800"
+ },
+ {
+ "title": "企业从0到1如何配置 | 工控操作系统标准基线",
+ "link": "https://www.freebuf.com/articles/ics-articles/402959.html",
+ "description": "合理的安全配置基线可以有效降低工控系统受到恶意攻击的风险,提升系统的稳定性和可靠性。",
+ "body": "
前言
开局先废话;前几天领导说要我把企业所有基线标准梳理一下然后我马上就把活甩给小弟做了;同时紧急把我的文件库存拿出来看了一下;顺便分享一下给兄弟们;在制造业随着自动化工控系统的普及和发展,Windows操作系统在工控领域的应用也越来越广泛。然而,由于工控系统的特殊性,对Windows操作系统的安全配置提出了更高的要求。为",
+ "category": "工控安全",
+ "pubDate": "Thu, 05 Dec 2024 08:43:15 +0800"
+ },
+ {
+ "title": "钓鱼网页散播银狐木马,远控后门威胁终端安全",
+ "link": "https://www.freebuf.com/news/416880.html",
+ "description": "在当今网络环境下,许多人都有通过搜索引擎下载应用程序的习惯,虽然这种方式简单又迅速,但这也可能被不法分子所利用,通过设置钓鱼网站来欺骗用户。这些钓鱼网站可能会通过各种方式吸引用户点击,从而进行病毒的传",
+ "body": "
在当今网络环境下,许多人都有通过搜索引擎下载应用程序的习惯,虽然这种方式简单又迅速,但这也可能被不法分子所利用,通过设置钓鱼网站来欺骗用户。这些钓鱼网站可能会通过各种方式吸引用户点击,从而进行病毒的传播,危害个人或企业的信息安全。
我们期望本篇文章有助于帮助您提高网络安全防范意识,",
+ "category": "资讯",
+ "pubDate": "Wed, 04 Dec 2024 21:28:45 +0800"
+ },
{
"title": "FreeBuf早报 | 今年黑客已窃取 14.9 亿美元加密货币;Cloudflare开发人员域正被滥用",
"link": "https://www.freebuf.com/news/416863.html",
@@ -24,139 +152,11 @@
"pubDate": "Wed, 04 Dec 2024 17:35:23 +0800"
},
{
- "title": "立即修复,微软驱动程序关键漏洞已被APT组织利用",
- "link": "https://www.freebuf.com/news/416830.html",
- "description": "2024年8月,微软发布安全更新已经修复该漏洞,强烈建议组织及时进行修复。",
- "body": "
近日,微软被曝Windows AFD.sys漏洞(编号:CVE-2024-38193)正在被黑客组织利用。该漏洞被归类为自带易受攻击驱动程序(BYOVD)漏洞,可影响Windows套接字的注册I/O(RIO)扩展,并允许攻击者远程接管整个系统。
漏洞影响版本包括Windows 11(ARM64、x64,多个版本)、Windows 10(ARM64、x64、32位,多个版本)、Wi",
- "category": "资讯",
- "pubDate": "Wed, 04 Dec 2024 14:37:40 +0800"
- },
- {
- "title": "思科安全设备ASA十年老漏洞正在被利用",
- "link": "https://www.freebuf.com/news/416826.html",
- "description": "该漏洞最初于2014年披露,它允许未经身份验证的远程攻击者对WebVPN用户执行XSS攻击。",
- "body": "
近期,思科系统公司(Cisco Systems)更新了关于CVE-2014-2120的安全公告,警告客户该漏洞已在野外被利用。CVE-2014-2120是一个影响思科自适应安全设备(ASA)软件的WebVPN登录页面的跨站脚本(XSS)漏洞。该漏洞最初于2014年披露,它允许未经身份验证的远程攻击者对WebVPN用户执行XSS攻击。
据Cyber Security News消息,一名现任苹果员工于美国当地时间12月1日向加利福尼亚州法院提起诉讼,指控苹果侵入性的监控行为干预了员工的个人生活。
全球动态
1. 工信部通报27款侵害用户权益行为的APP及SDK
近期,工信部组织第三方检测机构进行抽查,共发现27款App及SDK存在侵害用户权益行为,主要集中在信息窗口关不掉、乱跳转,违规收集个人信息以及过度索取权限等问题。工信部要求相关App开发者限期整改,对于整改落实不到位的,将采取企业约谈、App下架、行政处罚",
- "category": "资讯",
- "pubDate": "Tue, 03 Dec 2024 16:41:40 +0800"
- },
- {
- "title": "知名开源监控系统Zabbix存在SQL 注入漏洞",
- "link": "https://www.freebuf.com/news/416735.html",
- "description": "攻击者可以通过操控特定的API调用,注入恶意SQL代码,从而获得未授权的访问和控制权限。",
- "body": "
Zabbix 存在 SQL 注入漏洞(CVE-2024-42327),该漏洞是由于在 Zabbix前端的CUser类中的addRelatedObjects函数未对输入数据进行充分验证和转义,导致具有API访问权限的恶意用户可以通过user.get API传递特制输入触发SQL注入攻击,进而利用该漏洞实现权限提升或访问敏感数据。
开发者经常无意中在网上暴露AWS访问密钥,这已不是秘密,这些密钥在组织有机会撤销它们之前,就被攻击者抓取并滥用。Clutch Security的研究人员进行了一项测试,以查看这种情况发生的速度有多快。据BleepingComputer消息,韩国Best of the Best (BoB) 培训计划的网络安全学生利用 LogoFAIL 漏洞创建了新型恶意软件Bootkitty,能够攻击Linux系统设备。
固件安全公司Binarly 于2023 年 11 月发现了 LogoFAIL,并警告其可能被用于实际攻击。而安全公司ESET表示,Bootkitty 是第一个专门针对 Lin",
- "category": "资讯",
- "pubDate": "Tue, 03 Dec 2024 11:12:26 +0800"
- },
- {
- "title": "FreeBuf 赠书第109期 | API攻防:Web API安全指南",
- "link": "https://www.freebuf.com/articles/416686.html",
- "description": "这本书就体系化地讲解了Web API 的漏洞挖掘方法和防御策略,能够帮助组织构建起API安全体系。",
- "body": "
知名网络安全公司HackerOne发布的《2023年黑客力量安全报告》透露,已有30名优秀的白帽子各自获得了超100万美元的奖励,而其中最厉害的白帽奖励超过了400万美元。
HackerOne是全球领先的漏洞赏金平台,自2012年成立以来,HackerOne已向白帽子和漏洞研究人员发放了超过3亿美元的奖励。
白帽遵循一套道德准则和职业操守,在获得组织的明确授权后,通过",
- "category": "活动",
- "pubDate": "Mon, 02 Dec 2024 18:54:59 +0800"
- },
- {
- "title": "浅谈一次edusrc | 文件上传成功getshell",
- "link": "https://www.freebuf.com/vuls/416682.html",
- "description": "这篇文章偏基础的src漏洞挖掘,并且讲的内容还是偏向edusrc方面的。",
- "body": "
0x1 前言
这里记录一下我在微信小程序挖人社局等一些人力资源和社会保障部信息中心漏洞,人社这类漏洞相对于web应用端的漏洞来讲要好挖很多,里面的WAF过滤等一些验证也少。比如你在开始学习src漏洞挖掘,就可以从微信小程序下手。
一般像这类漏洞可以在微信小程序检索就业、人社、贷款等关键字
JNDI高版本注入可以说是java安全大集合了。涉及了许多框架漏洞的组合使用,当分析完JNDI高版本时,我认为也算是正式入门JAVA安全了
全球动态
1. 国家安全部:警惕开源信息成为泄密源头
大数据时代,信息在网络空间发布、传播渠道愈发丰富多样。值得警惕的是,一些敏感信息在未经脱密处理、未经风险隐患评估的情况下,通过互联网公开传播,成为境外间谍情报机关获取开源情报的重要来源,对我国家安全构成威胁。 【上周(11月28日),丹麦发生了一起大规模手机故障事件。丹麦电信运营商 TDC Net 遭遇大规模电信服务中断,导致所有用户无法使用移动电话、短信和网络接入服务,持续时间长达至少一天。
这次中断事件严重扰乱了成千上万人的通信,并引发了人们对基本电信服务可靠性的严重担忧。受影响的群体包括紧急救援人员、医院和通勤上班一族,这表明了现代社会依赖无缝连接的程度。印度电信监管机构推出了旨在保护国家关键基础设施网络免受网络威胁的规则,但专家表示,这些新指南对用户的基本隐私权保护不足。
上周由印度电信部(DoT)发布的这些规定,要求电信实体在六小时内报告网络安全事件,与网络安全当局共享用户流量数据,并采用包括风险管理方法、培训、网络测试和风险评估的网络安全政策。
这些措施是在2023年通过的具有里程碑意义的《电信法》下推出的,对行",
- "category": "资讯",
- "pubDate": "Mon, 02 Dec 2024 13:52:30 +0800"
- },
- {
- "title": "新型钓鱼工具包能让“菜鸟”轻松发动攻击",
- "link": "https://www.freebuf.com/news/416616.html",
- "description": "一种恶意电子邮件活动正利用名为 Rockstar 2FA 的网络钓鱼即服务(PhaaS)工具包窃取 Microsoft 365 用户帐户凭证。",
- "body": "
据The Hacker News消息,研究人员近日发出警告,称一种恶意电子邮件活动正利用名为 Rockstar 2FA 的网络钓鱼即服务(PhaaS)工具包窃取 Microsoft 365 用户帐户凭证。
一种新型的网络钓鱼攻击利用了微软Word文件恢复功能,通过发送损坏的Word文档作为电子邮件附件,使它们能够因为损坏状态而绕过安全软件,但仍然可以被应用程序恢复。
威胁行为者不断寻找新的方法来绕过电子邮件安全软件,将他们的网络钓鱼邮件送达到目标收件箱。由恶意软件狩猎公司Any.Run发现的一个新的网络钓鱼活动,使用故意损坏的Word文档作为电子邮件附件,这些邮件伪装成来自工资单和",
- "category": "资讯",
- "pubDate": "Mon, 02 Dec 2024 10:26:53 +0800"
- },
- {
- "title": "一周网安优质PDF资源推荐丨FreeBuf知识大陆",
- "link": "https://www.freebuf.com/news/416552.html",
- "description": "各位读者周末好,我们精选了本周知识大陆公开发布的10条优质资源,让我们一起看看吧。",
- "body": "
各位读者周末好,以下是本周「FreeBuf知识大陆一周优质资源推荐」,我们精选了本周知识大陆公开发布的10条优质资源,让我们一起看看吧。
全球动态
1. 英国医疗保健提供者遭网络攻击,服务大受影响
一场重大的网络攻击扰乱了威勒尔大学教学医院(WUTH)的运营,该医院隶属于NHS基金会信托,导致预约和程序推迟。【外刊-各位 Buffer 周末好,以下是本周「FreeBuf周报」,我们总结推荐了本周的热点资讯、安全事件、一周好文和省心工具,保证大家不错过本周的每一个重点!
![后端展示](./imgs/run.jpg)
### 下一步计划
+- 探查异常中断原因
- 添加更多RSS订阅源
-- 将所有打印信息转为logging info并存档
-- 存档所有推送文章方便以后查看
\ No newline at end of file
+- 将所有打印信息转为logging info并存档(已完成)
+- 存档所有推送文章方便以后查看
+- 添加更多推送方式,如邮件、微信等
\ No newline at end of file
diff --git a/SendBot.py b/SendBot.py
index 1799f08..f29a817 100644
--- a/SendBot.py
+++ b/SendBot.py
@@ -71,14 +71,13 @@ def SendToFeishu(body, header, webhook_url, timestamp, sign):
response_data = json.loads(response.content)
# 检查 msg 字段
if response_data.get('msg') == 'success':
- print("飞书发送成功")
+ return f"飞书发送 {header} 成功"
elif response_data.get('msg') == 'sign match fail or timestamp is not within one hour from current time':
- print("发送失败: 签名验证错误,请检查签名密钥是否正确!")
+ return f"{header} 发送失败: 签名验证错误,请检查签名密钥是否正确!"
else:
- print("发送失败: 其他错误,请检查请求参数是否正确!")
- print(f"原因:{response_data.get('msg')}")
+ return f"{header} 发送失败: 其他错误,请检查请求参数是否正确!\n原因:{response_data.get('msg')}"
except json.JSONDecodeError as e:
- print(f"JSON 解析错误: {e}")
+ return f"{header} JSON解析错误: {e}"
# print(sign)
# print(response.content)
diff --git a/__pycache__/GotoSend_4hou.cpython-312.pyc b/__pycache__/GotoSend_4hou.cpython-312.pyc
index 0bbbe7d131270d2c53e60c02e06985415423342f..e2ee8985eda1155fa54a4392b3cc79a566b3fb4f 100644
GIT binary patch
delta 114
zcmeyZ^;e7cG%qg~0}wE73rf%1$orLv(RDI2vn?a%W=CcRW;Su4RPm9?6ZzyeFJ(uGn*(-s`$v{iF|UKm$G%R
zFluhruDWn_%sd{OWoBV)$q4Z^{UJo!M`56p~=jJFxM
JCku+^005k69k&1g
diff --git a/__pycache__/GotoSend_anquanke.cpython-312.pyc b/__pycache__/GotoSend_anquanke.cpython-312.pyc
index a1de8e59606632af315b830915ff911458307859..f31caf8349d0cd55cce5ae75a84bf82ef9434829 100644
GIT binary patch
delta 99
zcmeyM`AL)aG%qg~0}$|S3rf%5$Q!`S$hkR=Ih=`20w`GAGP#joVe@U)5*9|~%>i6>
z%#043&-1QfWDMS1!@rY}F>14!;9Ew<)u=zG?2@9j*<^Zlb
zW=6Zs=XuvKG6rt0;or%~7_r$*@GT=_;${`$5JsMSpq3BJjEs!88Mr66iR1tP)@>P%
diff --git a/__pycache__/GotoSend_doonsec.cpython-312.pyc b/__pycache__/GotoSend_doonsec.cpython-312.pyc
index bd228d365c688f6d54a0881d74740367d93935f4..d14bc49dedd8b0f55d189a924db3ea344896dde3 100644
GIT binary patch
delta 117
zcmaE^{ZgCvG%qg~0}x1T3rfGXk=K%$k#n;tJMy0`aYZe6`Ja0xKCA6E{l;{bXd!-Yg^%%g9#NZW$jJDa
Mje(J8a6ew7Hbg~b#!sg{{6Id8EH(PMW
zGPAjYg!_TQ@|$<@buh9;fcVxxzS`zIft8Gm@tY-teljv
diff --git a/__pycache__/GotoSend_freebuf.cpython-312.pyc b/__pycache__/GotoSend_freebuf.cpython-312.pyc
index 7d7af010163bc0bdb02291a7ac2d7c392351b3d2..db2f63b7712ee11dad1c445d730113db3773e7e4 100644
GIT binary patch
delta 99
zcmbQNJyo0cG%qg~0}v=}3rb(Ok=L4;k#n;rvnw;B_~w4Ltt^b%n_anMnc3WdN{ag@
z`!UOJKF-&{$QZRbKwu^#W8&slg7+91vo@a;4r1gh1S&wXR^9z4gd>I
B8UFwP
delta 97
zcmbQLJz1OgG%qg~0}!-J1g5ub@Z5W;R!#lH&f!
ze$4WlkMngfGDd6;5SYox7{B?I;5|mhjLj#7gBW@8fr>sbGcq#XX5gNzDVhTSyE++q
diff --git a/__pycache__/GotoSend_qianxin.cpython-312.pyc b/__pycache__/GotoSend_qianxin.cpython-312.pyc
index 003516b2e304339884835a9fe51561fa54ad8944..6dd28eb49beed55cd4ed9545d33be210c782972c 100644
GIT binary patch
delta 108
zcmbQKIa`zWG%qg~0}$wJ3rbhs$ZN^W$hp~_*@lTt94J^^J=up@Ve?8>8x}^T&CfUs
zm>KOhhx4vsWD5kzS_5U(HtX}xWMqukd{W>$BV*F$gF*?6e1$;S56p~=jGx&U78x}@|&CfUs
zm>F$0hx4vsWb+5fS_5U(HtX}xWMmB6d{W>$BV)qmgF*?6Jo!M`56p~=jJFxMC+myk
F002^>8hro&
diff --git a/__pycache__/GotoSend_xianzhi.cpython-312.pyc b/__pycache__/GotoSend_xianzhi.cpython-312.pyc
index 4719a989539e096b101ae29e753cf4d51163d466..2a9f9ab3bb2d778af26c4658f050b0e59a5fe11c 100644
GIT binary patch
delta 114
zcmeyR@kfLAG%qg~0}xnk3rc^rk@qwcqwD0GOb%?EK(S)S$qH-=o9&rzGck&8mS*#1
zVbt23$>q$<=(2e&?;1w7aF8Nvu%deY5Jtwh%~u4jF*2raUM&>P$X5uI{lLt~$oQF!
Lfsto2pGXb>7Xuy#
delta 112
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
O9Jzu2QJJwb>;D3IJY_Th
delta 11518
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
rHNPP
zC93j=Bj;h%i3@wGiyy(8awrNY3MdLF3MdLF3MdLF3MdLF3MdLF3MdNvbOjntoVrw6
zs=ni)@7fvn13Ns+{>jZe@G_3pqo+l+jpmvrGis{2cFT;8j4g4{9n7cj&8t4U`t+sZ
zVs&q6W=`7Wv9-d~+0PSsvt+NLl5^2E?cL^=5!nx-s!!2orb6S
z>#*LYy4&Xe+>iEp+MKS;@C?IM>Dl~OC;p+jXut5c3pdZd{9yls&woC1?(gS5JNxL&
z?wL!c1E>CZO8>L&lYc#VrHF-r%AqLmKcaxo_c8nEtjc$}<*G{mF?qbn&-bAkht=im
zV61e-4Z4GNc^QN!(p+*CPmYqYb?kp9E)4Lyt6cI0mzc+^uW)D+k0!Wyf?tS`XM=4X
zPp6xzsOakIDyJO}ytJd8DQ|UlRCGGso(h|_La)&oj2bu7>UG&X-A;$y=3sPitxT&c
z(-@IfOKEhJQHyY72=|9^WX1Pu_AdZ=Is;kLZgbJ-p$_4}1V6U9pPEN_DZwSiP@~uF
zL9hTkGRenQgmjckz9YeL@%0lfF(5u46X#wQ#-=}xO{=5yaPvbp#QquBE@jwodJ6CL
zqFM&*&|{EZ}4b;VT`8Z
z7y9{G(v$;%GTT=~cm((^}EJ&-lDhX+!ZT1GI&EY|HR>lF&+gK$cw(4ehoBghc~NcmUB-nPXa{3Qd@3Q%?cm@n
z_HT0WBpwcv=_DRZ7Dit6esUwF(NhLv4!MEt$_QQxStSP|x4VE7)8f>wd`}!r34<|Y
zaoTAIEd?#=V(#k8zi}g+n8Kkja&&eevK7Vyqr!5Six11uPJHi3UyvX2lhAhsVOQ$g
z7<;FK@nq?96U|6Lu4!|*udok+`=b_#yP09=4kWBU#{*lCK)8QPoQ?n~2?g-*G9;F?
zq?rNP5^!)++LLBWLoI9w5~t^cXtXfG!$_v@-J@+TcRry`Lm8@bls(0Im4J^{cl
zEZ2~joB)FWP5Earyb}W_AdjPXaZOURrlAQz+C!+8X|zUDVKmiN+STr2XsgX}Kc7Ue
z&5zDcSPy7bEJvrSyVK*8Tn^G@4E>&NZD(9xIv6^8SQz#X=`PoVtQ#;}S}sclAL;=&|?nF17cB|xDI5+_%Lbd`q`%xJ>G{CCLD&wJ%RF_vl;1)z)eN62#
zQ5sXe_g-cnzzWW0Rv-&3PELt$Qv3)@(h`t%so}G3
zmX}%>+%d(=L}?9_Hn(`0*v^c+QgA>(fRp2mS$XTB$m4|-GM*qqBj7(|dxwjM;9c;6
zx6aGEk2luDxfO6*-2X;k-{Qzq;(vmlj>zkj=iw4CLqL48#H9j-tiY(%9tjK+(t=X~
zd~QqdThJZHbAanJ?jTyo!*m6m$5=Xwi>l8x)l$|0sAU<{TTU1AEz;dQNUw=L+#AHJF$iidG0nwa$x+Is
z_he%edeeAy2}eNSuxzv-wp`{QwsE|-5Je5uhZg&zxRsPHKPEZ=SFXA^u!$3Ecrzuu
z*pr&Q=qP^vnxEb#p@isz^qS4k%|b&cr&1v(M$P-`0z@UCROk1tzhJ)svDBGLDlR@HvA1MsoovmB
zy2(Kcf>`+bEnyj|<^s4Sq`jQKd}Ns)A1Dl~stxM2RO=6G
zkjw-RAUWN$^!%^B_%9XwDTktfqJW}+qJW}+qJW}+qJW}+qJW}+qJW}+qQL))0_W95
M#V4}ATTnmxH=$yw3;+NC
literal 12288
zcmeI2Yg60U8OIITBxE<2ZnvFmrcHB_op!=x0n4(vXnTnl*o19DSa7#Z=}fByk!WHp
zkmXR`VG(ZOP6!0dl90dxO|a?0a?kSwj&M3mN-88
zo&WPZ|L16is?Tol5{K#pv7VI>?f8}>Bg1hOA&0|p30_CwwR>d1hqrc5;9WoePsb%k
z?)~mlFe>wO(sAZp_+=lq0=5FS0=5FS0=5FS0=5FS0=5FS0=5FS0{^`N6`9A*Ub&KS
zTVlWPbHPSGJj?zz$TfzzK+VC^BgK`aUSBElc|X2UiVlpu9AN9Y58<2HVSmQ)v**ue
zv|cghWJQUufvI=jGxyE1dlg-N8|@r?Eh;Pbm0l~YL=}}~H@%g&(a%e7BkwPKx5~=l
z%Qs8QeIM?PmUzj}Az$gQEZ6RYV2=Hlf_H6Hm3473khf&UQ&!Y9MmvmA}p*$(<*u@I2>dwfp$HKcaUYvEya
zbC5jhRW>KorG%PzswAV@)C>-1hZ{~f!r8`m$jBm|>_)fic@g36A$9q=wi#0rD>(eV
zd=*9=H%2LmK6R@PM>cWiV(Li}rcSkWZ*PnvZ-tNcAksCDr)S}AYGNWax~whslH~+`
zIH&cr;>hw{Nooi(d3jAuO}T8KF~kP$ak(`@eO`kQl=Ar6Jlg4^3kri=O-SUWW+C9`
z1Dwn0a_3O494Cz^ilIG>y8z*67jB!w(dXgs%Rd9QGX~prK@0@ZkI;2NxX%U68{^J-
zb$G6vld3`u4T31)p`MRJFs#z+(~=Qwst2zp$x;M=HG_Nm)8Z?n4(D?-w2o-uE0TW-
ze7CAUfT)m>O=W%HZ!KXh7ROKHN_-qXn`)*WtpE$0lEHcMY#qONsjRK*>?s6h`hYw1eXcgDZxM_xV
zS>TcU6M+Aq`aHm=5`&<(DJLr7KH(AB=qJmQfPnN_5MEz~suvXw&J-knTV6g2j*Y3@R#Zt&Ss^`)lVV&}AvyV@6At;Jk)^4jP8?fDzvKh8LQ@ba38;@LEjooeht#=l
z9Pd{*;;FG!w7t<;{CR1PF|oVINf&KzbRpb7h}T*n{;9|c8J*b)fsx}%;)VJwyuHz*
z#dfc+eyu%!i7JKqVxb;g6NOL%QfFgiGHix1y#=}tPj?SPz3OH(H9V%pVi155
zq2?YZYRL%*nzy2iO!Pt+@z|W{D(1@4!FM|k6WEO?Cqox79;@Hw%7uVW8~EDdDp}|u
z-}Gym_0)89KUYgLxENTF8hNPpjHtb%pb~i%*J7P!J*6d&%gG1ogx&Jp4+fo7?<#wp
z{@XI0<*2VN(tZBvJaCbr>C|uw=^TQjRua?TeAeb;`ah0LlJSxBSmnBT;CWWVyCAzjt_#%{084A#B=G@b`QxN3iF?}c<92m+(Yl*5jRC9;
zcdjV$cD)mn`H;CQ0|iam;Kq(DBlOp}rl
zl(LrKML7>-I%gOaP=Er+8>kh9dajnuyT;bDVu(X{a1&AuHj$)n79yC6w5wawN@51~
za(Ma=cw!Ov#G#p}ktliAkrtfCxtsn6w!5Ak1M^tZ?R_~HAkD3~_Z}~@=sxT-I^tkn
zx|JHc%05&X3Q7nTurKlY2Xz0Bx2In8rN-vdW24{1M!62|7IT2@tl3#NAK_#xDu!wb
zN<8ZaqvcpXCj#V-wl`U}3hj99ZU+Nh&D2Z{{Sm4sJ;wYuG3xGSsRjM{KjX~b9q?lx
vwgR>SwgR>SwgR>SwgR>SwgR>SwgR>SwgR>S|1S!h$~ba9bNBxiGOqp$@xhd*
diff --git a/db/doonsec.db b/db/doonsec.db
index 4cc1452e5e0589b074e5fcc25a5050e0b3890edb..0f7e7d3dc031a3a0426edc13fa4ebf953fdf6faf 100644
GIT binary patch
delta 23221
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