ATTCK v13版本战术介绍——凭证访问(二)

news2024/10/5 15:33:54

一、引言

在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权、防御规避战术,本期我们为大家介绍ATT&CK 14项战术中凭证访问战术第7-12种子技术,后续会介绍凭证访问其他子技术,敬请关注。

二、ATT&CK v13简介

MITRE ATT&CK 是一个全球可访问的基于现实世界观察的攻防战术和技术知识库。ATT&CK知识库被用作在私营部门、政府以及网络安全产品和服务社区中开发特定威胁模型和方法的基础。

2023年 4月25日,MITRE ATT&CK 发布了最新版本 V13,最大的变化是为ATT&CK中的一些技术添加了详细的检测指导,用于企业,移动数据源和两种新类型的更改日志(包括一个人类可读的详细更改日志,更具体地显示更新的ATT&CK对象中的更改,以及一个机器可读的JSON更改日志,其格式在ATT&CK的Github中描述)。

ATT&CK for Enterprise v13 包含14个战术、196个技术、411个子技术、138个组织和740个软件。

ATT&CK战术全景图(红框为凭证访问战术)

三、凭证访问战术

3.1 概述

凭证访问包括窃取凭证(如帐户名和密码)的技术。用于获取凭证的技术包括键盘记录或凭证转储,使用合法凭证可以让攻击者访问系统,使其更难检测。

3.2 输入捕捉(T1056)

攻击者可以捕获用户输入来获取凭据或收集信息。在系统使用期间,用户经常向各种不同的位置提供凭据,例如登录页面或系统对话框。输入捕获机制可能对用户是透明的,或者依赖于欺骗用户提供他们认为是真正服务的输入。

输入捕捉包含4项子技术,介绍如下:

3.2.1 键盘记录(T1056.001)

当用户键入凭据时,攻击者可能会记录用户击键以拦截凭据。当操作系统凭证转储工作无效时,键盘记录很可能被用来获取新的访问机会的凭证,并且可能需要攻击者在系统上拦截一段时间的击键,然后才能成功捕获凭证。

键盘记录是最常见的输入捕获类型,有许多不同的方式实现如下:

1) 用于处理击键的API回调,与凭证API不同,这只关注用于处理击键数据的API函数。

2) 从硬件缓冲区读取原始击键数据。

3) Windows注册表修改。

4) 自定义驱动程序。

5) 修改系统镜像可以为攻击者提供连接到网络设备操作系统的钩子,以读取登录会话的原始击键。

3.2.2 GUI输入捕获(T1056.002)

攻击者可能会模仿常见的操作系统GUI组件,以看似合法的提示提示用户输入凭据。当执行的程序需要比当前用户上下文中更多的特权时,操作系统通常会提示用户提供适当的凭据以授权任务的提升特权。

3.2.3 门户网站捕获(T1056.003)

攻击者可能会在外部面向门户(如VPN登录页面)上安装代码,以捕获和传输尝试登录服务的用户凭据。例如,受感染的登录页面可能会在将用户登录到服务之前记录所提供的用户凭据。

3.2.4 凭证API挂钩(T1056.004)

攻击者可能会通过Windows应用程序编程接口API函数以收集用户凭据。恶意挂钩机制可能会捕获API调用,其中包含揭示用户身份验证凭据的参数。与键盘记录不同,这种技术特别关注包含显示用户凭据的参数的API函数,挂钩涉及将调用重定向到这些函数。

3.2.5 检测

ID

数据源

数据组件

检测

DS0027

驱动

驱动负载

监控异常的内核驱动程序安装活动

DS0022

文件

文件修改

监控对文件所做的更改,以获取对访问权限和属性的意外修改

DS0009

进程

OS API执行

监控对SetWindowsHook、GetKeyState和GetAsyncKeyState的API调用

进程创建

监控进行恶意活动的新执行进程

进程元数据

通过将内存中的代码与相应的静态二进制代码进行比较来验证实时进程的完整性,特别是检查跳转和其他重定向代码流的指令。

DS0024

Windows注册表

Windows注册表项修改

监控对windows注册表项所做的更改以进行意外修改

3.3 修改身份证过程(T1556)

