이 ν¬μŠ€νŒ…μ€ 쿠팑 νŒŒνŠΈλ„ˆμŠ€ ν™œλ™μ˜ μΌν™˜μœΌλ‘œ, 이에 λ”°λ₯Έ μΌμ •μ•‘μ˜ 수수료λ₯Ό μ œκ³΅λ°›μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ°˜μ‘ν˜•

좜처 :
superuser.egloos.com


μœ λ‹‰μŠ€ ν•΄ν‚Ήμ˜ κΈ°λ³Έ SetUID

SetUIDλŠ” μœ λ‹‰μŠ€ ν•΄ν‚Ήν•˜λŠ” 데 κ°€μž₯ μ€‘μš”ν•œ μš”μ†Œμž…λ‹ˆλ‹€.

거의 λͺ¨λ“  μœ λ‹‰μŠ€ 해킹은 SetUIDλ₯Ό μ΄μš©ν•œλ‹€κ³  λ§ν•΄λ„ 과언이 아닐정도 μž…λ‹ˆλ‹€.

λ¨Όμ € SetUIDλž€?

μœ λ‹‰μŠ€ 파일 μ‹œμŠ€ν…œμ—μ„œλŠ” 각각의 νŒŒμΌλ§ˆλ‹€ κΆŒν•œμ΄ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

rwxrwxrwx μ΄λŸ°μ‹μœΌλ‘œ r = μ½κΈ°κΆŒν•œ w = μ“°κΈ°κΆŒν•œ x = μ‹€ν–‰κΆŒν•œμž…λ‹ˆλ‹€.

μ•žμ—μ„œ 3개 λ‹¨μœ„λ‘œ 파일의 μ†Œμœ μž, μ†Œμœ μžκ°€ μ†ν•œ κ·Έλ£Ή, μ•„λ¬΄λ‚˜ μ΄λ ‡κ²Œ κΆŒν•œμ„ μ„€μ •ν•©λ‹ˆλ‹€

예λ₯Ό λ“€λ©΄ rwxr-x--x 이런 κΆŒν•œμ˜ 파일이 μžˆλ‹€λ©΄ 파일의 μ†Œμœ μžλŠ” 읽기 μ“°κΈ° μ‹€ν–‰μ˜ κΆŒν•œμ΄ 있고

μ†Œμœ μžκ°€ μ†ν•œ 그룹의 μœ μ €λŠ” 읽기 μ‹€ν–‰κΆŒν•œ, μ•„λ¬΄λ‚˜λŠ” μ‹€ν–‰μ˜ κΆŒν•œλ§Œ 있게 λ©λ‹ˆλ‹€.

각각을 λΉ„νŠΈλ‘œ ν‘œν˜„ν•˜λ©΄ r = 4 w = 2 x = 1둜 각 숫자λ₯Ό λ”ν•˜μ—¬ ν‘œν˜„ν•©λ‹ˆλ‹€.

μœ„μ˜ 예λ₯Ό λΉ„νŠΈλ‘œ ν‘œν˜„ν•˜λ©΄ 751 이 λ˜λŠ” κ²λ‹ˆλ‹€.

SetUIDλŠ” 쑰금 νŠΉμ΄ν•œ κΆŒν•œμΈλ°μš” rwsr-x--x μ΄λŸ°μ‹μœΌλ‘œ ν‘œν˜„ν•˜λ©°, λΉ„νŠΈλ‘œ 4000 으둜 ν‘œν˜„ν•©λ‹ˆλ‹€.

즉 rwsr-x--x λŠ” 4751 이 λ˜κ² μ§€μš”.

그럼 SetUIDλŠ” μ™œ μžˆλŠ” κ²ƒμΌκΉŒμš”?

μœ λ‹‰μŠ€ 계열을 OSλ₯Ό μ‚¬μš©ν•˜λ‹€λ³΄λ©΄ 일반 μœ μ € 계정이라도 자기 μžμ‹ μ˜ νŒ¨μŠ€μ›Œλ“œλŠ”

