рд░рд╛рдЗрдЯ рдЗрди рдж рд╢реИрдбреЛрдЬрд╝

рдпрд╣ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛рдиреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ CTFZone рдпреЛрдЧреНрдпрддрд╛ рдЪрд░рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдерд╛, рдЬреЛ рдирд╡рдВрдмрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдпрд╣рд╛рдВ рдпреЛрдЧреНрдпрддрд╛ рддреИрдпрд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ ред

рдЖрдк рджреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ: decrypt_flag.py рдФрд░ ntfs_volume.rawред рдЖрдЗрдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╡рд╣ key.bin рдирд╛рдо рдХреА рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░, рдПрдХ рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╡рд╣ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рддреНрдпреЗрдХ рдСрдлрд╕реЗрдЯ рд╕реЗ рдПрдХ 34-рдмрд╛рдЗрдЯ рдмрд╛рдЗрдирд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм PBKDF2 рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд▓реМрдЯреА рд╣реБрдИ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рд┐рд▓рди рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП XOR рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЗрд╕рдХрд╛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рдПрдордбреА 5 рд╣реИрд╢ рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдк рдореЗрдВ рдкреВрд░реНрд╡ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдореВрд▓реНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдзреНрд╡рдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ key.bin рдлрд╝рд╛рдЗрд▓ рдвреВрдВрдврдиреА рд╣реЛрдЧреАред рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ (ntfs_volume.raw) рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдСрдлрд╝рд╕реЗрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреБрдВрдЬреА рдЦреЛрдЬрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╣реБрдд рдзреАрдореА рд╣реЛрдЧреАред рдпрд╣ рдирд┐рдпрдореЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖рд┐рджреНрдз рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ CTF рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд╣рд▓реЗ рд╕рдордп рдирд╣реАрдВ рд╣реИред

рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХрд▓-рд╡рд┐рднрд╛рдЬрди MBR рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рдЗрд╕рдХреА рднрд░рдкрд╛рдИ 2048 512-рдмрд╛рдЗрдЯ рд╕реЗрдХреНрдЯрд░реНрд╕ рдореЗрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ NTFS рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди key.bin рдлрд╛рдЗрд▓ рдЗрд╕рдореЗрдВ рдирд╣реАрдВ рд╣реИ:

$ fls -o 2048 -r -p ntfs_volume.raw | grep -F key.bin | wc тАУl
0

NTFS рдиреЗ UTF-16LE рдПрдиреНрдХреЛрдбреЗрдб рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рд╣реИрдВред рдЖрдЗрдпреЗ рдЗрд╕рдореЗрдВ рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ!


рдлрд╝рд╛рдЗрд▓ рд░рд┐рдХреЙрд░реНрдб рдХреЗ

рд▓рд┐рдП рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдлрд╝рд╛рдЗрд▓ рд░рд┐рдХреЙрд░реНрдб рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ FILE рд╣рд╕реНрддрд╛рдХреНрд╖рд░ [1] рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдХреЗрд╡рд▓ рдРрд╕реА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╣реИ:


рдорд┐рд▓рд╛ рд░рд┐рдХреЙрд░реНрдб

рд▓рдХреНрд╖реНрдп рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд░реАрдм рд╣реИ! рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд░рд┐рдХреЙрд░реНрдб рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред NTFS рдореЗрдВ, рдЙрдиреНрд╣реЗрдВ $ DATA рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╡рд╛рд╕реА рдпрд╛ рдЕрдирд┐рд╡рд╛рд╕реА [2] рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдкрд╛рдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ, рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдСрдлрд╕реЗрдЯ 0 ├Ч 3AADD00 рдкрд░ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЕрдирд┐рд╡рд╛рд╕реА рдбреЗрдЯрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ (рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рдлрд╝рд╛рдЗрд▓ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдмрд╛рд╣рд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ)ред

рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдбреЗрдЯрд╛ рдХрд╣рд╛рдВ рд╣реИ? рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рддрдерд╛рдХрдерд┐рдд рдореИрдкрд┐рдВрдЧ рдЬреЛрдбрд╝реЗ, рдпрд╛ рдбреЗрдЯрд╛ рд░рди (рдЬреЛрдбрд╝реЗ "рдмреНрд▓реЙрдХ рд▓рдВрдмрд╛рдИ - рдмреНрд▓реЙрдХ рдСрдлрд╕реЗрдЯ") [3] рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЗ рдбреЗрдЯрд╛ рд░рди рдирд┐рдореНрди рд╣реИрдВ (рдСрдлрд╕реЗрдЯ 0 ├Ч 3AADD40 рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ): 22 53 01 A0 4E 21 05 31 C1 11 38 30 00. рдпрд╛, рдпрджрд┐ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░реНрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