攻击者可以修改身份验证机制和流程,以访问用户凭据或启用不必要的对账户的访问。身份验证过程通过机制处理,例如Windows上的本地安全身份验证服务器(LSASS)进程和安全帐户管理器(SAM)等。

攻击者可能会恶意篡改身份验证过程,以泄露凭据或绕过身份验证机制。泄露的凭据可用于绕过访问控制,并持续访问远程系统和外部可用服务。

修改身份验证过程技术包含8项子技术,介绍如下:

3.3.1 域控制器验证(T1556.001)

攻击者可能会修改域控制器上的身份验证过程,以绕过典型的身份验证机制访问账户。

恶意软件可用于在域控制器上的身份验证过程中注入虚假凭据,目的是创建用于访问任何用户的帐户或凭据的后门。经过身份验证的访问可以实现对单因素身份验证环境中的主机或资源的无限制访问。

3.3.2 密码过滤器DLL(T1556.002)

攻击者可能会将恶意密码过滤器动态链接库(Dll)注册到身份验证过程中,以便在验证用户凭据时获取这些凭据。

Windows密码过滤器是域和本地帐户的密码策略强制机制。过滤器作为Dll实现,其中包含根据密码策略验证潜在密码的方法。

攻击者可以注册恶意密码过滤器,以从本地计算机或整个域获取凭据。要执行正确的验证,过滤器必须从LSA接收纯文本凭据。每次发出密码请求时,恶意密码过滤器都会收到这些纯文本凭据。

3.3.3 可插入的身份验证模块(T1556.003)

攻击者可修改可插入的身份验证模块(PAM)以访问用户凭据或非法访问帐户。PAM是一个由配置文件、库和可执行文件组成的模块化系统,用于指导许多服务的身份验证。

攻击者可能会修改PAM系统的组件以创建后门。对PAM系统的恶意修改也可被利用以窃取凭据。

3.3.4 网络设备认证(T1556.004)

攻击者可以使用补丁系统镜像来硬编码操作系统中的密码,从而绕开网络设备上本地帐户的本地身份验证机制。在验证尝试时,插入的代码将首先检查用户输入的是否是密码。如果是,则授予访问权限。否则,植入的代码将传递凭据以验证潜在有效的凭据。

3.3.5 可逆加密(T1556.005)

攻击者可能会利用Active Directory身份验证加密属性以访问windows系统上的凭据。可逆密码加密属性指定是启用还是禁用帐户的可逆密码加密。默认情况下,此属性处于禁用状态。如果启用该属性,则攻击者可能会创建或更改的密码的明文。攻击者需要如下四个组件可以解密密码:

来自Activedirectory用户结构用户参数的加密密码(G$RADIUSCHAP)

也来自userParameters的16字节随机生成的值(G$RADIUSCHAPKEY)

全球LSA秘密(G$MSRADIUSCHAPKEY)

远程访问子身份验证DLL(RASSFM)中硬编码的静态密钥。

攻击者可以通过本地组策略编辑器、用户属性、细粒度密码策略(FGPP)或ActiveDirectory PowerShell模块设置此属性。

3.3.6 多因素认证(T1556.006)

攻击者可能会禁用或修改多因素身份验证(MFA)机制,以启用对帐户的持久访问。

根据攻击者的范围、目标和权限,可能会对单个帐户或与较大组关联的所有帐户(例如受害者网络环境中的所有域帐户)禁用MFA防御。

3.3.7 混合身份(T1556.007)

攻击者可能会修改与本地用户身份相关联的云身份验证过程,以绕过典型的身份验证机制、访问凭据并持久访问帐户。

许多组织维护在内部部署和基于云的环境之间共享的混合用户和设备身份。通过修改绑定到混合身份的身份验证过程,攻击者可以建立对云资源的持久特权访问。

3.3.8 网络提供程序DLL(T1556.008)

攻击者可能会注册恶意网络提供程序动态链接库Dll,以便在身份验证过程中捕获明文用户凭据。网络提供程序Dll允许Windows与特定网络协议接口,还可以支持附加凭据管理功能。攻击者的目标是在已知登录活动或管理员登录活动增加的系统(如服务器和域控制器)上植入恶意网络提供程序Dll。

3.3.9 缓解措施

ID

缓解措施

描述

M1047

审计

检查身份验证日志以确保MFA强制等机制按预期运行。

M1032 

