여태까지 리눅스 기초 공부와 Bandit 문제를 모두 풀어봤습니다
리눅스를 공부하기 전에 모습과 지금 모습을 비교해 보면 많은 차이가 있었습니다
리눅스를 공부하면서 처음 보는 명령어들을 접하게 되었는데, Bandit 문제를 풀기 전에 미리 리눅스에서 자주 사용하는 명령어 위주로 공부하기 시작했습니다
그렇게 반복 숙달하는 과정을 통해 리눅스에서 자주 사용하는 명령어들을 익히고, 그만큼 능숙하게 다룰 수 있었습니다 이런 과정에서 도움이 된 건 블로그에 공부한 내용을 정리한 것과 기초 공부 이후 Bandit 문제를 푼 게 많은 도움이 되었습니다 이를 바탕으로 앞으로 리눅스를 어느 정도 사용할 수 있다고 느꼈습니다
Bandit Level 0 ~ Level 33까지 사용한 명령어 정리
[ 리눅스 기본 명령어 사용 ]
1. Bandit Level 0 → Level 1 - SSH 접속 방법과 ls 명령어와 cat을 이용
2. Bandit Level 1 → Level 2 - ls 와 cat 명령어 사용
3. Bandit Level 2 → Level 3 - ls, cat, 자동 완성(Tap) 사용
4. Bandit Level 3 → Level 4 - ls, cat, 자동 완성(Tap) 사용
5. Bandit Level 4 → Level 5 - ls, cat, file, 파이프 사용
6. Bandit Level 5 → Level 6 - ls, cat, find (ls 옵션인 -al 사용)
7. Bandit Level 6 → Level 7 - ls, cd, find, >(리다이렉션) 사용
8. Bandit Level 7 → Level 8 - ls, cat, 파이프 사용
9. Bandit Level 8 → Level 9 - ls, cat, sort, uniq, 파이프 사용
10. Bandit Level 9 → Level 10 - ls, cat, strings 파이프 사용
[ 암호와 관련된 문제 ]
11. Bandit Level 10 → Level 11 - base64 디코드 사용
12. Bandit Level 11 → Level 12 - 파이프와 ROT13 카이사르 암호문 복호화
[ 리눅스 파일 압축 해제 ]
13. Bandit Level 12 → Level 13 - cp, mv, mkdir, xxd, file, gzip, bzip2, tar 사용
[ 포트 사용 및 ssh 로그인 ]
14. Bandit Level 13 → Level 14 - ssh -i 옵션으로 RSA 로그인 방식 사용
15. Bandit Level 14 → Level 15 - telnet 명령어 사용
16. Bandit Level 15 → Level 16 - openssl s_client 암호화 명령어 사용
17. Bandit Level 16 → Level 17 - nc(넷캣), openssl s_client, 파이프, ssh -i 옵션으로 RSA 로그인 방식 사용, mkdir, vi, chmod
[ 특수 권한 개념과 또 다른 명령어 ]
18. Bandit Level 17 → Level 18 - diff 명령어 사용
19. Bandit Level 18 → Level 19 - ssh 로그인 할때 명령어도 같이 문자열로 전송
20. Bandit Level 19 → Level 20 - setuid 특수 권한 개념 파악
21. Bandit Level 20 → Level 21 - setuid 특수 권한 개념과 nc(넷캣)을 이용하여 포트 개방, 리다이렉션
[ 크론 개념 ]
22. Bandit Level 21 → Level 22 - crontab 파일 형식과 크론(cron) 개념
23. Bandit Level 22 → Level 23 - 크론(cron) 개념과 echo 명령어 뜻
[ bash 쉘 작성법 ]
24. Bandit Level 23 → Level 24 - 크론(cron) 개념과 bash 쉘 해석과 작성 방법, mkdir, vi, chmod, cp, 리다이렉션
25. Bandit Level 24 → Level 25 - nc(넷캣), mkdir, vi, bash 쉘 작성법, 리다이렉션, bash, brute-forcing[브루트 포스], 파이프 사용
[ 특수 권한 개념 및 shell 지정 법 ]
26. Bandit Level 25 → Level 26 - vi, shell 지정
27. Bandit Level 26 → Level 27 - setuid 권한 사용
[ git 명령어 숙달 ]
28. Bandit Level 27 → Level 28 - mkdir, git, chmod 명령어 사용
29. Bandit Level 28 → Level 29 - git log 와 git show 명령어 사용법
30. Bandit Level 29 → Level 30 - git branch 사용법과 git log, git checkout 사용
31. Bandit Level 30 → Level 31 - git show-ref 옵션 사용
32. Bandit Level 31 → Level 32 - vi, git branch, git add, git commit, git push 사용 (git 파일 업로드)
33. Bandit Level 32 → Level 33 - sh 쉘에서 $0 입력 시 bash 쉘로 변경할 수 있다
직접 풀어보시면 아시겠지만 Bandit Level 0 ~ Level 33까지 ls, cd, cat 명령어는 밥 먹듯이 사용합니다
Bandit 문제에서도 쉬운 문제도 있고, 어려운 문제도 있습니다 전 어려운 문제를 풀기 전에 리눅스 기초 명령어를 먼저 공부하고 기본적으로 0~10 Level 까지는 문제없이 풀었지만 11 Level부터 새로운 명령어들이 등장하게 되면서 구글링을 통해 새로운 명령어들을 익히게 되었습니다 그러면서 어려운 문제도 풀어갈 수 있었습니다 물론 다른 사람에 풀이를 보면서 풀기는 했지만 처음부터 끝까지 다시 한번 반복해서 풀고, 블로그에 풀이 과정을 올리는 형식으로 공부했습니다
명령어 찾기 > 다른 사람 풀이 해석 > 혼자 다시 한번 풀기 > 블로그에 풀이 과정 적기 순서로 공부했네요
이런 식의 공부는 나중에 리눅스를 다시 공부할 때 필요한 부분들을 블로그에서 찾아보면서 전에 공부한 내용을 더 빠르게 이해할 수 있다는 장점이 있습니다
CTF인 Bandit 워게임을 통해 리눅스 사용법과 더불어 해킹의 기초 기법도 공부할 수 있어 좋았습니다
또한 CTF는 문제를 해결하기 위해 명령어 하나씩 찾아보는 과정에서 새로운 지식을 습득할 수 있다는 점이 매력적이라고 생각했습니다
여러분들도 Bandit Level 0 ~ Level 33 문제를 풀게 되면서 많은 정보를 습득해 갔으면 좋겠습니다