HTB-Nuclear Sale

Cryptography - Level Easy

ุฑุงูŠุช ุงุจ ุฌุฏูŠุฏ ๐Ÿฅณ

ูˆุตู ุงู„ุชุญุฏูŠ:

Plutonium Labs is a private laboratory experimenting with plutonium products. A huge sale is going to take place and our intelligence agency is interested in learning more about it. We have managed to intercept the traffic of their mail server. Can you find anything interesting?

ูˆ ุญู…ู„ุช ุงู„ู…ู„ู ุทู„ุน pcap file

ุชุตูุญุช ุงู„ู…ู„ู ูˆุฒูŠ ู…ุง ู‡ูˆ ูˆุงุถุญ ู‚ุฏุงู…ูƒู… ู‡ูˆ mail server

  • mail server ู†ุนุฑู ุงู†ู‡ ูŠุณุชุฎุฏู… ุจุฑูˆุชูˆูƒูˆู„ SMTP

SMTP: Simple Mail Transfer Protocol

ู†ู‚ุงุท ู…ู‡ู…ุฉ ู„ุงุฒู… ู†ุนุฑูู‡ุง ุนู† ุงู„ุจุฑูˆุชูˆูƒูˆู„

we know that SMTP easily readable by eavesdroppers.

  • ุณู‡ู„ ุงู†ู‡ ูŠู†ู‚ุฑุฃ ุจุญูƒู… ุฃู†ู‡ ูŠุธู‡ุฑ ูƒู€ plain text and ASCII ูˆู‡ุฐุง ูŠุณู…ุญ ู„ู„ู…ุฎุชุฑู‚ูŠู† ุฃู† ูŠุชู†ุตุชูˆู† ุนู„ู‰ ุงู„traffic

STEP 1 :

ุงู„ู…ู‡ู… ู†ุจุฏุฃ ุงู„ุฎุทูˆุฉ ุงู„ุฃูˆู„ู‰ ุดูุช ุงู„ุจุฑูˆุชูˆูƒูˆู„ุฒ ูƒู„ู‡ุง SMTP ูู‚ู„ุช ุฃุจุฏ ุจุณูˆูŠ follow TCP stream ูˆ ู†ุดูˆู ุดุงู„ุณุงู„ูุฉ

๐Ÿ’ก hint ->

ุญู„ูˆ ุทู„ุน ู„ู†ุง ููŠ stream 1 ุฏู„ูŠู„ ุนู„ู‰ ุฃู† ุงู„ุนู…ู„ูŠุฉ XOR

STEP 2: collect data

Stream 2 ูˆ ุงุนุทุงู†ุง ููŠ:

He is a high profile individual. His information is encrypted below:

6b65813f4fe991efe2042f79988a3b2f2559d358e55f2fa373e53b1965b5bb2b175cf039

Message (XOR) key = C

Stream 3 ูˆ ููŠ:

ciphertext 1 (C1) encrypted with our key.

fd034c32294bfa6ab44a28892e75c4f24d8e71b41cfb9a81a634b90e6238443a813a3d34

(Message (XOR) key) (XOR) key1(our key) = C1

Stream 4 ูˆ ููŠ:

ูEncrypted with our key..

de328f76159108f7653a5883decb8dec06b0fd9bc8d0dd7dade1f04836b8a07da20bfe70

(Message) (XOR) key1(our key) = C2

STEP 4: Analysis

ุจุนุฏ

two cipher encrypted with the same key? interesting

ุชุฐูƒุฑูˆุง ู†ุธุฑูŠุฉ ููŠุซุงุบูˆุฑุณ .. ุนู†ุฏู†ุง ู…ุชุบูŠุฑูŠู† ุดู„ูˆู† ู†ุทู„ุน ุงู„ุซุงู„ุซ ๐Ÿ˜œ

  • STEP 1:

  • if we (Message (XOR) key) (XOR) key1(our key)(XOR) Message (XOR) key since -> Message and key will be cancelled then the output will be -> key1

  • STEP 2:

  • Then if (Message) (XOR) key1(our key) (XOR) with Key1(our key) [output from STEP1] then -> Key 1 will be cancelled and the output will be -> message.

STEP 5: Coding phase

ุทูŠุจ ู„ุงุฒู… ู†ุจุฑู…ุฌ ุงุณุชุฎุฏู…ุช ุจุงูŠุซูˆู† ุนุดุงู† ู†ุทู„ุน ุงู„ู…ุณุฌ

my code

from binascii import unhexlify

# Convert hex to Bytes using unhexlify library
Message = unhexlify('6b65813f4fe991efe2042f79988a3b2f2559d358e55f2fa373e53b1965b5bb2b175cf039')
print(Message)

C1 =  unhexlify('fd034c32294bfa6ab44a28892e75c4f24d8e71b41cfb9a81a634b90e6238443a813a3d34')
print(C1)

C2 =  unhexlify('de328f76159108f7653a5883decb8dec06b0fd9bc8d0dd7dade1f04836b8a07da20bfe70')
print(C2)

STEP1 = []
FLAG = []
# STEP 1
for i in range(len(Message)):
	STEP1.append(Message[i] ^ C1[i])
print(bytes(STEP1))

# STEP 2
for i in range(len(Message)):
	FLAG.append(STEP1[i] ^ C2[i])

print("\n Final answer is: ")
print(bytes(FLAG))b'ke\x81?O\xe9\x91\xef\xe2\x04/y\x98\x8a;/%Y\xd3X\xe5_/\xa3s\xe5;\x19e\xb5\xbb+\x17\\xf09' b'\xfd\x03L2)K\xfaj\xb4J(\x89.u\xc4\xf2M\x8eq\xb4\x1c\xfb\x9a\x81\xa64\xb9\x0eb8D:\x81:=4' b'\xde2\x8fv\x15\x91\x08\xf7e:X\x83\xde\xcb\x8d\xec\x06\xb0\xfd\x9b\xc8\xd0\xdd}\xad\xe1\xf0H6\xb8\xa0}\xa2\x0b\xfep' b'\x96f\xcd\rf\xa2k\x85VN\x07\xf0\xb6\xff\xff\xddh\xd7\xa2\xec\xf9\xa4\xb5"\xd5\xd1\x82\x17\x07\x8d\xff\x11\x96f\xcd\r'

ุฃู†ุง ูˆุถุญุช ุงู„ุฎุทูˆุงุช ุฃูƒูŠุฏ ููŠู‡ ุงุฎุชุตุงุฑุงุช ูˆ ูƒูˆุฏ ุฃุณู‡ู„ ูˆ ู…ู…ูƒู† ุชุณุชุฎุฏู…ูˆู† cyberchef

ู…ู‡ู…ุง ุชุนุฏุฏุช ุงู„ุทุฑู‚ ุงู„ุญู„ ูˆุงุญุฏ ุงุฎุชุงุฑูˆุง ุงู„ู„ูŠ ุชุจูˆู†ู‡ ู…ุน ุงู„ูˆู‚ุช ุฃูƒูŠุฏ ุจู†ุชุทูˆุฑ ๐Ÿ‘Œ๐Ÿป

ุงุณุชู…ุชุนุช ูˆ ุฃู†ุง ุขุญู„ ุจุญูƒู… ุฃู†ูŠ ุงุณุชุฑุฌุนุช ูƒู… ู…ุนู„ูˆู…ุฉ ูˆู‚ุจู„ ุงู„ุฎุชุงู… ู†ุดูƒุฑ ู‚ูˆู‚ู„ ๐Ÿ‘๐Ÿป

Last updated