Point1. cloned mockup to a dedicated server > 다른 IP가 존재할 수 있음2. PublicUser/GuestCantWrite13. Brandon / brandon.brown@sequel.htb > 메일 관련 또는, Brandon은 관리자일 수 있음
mssql 접속 시도 / 성공 → impacket-mssqlclient id:pw@server
spt_로 시작하는 테이블은 시스템 내부적으로 사용하는 프로시저 및 관리용 데이터 테이블fallback_db : 장애 발생 시 복구를 위한 테이블values : 뷰 테이블, 상태 코드, 옵션, 설정값들을 사람이 읽을 수 있는 네임으로 매핑해둔 테이블monitor : 서버 성능, 시스템 모니터링 통계 데이터 저장 테이블
유저 조회
유저 외에도 여러 정보 수집을 위해 스키마 테이블을 많이 찾아봤지만, 큰 정보를 얻진 못했다
1. 테이블 섹션 내부 확인SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES2. 유저 확인SELECT NAME FROM SYS.SERVER_PRINCIPALS3. DB 찾기SELECT NAME FROM SYS.DATABASES4. VIEW 테이블 찾기SELECT NAME FROM SYS.VIEWS5. 현재 계정의 ROLE 확인SELECT IS_SRVROLEMEMBER('sysadmin')6. DB 외부 리소스 접근 및 스크립트를 실행 등을 신뢰할 수 있는지 확인하는 DB 속성SELECT NAME FROM SYS.DATABASES WHERE is_trustworthy_on = 1
impacket -help를 사용하여 좀 더 얻을 수 있는 정보를 확인 해 보았고, trust_worthy_on 속성에서 특이점을 발견 하였다
trustworthy 속성을 통해 msdb에서 외부 리소스 접근 / 스크립트 실행을 하여 다음 스텝으로 넘어갈 수 있을거라고 생각했다
USE msdb
그러나 pdf에서 작성 되어있듯, 조회만 가능했고 별다른 행위를 할 수 없었다
pdf를 다시 살펴보았을 때, 유독 Windows Authentication을 강조하는 것 처럼 보였다
DB 인증을 Windows Authentication을 통해 진행된다고 되어있어서, Windwos - ldap/NTLM을 생각이 이어졌다
Kerberoasting Attack(/w SPN)SPN : Service Principal Name / AD에 담당 서비스를 등록하는 것sql_svc 계정이면, mssql/dc.sequel.htb:1433 (SPN 등록)https://www.xn--hy1b43d247a.com/credential-access/kerberos/kerberoasting
KerberosWindows AD 기반 환경의 기본 네트워크 인증 프로토콜티켓 기반 인증 / 패스워드는 초기 티켓 발급 시 사용됨제 3자(DC) 존재시간 기반 -> 시간 차이가 5분 이상이라면, 인증되지 않음(ClockSkew)
낮은 권한의 USER가 CA 등록 권한을 가지고 있으며, 관리자 승인 없이, 서명 인증 없이 가능하다
즉, 해당 USER는 인증서가 발급이 가능하다
CA : Certificate Authority : 신분증 발급소DC : Domain Controller : 최종 관문 / 계정 권한 관리, Kerberos 인증, LDAP 디렉토리
패스워드 인증 방식1) Ryan ---(ryan/mosquito)---> DC2) DC ---(TGT)---> Ryan인증서 인증 방식(AD CS)1) Ryan ---(ryan/mosquito)---> CA2) CA ---(ryan.pfx)---> Ryan3) Ryan ---(ryan.pfx)---> DC4) DC ---(TGT)---> Ryan