리눅스 워게임 33

OverTheWire_Level 31 -> Level 32

Lv 32 > 이전 포스팅들과 동일한 방법으로 repository를 다운받았습니다. 처음보는 파일인 [ .gitignore ] 가 있는 것을 확인할 수 있습니다. [ README.md ] 파일에는 "This time your task is to push a file to the remote repository."라고 적혀있습니다. 해당 설명에 부합하는 파일을 만들어 push해야 한다는 말 같은데, .gitignore 파일에서 *.txt가 걸립니다. 일단 파일부터 만들겠습니다. $ git push 위의 와 를 지정하지 않으면 디폴트로 remote는 origin을, branch는 현재의 브랜치를 지정해준다고 합니다. 현재 branch가 master이니, git push를 하면 git pu..

리눅스 워게임 2023.02.04

OverTheWire_Level 30 -> Level 31

Lv 31 > 이번에도 문제 자체의 내용은 동일하기 때문에, 이전 포스팅과 동일한 방법으로 진행하겠습니다. [ git clone ssh://bandit30-git@localhost:2220/home/bandit30-git/repo ] 이번에는 branch 자체가 없는 것을 확인할 수 있습니다. 아직 git에 익숙하지 않아 이것저것 시도해보다가 감이 안와서 .git 디렉터리로 돌아와서 파일부터 뒤적거렸습니다. 찾다보니 디렉터리 안의 packed-refs 파일을 열어보니 자주 보이던 해시와 함께 다른 해시를 발견할 수 있었습니다. secret 태그의 해시를 알아버렸으니 바로 내용을 확인할 수 있습니다. git tag 명령만 해봤어도 태그가 달려있다는걸 바로 알았을텐데 생각조차 못하고 있었..

리눅스 워게임 2023.02.03

OverTheWire_Level 29 -> Level 30

Lv 30 > 이번에도 문제 자체의 내용은 동일하기 때문에, 이전 포스팅과 동일한 방법으로 진행하겠습니다. [ git clone ssh://bandit29-git@localhost:2220/home/bandit29-git/repo ] 이전 포스팅과 동일하게 진행하다 보면 이번에는 password에 대한 변경 내용이 보이지 않습니다. 그렇다면, 각 branch들에 대한 변경 내용도 확인해보겠습니다. ( --branches ) [ git log -p --branches ] 밑으로 더 내릴 필요도 없이 dev branch에서 password를 변경했던 로그가 보입니다. bandit30 password is : xbhV3HpNGlTIdnjUrdAlPzc2L6y9EOnS

리눅스 워게임 2023.02.01

OverTheWire_Level 28 -> Level 29

Lv 29 > 이전 포스팅에서의 문제의 내용 자체는 완전히 동일합니다. 그러나 이번에는 README.md라는 파일을 열어보면 패스워드가 나와있지 않습니다. .md 파일은 [ 마크다운(MarkDown) ] 언어 파일로, 특히 github에서 아래 사진과 같이 " Add a README file " 항목을 체크하여 Repository를 추가하게 되면 README.md 파일이 추가되며, 해당 Repository의 프로젝트에 대한 설명, 기능 등을 기록할 수 있는 파일이 생성됩니다. markdown 파일 구성이 [ Python] 파이썬 ] 카테고리에서 자주 사용했던 .ipynb (Jupyter Notebook file)과 유사하다고 느껴집니다. 본론으로 돌아와서 git log 명령에서 -p ..

리눅스 워게임 2023.01.31

OverTheWire_Level 27 -> Level 28

Lv 28 > Git Repository (깃허브 저장소) 위치는 아래와 같습니다. [ ssh://bandit27-git@localhost/home/bandit27-git/repo ] 해당 저장소의 파일을 복사해야 합니다. 홈 디렉터리에서는 다운로드가 되지 않아 /tmp 디렉터리 아래에 디렉터리를 생성하여 다운로드합니다. port 22 어쩌구 오류가 또 나왔습니다. 2220 포트로 다시 다운받겠습니다. repo 디렉터리가 생긴 것을 확인할 수 있습니다. repo 디렉터리를 열면 README 파일이 보이고, 해당 파일 안에 bandit28의 비밀번호가 저장되어 있습니다. bandit28 password is : AVanL161y9rsbcJIsFHuw35rjaOM19nR

리눅스 워게임 2023.01.30

OverTheWire_Level 26 -> Level 27

Lv 27 > bandit26의 홈 디렉터리를 살펴보면 bandit27-do 파일이 있습니다. 퍼미션이 [ -rwsr-x--- ]로 특수 권한이 설정되어 있습니다. (Set-UID) [ ./bandit27-do 명령어 ] 형식으로 파일을 실행하면 bandit26이 아닌, bandit27의 권한으로 실행해주는 파일로 보입니다. 지난번 문제가 어려웠어서 그런지, 쉬어가는 단계처럼 느껴집니다. bandit26에 다시 접속하는 상황이 오면 저 단계들을 또 밟아야 하니, 빠르게 bandit27의 패스워드를 가져가라는 느낌도 납니다. bandit27 password is : YnQpBuifNMas1hcUFk70ZmqkhUU2EuaS

리눅스 워게임 2023.01.29

OverTheWire_Level 25 -> Level 26

Lv 26 > bandit26은 /bin/bash쉘이 아닌, 다른 무언가라고 합니다. 이 쉘을 찾아내어 어떠한 쉘인지, 어떻게 작동하는지, 어떻게 벗어나는지 알아봐야 합니다. 현재 사용중인 쉘은 당연하게도 배시쉘(/bin/bash)이고, /etc/shells 파일을 확인하여 여러가지 쉘들이 설치되어 있는 것을 확인했습니다. bandit26은 위에서 봤던 /usr/bin/showtext 쉘을 사용중입니다. 처음 보는 쉘입니다. 어떻게 연결할지 막막했는데, 홈 디렉터리에 bandit26.sshkey 파일이 있었습니다. 그러나 위 사진처럼 튕겨나옵니다. 도저히 못찾겠어서 찾아보니 bandit26으로 ssh 접속을 시도해서 [ exit 0 ]코드가 실행되지 않게 [ more ~/text.tx..

리눅스 워게임 2023.01.28

OverTheWire_Level 24 -> Level 25

Lv 25 > Daemon은 Port 30002번에서 수신 대기중이라고 합니다. [ pago-services2 ] 라는 데몬이 수신 대기중인 것을 확인할 수 있습니다. 해당 포트에 bandit24의 비밀번호와 4자리의 핀을 입력해야 하지만, Brute-forcing(무차별 대입 공격) 외에는 핀을 확인할 방법이 없다고 합니다. 입력은 위와 같이 bandit24의 비밀번호와 4자리의 핀 번호를 개행이 아닌 공백으로 구분합니다. 쉘 스크립트를 작성해서 무차별 대입 공격을 진행하겠습니다. [ brfc.sh ] 라는 파일을 생성한 후, 나중에 쉘 스크립트를 실행하기 위해 미리 퍼미션도 바꿔줍니다. var라는 변수를 생성 후 0000부터 9999까지 반복시킵니다. [ bandit24 패스워드 ..

리눅스 워게임 2023.01.27

OverTheWire_Level 23 -> Level 24

Lv 24 > 이번에도 /etc/cron.d 디렉터리를 확인해야 합니다. NOTE 1, 2를 보면 쉘 스크립트를 작성해야 되고, 실행되면 해당 스크립트 파일이 삭제된다고 합니다. 그러나 파일들의 내용이 복사 붙여넣기 수준으로 똑같기 때문에, 이전에 사용했던 방법으로도 충분히 패스워드를 얻어낼 수 있습니다. bandit24 password is : VAfGXJ1PBSsPSnvsjI8p759leLZ9GGar 물론 아래와 같은 일련의 과정으로 쉘 스크립트 파일을 직접 만들어서 실행해도 무방합니다.

리눅스 워게임 2023.01.26

OverTheWire_Level 22 -> Level 23

Lv 23 > 이번에도 /etc/cron.d 디렉터리를 확인해야 합니다. cronjob_bandit23 파일을 확인하면 될 것 같습니다. 이번에도 같은 위치에 쉘 스크립트 파일이 존재하는 것을 확인할 수 있습니다. 현재 계정 bandit22를 기준으로 디렉터리를 출력해주는 것을 확인할 수 있습니다. $mytarget이라는 변수를 가져와서 출력해주는 것이니, /tmp 디렉터리 아래의 값 ($mytarget)은 아래의 명령 출력 결과와 같아야 합니다. echo I am user bandit22 | md5sum | cut -d ' ' -f 1 즉, bandit22를 bandit23으로 변경하면 bandit23을 기준으로 $mytarget값을 알아낼 수 있습니다. bandit23 passwo..

리눅스 워게임 2023.01.25