1. Krypton3 목표
Well done. You’ve moved past an easy substitution cipher.
The main weakness of a simple substitution cipher is repeated use of a simple key.
In the previous exercise you were able to introduce arbitrary plaintext to expose the key.
In this example, the cipher mechanism is not available to you, the attacker.
However, you have been lucky.
You have intercepted more than one message.
The password to the next level is found in the file ‘krypton4’.
You have also found 3 other files. (found1, found2, found3)
You know the following important details:
The message plaintexts are in American English (*** very important) - They were produced from the same key (*** even better!)
Enjoy.
2. Krypton3 구현
# 비밀번호 root 입력 접속
ssh -oStrictHostKeyChecking=no root@localhost -p 2231
mkdir -p /krypton/krypton3
cat <<EOF | base64 --decode > /krypton/krypton3/found1
Q0daTkwgWUpCRU4gUVlETFEgWlFTVVEgTlpDWUQgU05RVlUgQkZHQksgR1FVUVogUVNVUU4gVVpD
WUQgU05KRFMgVURDWEogWkNZRFMgTlpRU1UgUU5VWkIgV1NCTlogUVNVUU4gVURDWEogQ1VCR1Mg
QlhKRFMgVUNUWVYgU1VKUUcgV1RCVUogS0NXU1YgTEZHQksgR1NHWk4gTFlKQ0IgR0pTWkQgR0NI
TVMgVUNKQ1UgUUpMWVMgQlhVTUEgVUpDSk0gSkNCR1ogQ1lEU04gQ0dLREMgWkRTUVogRFZTSkog
U05DR0ogRFNZVlEgQ0dKU08gSkNVTlMgWVZRWlMgV0FMUVYgU0pKU04gVUJUU1ggQ09TV0cgTVRB
U04gQlhZQlUgQ0pDQkcgVVdCS0cgSkRTUVYgWURRQVMgSlhCTlMgT1FUWVYgU0tDSkQgUVVEQ1gg
SkJYUUsgQk1WV0EgU05TWVYgUVpTV0EgTFdBS0IgTVZXQVMgWkJUU1MgUUdXVUIgQkdKRFMgVFNK
REIgV0NVR1EgVFNXUVggSlNOUk0gVkNNVVogUVNVUU4gS0RCTVUgU1dDSkogQlpCVFQgTUdDWlEg
SlNLQ0ogRERDVUUgU0dTTlEgVlVKRFMgU0daTkwgWUpDQkcgVUpTWVkgU05YQk4gVFNXQUwgUVpR
U1UgUU5aQ1kgRFNOQ1UgQlhKU0cgQ0daQk4gWUJOUUogU1dRVVkgUU5KQlggVEJOU1ogQlRZVlMg
T1VaRFMgVFNVVU0gWkRRVUogRFNJQ0UgU0dOU1ogQ1lEU04gUUdXVUogQ1ZWRFEgVVRCV1MgTkdR
WVkgVkNaUUogQ0JHQ0cgSkRTTkIgSlVMVUogU1RRVUsgQ0pEUVYgVlVDR0UgVlNRVlkgRFFBU0og
VU1BVUogQ0pNSkMgQkdaQ1kgRFNOVUogRFNaUVMgVVFOWkMgWURTTkMgVVNRVUMgVkxBTkIgRlNH
UUcgV0NHWU4gUVpKQ1ogU0JYWFMgTlVTVVUgU0dKQ1EgVlZMR0IgWkJUVE0gR0NaUUogQ0JHVVMg
Wk1OQ0ogTFVEUUYgU1VZU1EgTlNZTkIgV01aU1cgVEJVSkIgWERDVUYgR0JLR0sgQk5GQVMgSktT
U0cgUUdXREMgVVNRTlYgTFlWUUwgVUtTTlMgVFFDR1YgTFpCVFMgV0NTVVEgR1dEQ1UgSkJOQ1Mg
VUVTR04gU1VEU04gUUNVU1cgSkJKRFMgWVNRRkIgWFVCWUQgQ1VKQ1ogUUpDQkcgUUdXUU4gSkNV
Sk4gTEFMSkQgU1NHV0IgWEpEU1UgQ09KU1MgR0pEWlMgR0pNTkwgR1NPSkQgU0tOQkogU1RRQ0cg
VkxKTlEgRVNXQ1MgVU1HSkMgVlFBQk0gSkNHWlYgTVdDR0UgRFFUVlMgSkZDR0UgVlNRTlEgR1dU
UVogQVNKRFogQkdVQ1cgU05TV1UgQlRTQlggSkRTWEMgR1NVSlMgT1FUWVYgU1VDR0ogRFNTR0Ug
VkNVRFYgUUdFTVEgRVNDR0QgQ1VWUVUgSllEUVUgU0RTS04gQkpTSk4gUUVDWkIgVFNXQ1MgVVFW
VUIgRkdCS0cgUVVOQlQgUUdaU1UgUUdXWkIgVlZRQUIgTlFKU1cgS0NKREIgSkRTTlkgVlFMS04g
Q0VESlUgVFFHTEIgWERDVVkgVlFMVUsgU05TWU0gQVZDVUQgU1dDR1MgV0NKQ0IgR1VCWEkgUU5M
Q0cgRUhNUVYgQ0pMUUcgV1FaWk0gTlFaTFcgTU5DR0UgRENVVkMgWFNKQ1QgU1FHV0MgR0pLQkIg
WERDVVggQk5UU04gSkRTUUogTkNaUVYgWkJWVlMgUUVNU1UgWU1BVkMgVURTV0ogRFNYQ04gVUpY
QlYgQ0JRWkIgVlZTWkogU1dTV0MgSkNCR0IgWERDVVcgTlFUUUogQ1pLQk4gRlVKRFEgSkNHWlYg
TVdTV1EgVlZBTUogSktCQlggSkRTWVYgUUxVR0IgS05TWkIgRUdDVVMgV1FVVUQgUUZTVVkgU1FO
U1Ug
EOF
cat <<EOF | base64 --decode > /krypton/krypton3/found2
UVZKREIgTUVER0IgUUpKU0cgV1FHWlMgTlNaQk4gV1VYQk4gSkRTWVMgTkNCV1UgTU5JQ0kgU1RC
VUogQUNCRU4gUVlEU04gVVFFTlMgU0pEUUogVURRRlMgVVlTUU4gU0tRVVMgV01aUUogU1dRSkog
RFNGQ0cgRVVHU0sgVVpEQkIgVkNHVUogTlFKWEIgTldRWE4gU1NVWkQgQkJWWkQgUU5KU04gU1dD
R1EgQUJNSlEgSE1RTkogU05CWFEgVENWU1ggTkJUREMgVURCVFMgRU5RVFQgUU5VWkQgQkJWVUkg
UU5DU1cgQ0dITVEgVkNKTFcgTU5DR0UgSkRTU1YgQ1BRQVMgSkRRR1MgTlFBTUogSkRTWk0gTk5D
Wk0gVk1US1EgVVdDWkogUUpTV0EgTFZRS0ogRE5CTUUgREJNSlMgR0VWUUcgV1FHV0ogRFNVWkQg
QkJWS0IgTVZXRFEgSVNZTkIgSUNXU1cgUUdDR0ogU0dVQ0kgU1NXTVogUUpDQkcgQ0dWUUogQ0dF
TlEgVFRRTlEgR1dKRFMgWlZRVVUgQ1pVUUogSkRTUUUgU0JYVUQgUUZTVVkgU1FOU1QgUU5OQ1Mg
V0pEU0wgU1FOQlYgV1FHR1MgRFFKRFEgS1FMSkQgU1pCR1UgQ1VKQk4gTFpCTU4gSkJYSkQgU1dD
QlogU1VTQlggS0JOWlMgVUpTTkMgVVVNU1cgUVRRTk4gQ1FFU1YgQ1pTR1ogU0JHR0IgSVNUQVMg
TkpLQkIgWERRSkQgUUtRTFUgR1NDRUQgQUJNTlUgWUJVSlMgV0FCR1cgVUpEU0cgU09KV1EgTFFV
VU0gTlNKTEogRFFKSkQgU05TS1MgTlNHQkMgVFlTV0MgVFNHSlUgSkJKRFMgVFFOTkMgUUVTSkQg
U1pCTVkgVlNUUUwgRFFJU1EgTk5RR0UgU1dKRFMgWlNOU1QgQkdMQ0cgVUJUU0QgUVVKU1UgQ0da
U0ogRFNLQk4gWlNVSlMgTlpEUUcgWlNWVkIgTlFWVkIgS1NXSkQgU1RRTk4gQ1FFU0EgUUdHVUog
QkFTTlMgUVdCR1ogU0NHVUogU1FXQlggSkRTTVUgTVFWSkQgTlNTSkMgVFNVUUcgR1NVWU4gU0VH
UUcgWkxaQk0gVldEUUkgU0FTU0cgSkRTTlMgUVVCR1ggQk5KREMgVVVDT1QgQkdKRFUgUVhKU04g
SkRTVFEgTk5DUUUgU1VEU0UgUUlTQUMgTkpESkIgUVdRTUUgREpTTlUgTVVRR0cgUUtEQksgUVVB
UVkgSkNVU1cgQkdUUUwgSktDR1UgVUJHRFEgVEdTSlEgR1dXUU0gRURKU04gUk1XQ0ogRFhCVlYg
QktTV1EgVlRCVUogSktCTFMgUU5VVlEgSlNOUUcgV0tTTlMgQVFZSkMgVVNXQkcgWFNBTk0gUU5M
RFEgVEdTSlcgQ1NXQlggTUdGR0IgS0daUU0gVVNVUUogSkRTUUUgU0JYUUcgV0tRVUEgTU5DU1cg
QkdRTUUgTVVKUVggSlNOSkQgU0FDTkogREJYSkQgU0pLQ0cgVUpEU04gU1FOU1ggU0tEQ1UgSkJO
Q1ogUVZKTlEgWlNVQlggVURRRlMgVVlTUU4gU01HSkMgVkRTQ1UgVFNHSkMgQkdTV1EgVVlRTkog
QlhKRFMgVkJHV0IgR0pEU1EgSk5TVVogU0dTQ0cgQVNaUU0gVVNCWEogRENVRVEgWVVaREIgVlFO
VU4gU1hTTkogQkpEU0wgU1FOVUEgU0pLU1MgR1FHV1EgVVVEUUYgU1VZU1EgTlNVVkIgVUpMU1Eg
TlVBQ0IgRU5RWUQgU05VUUogSlNUWUogQ0dFSkIgUVpaQk0gR0pYQk4gSkRDVVkgU05DQlcgRFFJ
U04gU1lCTkogU1dUUUcgTFFZQlogTkxZRFEgVlVKQk4gQ1NVR0MgWkRCVlEgVU5CS1MgVURRRlMg
VVlTUU4gU1VYQ04gVUpBQ0IgRU5RWUQgU05OU1ogQk1HSlMgV1FVSk4gUUpYQk4gV1ZTRVMgR1dK
RFEgSlVEUUYgU1VZU1EgTlNYVlMgV0pEU0ogQktHWEIgTlZCR1cgQkdKQlMgVVpRWVMgWU5CVVMg
Wk1KQ0IgR1hCTlcgU1NOWUIgUVpEQ0cgRVFHQkogRFNOU0MgRURKU1MgR0pEWlMgR0pNTkwgVUpC
TkwgRFFVVUQgUUZTVVkgU1FOU1UgSlFOSkMgR0VEQ1UgSkRTUUogTkNaUVYgWlFOU1MgTlRDR1cg
Q0dFSkQgU0RCTlUgU1VCWEogRFNRSk4gU1lRSk4gQkdVQ0cgVkJHV0IgR1JCREcgUU1BTlMgTE5T
WUIgTkpTV0ogRFFKVUQgUUZTVVkgU1FOU0QgUVdBU1MgR1FaQk0gR0pOTFUgWkRCQlYgVFFVSlMg
TlVCVFMgSktTR0ogQ1NKRFogU0dKTU4gTFVaREIgVlFOVUQgUUlTVU0gRUVTVUogU1dKRFEgSlVE
UUYgU1VZU1EgTlNUUUwgRFFJU0EgU1NHU1QgWVZCTFMgV1FVUVUgWkRCQlYgVFFVSlMgTkFMUVYg
U09RR1cgU05EQkUgREpCR0IgWFZRR1ogUVVEQ04gU1FaUUogREJWQ1ogVlFHV0IgS0dTTksgREJH
UVQgU1dRWlMgTkpRQ0cgS0NWVkMgUVRVRFEgRlNVRFEgWEpTQ0cgRENVS0MgVlZHQlMgSUNXU0cg
WlNVTUEgVUpRR0ogQ1FKU1UgVU1aRFUgSkJOQ1MgVUJKRFMgTkpEUUcgRFNRTlUgUUxaQlYgVlNa
SlMgV1FYSlMgTkRDVVcgU1FKRA==
EOF
cat <<EOF | base64 --decode > /krypton/krypton3/found3
RFNOU00gWUJHVlMgRU5RR1cgUU5CVVMgS0NKRFEgRU5RSVMgUUdXVUogUUpTVkwgUUNOUUcgV0FO
Qk0gRURKVFMgSkRTQVMgU0pWU1ggTkJUUUUgVlFVVVogUVVTQ0cgS0RDWkQgQ0pLUVUgU0daVkIg
VVNXQ0ogS1FVUUEgU1FNSkMgWE1WVVogUU5RQVEgU01VUUcgV1FKSkQgUUpKQ1QgU01HRkcgQktH
SkIgR1FKTU4gUVZDVUogVUJYWkIgTU5VU1EgRU5TUUogWU5DUFMgQ0dRVVogQ1NHSkMgWENaWUIg
Q0dKQlggSUNTS0ogRFNOU0sgU05TSksgQk5CTUcgV0FWUVogRlVZQkogVUdTUU4gQkdTU08gSk5T
VEMgSkxCWEogRFNBUVogRlFHV1EgVkJHRUIgR1NHU1EgTkpEU0IgSkRTTkogRFNVWlEgVlNVS1Mg
TlNTT1ogU1NXQ0cgRVZMRFEgTldRR1cgRVZCVVUgTEtDSkQgUVZWSkQgU1FZWVMgUU5RR1ogU0JY
QU0gTkdDVUQgU1dFQlYgV0pEU0sgU0NFREogQlhKRFMgQ0dVU1ogSktRVUkgU05MTlMgVFFORlEg
QVZTUUcgV0pRRkMgR0VRVlYgSkRDR0UgVUNHSkIgWkJHVUMgV1NOUUogQ0JHQ1ogQk1WV0QgUU5X
VkwgQVZRVFMgUk1ZQ0ogU05YQk4gRENVQlkgQ0dDQkcgTlNVWVMgWkpDR0UgQ0o=
EOF
echo 'Some letters are more prevalent in English than others.' > /krypton/krypton3/HINT1
echo '"Frequency Analysis" is your friend.' > /krypton/krypton3/HINT2
echo S1NWVlcgQkdTSkQgU1ZTSVMgVlhCTU4gWVFVVUsgQk5XQ1UgQU5NSlMg | base64 -d > /krypton/krypton3/krypton4
cat <<'EOF' > /krypton/krypton3/README
Well done. You've moved past an easy substitution cipher.
Hopefully you just encrypted the alphabet a plaintext
to fully expose the key in one swoop.
The main weakness of a simple substitution cipher is
repeated use of a simple key. In the previous exercise
you were able to introduce arbitrary plaintext to expose
the key. In this example, the cipher mechanism is not
available to you, the attacker.
However, you have been lucky. You have intercepted more
than one message. The password to the next level is found
in the file 'krypton4'. You have also found 3 other files.
(found1, found2, found3)
You know the following important details:
- The message plaintexts are in English (*** very important)
- They were produced from the same key (*** even better!)
Enjoy.
EOF
chown krypton3:krypton3 /krypton/krypton3/*
chmod 640 /krypton/krypton3/*
# krypton4 유저를 생성하여 준다.
useradd krypton4 && echo -e "BRUTE\nBRUTE" | passwd krypton4
echo 'BRUTE' > /etc/krypton_pass/krypton4
chown krypton4:krypton4 /etc/krypton_pass/krypton4
chmod 400 /etc/krypton_pass/krypton4
3. Krypton3 문제풀의
# 비밀번호 : CAESARISEASY
# ssh krypton3@krypton.labs.overthewire.org -p 2231
ssh krypton3@localhost -p 2231
cat /krypton/krypton3/README
# K. W. Smith의 텍스트 분석 결과 기반 알파벳 사용 빈도수
# E: 12.70% T: 9.06% A: 8.17% O: 7.51% I: 6.97%
# N: 6.75% S: 6.33% H: 6.09% R: 5.99% D: 4.25%
# L: 4.03% C: 2.78% U: 2.76% M: 2.41% W: 2.36%
# F: 2.23% G: 2.02% Y: 1.97% P: 1.93% B: 1.49%
# V: 0.98% K: 0.77% X: 0.15% J: 0.15% Q: 0.10%
# Z: 0.07%
# found1, found2, found3 텍스트 파일 단어의 빈도수 확인
# 456 S 340 Q 301 J 257 U 246 B
# 240 N 227 G 227 C 210 D 132 Z
# 130 V 129 W 86 M 84 Y 75 T
# 71 X 67 K 64 E 60 L 55 A
# 28 F 19 I 12 O 4 R 4 H
# 2 P
cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | grep -o '[A-Z]' | sort | uniq -c | sort -nr
# 암호문 확인
(cat /krypton/krypton3/krypton4 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'ETAOINSHRDLCUMWFGYPBVKXJQZ'
# 분석 결과와 알파벳 사용 빈도수를 바탕으로 문장 확인
# 가장 많이 사용되는 정관사인 THE가 포함되어있는지 확인
# the 7.14% to 5.15% of 4.00% a 3.95% be 3.66%
# for 2.80% in 2.75% and 2.55% have 2.50% on 2.33%
# you 2.27% it 2.21% that 2.00% he 1.81% with 1.36%
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'ETAOINSHRDLCUMWFGYPBVKXJQZ' | grep -o THE
# 분석 결과와 알파벳 사용 빈도수를 바탕으로 문장 확인
# the 7.14% to 5.15% of 4.00% a 3.95% be 3.66%
# for 2.80% in 2.75% and 2.55% have 2.50% on 2.33%
# you 2.27% it 2.21% that 2.00% he 1.81% with 1.36%
# 암호화된 텍스트 3글자 단어 상위 10개 빈도수 확인
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'ETAOINSHRDLCUMWFGYPBVKXJQZ' | awk '{for (i=1; i<=length($0)-2; i++) {print substr($0,i,3)}}' | sort | uniq -c | sort -nr | head -10
# 암호문 매칭을 위 빈도수와 맞게 변경
# ARE -> THE
# TSC -> AND
# A -> T
# T -> A
# R -> H
# H -> R
# S -> N
# C -> D
# D -> C
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATOISNRHCLDUMWFGYPBVKXJQZ' | awk '{for (i=1; i<=length($0)-2; i++) {print substr($0,i,3)}}' | sort | uniq -c | sort -nr | head -10
# 암호화된 텍스트 4글자 단어 상위 20개 빈도수 확인
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATOISNRHCLDUMWFGYPBVKXJQZ' | awk '{for (i=1; i<=length($0)-3; i++) {print substr($0,i,4)}}' | sort | uniq -c | sort -nr | head -20
# 암호문 매칭을 위 빈도수와 맞게 변경
# IFTH -> WITH
# I -> W
# W -> I
# F -> I
# I -> F
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATOWSNRHCLDUMFIGYPBVKXJQZ' | awk '{for (i=1; i<=length($0)-3; i++) {print substr($0,i,4)}}' | sort | uniq -c | sort -nr | head -20
# 지금까지 나온 단어 제외 암호화된 텍스트 2글자 단어 상위 20개 빈도수 확인
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATOWSNRHCLDUMFIGYPBVKXJQZ' | awk '{for (i=1; i<=length($0)-1; i++) {print substr($0,i,2)}}' | sort | uniq -c | sort -nr | grep -v '^[THEANDWITH0-9 ]*$' | head -20
# 암호문 매칭을 위 빈도수와 맞게 변경
# TR -> TO
# R -> O
# O -> R
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATRWSNOHCLDUMFIGYPBVKXJQZ' | awk '{for (i=1; i<=length($0)-1; i++) {print substr($0,i,2)}}' | sort | uniq -c | sort -nr | head -10
# 암호문 확인 및 유추
# GELLDWNETHELEKELIWUSMARRGWSDORBSUTE
# GELLDWNE THE LEKELIWUSMARRGWSDORBSUTE
(cat /krypton/krypton3/krypton4 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATRWSNOHCLDUMFIGYPBVKXJQZ'
# LEKEL -> LEVEL
# K -> V
# V -> K
# GELLDWNE THE LEKEL IWUSMARRGWSDORBSUTE -> GELLDWNE THE LEVEL IWUSMARRGWSDORBSUTE
(cat /krypton/krypton3/krypton4 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATRWSNOHCLDUMFIGYPBKVXJQZ'
# DWNE -> DONE
# GELL -> WELL
# W -> O
# O -> W
# G -> W
# W -> G
# GELLDWNE THE LEVEL IWUSMARRGWSDORBSUTE -> WELLDONE THE LEVEL IWUSMARRGWSDORBSUTE
(cat /krypton/krypton3/krypton4 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATROSNGHCLDUMFIWYPBKVXJQZ'
# 확정된 문자를 토대로 5글자 문장 확인
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATROSNGHCLDUMFIWYPBKVXJQZ' | awk '{for (i=1; i<=length($0)-4; i++) {print substr($0,i,5)}}' | sort | uniq -c | sort -nr | head -30 | grep THE
# OITHE -> OFTHE
# I -> F
# F -> I
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATROSNGHCLDUMIFWYPBKVXJQZ' | awk '{for (i=1; i<=length($0)-4; i++) {print substr($0,i,5)}}' | sort | uniq -c | sort -nr | head -30 | grep THE
# 10글자 두번 이상 반복되는 WELLDONETHELEVEL 문자중 하나를 포함하고 있는 문자 확인
# ELONDONTHE
# HELONDONTH
# LEDTHETOWN
# THELONDONT
# 가 나오는데 LONDON이라는 단어가 반복해서 나오는 것을 확인
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATROSNGHCLDUMIFWYPBKVXJQZ' | awk '{for (i=1; i<=length($0)-9; i++) {print substr($0,i,10)}}' | sort | uniq | grep '^[WELLDONETHELEVEL]*$'
# LEDTHETOWN 단어를 Grep 하여 확인해보면 LEDTHETOWN 뒤에 LEDTHETOWNFOSLONDON 와 같이 확인가능
# LED THE TOWN FOS LONDON 과 같이 해석되는데 FOS는 FOR로 유추가 가능
(cat /krypton/krypton3/found1 /krypton/krypton3/found2 /krypton/krypton3/found3 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATROSNGHCLDUMIFWYPBKVXJQZ' | grep 'LEDTHETOWN'
# S -> R
# R -> S
# WELL DONE THE LEVEL FOUR MASSWORD GSBRUTE
# 가 확인가능하므로 MASSWORD는 PASSWORD로 유추가 가능
# GS는 IS로 유추가 가능
(cat /krypton/krypton3/krypton4 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATSORNGHCLDUMIFWYPBKVXJQZ'
# M -> P
# P -> M
# G -> I
# I -> G
# WELL DONE THE LEVEL FOUR PASSWORD IS BRUTE
# password : BRUTE
(cat /krypton/krypton3/krypton4 | tr -d ' '; echo) | tr 'SQJUBNGCDZVWMYTXKELAFIORHP' 'EATSORNIHCLDUPGFWYMBKVXJQZ'
'Wargame > Krypton' 카테고리의 다른 글
[ Docker ] Krypton Wargame 만들기 - 5번 문제 ( 7 / 8 ) (0) | 2024.09.23 |
---|---|
[ Docker ] Krypton Wargame 만들기 - 4번 문제 ( 6 / 8 ) (0) | 2024.09.23 |
[ Docker ] Krypton Wargame 만들기 - 2번 문제 ( 4 / 8 ) (0) | 2024.09.23 |
[ Docker ] Krypton Wargame 만들기 - 1번 문제 ( 3 / 8 ) (0) | 2024.09.23 |
[ Docker ] Krypton Wargame 만들기 - 0번 문제 ( 2 / 8 ) (0) | 2024.09.23 |