# kerberos

[HTB] Sauna
이번에도 Active Directory를 스터디하기 위해 Hack The Box에서 AD관련된 머신을 찾던 중 발견된 쉬움 난이도의 Windows 머신을 해결하는 과정을 기록하기로한다. Recon Port Scan 웹서비스 하나와 RPC, LDAP, Kerberos, WinRM 등의 Windows 머신에서 주로 확인되는 포트들이 확인되며 도메인은 egotistical-bank.local로 확인된다. WEB 80/tcp에 접근하면 아래와 같은 은행 메인 페이지로 확인되는 페이지가 보인다. 백앤드와 상화작용하는 페이지는 없어보이고 /about.html 경로에 임직원으로 추정되는 정보가 파악이된다. 
Kerberos 인증 실패 Kerberos 인증에서의 실패 원인으로는 다음과 같은 경우가 있다. Server_name이 등록되어 있지 않을 경우: 서버가 Kerberos 인증 시스템에 등록되어 있지 않으면, 클라이언트가 해당 서버에 대한 인증 티켓을 요청할 수 없다. 인증 티켓 발급 서버(TGS)는 요청된 서비스의 서버 이름을 확인하고, 등록되지 않은 서버인 경우 인증을 거부한다. Ticket time out: Ticket의 유효 기간이 만료된 경우 인증이 실패합니다. 즉, Ticket의 timestamp에 life_time을 더한 시간이 현재 시간보다 작을 경우 Ticket은 더 이상 유효하지 않으므로 인증이 거부 된다. Ticket이 이상한 source address로부터 보내진 경우: Ticket은 클라이언트의 주소 정보(addr)를 포함하고 있다. 클라이언트가 Ticket을 사용할 때, 클라이언트의 IP 주소가 Ticket의 주소 정보와 다른 경우
Kerberos (4)
Kerberos Request/Reply TGS Ticket 요구: 클라이언트는 Authenticaton Server에게 TGS Ticket 발급을 요청한다. > C, TGS, N1 > C : 클라이언트 > TGS : 티켓 발급 서버 > N1 : 클라이언트 요청 번호 THS Ticket 발급: 클라이언트는 자신의 신원을 증명하기 위해 KC를 사용하여 인증 티켓을 요청한다. TGS는 KC를 사용하여 TC,TGS를 생성, 발급한다. > KC [KC,TGS, TGS, lifetime, N1], TC,TGS > KC : 클라이언트 비밀키 > K<sub
Kerberos (3)
Kerberos Ticket Kerberos Ticket은 Kerberos 프로토콜에서 사용되는 구조화된 데이터이다. 서버에서 생성, 서버에서만 읽을 수 있는 구조: Kerberos Ticket은 서버에서 생성되며, 해당 서버만이 내용을 읽을 수 있는 구조로 되어있다. 이는 Ticket을 보호하고 무결성을 보장하기 위한 보안 목적이다. Kerberos는 대칭키 암호화 방식을 사용하기 때문에 서버가 Ticket을 생성할 때, 자신의 비밀키인 Ks를 사용하여 Ticket을 암호화한다. 이 비밀키는 Ticket을 생성하는 서버만이 알고 있으며, 클라이언트는 이 키를 알지 못한다. 클라이언트가 최근에 인증받았음을 입증: Kerberos Ticket에는 timestamp(클라이언트가 인증 받은 시간), lifetime(유효기간)이 포함되어있다. 이를 통해 최근에 인증 받았음을 인증하고 유효하다는 것을 증명한다. Session Key를 입증자(v

Kerberos (2)
Kerberos Authentication Protocol ※ Ticket 티켓(Ticket)은 인증과 권한 부여에 사용되는 정보의 단위이다. 티켓은 클라이언트가 자신의 신원을 증명하고, 서버로부터 서비스를 요청할 때 사용된다. ※ Kerberos KDC (Key Distribution Center) Kerberos KDC는 Kerberos 프로토콜에서 중요한 역할을 하는 구성요소이다. KDC는 클라이언트와 서버 간의 인증과 티켓 발급을 관리하는 신뢰할 수 있는 서버이다. 일반적으로 KDC는 두가지로 구성된다. Authentication Server (인증서버): 인증 서버는 클라이언트의 인증을 처리한다. 클라이언트는 자신의 신원을 증명하기 위해 인증 서버에게 사용자 이름과 비밀 키 (예: 패스워드)를 제공한다. 인증 서버는 이 정보를 사용하여 클라이언트의 신원을 확인하고, 클라이언트에 대한 인증 티켓을 발급한다. Ticket Granting
Kerberos (1)
What is Kerberos? Kerberos는 컴퓨터 네트워크에서 인증을 제공하는 네크워크 프로토콜이다. 이 프로토콜은 MIT에서 개발되었으며, 초기에는 프로젝트의 이름이었지만 현재 프로토콜의 이름으로 널리 알려져 있다. Started from MIT Project Athena Needham & Schroeder Authentication Protocol Kerberos는 주로 클라이언트와 서버 간의 안전한 인증을 가능하게 해주는데 사용된다. 이를 통해 클라이언트는 자신의 신원을 증명하고, 서버는 클라이언트가 신원을 증명했다는 것을 신뢰할 수 있게 된다. 이는 사용자가 자신의 비밀 정보 (예:패스워드)를 네트워크를 통해 전송하지 않고도 인증을 할 수 있게 해준다. Kerberos는 대칭키 암호화 방식을 사용하여 클라이언트와 서버간의 통신을 보호한다. 클라이언트는 인증 서버로부터 티켓을 받아 서비스 서버에 제공하고, 서비스 서버는 티켓을 검증하여 클라이언트의

TIL - 2023.02.24(금)
1. JSX (출처 : https://goddaehee.tistory.com/296) JSX = Javascript XML = 자바스크립트에 XML을 추가하여 확장한 문법 리액트로 프로젝트 개발할 때 사용 하나의 파일에 자바스크립트와 HTML을 동시에 작성 자바스크립트에서 HTML 작성하듯이 쓸 수 있어서 가독성 높고 직관적 반드시 하나의 부모요소가 감싸야한다(아래예시로 하면 됨) div fragment JSX에서 자바스크립트 표현식을 사용하려면 {} 로 감싸고 사용하면 된다 if문과 for 루프는 js 표현식이 아니다 -> 삼항연산자를 사용하거나, JSX 주변코드에서 if 문을 사용한다. 일반 HTML에서는 class라는 속