azuread_decrypt_msol

이 μ΅μŠ€ν”Œλ‘œμž‡μ€ Azure AD Connect λ™κΈ°ν™”μ—μ„œ μ‚¬μš©ν•˜λŠ” MSOL μ„œλΉ„μŠ€ 계정(DCSync ν—ˆμš©)을 λ€ν”„ν•˜λŠ” μ΅μŠ€ν”Œλ‘œμž‡μž…λ‹ˆλ‹€.

이 μ΅μŠ€ν”Œλ‘œμž‡μ„ 톡해 아이디와 λΉ„λ°€λ²ˆν˜Έλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.

κ΄€λ ¨ 링크 : μ΅μŠ€ν”Œλ‘œμž‡ 상세 μ„€λͺ…arrow-up-right, μ‹€μ œ μ˜ˆμ‹œarrow-up-right

μ΅μŠ€ν”Œλ‘œμž‡μ€ 크게 μ„Έ λΆ€λΆ„μœΌλ‘œ λ‚˜λ‰©λ‹ˆλ‹€:

  • DBμ—μ„œ 정보λ₯Ό 가져와 ν‚€λ§€λ‹ˆμ €μ—μ„œ μ•”ν˜Έν™” ν‚€λ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€.

  • DBμ—μ„œ μ„€μ • 및 μ•”ν˜Έν™”λœ λΉ„λ°€λ²ˆν˜Έλ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.

  • ν‚€λ₯Ό κ°€μ Έμ™€μ„œ λΉ„λ°€λ²ˆν˜Έλ₯Ό ν•΄λ…ν•©λ‹ˆλ‹€.

ν‚€ 정보 κ°€μ Έμ˜€κΈ°

이 μ½”λ“œλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— κ°„λ‹¨ν•œ 쿼리λ₯Ό μˆ˜ν–‰ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό μ μ ˆν•œ λ³€μˆ˜μ— μ €μž₯ν•˜λŠ” κ²ƒλΏμž…λ‹ˆλ‹€:

$client = new-object System.Data.SqlClient.SqlConnection -ArgumentList "Server=127.0.0.1;Database=ADSync;Integrated Security=True"
$client.Open()
$cmd = $client.CreateCommand()
$cmd.CommandText = "SELECT keyset_id, instance_id, entropy FROM mms_server_configuration"
$reader = $cmd.ExecuteReader()
$reader.Read() | Out-Null
$key_id = $reader.GetInt32(0)
$instance_id = $reader.GetGuid(1)
$entropy = $reader.GetGuid(2)
$reader.Close()

λͺ¬ν…Œλ² λ₯΄λ°μ—μ„œ sqlcmdλ₯Ό μ‚¬μš©ν•˜μ—¬ λ™μΌν•œ 쿼리λ₯Ό μˆ˜ν–‰ν•˜μ—¬ κ²°κ³Όλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€:

ꡬ성 정보 κ°€μ Έμ˜€κΈ°

λ‹€μŒ μ„Ήμ…˜μ—μ„œλŠ” ꡬ성 정보λ₯Ό κ°€μ Έμ˜€λŠ” 두 번째 쿼리λ₯Ό μ½”λ“œν™”ν•©λ‹ˆλ‹€:

λ‹€μ‹œ λ§ν•˜μ§€λ§Œ, sqlcmd둜 λ™μΌν•œ 쿼리λ₯Ό μˆ˜ν–‰ν•  수 μžˆμ§€λ§Œ 전체 κ²°κ³Όκ°€ μΈμ‡„λ˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€:

전체 κ²°κ³Όλ₯Ό μ–»κΈ° μœ„ν•΄ -y 0이 μž‘λ™ν•˜λŠ” 것을 λ³΄μ—¬μ£ΌλŠ” 이 μŠ€νƒμ˜€λ²„ν”Œλ‘œμš° κ²Œμ‹œλ¬Όμ„arrow-up-right λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€:

μ•”ν˜Έν™”λœ λΉ„λ°€λ²ˆν˜ΈλŠ” ν•˜λ‹¨μ—, 섀정은 상단에 μžˆμŠ΅λ‹ˆλ‹€.

μ•”ν˜Έ 해독

슀크립트의 μ„Έ 번째 μ„Ήμ…˜μ€ λ³΅ν˜Έν™”ν•©λ‹ˆλ‹€. λ¨Όμ € ν‚€ λ§€λ‹ˆμ €μ—μ„œ λ³΅ν˜Έν™” 객체λ₯Ό κ°€μ Έμ˜€λŠ” 일련의 과정을 κ±°μΉ©λ‹ˆλ‹€:

이제 μ•”ν˜Έλ₯Ό ν•΄λ…ν•©λ‹ˆλ‹€:

λ‚˜λ¨Έμ§€λŠ” 좜λ ₯물의 μ„œμ‹μ„ μ§€μ •ν•˜κ³  μΈμ‡„ν•˜κΈ°λ§Œ ν•˜λ©΄ λ©λ‹ˆλ‹€:

μƒˆλ‘œμš΄ POC

차이점

λͺ‡ κ°€μ§€ μΆ”κ°€ 인쇄 문ꡬλ₯Ό μ œμ™Έν•˜κ³ λŠ” μƒˆ POC의arrow-up-right 처음 두 μ„Ήμ…˜μ€ μ™„μ „νžˆ λ™μΌν•©λ‹ˆλ‹€. μ„Έ 번째 뢀뢄은 μƒˆλ‘œμš΄ λΆ€λΆ„μž…λ‹ˆλ‹€. νŒŒμ›Œμ…Έμ—μ„œ ν‚€λ₯Ό κ°€μ Έμ™€μ„œ μ•”ν˜Έλ₯Ό ν•΄λ…ν•˜λŠ” λŒ€μ‹ , λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λͺ…령을 μ‹€ν–‰ν•  수 μžˆλ„λ‘ xp_cmdshell을 톡해 ν•΄λ‹Ή λͺ…령을 μ „λ‹¬ν•©λ‹ˆλ‹€:

μ‹€ν–‰ν•˜κΈ°

μƒˆ POC μ½”λ“œμ˜arrow-up-right 사본을 λ‹€μš΄λ‘œλ“œν•˜κ³  μ›λ³Έμ—μ„œ μˆ˜ν–‰ν•œ μž‘μ—…κ³Ό μΌμΉ˜ν•˜λ„λ‘ μ—°κ²° λ¬Έμžμ—΄μ„ μ—…λ°μ΄νŠΈν–ˆμŠ΅λ‹ˆλ‹€:

이제 μ²˜μŒμ— μ‹€ν–‰ν–ˆλ˜ κ²ƒμ²˜λŸΌ μ‹€ν–‰ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€. xp_cmdshellμ—μ„œ μ‹€νŒ¨ν•©λ‹ˆλ‹€:

이 DBμ—μ„œ xp_cmdshell이 ν™œμ„±ν™”λ˜μ–΄ μžˆμ§€ μ•ŠμœΌλ©°, 저희 계정에 이λ₯Ό ν™œμ„±ν™”ν•  수 μžˆλŠ” μΆ©λΆ„ν•œ κΆŒν•œμ΄ μ—†μŠ΅λ‹ˆλ‹€.

sqlcmdμ—μ„œ μ‹œλ„ν•΄λ„ 같은 κ²°κ³Όκ°€ λ‚˜μ˜΅λ‹ˆλ‹€:

Last updated