多因素身份认证

通过多因素身份验证(MFA)降低攻击者获得有效凭据控制权的风险,限制对云资源和Api的访问。

M1028

操作系统配置

确保仅注册有效的密码过滤器。

M1027

密码策略

确保AllowReversiblePasswordEncryption属性设置为disabled,除非有应用程序要求。

M1026

特权账户管理

审计域和本地帐户,限制对根帐户的访问, 限制本地账户。

M1025

特权进程完整性

LSA的启用功能

M1022

限制文件和目录权限

限制对/library/security/securityagentplugins目录的写入访问权限。

M1024

限制注册表权限

限制注册表权限以禁止修改敏感注册表项,如HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order。

M1018

用户账户管理

确保实施适当的策略,保障用户帐户的身份验证机制的安全注册和停用。

3.3.10 检测

ID

数据源

数据组件

检测

DS0026

活动目录

活动目录对象对象

监控对与MFA登录要求相关的AD安全设置所做的更改。

DS0015

应用日志

应用日志内容

启用安全审核收集日志,例如,监控Azure AD应用程序代理连接器的登录,这些登录通常仅在添加新的通过身份验证(PTA)代理时生成。如果AD FS正在使用中,查看事件ID501的日志,该日志指定声明的所有EKU属性,并对环境中未配置的任何值发出警报。

DS0022

文件

文件创建

监控/Library/Security/SecurityAgentPlugins目录中的可疑添加。

文件修改

监控与身份验证过程相关的文件的可疑修改,例如配置文件和模块路径(例如/etc/pam)

DS0028

登录会话

登录会话创建

监控异常登录行为,包括:一个账号同时登录到多个系统;单账号多IP同时登录,异常时间或异常地点登录等行为。

DS0011

模块

模块加载

监控写入域控制器或本地计算机的新增DLL文件。

DS0009

进程

OS API执行

监控域控制器上的进程或者跟身份验证机制相关的DLL的修改。

进程访问

监控与身份验证机制交互的未知进程。

DS0002

用户账户

用户账户认证

监控未提供MFA凭据的帐户身份验证。

用户账户修改

使用无需MFA凭据即可成功登录的设备和用户帐户的注册。

DS0024

Windows注册表

Windows注册表修改

监控对密码过滤器的注册表值的修改,分析这些文件引用的DLL文件。

3.4 多重身份验证拦截(T1111)

攻击者可能会针对多因素身份验证(MFA)机制以获得对可用于访问系统、服务和网络资源的凭据的访问权限。

如果智能卡用于多因素身份验证,那么在正常使用期间将需要使用键盘记录器来获取与智能卡相关联的密码。通过插入的卡和对智能卡密码的访问,攻击者可以使用受感染的系统连接到网络资源,以使用插入的硬件令牌代理身份验证。

攻击者也可以使用键盘记录器来定位其他硬件令牌,例如RSA SecurID。捕获令牌输入可以提供临时访问,并可使攻击者能可靠地预测未来的身份验证值。

其他MFA方法可能被拦截并被攻击者用来进行身份验证。一次性代码通常通过电子邮件或短信发送。如果设备或服务不受保护,那么它可能容易受到拦截。服务提供商也可以成为目标:例如,攻击者可能会破坏SMS消息服务,以便窃取发送到用户手机的MFA代码。

3.4.1 缓解措施

ID

缓解措施

描述

M1017

用户培训

不使用时移走智能卡

3.4.2 检测

ID

数据源

数据组件

检测

DS0027

驱动

驱动负载

可以通过安装驱动程序来检测键盘活动。

DS0009

进程

OS API执行

监控与轮询相关联的API调用以拦截击键。

DS0024

Windows注册表

Windows注册表项修改

监控可能针对多因素身份验证机制的windows注册表项的更改,以访问可用于访问系统、服务和网络资源的凭据。

3.5 多因素身份验证请求生成(T1621)

攻击者可能会尝试绕过多因素身份验证(MFA)机制,并通过生成发送给用户的MFA请求来访问帐户。攻击者可能会利用自动生成推送通知到Mfa服务,让用户授予对其帐户的访问权限。

在某些情况下,攻击者可能会不断重复登录尝试,以便用MFA推送通知,SMS消息和电话呼叫轰炸用户,可能导致用户最终接受身份验证请求以响应MFA。

