제목 : 인트라넷 침투 | Windows 인증 메커니즘 분석

Windows 인증 메커니즘 분석 : 로컬, 실무 그룹, 도메인 환경.

本地认证(User Login)​

概念​

로그인으로 로그인하면 로컬로 로그인하면 운영 체제는 사용자가 입력 한 암호를 자격 증명으로 사용하여 시스템의 비밀번호로 확인합니다. 운영 체제의 비밀번호는 저장됩니다
1%SystemRoot%\ System32 \ Config \ SAM 시스템에 로그인하면 시스템이 SAM 파일의 "비밀번호"를 자동으로 읽고 입력 한 "비밀번호"와 비교합니다. 동일하면 인증이 성공했음을 증명합니다!
SAM文件은 컴퓨터本地所有用户의 자격 증명 정보를 보유하며 데이터베이스로 이해할 수 있습니다.
※注意:Windows本身不保存明文密码,只保留密码的Hash。

NTLM Hash的产生​

NTLM HASH의 전임자는 LM 해시였습니다. 보안 결함으로 인해 제거되었습니다. 너무 많이 알 필요가 없습니다. 이게 있다는 것을 아십시오.
내 비밀번호가 관리자라고 가정하면 운영 체제는 관리자를 16 진수로 변환합니다. 유니 코드 변환 후 MD4 암호화 알고리즘을 호출하여 암호화합니다. 이 암호화 결과의 16 진수 시스템은 NTLM HASH입니다.
123ADMIN -HEX (HEX EXODING)=61646D696E61646D696E -UNICODE=610064006D0069006E00610064006D0069006E00 -MD4=209C6174DA490CAEB422F3FA5A7AE64 3

本地认证流程​

123456winlogon.exe- 사용자 입력 -LSASS.EXE- (인증) 1. 사용자가 화면을 로그 아웃, 다시 시작 및 잠그면 운영 체제는 WinLogon이 로그인 인터페이스를 표시 할 수있게합니다. 즉, 입력 상자 3을 입력 한 후 LSASS 프로세스를 수신 한 후 4. NTLM HASH 및 사용자 로그인 및 로그 아웃을 관리하는 데 사용되는 Windows NT 사용자 로그인 프로그램 인 SAM 데이터베이스 Windows Logon Process (예 : WinLogon.exe)의 인증을 비교하십시오.
LSASS는 Microsoft Windows 시스템의 보안 메커니즘에 사용됩니다. 지역 보안 및 로그인 정책에 사용됩니다.

网络认证(Net NTLM)​

작업 그룹 환경과 도메인 환경의 순 NTLM 인증 프로세스는 DC (도메인 컨트롤러)의 참여 프로세스로 인해 약간 다르지만 해시 배송 공격에는 영향을 미치지 않습니다. 여기에 별도로 이야기합시다.

NTLM 协议概念​

这个协议只支持WindowsNTLM은 네트워크 인증 프로토콜입니다. 전체 이름은 다음과 같습니다. NT LAN Manager는挑战(Challenge)/响应(Response)认证机制을 기반으로 한 인증 모드입니다.
NTLM 네트워크 인증 프로토콜은以NTLM Hash作为根本凭证에 의해 인증 된 프로토콜입니다. 메시지 전송은 SMB, LDAP, HTTP 등과 같은 NTLM을 사용한 상부 계층 프로토콜에 따라 다릅니다.

工作组​

NTLM协议认证过程​

协商: 주로 두 당사자 간의 계약 버전을 확인하는 데 사용됩니다. V1과 V2에는 두 가지 버전이 있습니다. 구체적인 차이점은 암호화 방법이 다르기 때문에 일반적으로 필요하지 않다는 것입니다.
质询: 챌린지/응답 인증 메커니즘의 범위이며 인증 메커니즘의 핵심이기도합니다.
验证: 확인은 주로 질문이 완료된 후 결과를 확인합니다. 이는 인증의 마지막 단계입니다.

协商​

img

质询​

