rcity18@9947d876f6e5:~$ ls -l
total 4
-rw-r--r-- 1 root root 918 Mar 6 08:04 rcity19
rcity18@9947d876f6e5:~$ head rcity19
Flag components:
adding one by one
adding one by one
adding one by one
adding one by one
adding one by one
adding one by one
adding one by one
adding one by one
adding one by one
뭔가 엄청나게 많은 것같다
rcity18@9947d876f6e5:~$ git log
commit 7599ad53e055ece5b61ef8b81f149940187bd35f (HEAD -> master)
Author: rcity18 <rcity18@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add flag character . by User
commit b6d2e1be0743693fa9ba1c18a229bb700582b4e6
Author: rcity18 <rcity18@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add flag character . by User
commit e2f65eb849534807b5803fe2a28aaa845461e497
Author: rcity18 <rcity18@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add flag character . by User
commit 7deb44d949d93313729fbb2645e91e45a3037207
Author: rcity18 <rcity18@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add flag character E by User
commit b3cf549616d3adf1c5e9d9b152f8afeaa11c4daf
Author: rcity18 <rcity18@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add flag character M by User
commit b18a70b04a328b2e7cef33e5394f002176a5dc9c
Author: rcity18 <rcity18@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add flag character O by User
commit b351f30377736da3f56f4af9b600a47ca9551116
Author: rcity18 <rcity18@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add flag character C by User
페이지가 연결될 만큼 길다
rcity18@9947d876f6e5:~$ git log | grep -iw "add"
Add flag character . by User
Add flag character . by User
Add flag character . by User
Add flag character E by User
Add flag character M by User
Add flag character O by User
Add flag character C by User
Add flag character L by User
Add flag character E by User
Add flag character W by User
Add flag character } by User
Add flag character 9 by User
Add flag character i by User
Add flag character 8 by User
Add flag character h by User
Add flag character 7 by User
Add flag character g by User
Add flag character 6 by User
Add flag character f by User
Add flag character 5 by User
Add flag character e by User
Add flag character 4 by User
Add flag character d by User
Add flag character 3 by User
Add flag character c by User
Add flag character 2 by User
Add flag character b by User
Add flag character 1 by User
Add flag character a by User
Add flag character { by User
Add flag character 9 by User
Add flag character 1 by User
Add flag character y by User
Add flag character t by User
Add flag character i by User
Add flag character c by User
Add flag character r by User
Add flag character . by User
Add flag character . by User
Add flag character . by User
Add flag character Y by User
Add flag character T by User
Add flag character I by User
Add flag character C by User
Add flag character N by User
Add flag character O by User
Add flag character C by User
Add flag character C by User
Add flag character A by User
Add flag character R by User
뭔가 문자가 보인다!!! 더 잘보이게 하기 위해서 추가적으로 명령어를 찾아서 많은 시행 착오를 겪었다
rcity17@9947d876f6e5:~$ ls
rcity18
rcity17@9947d876f6e5:~$ cat rcity18
Initial commit
Add feature A
Add feature B
별 다른 내용 없다
rcity17@9947d876f6e5:~$ git log
commit ace1b3e50dc2d3e51d56174ae9df97751b28317a (HEAD -> master)
Author: rcity17 <rcity17@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add feature B by Alice
commit 6c18974e94e36f197b21d1229eaab6c6da6b6d42
Author: rcity17 <rcity17@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Remove the rcity18 flag by Bob
commit 2ad972449af03e66774b60cdfd3c5fbcc87b3c84
Author: rcity17 <rcity17@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add and then remove the rcity18 flag
commit 69f15b08cc536a5d66127eb87432e2d79be1c23e
Author: rcity17 <rcity17@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Add feature A by Alice
commit 6b5375844fcc5f2eb005007f942c92f25194ce28
Author: rcity17 <rcity17@saveme.com>
Date: Wed Mar 6 08:04:14 2024 +0000
Initial commit by Alice
rcity17@9947d876f6e5:~$
rcity15-data.bin 이라는 바이너리 파일이 있는데 파일 형식은 data로 되어있다xxd 명령어를 통해서 파일이나 표준 입력에서 16진수 덤프를 생성하거나 16진수 덤프를 파일에 기반으로 원래 바이너리 형식으로 되돌린다
알수없는 문자열과 key is 53 이다 라는 것이 출력되었다 문제에서 키를 알려주는 일부분인 것같다
일반적인 53이라는 문자열 일 수도 있지만 hex로 봤을때 0x53일 수도 있다 그래서 복호화를 해야한다
이부분은 좀 어려워서 강의를 듣고 진행을 하였다.
rcity15@9947d876f6e5:/tmp/jeff$ ls
rcity15@9947d876f6e5:/tmp/jeff$ cp /home/rcity15/rcity15-data.bin .
rcity15@9947d876f6e5:/tmp/jeff$ ls
rcity15-data.bin
rcity15@9947d876f6e5:/tmp/jeff$ vim hex.py
rcity15@9947d876f6e5:/tmp/jeff$ ls
hex.py rcity15-data.bin
rcity15@9947d876f6e5:/tmp/jeff$ python3 hex.py
the flag is z6Q3m8X4s1G5h9R7d0LYY86*s: sf`Y
rcity15@9947d876f6e5:/tmp/jeff$ echo "z6Q3m8X4s1G5h9R7d0LYY86*s" | cut -c 19
L
rcity15@9947d876f6e5:/tmp/jeff$ echo "z6Q3m8X4s1G5h9R7d0LYY86*s: sf`Y" | cut -c -19
> ^C
rcity15@9947d876f6e5:/tmp/jeff$ echo 'z6Q3m8X4s1G5h9R7d0LYY86*s: sf`Y' | cut -c -19
z6Q3m8X4s1G5h9R7d0L
rcity15@9947d876f6e5:/tmp/jeff$
xorkey = 0x53
# ricty15-data.bin 파일을 바이트 형태로 가져온 다음에 그 모든 형태를 encrypted_data 변수에 저장
with open('rcity15-data.bin', 'rb') as f:
encrypted_data = f.read()
decrypted = ""
# encrypted_data라는 변수를 돌면서 한 바이트당 복호화한다음에 decrypted라는 변수에 넣고 출력
for b in encrypted_data:
decrypted += chr(b ^ xorkey)
print(decrypted)
rcity14@35e08a7255bf:~$ ls
rcity13-flag.txt
rcity14@35e08a7255bf:~$ pwd
/home/rcity14
rcity14@35e08a7255bf:~$ cd /home/rcity15
rcity14@35e08a7255bf:/home/rcity15$ ls
rcity14-flag.txt rcity15-data.bin
rcity14@35e08a7255bf:/home/rcity15$ cat rcity14-flag.txt
cat: rcity14-flag.txt: Permission denied
rcity15의 홈 디렉토리에 들어가서 확인하려고 하니 Permission denied 가 떳다
간단히 sudo -l 을 이용하여 문제를 풀 수 있을 것 같다 현재 계정의 sudo 권한을 확인 하는 것이다.
rcity14@35e08a7255bf:/home/rcity15$ sudo -l
Matching Defaults entries for rcity14 on 35e08a7255bf:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User rcity14 may run the following commands on 35e08a7255bf:
(rcity15) NOPASSWD: /usr/bin/find
rcity12@35e08a7255bf:~$ head rcity12-flag1.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed blandit elit quis bibendum consectetur. Sed elementum, libero ut rhoncus auctor, metus purus vestibulum arcu, eu eleifend nunc augue et est. Integer ultricies vel ipsum eu varius. Nunc blandit lacus ac tellus fringilla, a accumsan mi pellentesque. Etiam bibendum varius justo. Quisque a mauris ex. Integer at euismod urna. Vivamus ut interdum libero.
Fusce finibus felis id neque ullamcorper, ut vulputate urna pellentesque. Mauris sit amet varius nisl, eu semper justo. Nulla facilisi. Suspendisse ornare mauris eget enim finibus, sit amet consectetur ipsum posuere. Ut eu aliquet neque. Curabitur eu magna sem. Quisque vel faucibus turpis. Donec vestibulum odio ac dapibus efficitur.
Suspendisse a est vitae nisi rhoncus viverra. Quisque varius, dolor id ultrices gravida, sem felis fermentum mi, ut posuere ex risus vitae nulla. Duis ultricies hendrerit diam, vel pharetra odio venenatis vel. Fusce volutpat erat sed odio consectetur dictum. In vel nulla eros. Sed dapibus id arcu eget mollis. Vestibulum tempus, orci at facilisis consequat, metus risus euismod felis, ut consectetur dui erat non augue.
Vivamus non sapien et purus volutpat congue. Nulla pharetra felis eu orci feugiat, at maximus eros ultrices. Donec vel neque eget nibh semper auctor eu et ex. Integer eget metus ut lectus interdum iaculis id a sapien. Proin pellentesque hendrerit turpis, ac tristique nisi euismod nec. In interdum ex ac turpis venenatis, eu aliquam ligula vestibulum.
Pellentesque sagittis ac lectus vel tincidunt. Duis at purus sed elit ultrices iaculis. Sed aliquam lacus eget ipsum mattis, at eleifend metus maximus. Nulla eget diam dolor. Nam bibendum, sapien non malesuada pellentesque, ipsum metus varius velit, a tristique dolor nisi et enim. Nullam eu magna vitae felis fringilla fermentum nec eu lacus.
rcity12@35e08a7255bf:~$ head rcity12-flag2.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed blandit elit quis bibendum consectetur. Sed elementum, libero ut rhoncus auctor, metus purus vestibulum arcu, eu eleifend nunc augue et est. Integer ultricies vel ipsum eu varius. Nunc blandit lacus ac tellus fringilla, a accumsan mi pellentesque. Etiam bibendum varius justo. Quisque a mauris ex. Integer at euismod urna. Vivamus ut interdum libero.
Fusce finibus felis id neque ullamcorper, ut vulputate urna pellentesque. Mauris sit amet varius nisl, eu semper justo. Nulla facilisi. Suspendisse ornare mauris eget enim finibus, sit amet consectetur ipsum posuere. Ut eu aliquet neque. Curabitur eu magna sem. Quisque vel faucibus turpis. Donec vestibulum odio ac dapibus efficitur.
Suspendisse a est vitae nisi rhoncus viverra. Quisque varius, dolor id ultrices gravida, sem felis fermentum mi, ut posuere ex risus vitae nulla. Duis ultricies hendrerit diam, vel pharetra odio venenatis vel. Fusce volutpat erat sed odio consectetur dictum. In vel nulla eros. Sed dapibus id arcu eget mollis. Vestibulum tempus, orci at facilisis consequat, metus risus euismod felis, ut consectetur dui erat non augue.
Vivamus non sapien et purus volutpat congue. Nulla pharetra felis eu orci feugiat, at maximus eros ultrices. Donec vel neque eget nibh semper auctor eu et ex. Integer eget metus ut lectus interdum iaculis id a sapien. Proin pellentesque hendrerit turpis, ac tristique nisi euismod nec. In interdum ex ac turpis venenatis, eu aliquam ligula vestibulum.
Pellentesque sagittis ac lectus vel tincidunt. Duis at purus sed elit ultrices iaculis. Sed aliquam lacus eget ipsum mattis, at eleifend metus maximus. Nulla eget diam dolor. Nam bibendum, sapien non malesuada pellentesque, ipsum metus varius velit, a tristique dolor nisi et enim. Nullam eu magna vitae felis fringilla fermentum nec eu lacus.
두 파일의 head 부분을 보니 얼추 비슷한 형식을 하고 있는데 두 파일을 diff 명령어를 이용하여 비교해서 한번 확인해봐야겠다
rcity12@35e08a7255bf:~$ diff rcity12-flag1.txt rcity12-flag2.txt
141c141
< Quisque a vestibulum tellus. Vestibulum quis metus in tortor semper vestibulum vel at sem. Curabitur consect
---
> Quisque a vestibulum tellus. Vestibulum ZjJMOXg2UjVnSDNxOEM0czdaMAo= quis metus in tortor semper vestibulum vel at sem. Curabitur consect
┌──(root㉿kali)-[~/raccoon/rcity]
└─# ssh rcity13@ctf.redraccoon.kr -p 31338
rcity13@ctf.redraccoon.kr's password:
Permission denied, please try again.
이렇게 말이다 보통 password.lst 의 파일 가지고 bruteforce 하는데 그 형식이 구분자가 , 가 아닌 \n 즉 칸바꿈을 이용해서 적용이 되어있기 때문에 이렇게 해줘야 인식이 되어 brutefocing이 가능하다
┌──(root㉿kali)-[~/raccoon/rcity/11]
└─# john id_rsa.hash --wordlist=sed_word.txt
Using default input encoding: UTF-8
Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 2 for all loaded hashes
Cost 2 (iteration count) is 16 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
sayang (id_rsa.rcity12)
1g 0:00:00:07 DONE (2024-04-01 04:37) 0.1253g/s 16.04p/s 16.04c/s 16.04C/s patrick..555555
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
이렇게 brutefoce 공격이 성곡하여 sayang 이라는 비밀번호를 찾았다
┌──(root㉿kali)-[~/raccoon/rcity/11]
└─# chmod 400 id_rsa.rcity12
┌──(root㉿kali)-[~/raccoon/rcity/11]
└─# ssh -i id_rsa.rcity12 rcity12@ctf.redraccoon.kr -p 31338
Enter passphrase for key 'id_rsa.rcity12': sayang
rcity12@35e08a7255bf:~$ ls
rcity11-flag-for-ctfd.txt rcity12-flag1.txt rcity12-flag2.txt
rcity12@35e08a7255bf:~$ cat rcity11-flag-for-ctfd.txt
d7M6h9R3jP4w1Z2c0V8
rcity12@35e08a7255bf:~$