3.5.1 缓解措施

ID

缓解措施

描述

M1036

帐户使用策略

启用帐户限制,以防止从可疑位置或登录尝试的来源服务请求。 使用条件访问策略阻止来自不合规设备或白名单IP范围之外的登录。

M1032

多因素认证

实现更安全的2FA/MFA机制,以取代简单的推送或一键式2fa/MFA选项。

M1017

用户培训

培训用户仅接受来自他们发起的登录尝试的2fa/MFA请求,查看提示2fa/MFA请求的登录尝试的源位置,并报告可疑或未经请求的提示。

3.5.2 检测

ID

数据源

数据组件

检测

DS0015

应用日志

应用日志内容

监控应用程序日志中的可疑事件,包括可能表明用户的主要凭据已被泄露的重复MFA故障。

DS0028

登录会话

登录会话创建

监控2fa/MFA应用程序日志以查找可疑事件,例如使用有效凭据进行快速登录尝试。

登录会话元数据

监控2fa/MFA应用程序日志中的可疑事件,例如异常登录尝试源位置、登录尝试位置不匹配以及批准2fa/MFA请求提示。

DS0002

用户账户

用户账户认证

监控用户帐户日志中的可疑事件:不寻常的登录尝试源位置、登录尝试位置不匹配,以及大量重复登录尝试等。

3.6 网络嗅探(T1040)

攻击者可以嗅探网络流量以捕获有关环境的信息,包括通过网络传递的身份验证信息。网络嗅探是指使用系统上的网络接口来监控或捕获通过网络发送的信息。攻击者可能会将网络接口置于混杂模式,以便通过网络访问传输中的数据,或者使用span端口捕获更大量的数据。

通过这种技术捕获的数据可以包括用户凭证,特别是那些通过不安全的、未加密的协议发送的凭证,也可用于通过将流量重定向到攻击者来捕获到网站、代理和内部系统的凭据。

网络嗅探还可以揭示配置细节,例如运行的服务、版本号和后续横向移动或防御规避活动所必需的其他网络特征(例如IP地址、主机名、VLAN Id)。

在基于云的环境中,攻击能使用流量镜像服务来嗅探来自虚拟机的网络流量。攻击者可以使用过滤技术,例如将数据传输到云帐户,以访问嗅探的流量。在网络设备上,攻击者可以使用网络设备CLI命令(如监控器捕获)执行网络捕获。

3.6.1 缓解措施

ID

缓解措施

描述

M1041

加密敏感信息

确保所有网络流量都已适当加密,对Kerberos等身份验证协议使用最佳实践,并确保可能包含凭据的web流量受SSL/TLS保护。

M1032

多因素认证

尽可能使用多因素身份验证。

M1018

用户账户管理

在云环境中,确保不向用户授予创建或修改流量镜像的权限。

3.6.2 检测

ID

数据源

数据组件

检测

DS0017

命令

命令执行

监控执行的命令和操作参数,这些操作有助于嗅探网络流量以捕获有关环境的信息,包括通过网络传递的身份验证信息。

DS0009

进程

进程创建

监控新执行的进程。 

3.7 操作系统凭证转储(T1003)

攻击者可能会尝试转储凭据,以从操作系统和软件中获取帐户登录和凭据信息,通常以哈希或明文密码的形式存在,凭证可用于执行横向移动和访问受限信息。

操作系统凭证转储技术包含8项子技术,介绍如下:

3.7.1 LSASS内存(T1003.001)

攻击者可能会尝试访问存储在本地安全机构子系统服务LSASS的进程内存中的凭据。用户登录后,系统会在LSASS进程内存中生成并存储各种凭证。这些凭证可以由管理用户或系统获取,并使用备用认证材料进行横向移动。除了内存技术,LSASS进程内存可以从目标主机转储并在本地系统上进行分析。

3.7.2 安全账户管理(T1003.002)

攻击者可能会尝试通过内存技术或通过存储SAM数据库的Windows注册表从Security Account Manager(SAM)数据库中提取凭据。SAM是一个数据库文件,其中包含主机的本地帐户,通常是使用net user命令找到的帐户,枚举SAM数据库需要系统级访问权限。

3.7.3 NTDS(T1003.003)