μžκΈ°μžμ‹ μ΄ λ°”κΏ€μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. μžμ‹ μ˜ κ³„μ •μ˜ μ•”ν˜Έλ₯Ό λ°”κΏ€μˆ˜ μ—†λ‹€λ©΄ 말이 μ•ˆλ˜μ£ 

그럼 μœ λ‹‰μŠ€μ˜ μ•”ν˜Έλ₯Ό μ €μž₯ν•΄ λ†“λŠ” 파일인 shadow파일의 κΆŒν•œμ„ ν•œλ²ˆ λ³΄κ² μŠ΅λ‹ˆλ‹€.

κ΄€λ¦¬μž 계정인 root도 읽기 κΆŒν•œ 밖에 μ—†μŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ νŒ¨μŠ€μ›Œλ“œκ°€ μ €μž₯λ˜μ–΄ μžˆλŠ” νŒŒμΌμ„ μ•„λ¬΄λ‚˜ μ½μ„μˆ˜ μžˆλ‹€λ©΄ λ‹Ήμ—°νžˆ 말이 μ•ˆλ˜κ² μ§€μš”

κ·ΈλŸ¬λ‚˜ 일반 μœ μ €λ„ μ € νŒŒμΌμ„ 읽고 μ“Έμˆ˜ μžˆμ–΄μ•Ό νŒ¨μŠ€μ›Œλ“œλ₯Ό λ³€κ²½ν•  수 있겠죠?

κ·Έλž˜μ„œ λ‚˜μ˜¨κ²ƒμ΄ SetUIDμž…λ‹ˆλ‹€.

μ•”ν˜Έλ₯Ό λ°”κΎΈλŠ” λͺ…령어인 passwd 파일의 κΆŒν•œμ„ ν•œλ²ˆ λ³΄κ² μŠ΅λ‹ˆλ‹€.

SetUIDκ°€ 섀정이 λœκ²ƒμ΄ λ³΄μž…λ‹ˆλ‹€.

SetUIDκ°€ μ„€μ •λœ νŒŒμΌμ€ μ‹€ν–‰ λ˜λŠ” λ™μ•ˆμ— 잠깐 κ΄€λ¦¬μž κΆŒν•œμ„ 빌렀였고,

μž‘μ—…μ„ λ§ˆμΉœν›„μ—” λ‹€μ‹œ κΆŒν•œμ„ 돌렀주게 λ˜λŠ”κ²ƒμž…λ‹ˆλ‹€.

κ·Έλž˜μ„œ 일반 μœ μ €λΌλ„ μžμ‹ μ˜ νŒ¨μŠ€μ›Œλ“œλŠ” λ³€κ²½ ν•  수 μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€.

μœ λ‹‰μŠ€μ—μ„œλŠ” 관리 λͺ©μ μƒ μ΄λŸ¬ν•œ SetUIDκ°€ μ„€μ •λœ νŒŒμΌλ“€μ΄ 많이 μžˆμŠ΅λ‹ˆλ‹€. ν•œ 50μ—¬κ°œλ‘œ μ•Œκ³  μžˆλŠ”λ°μš”

μ—¬νŠΌ 이 SetUIDλ₯Ό μ΄μš©ν•œ μœ λ‹‰μŠ€ 해킹을 ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

λ§Œμ•½ μ‰˜μ— SetUIDκ°€ κ±Έλ €μžˆλ‹€λ©΄ μ–΄λ–»κ²Œ λ κΉŒμš”?

μ‰˜μ΄ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ λͺ¨λ“  μž‘μ—…μ„ ν• μˆ˜ μžˆκ²Œλ©λ‹ˆλ‹€.

일반 계정 suer100의 ν™ˆλ””λ ‰ν† λ¦¬μ— kshλ₯Ό λ³΅μ‚¬ν•˜κ³ 

