PAM - Pluggable Authentication Modules

Reading time: 3 minutes

tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

๊ธฐ๋ณธ ์ •๋ณด

**PAM (Pluggable Authentication Modules)**๋Š” ์ปดํ“จํ„ฐ ์„œ๋น„์Šค์— ์ ‘๊ทผํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์˜ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ, ๋‹ค์–‘ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ์ ‘๊ทผ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋””์ง€ํ„ธ ๊ฒŒ์ดํŠธํ‚คํผ์™€ ์œ ์‚ฌํ•˜์—ฌ, ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๋งŒ ํŠน์ • ์„œ๋น„์Šค์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•˜๋ฉฐ, ์‹œ์Šคํ…œ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์„ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ

  • Solaris ๋ฐ UNIX ๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ์€ ์ผ๋ฐ˜์ ์œผ๋กœ /etc/pam.conf์— ์œ„์น˜ํ•œ ์ค‘์•™ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Linux ์‹œ์Šคํ…œ์€ ๋””๋ ‰ํ† ๋ฆฌ ๋ฐฉ์‹์„ ์„ ํ˜ธํ•˜๋ฉฐ, ์„œ๋น„์Šค๋ณ„ ๊ตฌ์„ฑ์„ /etc/pam.d์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋กœ๊ทธ์ธ ์„œ๋น„์Šค์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์€ /etc/pam.d/login์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋กœ๊ทธ์ธ ์„œ๋น„์Šค์— ๋Œ€ํ•œ PAM ๊ตฌ์„ฑ์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

auth required /lib/security/pam_securetty.so auth required /lib/security/pam_nologin.so auth sufficient /lib/security/pam_ldap.so auth required /lib/security/pam_unix_auth.so try_first_pass account sufficient /lib/security/pam_ldap.so account required /lib/security/pam_unix_acct.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_ldap.so password required /lib/security/pam_pwdb.so use_first_pass session required /lib/security/pam_unix_session.so

PAM ๊ด€๋ฆฌ ์˜์—ญ

์ด ์˜์—ญ, ๋˜๋Š” ๊ด€๋ฆฌ ๊ทธ๋ฃน์€ auth, account, password, session์„ ํฌํ•จํ•˜๋ฉฐ, ๊ฐ๊ฐ ์ธ์ฆ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค์˜ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค:

  • Auth: ์‚ฌ์šฉ์ž ์‹ ์›์„ ๊ฒ€์ฆํ•˜๋ฉฐ, ์ข…์ข… ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.
  • Account: ๊ทธ๋ฃน ๋ฉค๋ฒ„์‹ญ์ด๋‚˜ ์‹œ๊ฐ„ ์ œํ•œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ํ™•์ธํ•˜์—ฌ ๊ณ„์ • ๊ฒ€์ฆ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • Password: ๋ณต์žก์„ฑ ๊ฒ€์‚ฌ ๋˜๋Š” ์‚ฌ์ „ ๊ณต๊ฒฉ ๋ฐฉ์ง€๋ฅผ ํฌํ•จํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์—…๋ฐ์ดํŠธ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • Session: ์„œ๋น„์Šค ์„ธ์…˜์˜ ์‹œ์ž‘ ๋˜๋Š” ์ข…๋ฃŒ ์‹œ ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๋””๋ ‰ํ† ๋ฆฌ ๋งˆ์šดํŠธ ๋˜๋Š” ๋ฆฌ์†Œ์Šค ์ œํ•œ ์„ค์ •๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

PAM ๋ชจ๋“ˆ ์ œ์–ด

์ œ์–ด๋Š” ๋ชจ๋“ˆ์˜ ์„ฑ๊ณต ๋˜๋Š” ์‹คํŒจ์— ๋Œ€ํ•œ ๋ฐ˜์‘์„ ๊ฒฐ์ •ํ•˜๋ฉฐ, ์ „์ฒด ์ธ์ฆ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค:

  • Required: ํ•„์ˆ˜ ๋ชจ๋“ˆ์˜ ์‹คํŒจ๋Š” ๊ฒฐ๊ตญ ์‹คํŒจ๋กœ ์ด์–ด์ง€์ง€๋งŒ, ๋ชจ๋“  ํ›„์† ๋ชจ๋“ˆ์ด ํ™•์ธ๋œ ํ›„์—๋งŒ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • Requisite: ์‹คํŒจ ์‹œ ์ฆ‰๊ฐ์ ์ธ ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ.
  • Sufficient: ์„ฑ๊ณต ์‹œ ๋™์ผ ์˜์—ญ์˜ ๋‚˜๋จธ์ง€ ๊ฒ€์‚ฌ๋ฅผ ์šฐํšŒํ•˜์ง€๋งŒ, ํ›„์† ๋ชจ๋“ˆ์ด ์‹คํŒจํ•  ๊ฒฝ์šฐ๋Š” ์ œ์™ธ๋ฉ๋‹ˆ๋‹ค.
  • Optional: ์Šคํƒ์—์„œ ์œ ์ผํ•œ ๋ชจ๋“ˆ์ธ ๊ฒฝ์šฐ์—๋งŒ ์‹คํŒจ๋ฅผ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค

์—ฌ๋Ÿฌ ์ธ์ฆ ๋ชจ๋“ˆ์ด ์žˆ๋Š” ์„ค์ •์—์„œ ํ”„๋กœ์„ธ์Šค๋Š” ์—„๊ฒฉํ•œ ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. pam_securetty ๋ชจ๋“ˆ์ด ๋กœ๊ทธ์ธ ํ„ฐ๋ฏธ๋„์ด ์Šน์ธ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฉด, ๋ฃจํŠธ ๋กœ๊ทธ์ธ์ด ์ฐจ๋‹จ๋˜์ง€๋งŒ, "required" ์ƒํƒœ๋กœ ์ธํ•ด ๋ชจ๋“  ๋ชจ๋“ˆ์ด ์—ฌ์ „ํžˆ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. pam_env๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. pam_ldap์™€ pam_unix ๋ชจ๋“ˆ์€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๋ฉฐ, pam_unix๋Š” ์ด์ „์— ์ œ๊ณต๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์—ฌ ์ธ์ฆ ๋ฐฉ๋ฒ•์˜ ํšจ์œจ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.

References

tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