攻击者可能会尝试访问或创建AD域数据库的副本,以便窃取凭据信息,以及获取有关域成员的其他信息。除了在活动域控制器上查找NTDS文件之外,攻击者还可能搜索包含相同或类似信息的备份文件。

3.7.4 LSA密码(T1003.004)

具有主机系统访问权限的攻击者可能会尝试访问本地安全机构LSA密码,其中可能包含各种不同的凭据,例如服务帐户的凭据。LSA密码存储在注册表中的HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets,LSA密码也可以从内存中转储。

3.7.5 缓存域凭证(T1003.005)

如果域控制器不可用,攻击者可能会尝试访问缓存的域凭据,该凭据用于允许在域控制器不可用时进行身份验证。在Windows Vista及更高版本上,哈希格式为DCC2(域缓存凭据版本2)哈希,也称为MS-Cache v2哈希。默认缓存凭据的数量各不相同,每个系统都可以更改。此哈希不允许pass-the-hash风格的攻击,而是需要密码破解来恢复明文密码。

3.7.6 DCSync(T1003.006)

攻击者可能会尝试通过利用Windows域控制器的应用程序编程接口API来访问凭据和其他敏感信息,使用称为DCSync的技术从远程域控制器模拟复制过程。

域控制器上的管理员、域管理员和企业管理组或计算机帐户的成员能够运行DCSync从AD域中提取密码数据,其中可能包括可能有用的帐户的当前和历史哈希。

3.7.7 Proc文件系统(T1003.007)

攻击者可能会从Proc文件系统收集凭据。Proc文件系统是一个伪文件系统,用作基于Linux的系统管理虚拟内存的内核数据结构的接口。对于每个过程,/proc//地图文件显示了如何在该过程的虚拟地址空间中映射内存,提供了对流程虚拟地址空间的访问。

当使用根特权执行时,攻击者可以在包含指示凭据的模式的系统上搜索这些内存位置, 当没有特权访问的情况下运行时,进程仍然可以查看自己的虚拟内存位置。某些服务或程序可能会在过程内存中的清晰文本中保存凭据。

3.7.8 /etc/passwd和/etc/shadow(T1003.008)

攻击者可能会尝试将 /etc /passwd和 /etc /shadow的内容丢弃以启用离线密码破解。大多数Linux操作系统都使用 /etc /passwd和 /etc /Shadow的组合来存储用户帐户信息,包括 /etc /shadow中的密码哈希。默认情况下, /etc /shadow仅由root用户读取。

3.7.9 缓解措施

ID

缓解措施

描述

M1015

活动目录配置

管理复制目录更改的访问控制列表以及与域控制器复制关联的其他权限。考虑将用户添加到AD域安全组,可以帮助限制用户明文凭据的缓存。

M1040

端点上的行为防御

在Windows10上,启用攻击面减少ASR规则以保护LSASS并防止凭据窃取。

M1043

凭证存取保护

Windows10实施了新保护措施,以保护可用于通过凭据转储形式获取凭据的LSA密码。

M1041

加密敏感信息

确保正确保护域控制器备份。

M1028

操作系统配置

考虑禁用或限制NTLM,禁用WDigest身份验证

M1027

密码策略

确保本地管理员帐户在网络上的所有系统中具有复杂、唯一的密码。

M1026

特权帐户管理

Windows:不要将用户或管理员域帐户放在跨系统的本地管理员组中,限制跨管理层的特权帐户使用。

Linux:从内存中获取密码需要root权限,限制对特权帐户的访问。

M1025

特权进程完整性

为LSA启用受保护的进程指示。

M1017

用户培训

通过培训用户和管理员不要对多个帐户使用相同的密码来限制帐户和系统之间的凭据重叠。

3.7.10 检测

ID

数据源

数据组件

检测

DS0026

活动目录

活动目录对象访问

监控域控制器日志,监控来自未与已知域控制器关联的IP的复制请求。

DS0017

命令

命令执行

监控执行的命令和参数,这些命令和参数可能试图转储凭据,以从操作系统和软件中获取帐户登录和凭据材料,通常以哈希或明文密码的形式。 查找调用AuditD或Security Accounts Manager(SAM)的命令行。 远程访问工具可能包含内置功能或合并现有工具,如Mimikatz。PowerShell脚本还存在包含凭据转储功能,例如PowerSploit的Invoke-Mimikatz模块,这可能需要在操作系统中配置额外的日志记录功能,以收集必要的信息进行分析。