1.	22 53 01 A0 4E
2.	21 05 31 C1
3.	11 38 30 00

рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддреАрди рдЯреБрдХрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛ рдЖрдХрд╛рд░ 339 рдХреНрд▓рд╕реНрдЯрд░ рд╣реИ, рдФрд░ рдпрд╣ рдХреНрд▓рд╕реНрдЯрд░ # 20128 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред PBKDF2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрдирд┐рдкреЗрдЯ рдмрдбрд╝рд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реЗрдбрд░ рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ 4096 рдмрд╛рдЗрдЯреНрд╕ рд╣реИ:

$ fsstat -o 2048 ntfs_volume.raw | grep 'Cluster Size'
Cluster Size: 4096

рдЖрдЗрдП рдЗрд╕ рдСрдлрд╕реЗрдЯ (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ) рдХреЗ рдбреЗрдЯрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
2048 * 512 + 20128 * 4096 = 83492864ред рд╣рдо рдпрд╣рд╛рдВ рд╕реЗ рдХрд┐рд╕реА рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬрд╛рдирдХрд╛рд░реА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 128 рдмрд╛рдЗрдЯреНрд╕) рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВрдЧреЗ, рдЗрд╕реЗ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбрд╛рд▓реЗрдВ, рдЬрд┐рд╕реЗ рд╣рдо key.bin рдХрд╣реЗрдВрдЧреЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ ... рдХреБрдЫ рднреА рд╕рдлрд▓ рдирд╣реАрдВ рд╣реБрдЖред

рд╢рд╛рдпрдж рдлрд╝рд╛рдЗрд▓ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХреА рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ (рдкрд┐рдЫрд▓реЗ рд╕реНрд╡рд░реВрдкрдг) - рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рд╣рдордиреЗ рдЙрд╕реА рдирд╛рдо рдХреЗ рд╕рд╛рде рд╣рдЯрд╛рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рджреЗрдЦрд╛ рдерд╛ред рдкрд╣рд▓реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЖрдХрд╛рд░ рдХреНрдпрд╛ рдерд╛? рдЖрдЗрдП NTFS рд╣рд╕реНрддрд╛рдХреНрд╖рд░ [4] рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реЗрдбрд░ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред рд╢рд╛рдпрдж рд╣рдо рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рд╣реИрдВ рдФрд░ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рд╕реНрд╡рд░реВрдкрдг рд╕реЗ рд╣реЗрдбрд░ рдкрд╛рддреЗ рд╣реИрдВред


рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реЗрдбрд░ рдХреЗ

рд▓рд┐рдП рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдкрд╣рд▓рд╛ рдФрд░ рдЕрдВрддрд┐рдо рд╕реНрдерд╛рди рд╡рд░реНрддрдорд╛рди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрдерд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реЗрдбрд░ рдкрд┐рдЫрд▓реЗ рд╕реНрд╡рд░реВрдкрдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд▓рдЧрддреЗ рд╣реИрдВред рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдХреНрд▓рд╕реНрдЯрд░ рдЖрдХрд╛рд░ рд╣реИ!


рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реЗрдбрд░ред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕реЗрдХреНрдЯрд░ рд╕рд╛рдЗрдЬрд╝ рдХреЛ 0 ├Ч 4554800B: 00 02, рдпрд╛ 512 рдХреА рдСрдлрд╕реЗрдЯ рдкрд░ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рд╕рд╛рдЗрдЬрд╝ рдХреЛ 0 ├Ч 0x4554800D: F7, рдпрд╛ 247 рдХреА рдСрдлрд╝рд╕реЗрдЯ рдкрд░ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрд▓рд╕реНрдЯрд░ рд╕рд╛рдЗрдЬрд╝ рд╣реИ (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ) 512 * 247 = 126464. рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдмрдХрд╡рд╛рд╕! рдпрджрд┐ рдЖрдк рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ NTFS рдкрд╛рд░реНрд╕рд░ [5], рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореВрд▓реНрдп рдкрд░ рдПрдХ рдЪрд┐рдиреНрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд▓рд╕реНрдЯрд░ рдЖрдХрд╛рд░ (рд╕реЗрдХреНрдЯрд░реЛрдВ рдореЗрдВ) 1 << - (- 9) = 512 рд╣реИред рдпрд╛, рдпрджрд┐ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ, 512 = 512 = 262144 рдЕрдм рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд▓рдЧрддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рдЗрд╕ рдСрдлрд╕реЗрдЯ (рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ) рд╕реЗ рдпрд╣рд╛рдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:
2048 * 512 + 20128 * 262144 = 5277483008ред рдЪрд▓реЛ рдлрд┐рд░ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╡рд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдЪрд╛рд▓ рдХрд░реЗрдВ ... рдлрд┐рд░ рд╕реЗ, рдПрдХ рд╡рд┐рдлрд▓рддрд╛! рдЧрд▓рдд рдХреНрдпрд╛ рд╣реИ? рд╣рдорд╛рд░реЗ рдпрд╣рд╛рдВ CTF рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ "рдРрд╕рд╛ рдирд╣реАрдВ" рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЬрд┐рд╕ рдХрд╛рд░реНрдп рд╕реЗ рд╣рдо рд▓рдбрд╝ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рд╢реИрдбреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╡реЙрд▓реНрдпреВрдо рдХреА рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╣реИред рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдЗрд╕ рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рдореМрдЬреВрдж рдереАред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдо рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЫрд╛рдпрд╛ рдкреНрд░рддрд┐ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдорд╛рдЙрдВрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд╕рдЯреАрдХ рдСрдлрд╕реЗрдЯ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рдбреЗрдЯрд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ! рдпрд╣ 5277483008 рд╣реИ, рдпрд╛, рдЕрдиреБрднрд╛рдЧ рдХреЗ рднреАрддрд░, 5277483008 - 2048 * 512 = 5276434432

рд╣реИред VSS рдкреНрд░рд╛рд░реВрдк [6] рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХреЛрдВ рдХреЛ рдмреНрд▓реЙрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 64-рдмрд┐рдЯ рдлрд╝реАрд▓реНрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореВрд▓ рдСрдлрд╕реЗрдЯ (рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдЕрдВрджрд░), рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рд▓рдХреНрд╖реНрдп рдмреНрд▓реЙрдХ рдСрдлрд╝рд╕реЗрдЯ (рд╡реЙрд▓реНрдпреВрдо рдХреЗ рдЕрдВрджрд░) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ 64-рдмрд┐рдЯ рдлрд╝реАрд▓реНрдб рднреАред 5276434432 рдХреЛ 64-рдмрд┐рдЯ рдХрдо рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВред

рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдСрдлрд╕реЗрдЯ рдкрд░ рд╕реНрдерд┐рдд рд╣реИред


рдорд┐рд▓рд╛ рдмреНрд▓реЙрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░

рдЯрд╛рд░рдЧреЗрдЯ рдмреНрд▓реЙрдХ рдСрдлрд╝рд╕реЗрдЯ: 00 00 9B 03 00 00 00, рдпрд╛ рд╕рд┐рд░реНрдл 60489728ред рдЕрдВрддрд┐рдо рдСрдлрд╝рд╕реЗрдЯ: 60489728 + 2048 * 512 = 61538304ред рдпрд╣рд╛рдБ рд╕реЗ, рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреА рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ key.bin, рдФрд░ ...

$ ./decrypt_flag.py
ctfzone{my_c0ngr4t5_t0_u,w311_d0n3_31337}

рдХрд┐рдпрд╛ рд╣реБрдЖ!

рд╕рдВрджрд░реНрдн


  1. https://flatcap.org/linux-ntfs/ntfs/concepts/file_record.html
  2. https://flatcap.org/linux-ntfs/ntfs/attributes/data.html
  3. https://flatcap.org/linux-ntfs/ntfs/concepts/data_runs.html
  4. https://flatcap.org/linux-ntfs/ntfs/files/boot.html
  5. https://github.com/msuhanov/dfir_ntfs/blob/94bb46d6600153071b0c3c507ef37c42ad62110d/dfir_ntfs/BootSector.py#L58
  6. https://github.com/libyal/libvshadow/blob/master/documentation/Volume%20Shadow%20Snapshot%20(VSS)%20format.asciidoc#431-block-descriptor

Source: https://habr.com/ru/post/undefined/


All Articles