Part 2. AD FS

1. 정보 μˆ˜μ§‘ β†’ BR3, BR4 발견

2. ADFSdump.exe

  1. λΉŒλ“œν•˜κΈ° (Visual Studio 2019, C#) β†’ Attacker PCμ—μ„œ μˆ˜ν–‰

  2. λΉŒλ“œλœ ADFSDump.exe λ₯Ό AD FS둜 이동

  3. SAML μœ„μ‘°(μ„œλͺ…)이 κ°€λŠ₯ν•œμ§€ 확인

    = tks.bin, dkm.bin νšλ“ κ°€λŠ₯ν•œμ§€ 확인

    • tks.bin, dkm.bin

  4. SAML μœ„μ‘°μ— ν•„μš”ν•œ 정보 νšλ“

    • -s

    • --endpoint, μΈμ¦ν”„λ‘œν† μ½œ

    • --nameidformat

    • --rpidentifier

      • ADFSdumpλ‘œλŠ” μ•Œ 수 μ—†μœΌλ‚˜, AWS μ‚¬μš©ν•œλ‹€λŠ” 것을 ν† λŒ€λ‘œ κ΅¬κΈ€λ§ν•˜μ—¬ νšλ“ κ°€λŠ₯

    • Assertion - RoleSessionName

    • Assertion - Role

3. ADFSpoof.py

chevron-right--assertions νŒŒλΌλ―Έν„° valueλ₯Ό μ°ΎλŠ” κ³Όμ •hashtag

정상 인증을 μ‹œλ„ν•œ SAMLκ³Ό ADFSpoof.py의 결과물둜 λ‚˜μ˜€λŠ” SAML을 diffν•˜μ—¬ λ‹€λ₯Έ μ˜μ—­μ€ ADFSpoofμ—μ„œ μžλ™μœΌλ‘œ μƒμ„±ν•΄μ£Όλ‚˜, <AttributeStatement> μ•„λž˜ <Attribute> μ˜μ—­λ§Œ μˆ˜λ™μœΌλ‘œ μž…λ ₯ν•΄μ£Όλ©΄ λœλ‹€λŠ” 것을 확인할 수 μžˆλ‹€.

λ‹€λ₯Έ νŒŒλΌλ―Έν„°λ„ 이런 μ‹μœΌλ‘œ λΉ„κ΅ν•˜λ©° 찾을 수 μžˆλ‹€.

chevron-right--assertions νŒŒλΌλ―Έν„° role μž‘μ„± μ‹œ μœ μ˜μ‚¬ν•­hashtag

처음 ꡬ성할 λ•Œ Role은 μ •κ·œμ‹(RegExReplace)으둜 λ§€ν•‘λ˜λ„λ‘ ν•˜μ˜€μœΌλ‚˜, 이 경우 ADFSdump둜 μ–»μ–΄μ§€λŠ” μ •λ³΄μ—μ„œ μ™„μ „ν•œ Role Name을 얻을 수 μ—†μ–΄ μ‹œλ‚˜λ¦¬μ˜€ 상 정적 κ°’μœΌλ‘œ μ„€μ •λœ κ²ƒμœΌλ‘œ λ³€κ²½ν–ˆλ‹€.

μ •κ·œμ‹ κ·ΈλŒ€λ‘œ arn:aws:iam::985539769344:role/ADFS- 의 ν˜•νƒœλ‘œ μž…λ ₯ν•  μ‹œ μ œλŒ€λ‘œ 둜그인 λΆˆκ°€

[κ°€μ„€] 이런 μ‹μœΌλ‘œ Role이 μ •κ·œμ‹μœΌλ‘œ λ˜μ–΄μžˆλŠ” 경우 κ³΅κ²©μžλŠ” μ™„μ „ν•œ Role Name을 λ‹€λ₯Έ 정보 μˆ˜μ§‘ μ‹œ μ–»μ§€ λͺ»ν•˜λ©΄ Golden SAML 곡격은 νž˜λ“€λ‹€.

β†’ 이게 참이라면, μ˜μ™Έμ˜ μ˜μ—­μ—μ„œ 곡격이 λ§‰νž μˆ˜λ„ μžˆλ‹€λŠ” 점이 μ‹œμ‚¬μ μ΄λ‹€.

β€» ADFSpoof.py λŒ€μ‹  cyberarkμ‚¬μ—μ„œ μ œμž‘ν•œ shimitarrow-up-right νˆ΄λ„ ν™œμš©ν•  수 μžˆλ‹€.

4. GoldenSAML 전달 β†’ AWS μ§„μž…

β€» λ³Έ μ‹œλ‚˜λ¦¬μ˜€μ—μ„œλŠ” νŽΈμ˜μƒ Burpsuiteλ₯Ό ν™œμš©ν•˜μ˜€μ§€λ§Œ, Header-Bodyλ₯Ό μž„μ˜λ‘œ μž‘μ„±ν•˜μ—¬ 전달할 수 μžˆλŠ” 툴(curl λ“±)이라면 λͺ¨λ‘ ν™œμš©ν•  수 μžˆλ‹€.

5. 이후

[AWS] Web Server Ubuntu Instance Compromise

κ³΅κ²©μžλŠ” AWS에 AWS-Dev/aws.admin@pbl-waffle.swu 의 κΆŒν•œμœΌλ‘œ μ ‘κ·Όν•˜μ—¬ νšŒμ‚¬μ˜ 핡심적인 μ›Ή μ‹œμŠ€ν…œμ˜ μ†ŒμŠ€μ½”λ“œλ₯Ό μœ μΆœν•˜κΈ° μœ„ν•œ κ³„νšμ„ μ„Έμš°κΈ°λ‘œ ν•œλ‹€.

Last updated