DS0022

文件

文件访问

监控哈希转储器在本地文件系统(%SystemRoot%/system32/config/SAM)上打开安全帐户管理器(SAM)的行为。

DS0029

网络流量

网络流量内容

监控和分析异常流量(例如不属于已建立流的无关数据包、异常流量模式、异常语法或结构)相关的流量模式和数据包检查。考虑与进程监控和命令行的相关性,以检测异常进程执行和与流量模式相关的命令行参数。

网络流量

监控不常见数据流的网络数据,利用通常不具有网络通信或未知的网络进程是可疑的。

DS0009

进程

OS API执行

监控可能尝试转储凭据的API调用,以从操作系统和软件中获取帐户登录和凭据。

进程访问

监控与lsass交互的意外进程。常见的凭证转储器(如Mimikatz)通过打开进程、定位LSA secrets密钥并解密内存中存储凭证详细信息的部分来访问LSA子系统服务(LSASS)进程。

监控在proc文件系统中打开异常文件的进程,包括pid,进程名称和参数。

进程创建

监控可能指示凭据转储的新执行进程,监控LSASS的Windows日志。

DS0024

Windows注册表

Windows注册表项访问

监控正在访问的SAM注册表项,该项可能试图转储凭据,以从操作系统和软件中获取帐户登录和凭据。

四、总结

本期主要介绍了凭证访问战术(二)及技术/子技术原理,下期将给大家介绍凭证访问战术(三)知识。敬请关注。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/638582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

这两个小众的资源搜索工具其实很好用

01 小不点搜索是一个中国网络技术公司开发的网盘搜索引擎,该网站通过与多个主流网盘进行整合,为用户提供一种快速查找和下载文件的方式。小不点搜索因其高效性、便利性和实用性受到了广大用户的喜爱。 在技术实现上,小不点搜索拥有先进的搜…

C++项目打包成可调用dll文件python调用

目录 1.原项目如图 2.直接在项目对应地方新增dll.h,dll.cpp 3.改变工程的配置类型---动态库(.dll) 4.生成解决方案----可调用dll文件 5.查找dll依赖的其他dll 6.python调用dll 7.python调用dll打包成exe 相关dll要放一个文件夹 1.原项目如图 包括头文件uiaccess.h&#xff0…

Linux中Crontab(定时任务)命令详解及使用教程

Crontab介绍:Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ?…

【云计算】Ubuntu多种安装docker方式

文章目录 前言一、docker官网二、安装docker1、第一种方式(官方)2、使用脚本安装(阿里云):3、使用官方脚本安装:拉取镜像(solo博客部署) 前言 Docker是一款开源的容器化平台&#x…

Misc(4)

RAR 打开是个加密压缩文件,给了提示说是4位纯数字加密 暴力破解为4位数字,获得flag QR 下载下来是一个二维码 很简单,利用工具一下就解出来了 镜子里的世界 打开后是一张图片,根据题目的提示,猜想可能是镜像翻转后得到…

java springboot整合MyBatis做数据库查询操作

首先 我们还是要搞清楚 MyBatis 工作中都需要那些东西 首先是基础配置 你要连哪里的数据 连什么类型的数据库 以什么权限去连 然后 以 注解还是xml方式去映射sql 好 我们直接上代码 我们先创建一个文件夹 然后打开idea 新建一个项目 然后 按我下图的操作配置一下 然后点下一…

小米秋招笔试题(强化基础)

1、已知const arr [A, B, C, D, E, F, G],下面可以获取数组最后一项的表达式有 A arr[6] B arr.pop() C arr.shift() D arr.unshift() 答案: AB 解析: shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。…

Python自动化测试框架:Pytest和Unittest的区别

pytest和unittest是Python中常用的两种测试框架,它们都可以用来编写和执行测试用例,但两者在很多方面都有所不同。本文将从不同的角度来论述这些区别,以帮助大家更好地理解pytest和unittest。 1. 原理 pytest是基于Python的assert语句和Pyth…

leetcode 124.二叉树中的最大路径和

1.题目 二叉树中的 路径 被定义为一条节点序列,序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root &…

