일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- War Game
- THM
- Cookie
- active reconnaissance
- file upload
- overthewire
- php login page
- php 로그인 페이지 만들기
- Recon
- over the wire
- access control
- php 파일 업로드하기
- SQLi
- ssrf
- Leviathan
- active recon
- php To Do List
- privilege escalation
- BANDiT
- php file upload
- php
- 파일 업로드 취약점
- Server Side Request Forgery
- FTZ
- Cryptography
- Authentication
- tryhackme
- Reconnaissance
- sql injection
- OS Command Injection
- Today
- Total
R's Hacking Daily Log
Bandit23 본문
Overthewire - Bandit level23
Connection : bandit23@bandit.labs.overthewire.org -p 2220
username : bandit23
Bandit level23 ) 문제는 이전 level과 비슷하다!
Note 내용을 보니 shell-script를 만들어야 하나보다. 또한 한 번 실행된 shell은 제거된다는 것을 기억하라고 주의하고 있다.
(이번 level.. 지금까지의 문제 중에 제일 어려웠던 것 같다. 몇 번을 시도했는지..)
Kali linux - Terminal
일단 /usr/bin/cronjob_bandit24.sh내용을 읽어보자.
대충 읽어보니 /var/spool/bandit24/foo 안에 있는 모든 script는 실행된 후, 삭제된다고 한다.
그렇다면 /var/spool/bandit24/foo에다가 직접 만든 shell을 넣어주면 될 거 같다.
shell은 당연히 bandit24의 passwd를 접근할 수 있는 파일로 가져오도록 작성할 것이다.
일단 shell을 만들 diretory를 만들어주고, vi command로 shell을 작성한다.
vi는 text editor인데, 기본적인 사용법은 익혀두는 것이 좋다.
① 내용을 작성하기 위해서 i를 눌러주고 (그러면 하단에 --INSERT라는 line을 볼 수 있음)
② 다 작성한 후에는 Esc를 눌러서 작성 모드에서 나와준다.
③ editor를 종료하기 위해서는 :wq를 눌러주면 된다.
" : "을 입력하면 하단 line에서 키보드로 입력한 내용이 출력되는 것을 볼 수 있을 것이다.
ls -al로 확인해보니 bandit24_pass.sh이 생성된 것을 볼 수 있다.
다만, 해당 shell은 /var/spool/bandit24/foo에서 실행시킬 것이므로
chmod command를 이용해 권한을 바꿔야 한다.
chmod +x bandit24_pass.sh
작성한 shell에서 /etc/bandit_pass/bandit24의 내용을 /tmp/~~/password.txt로 읽어올 것이라고 했다.
위의 과정은 해당 file을 미리 만들어두는 과정이다.
(굳이 만들어두지 않아도 되는 걸로 알고 있긴 하지만? 혹시 모르니까 ㅎ.ㅎ)
이제 만들어둔 shell을 /var/spool/bandit24로 copy 하자.
/var/spool/bandit24/foo directory에 있는 shell 이라고 했으니까 cp 할 때 해당 경로의 shell로 넣어준다.
실행이 제대로 안 돼서 생각을 해보니 /tmp/tmp.u6 vHGLAyBv에 대한 권한 설정을 하지 않았다..
해당 directory에 있는 shell에 접근해서 bandit24_pass.sh를 cp 해 가야 하므로
user 말고 다른 사용자에 대한 권한 설정을 해줘야 한다.
다시 /var/spool/bandit24/foo로 복사해주고 실행돼서 password.txt로 내용을 받아올 때까지 기다린다.
조금 기다리고 나서 확인해보니 password.txt의 size가 변경된 것을 알 수 있다!
어떤 내용이 작성되었으니 size가 늘어났을 것. 그 내용은 바로~ bandit24의 passwd다 ~ ㅎ.ㅎ
COMMAND)
touch "file name" //file name의 file을 생성.
vi "file name" //vi editor로 작성한 내용으로 file 만들어
mktemp -d // /tmp/~ 형태의 directory 만들어줘.
mkdir 과 mktemp의 차이점은 쉽게 말해,
mkdir는 사용자가 원하는 directory 이름으로 생성할 수 있고,
mktemp -d는 굉장히 랜덤한 느낌의 directory를 알아서 만들어준다.