chmodλ₯Ό μ΄μš©ν•˜μ—¬ ksh에 SetUIDλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.

user100κ³„μ •μ˜ ν™ˆλ””λ ‰ν† λ¦¬μ— μžˆλŠ” μ½˜μ‰˜μ— SetUIDκ°€ 걸린것을 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

그럼 이제 user100으둜 λ‘œκ·ΈμΈμ„ ν•˜μ—¬ ksh을 μ‹€ν–‰ ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

ν”„λ‘¬ν”„νŠΈκ°€ $인걸둜 보아 일반 계정인걸 μ•Œμˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

id λ₯Ό μ²˜λ³΄λ‹ˆ 일반 계정인것을 ν™•μ‹€νžˆ μ•Œμˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

이제 ksh을 μ‹€ν–‰ ν•©λ‹ˆλ‹€.

μ‹€ν–‰ν•˜λŠ” λ™μ‹œμ— ν”„λ‘¬ν”„νŠΈκ°€# 으둜 λ°”λ€Œκ³ , idλ₯Ό μ²˜λ³΄λ‹ˆ euid=0 (root) 라고 μƒκΉλ‹ˆλ‹€.

이것은 root κΆŒν•œμ„ 잠깐 λΉŒλ €μ˜¨κ²ƒμ„ λœ»ν•©λ‹ˆλ‹€.

즉 μ½˜μ‰˜μ΄ λλ‚˜κΈ° μ „κΉŒμ§„ 루트 κΆŒν•œμœΌλ‘œ μž‘μ—…μ„ ν•  수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.

shadowνŒŒμΌλ„ 읽을 수 μžˆλŠ”κ±Έ 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

그럼 이런 μ‰˜νŒŒμΌμ— SetUIDλ₯Ό μ–΄λ–»κ²Œ κ±°λŠλƒκ°€ ν•΄ν‚Ήμ˜ 관건이 λ˜κ² μ§€μš”?

μ•„μ£Ό κ°„λ‹¨ν•˜κ²Œ μ‰˜ 슀크립트λ₯Ό μ§œμ„œ (저정도 μ‰˜ 슀크립트느 4-5쀄 μ•ˆμœΌλ‘œ λλ‚©λ‹ˆλ‹€.)

메일에 μ²¨λΆ€ν•΄μ„œ κ΄€λ¦¬μžμ—κ²Œ λ³΄λ‚΄κ²Œ 되면, κ΄€λ¦¬μžκ°€ κ·Έ 메일을 μ½λŠ” λ™μ‹œμ—

μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰ λ˜κ²Œλ” ν•˜λ©΄ 일은 κ°„λ‹¨ν•©λ‹ˆλ‹€.

κ·Έλ¦¬ν•˜μ•Ό κ΄€λ¦¬μžλ“€μ€ 이런 SetUIDκ°€ κ±Έλ¦° νŒŒμΌλ“€μ˜ 관리가 μ€‘μš”ν•©λ‹ˆλ‹€.

이런 νŒŒμΌλ“€μ€ λͺ©λ‘ν™” ν•˜μ—¬ MD5λΌλŠ” 해쉬 μ•Œκ³ λ¦¬μ¦˜μ„ μ΄μš©ν•΄ 관리 ν•˜λŠ” 것이 ν•„μš”ν•©λ‹ˆλ‹€.

자칫 잘λͺ»ν•˜λ©΄ κΆŒν•œμ΄ μ—†λŠ” μ‚¬μš©μžκ°€ μ‹œμŠ€ν…œμ„ λ§κ°€νŠΈλ¦¬λŠ” κ²½μš°κ°€ 생길 μˆ˜λ„ μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€.

by alpha | 2006/03/28 22:43 | μ •λ³΄λ³΄μ•ˆ | νŠΈλž™λ°± | 덧글(2)
λ°˜μ‘ν˜•

+ Recent posts