【Spring Cloud】Spring Cloud Alibaba-- 分布式事务Seata原理

文章目录 前言一、Seata 介绍1.1、Seata 简介1.2、Seata 的核心组件1.3、Seata 的整体执行流程 二、Seata 的 AT 模式原理2.1、AT 模式的整体执行流程2.2、AT 模式两阶段详细流程2.2.1、第一阶段的详细执行流程2.2.2、第二阶段提交的详细执行流程2.2.3、第二阶段回滚的详细执行…

独家揭秘:Kotlin K2编译器的前世今生

独家揭秘:Kotlin K2编译器的前世今生 也许您已经观看了最近的 KotlinConf 2023 主题演讲,关于 K2 编译器的更新。什么是 K2 编译器? 在搞清楚这个问题之前,我们需要了解Kotlin 使用的不同种类的编译器及其差异,以及编…

Python--数据类型

Python--数据类型 <font colorblue >一、数据的分类<font colorblue >二、数值类型<font colorblue >1、整型&#xff1a;int<font colorblue >2、浮点型&#xff1a;float<font colorblue >3、复数类型&#xff1a;complex <font colorblue …

加速应用迭代与更新:Weex与小程序容器的快速开发之道

Weex是一个跨平台的移动应用开发框架&#xff0c;由阿里巴巴旗下的阿里巴巴前端团队开发。它允许开发者使用单一的代码库来构建同时适用于iOS和Android平台的移动应用。Weex使用基于Vue.js的声明式语法来描述应用程序的界面&#xff0c;并通过JavaScript运行时引擎在移动设备上…

中国人民大学与加拿大女王大学金融硕士——人到中年还有必要在职读研吗?

人到中年&#xff0c;深刻的感受到自己能够掌控的事情越来越少&#xff0c;而焦虑越来越多。事业进入瓶颈期&#xff0c;如何开拓进阶呢&#xff0c;如何做更好的自己呢&#xff1f;看到周围有人再提升学历&#xff0c;想想自己的年龄&#xff0c;不禁感叹&#xff0c;到了中年…

牛客网最热门的1000 多Java面试题,20+ 大厂必考点及Java面试框架知识点

Java 面试 “金三银四&#xff0c;金九银十”这个字眼对于程序员应该是再熟悉不过的了&#xff0c;每年的金三银四&#xff0c;金九银十都会有很多程序员找工作、跳槽等一系列的安排。说实话&#xff0c;面试中 7 分靠能力&#xff0c;3 分靠技能&#xff1b;在刚开始的时候介…

免费Midjourney来袭

发现一个镜像站&#xff0c;和之前发的镜像站不一样&#xff0c;这个集成了midjourney和chatgpt&#xff0c;且免翻&#xff0c;相信给很多很多用户都提供了便利吧&#xff01; 先把网站贴出来&#xff0c;有兴趣的伙伴可以玩一玩 关于以图生图&#xff0c;现在网站支持本地上…

好程序员:月薪2万程序员的简历,原来长这个样子!

6月份现在正是招聘季节&#xff0c;不少同学java岗位投递不少&#xff0c;但回复不多&#xff0c;根本原因可能是java面试简历不够吸引人。 你的java简历不会写&#xff1f;看看别人就知道咋写了&#xff0c;这里给大家拆解一份好程序员月薪2万的java简历。 java自我评价模块&a…

ABB CI546 3BSE012545R1 模块

ABB CI546 3BSE012545R1 模块. ABB CI546 3BSE012545R1 模块 电子电工技术的电力系统分析 1电子电工技能特色 电子电工技能是凭仗计算机技能开展起来的&#xff0c;并朝着智能化、网络化的方向开展。随着时代的开展&#xff0c;新式技能不断涌现&#xff0c;使传统电工技能运用…

2.Apollo测试部署-linux

1.创建数据库 1) 由于开发环境,测试环境, 生产环境用的一个portal&#xff0c;所以只需要创建ApolloConfigDB数据库 2) 创建后如下图: 2.部署服务apollo-adminservice,apollo-configservice 1) 分别修改两个服务下的数据库配置文件&#xff1a;/config/application-github.prop…

【Spring】Spring框架介绍,功能模块,容器知识和有关Spring的生态圈的详细讲解

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…