1. 클라이언트는 서버에 사용자 정보 (사용자 이름) 요청을 보냅니다.
2. 사용자 정보를 수신 한 후 서버는 로컬 계정 목록이 존재하는지 여부를 결정합니다 (존재하지 않으면 인증 실패를 반환합니다). 존재하는 경우 16 비트 랜덤 숫자 (Challenge)를 생성 한 다음 로그인 사용자 이름에 해당하는 NTLM 해시를 사용하여 챌린지 (16 비트 랜덤 문자)를 암호화하고 메모리에 존재하도록 도전 1 (Net-NTLM HASH)을 생성합니다. 동시에 클라이언트에게 도전 (16 비트 임의 문자)을 보내십시오.
3. 클라이언트가 서버에서 보낸 과제를받은 후 계정에 로그인하여 응답 (NET-NTLM HASH)을 생성 한 다음 서버에 응답을 보낼 NTLM HASH 암호화 챌린지를 사용하십시오.
这里引入了Net NTLM Hash: NTLM HASH가 암호화 한 도전 결과는 네트워크 프로토콜에서Net NTLM Hash이라고 불립니다 (해시 패스 공격을 수행하는 데 직접 사용할 수는 없지만 Brute Force Cracking을 통해 일반 텍스트 암호를 얻을 수 있습니다).
자세한 소개 : https://daiker.gitbook.io/windows-protocol/ntlm-pian/4#0x03-ntlm-hash

验证​

서버가 클라이언트가 보낸 응답 (net-ntlm Hash)을 수신 한 후 이전에 메모리에 저장된 challenge1 (net-ntlm hash)과 비교됩니다. 그것이 동일하면 인증이 통과됩니다.
이제 인증 프로세스를 살펴 보겠습니다. 훨씬 더 명확합니까?
作者倾旋

域环境​

NTLM协议认证过程​

DC (도메인 컨트롤러) 참여 작업 그룹이 있기 때문에 도메인 환경의 NTLM 인증 프로세스에 따른 프로세스는 약간 다릅니다.
作者daiker

∎ 사용자는 클라이언트 컴퓨터에 로그인합니다.
Client는协商消息을 서버로 보냅니다. 여기에는 주로 클라이언트 및 서버 요청에서 지원하는 기능 목록이 포함됩니다.
Server 서버는质询消息(Challenge)으로 응답합니다. 여기에는 서버가 지원하고 동의하는 기능 목록이 포함되어 있습니다. 그러나 가장 중요한 것은 서버에서 생성 한 과제가 포함되어 있다는 것입니다.
client 클라이언트는身份验证消息(Response)으로 문의에 응답합니다. 사용자가 단계 ③에서 도전을받은 후에는 사용자 해시 및 도전을 사용하여 암호화 작업을 수행하여 응답을 얻고 서버에 응답, 사용자 이름 및 도전을 보냅니다. 메시지의 응답 (net-ntlm 해시)이 클라이언트 사용자가 이미 계정 비밀번호를 알고 있음을 서버에 증명하기 때문에 가장 중요한 부분입니다.
Server 서버가身份验证消息(Response)을 얻은 후, 챌린지 및 사용자 해시를 사용하여 암호를 암호화하고response2을 통해 단계 ③에서 전송 된response과 비교합니다.
현재 인증 된 사용자 해시가 도메인 컨트롤에 저장된 경우, 인증 된 사용자 해시가 로컬로없고 응답 2를 계산할 수 없으므로 확인 단계 ⑤를 완료 할 수 없습니다.所以Server就会通过netlogon协议联系域控, 보안 채널을 설정 한 다음协商消息,质询消息(Challenge),身份验证消息(Response)을 모두 도메인 제어로 보내십시오 (이 프로세스를 인증 인증 프로세스를 통해 패스라고도합니다).
domain 도메인 제어는 챌린지와 인증 된 사용자의 챌린지와 해시를 사용하여 응답 2를 암호화하고이를 유형 3의 응답과 비교하여 일관된 지 여부를 결정합니다.
⑦ 인증 프로세스를 완료하십시오.

参考文章​

https://ares-x.com/2020/03/16/%E5%9F%9F%E6%B8%97%E9%80%8F%E5%AD%A6%E4%B9%A 0%EF%BC%88%E4%B8%80%EF%BC%89Windows%E8%AE%A4%E8%AF%81%E6%9C%BA%E5%88%B6/
 
뒤로
상단