제목 : 도메인 침입 Windows 액세스 토큰 공격

域渗透之 Windows Access Token 攻击​

Windows Access Token 简介​

Windows Access Token 概念​

Microsoft의 공식 정의는 다음과 같습니다.
액세스 토큰은 프로세스 또는 스레드의 보안 컨텍스트를 설명하는 객체입니다. 토큰의 정보에는 프로세스 또는 스레드와 관련된 사용자 계정의 신원 및 권한이 포함됩니다.
Windows Access Token, 프로세스 또는 스레드 안전 컨텍스트를 설명하는 객체. 다른 사용자가 컴퓨터에 로그인하면 액세스 토큰이 생성됩니다. 이 토큰은 사용자가 프로세스 나 스레드를 생성하고 지속적으로 복사 할 때 사용됩니다. 이것은 사용자 A가 프로세스를 생성하지만 프로세스에 사용자 B의 권한이 없다고 설명합니다. 사용자가 로그 아웃 할 때 시스템은 기본 토큰을 모방 토큰으로 전환하며 토큰을 지우지 않으며 기계를 다시 시작한 후에 만 지우게됩니다.
액세스 토큰은 두 가지 유형으로 나뉩니다 (메인 토큰, 모의 토큰)

Windows Access Token 分类​

1. 기본 토큰이 토큰은 일반적으로 로컬 및 원격 RDP 로그인에 사용됩니다.
2. 가장하는 사망자 토큰은 일반적으로 Netuse, WMI, WinRM 등과 같은 다양한 비 중 활성화 로그인에 사용됩니다.

登录方式​

대화식 로그인
콘솔 로그인 (유형 2)
RDP 로그인 (유형 10)
psexec (유형 2)
네트워크 로그인
WMI (유형 3)
WinRM (3 형)

Windows Access Token 组成​

사용자 계정의 SID (Security Identifier)
사용자가 속한 그룹의 시드
로그인 SID는 현재 로그인 세션을 식별하는 데 사용되었습니다
사용자 또는 사용자 그룹이 소유 한 권한 목록
소유자 SID
메인 그룹의 시드
액세스 제어 목록
액세스 토큰의 출처
토큰은 메인 토큰 또는 모의 토큰입니다.
제한된 SID의 선택적 목록
현재 시뮬레이션 수준
기타 통계

关于 SID​

SID라고하는 보안 식별자는 각각 소유자와 GroupsID입니다. 소위 SID는 사용자 또는 그룹을 만들 때마다 시스템이 사용자 또는 그룹에 고유 한 SID를 할당한다는 것입니다. 시스템을 다시 설치하면 고유 한 SID도 얻게됩니다. SID는 고유하며 사용자가 삭제 될 때 사용하기 위해 다른 사용자에게 할당되지 않습니다. Sid는 항상 독특합니다. SIF는 컴퓨터 이름, 현재 시간 및 현재 사용자 상태 스레드에 의해 소비 된 CPU 시간의 합에 의해 결정됩니다.
예 : S-1-5-21-1763234323-321265751-1234321321-500 (Whoami/User)

Windows Access Token 产生过程​

자격 증명 (사용자 비밀번호)을 사용한 사용자 인증-로그인 세션 생성-Windows는 사용자의 SID 및 사용자의 SID를 반환합니다-LSA는 액세스 토큰 생성-자격 증명을 사용하여 성공적으로 인증-로그인 세션-프로세스, 스레드
20200511155641.png-water_print

后渗透中的令牌模拟​

cobalt strike 模拟令牌​

Steel_token을 사용하여 토큰을 시뮬레이션, rev2 스스로 토큰을 복원합니다.
20200511155846.png-water_print

metasploit 模拟令牌​

시크릿 모듈, 동일한 Rev2Self 복구 토큰
20200511160407.png-water_print

获取任意进程的令牌权限​

手动令牌模拟​

시뮬레이션 프로세스 :
OpenProcess () - OpenProcessStoken () - chistersonateLoggedonUser () - DuplicateTokenex () - CreateProcesswithTokenw ()

openprocess​

20200511161046.png-water_print

openprocesstoken​

20200511161136.png-water_print

impersonateloggedonuser​

20200511161220.png-water_print

duplicatetokenex​

20200511161255.png-water_print

createprocesswithtokenw​

20200511161349.png-water_print

Bypass Protect Process​

모든 프로세스를 운영 할 수있는 것은 아닙니다
20200511161605.png-water_print

시스템 권한 만 얻는 프로세스 :
1
get-token where-object {$ _. username-eq 'nt Authority \ System'-and $ _ownername -ne 'nt Authority \ System'} | SELECT-OBJECT ProcessName, ProcessID | 형식 테이블
그런 다음 테스트 후 CSRS, 서비스, Wininit, SMS 등과 같은 토큰이 실패한 것으로 나타났습니다.
20200511162053.png-water_print

使用 Access Token 进行 BypassUAC​

Fuzzy Security UAC 바이 패스 Windows 토큰을 사용합니다
20200511162556.png-water_print
 
뒤로
상단