bandit 33

[Overthewire] level 22 -> level 23

문제를 보겠습니다. 해석을 하자면, 전 문제랑 동일합니다. 풀이를 하겠습니다. 다시 파일 경로를 가서 봤더니 또 cronjob_bandit23이 있었습니다. 다시 출력을 시켜보겠습니다. 전 문제와 동일하게 풀어보겠습니다. 또 다시 스크립트가 나왔습니다. 다시 스크립트를 입력하겠습니다. 단, $myname에는 bandit23을 입력해주셔야 됩니다. $mytarget에 대한 값을 찾을 수 있었습니다. 그럼 밑에 스크립트처럼 /tmp/8c~~~를 입력하겠습니다. 패스워드를 찾을 수 있었습니다.

bandit 2022.06.10

[Overthewire] level 21 -> level 22

문제를 보겠습니다. 해석을 해보면, 프로그램은 시간 기반 작업 스케줄러인 cron에서 정기적으로 자동으로 실행된다. /etc/cron.d/에서 구성을 찾아 실행 중인 명령을 확인한다. 풀이를 하겠습니다. 문제에 나오던대로 etc/cron.cd으로 이동을 했습니다. ls 명령어를 해보니 다음과 같은 파일들을 발견할 수 있었습니다. 우리가 보는 것은 cronjob_bandit22를 출력해보겠습니다. 스크립트가 하나 있는것을 볼 수 있었습니다. 똑같이 스크립트를 입력해보겠습니다. 또 스크립트가 하나 나왔습니다. 똑같이 chmod로 권한을 설정해줘야 하는것 같았습니다. 다시 똑같이 스크립트를 입력하고 출력을 해보겠습니다. 패스워드를 발견할 수 있었습니다.

bandit 2022.06.10

[Overthewire] level 20 -> level 21

문제를 보겠습니다. 해석을 하자면, 홈 디렉토리에는 명령줄 인수로 지정한 포트의 localhost에 연결하는 setuid 이진 파일이 있다. 그리고 다음 연결에서 텍스트 줄을 읽고 bandit20의 암호와 비교합니다. 암호 비교를 마치면 다음 레벨에 대한 패스워드를 제공한다. 바로 풀이를 하겠습니다. 전에 받았던 패스워드로 로그인을 한 후, ls를 하니 setuid의 권한을 가진 파일이 하나 발견 되었습니다. 흠...그래서 고민을 해보다가 nc명령어가 있다보니 사용해야 될 거 같았습니다. nc명령어는 원하는 형태의 종류의 접속형태를 만들어 냅니다. 터미널을 하나 켜서 그럼 임의의 포트를 하나 만들어 보겠습니다. 그리고 저 setuid 파일을 가지고 만든 임의의 포트로 실행을 시켜보겠습니다. 그다음, nc..

bandit 2022.06.10

[Overthewire] level 19 -> level 20

문제를 보겠습니다. 해석을 해보면, 홈 디레거리에 있는 setuid 의 권한을 가진 파일이 있다. 그것을 이용해서 비밀번호를 구해라 setuid는 root만 접근할 수 있는 파일을 일반 사용자도 실행을 할 수 있게 해주는 권한?이다. bandit20-do를 보면 -rws가 붙었습니다. S가 붙게 되면 setuid의 권한을 지니고 있는 파일임을 알 수 있습니다. 이 파일을 가지고 바로 문제를 풀어볼게용! 원래 bandit20-do를 사용하지 않고 열면 이렇게 됩니다. 권한에 막히기 때문에 setuid가 설정된 파일을 이용해서 패스워드를 볼 수 있었습니다.

bandit 2022.06.07

[Overthewire] level 18 -> level 19

문제를 보겠습니다. 해석을 하자면, 다음 레벨의 비밀번호는 홈 디렉터리의 readme 파일에 있다. 하지만 ssh로 로그인을 하면 로그아웃이 되게끔 만들어 놨으니 쉘을 우회하거나 해봐라 이말이네여?? 바로 풀어보겠습니다. 정상적으로 로그인을 해보면 이렇게 나옵니다. Byebye?? 이상한 친구네요... 그럼 readme 파일에 있다니까 바로 출력을 시켜 보겠습니다. 이렇게 풀수도 있고, 다른 방법으로도 풀어 보겠습니다. -t 옵션은 pseudo -tty를 강제 할당합니다. 그냥 쉽게 말해서-t /bin/sh는 쉘 스크립트를 강제로 실행하는 것 입니다. 쉘은 커널과 사용자를 연결해주는 하나의 매개체 역할을 합니다. 명령어를 입력하면 $표시로 되어 바뀌게 됩니다. 일회용으로 권한을 탈취한 것이기 때문에 패스..

bandit 2022.06.07

[Overthewire] level 16 -> level 17

문제를 보겠습니다. 해석을 해보면, localhost로 접속하기 위한 포트가 범위가 31000 ~ 32000 사이에 있다. 이말은 즉, 포트 번호를 찾아라 이말이죠? nmap 명령어로 바로 찾아 보겠습니다. 5개가 존재하는데, 하나씩 다 실행시켜보면 31790 포트 번호에서 RSA키를 줍니다. 패스워드는 16번 로그인 패스워드를 입력 하시면 됩니다. RSA키를 얻었다면, 아까 13번처럼 파일에다가 저장을 해야됩니다. 그래서 복사를 해서 하나의 파일로 만들어봅시다. 임의적인 디렉터리를 하나 생성해주고, 안에 빈 파일을 하나 만들어 준 다음 값을 채워넣었습니다. 그리고 바로 접속을 해보겠습니다. 권한 에러가 뜨는것으로 보아, 루트 사용자만 접속을 하게 끔 해주면 될 거 같습니다. 정상적으로 bandit17이..

bandit 2022.06.07

[Overthewire] level 15 -> level 16

문제를 보겠습니다. 해석을 해보면, 다음 레벨의 비밀번호는 SSL 암호화를 사용하여 localhost의 포트 30001에 현재 비밀번호를 제출하여라. 에러를 제거하고 싶으면 ign-eof를 추가하여라. 바로 접속을 해볼까요? 명령어에 대해서 간단히 설명하겠습니다. openssl은 네트워크를 통한 데이터 통신에 쓰인다. s_client와 -connect는 서버에 연결하기 위해서는 꼭 필요한 친구이다. openssl s_client -connect [서버]:[포트번호] 가 형식이다. 그래서 답을 구할 수 있었다.

bandit 2022.06.07

[Overthewire] level 13 -> level 14

문제를 보겠습니다. 해석을 하자면, 다음 레벨의 비밀번호는 /etc/bandit_pass/bandit14에 저장되어 있으며, 사용자만 읽을 수 있다. 이말은 즉, bandit14의 계정으로 로그인을 하라는 뜻이다. 바로 문제를 풀어보겠습니다. ls 명령어를 해보니 sshkey.private 파일이 있었고, 출력을 해보니 RSA 공개키가 있었다. 그래서 문제에 맞게, 경로를 이동 해보도록 하자. 출력을 해보니 권한에 막힌다.. 우리가 문제를 풀 때 ssh로 접속을 하는 것으로 보아, 마찬가지로 똑같이 접속이 가능할 것이다. 바로 접속을 해보도록 하자. 로그인이 되었다. 패스워드 경로는 문제에서 주어졌고, 그대로 출력하면 패스워드를 구할 수 있다.

bandit 2022.06.07