본문 바로가기
반응형

WarGames/Bandit7

Bandit : Level 31 ~ Level 33 [Level 31] Git Tag 전 단계와 동일하게 /tmp에 bandit30 폴더를 하나 만들어준 후 클론을 받아온다. (무아하하라니ㅋㅋ) 전 단계에서 사용했던 Commit 기록과 Branch는 모두 하나밖에 존재하지 않았다. $ man git을 통해 사용할만한 명령어가 있나 찾아보았다. 몇 가지를 써보다가 $ git tag를 하니 secret이라는 태그가 하나 등장했다. 태그는 처음 들어보는데, Commit에 알기 쉬운 이름을 붙이는 용도로 쓰인다고 한다. 종류도 두 가지로, 이름만 붙일 수 있는 Lightweight tag와 서명이나 설명까지 포함 가능한 Annotated tag가 존재한다. Commit 이름이 복잡한 문자열로 생성되니 태그를 붙여 쉽게 Checkout 하기 위해 사용되는 것 같다.. 2021. 11. 14.
Bandit : Level 26 ~ Level 30 [Level 26] Shell Bandit26에 로그인하는 것은 쉽겠지만 bandit26 user가 사용하는 것은 /bin/bash가 아니다? 우선 ls로 무엇이 있는지 확인해 보자. sshkey가 있는 것을 보아 Level 17에서 sshkey를 사용해 접속했던 것처럼 로그인하면 될 것 같다. 그런데 Shell이 bash가 아니라고 한다. Shell은 사용자와 Kernel 사이의 소통을 위한 하나의 프로그램이다. 가장 대표적인 것이 bash인 것이지, 하나만 있는 것은 아니다. ​ 현재 사용 중인 Shell은 /etc/passwd에서 확인할 수 있다. 많은 정보 중 bandit 26에 관련된 정보만을 보려면 grep을 이용하면 된다. $ grep bandit26 /etc/passwd Bandit25는 .. 2021. 11. 7.
Bandit : Level 21 ~ Level 25 [Level 21] 포트 연결 Level 20과 같은 setuid binary 파일이 있는데 그 파일은 $ ./suconnect 형태로 사용하면 localhost의 해당 포트 번호로 연결을 하는 프로그램이다. 해당 포트 번호에 연결해서, 텍스트를 읽어서 bandit20 패스워드랑 일치하는지를 확인하는 프로그램이므로, 해당 포트 번호로 비밀번호를 넘겨줄 필요가 있다. 레벨 14 문제 풀이에서 썼던 nc를 사용하면 된다! 우선 쉘을 두 개 켜주자. 그 후 한 쪽에서는 nc를 listening mode로 열어두고 (거부되는 포트도 있는데 몇 개를 쳐보니 되는 포트가 있었다.) 한 쪽에서는 ./succonnect로 연결해 준다. 왼쪽에서 현재 패스워드를 보내주니, 오른쪽에서 확인을 거쳐 다음 패스워드를 보내주었.. 2021. 11. 3.
Bandit : Level 16 ~ Level 20 [Level 16] OpenSSL 이전의 15단계처럼 localhost의 다른 포트에 현재의 비밀번호를 전송하는 것이지만, SSL 암호화를 거쳐야 한다. 우선 openssl 명령어를 살펴보자. 설명을 살펴보면, openssl은 Secure Sockets Layer를 위한 암호화 도구이다. SSL은 인터넷 보안 프로토콜로, User가 Http에 접속할 때와 달리 Https에 접속할 때는 이 암호화된 연결을 거친다. 왜 http보다 https가 안전한지 몰랐는데 URL에 https가 있는 웹사이트는 바로 이 SSL/TSL를 구현한 것이기 때문이었다. 기존 웹에서 주고받는 데이터는 탈취되면 누구나 읽을 수 있었지만, SSL이 생기면서 누군가가 데이터를 가로채더라도 읽을 수 없게 되었다. 쇼핑몰에서 주문을 하고.. 2021. 11. 1.
Bandit : Level 11 ~ Level 15 이전 글 : [WarGames/Bandit] - Bandit : Level 6 ~ Level 10 [Level 11] Base64로 encoded된 데이터 읽기 base64로 encode 되어 있는 파일을 읽기 위해 base64 -d 옵션을 사용하여 decode 해주었다. 추가로 Base64에 대해 알아보니 인코딩 방식이 흥미로웠다. 우선 A ~ Z, a ~ z, 0 ~ 9, +, /를 0부터 63까지 매칭한 Base64 색인표를 만든다. 그 후 변환하고자 하는 문자의 ASCII 값을 8자리의 2진법으로 나타낸 후, 앞에 6자리만 떼서 다시 10진수로 바꾼 후 만들어놓은 색인표에 해당되는 문자를 쓰는 것이다. 남은 두 자리는 버리는 것이 아니라 뒤의 문자와 합쳐진다. 즉, 세 문자를 이진법으로 바꾸면 2.. 2021. 10. 30.
Bandit : Level 6 ~ Level 10 이전 글 : [WarGames/Bandit] - Bandit : Level 0 ~ Level 5 다음 글 : [WarGames/Bandit] - Bandit : Level 11 ~ Level 15 [Level 6] 특정 조건을 만족하는 파일 찾기 6단계 문제는 5단계와 같이 human-readable 한 파일이면서 크기가 1033 bytes이고 executable 하지 않은 파일을 찾는 문제이다. 우선 inhere 디렉토리로 들어가니 20개의 폴더가 존재했다. file ./*/*을 통해 현재 디렉토리의 모든 폴더 안의 모든 파일로 다시 검사를 해보니 한 폴더에 6개의 파일이 있었고, 그중에 file1과 file2로 끝나는 4개의 파일들이 모두 ASCII TEXT였다. 그런데 ls와 ls -a로 비교해 보.. 2021. 10. 27.