일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- over the wire
- ssrf
- Reconnaissance
- 파일 업로드 취약점
- php To Do List
- SQLi
- access control
- php login page
- php
- sql injection
- FTZ
- Leviathan
- Server Side Request Forgery
- file upload
- php 로그인 페이지 만들기
- War Game
- THM
- OS Command Injection
- Cryptography
- tryhackme
- active recon
- overthewire
- Recon
- php 파일 업로드하기
- BANDiT
- privilege escalation
- active reconnaissance
- Cookie
- Authentication
- php file upload
- Today
- Total
R's Hacking Daily Log
Bandit24 본문
Overthewire - Bandit level24
Connection : bandit24@bandit.labs.overthewire.org -p 2220
username : bandit24
Bandit level24 ) 이번 level에서는 localhost의 30002 port로 bandit24의 passwd와 4자리 pincode를 주면,
bandit25의 passwd를 얻을 수 있다고 한다.
bandit24의 passwd는 이미 아니까 괜찮은데, 문제는 pincode가 뭐냐는 것!!!
4자리 code라고 하면 0000~9999까지 총 10000개의 경우의 수가 있다.
이걸 10000번 명령어 쳐서 해본다?? 그건 너무 비효율적이다.
아마 이 부분을 위해 shell을 작성하게 하는 게 이 문제의 목적이지 않을까 싶다. 흠흠
문제에서 말하는 brute-forcing이라는 것이 쉽게 말해서,
간단한 업무를 반복적으로 실행시켜 보는 것을 말하는 데 이 문제에서는 pincode에 0000~9999까지
넣어보는 것이 이에 해당하시겠다~
그렇다면 shell을 이용해서 문제를 풀어보자.
Kali linux - Terminal
30002 port로 연결을 시도해보니, pincode checker라는 친구가 등장했다.
하라는 대로 passwd와 pincode를 입력했더니
"Wrong!" 라면서 정확한 pincode를 입력하라고 한다.
대충 "passwd + pincode" 형태로 작성해야 하고, 0000-9999 중 알맞은 1개의 pincode를 찾아내는 것이 임무인 듯.
임시 directory를 만들어주고 해당 directory에서 vi Editor로 shell을 만들어주자.
vi command로 editor에 작성한 내용이다.
0000부터 9999 pincode를 passwd와 함께 한 줄로 출력하도록 하는 for문을 실행하여 list.txt에 결과를 저장한다.
directory를 열어 확인해 보니, shell이 제대로 만들어진 것을 볼 수 있다.
실행하기 위해 chmod command로 권한을 변경해준다.
만든 쉘을 실행해주고~ 확인해보면 list.txt가 생성되었다.
...
한 번 읽어볼까?_? 싶어 열어봤더니 비밀번호와 pincode가 하나의 line으로 잘 연결된 것을 볼 수 있다.
(0000 ~ 9999까지 총 10000개의 line)
이제 생성된 list.txt의 값을 읽어서 30002 port로 연결할 때 일일이 대입하도록 하자.
결과값은 터미널에 출력하는 거 대신 result.txt로 넣어준다.
result.txt를 읽어봐도 그렇고 터미널에 출력시키면서도 봤는데 중간에 계속 끊겨서...
잔머리를 굴려봤다 ㅎ.ㅎ
지금까지 처리한 결과값의 라인 수를 세서 그 이후로부터 pincode를 다시 설정해서 실행시켜 보자!
wc -l option으로 result.txt의 line 수를 세어보니 6302줄이라고 한다.
그렇다면 6303부터 pincode를 시작하는 for문로 고치고 이어서 뒷부분을 실행해 보자.
6303부터 시작하는 brute_forcing 파일의 이름은 second.txt로 지정했다.
brute_force.sh을 다시 실행해서 생성된 second.txt를 확인해보니 6303부터 출력되는 걸 볼 수 있다~
필요 없는 파일들은 지워주고 second.txt로 30002 port에 연결을 재시도해보자.
결과값은 result.txt에 넣었다!
얼마 지나지 않아 바로 다음 line이 뜬 걸 보니, 작업을 모두 마친 것 같다.
결과로 만들어진 result.txt.. 확인해 보자!
주르륵 출력을 하다 보면..!!
하... 드디어ㅠㅠㅠㅠ (도대체 몇 번만에..)
bandit25의 passwd를 출력하고 있는 문장을 볼 수 있다!!
(+ TIP !)
shell을 작성할 때, 문법적인 오류로 제대로 실행이 안 되는 경우가 많다.
밑의 사이트에서 shell을 작성해보면 어떤 오류가 왜 났는지 알기 편해서 활용하기 좋을 거 같다!