id : bandit21 password : NvEJF7oVjkddltPSrdKEFOllh9V1IBcq (2023.11 기준) cron job 스케줄러를 통해 웬 프로그램이 주기적으로 동작한답니다. /etc/cron.d/ 를 살펴보고 어떤 커맨드가 동작 중인지 알아보라고 하네요. 참 좋은 문제입니다. 안그래도 이제까지 기본사용법은 잘 익혔고 crond 는 따로 다뤄야 하나 싶었는데 이때쯤 문제로 나오네요. 풀이는 매우 쉽습니다.. 더보기 /etc/cron.d 로 이동하면 cronjob 들이 등록되어 있습니다. 우리는 지금 bandit21 이므로 22 단계의 작업을 살펴봅시다. 보니까 22단계의 패스워드를 /tmp/ 의 특정 파일로 옮겨주고 있었네요 해당 파일을 읽어보면 다음단계로의 패스워드를 알 수 있습..
id : bandit20 password : VxCazJaVykI6W36BkBU0mJTCM8rR95XT (2023.11 기준) 문제 목표를 살펴봅시다. 19 단계 문제와 마찬가지로 홈디렉토리에 setuid binary 파일이 있고, 다음의 기능을 수행한다고 합니다. 내가 명령어 인자로 지정한한 로컬 호스트 포트에 연결을 만들고, 연결로부터 전달된 텍스르 라인을 읽고, 이전 20단계의 패스워드와 비교한다. 만약 패스워드가 정확하다면, 21단계로의 패스워드를 전달할 것이다. 참고 : 당신의 네트워크 데몬에 연결을 시도해서 그것이 생각대로 작동하는지 확인하세요. 그러니까 19단계와 같은 방식으로 setuid binary 를 실행해보면 되겠습니다. 함께 풀어봅시다. 더보기 우선 열려있는 포트를 점검하고 작동중인..
id : bandit19 password : awhqfNnAbc1naukrpqDYcF95h7HoMTrC (2023.05 기준) 다음 단계로의 접속을 얻기 위해서는 홈디렉토리에서 setuid binary 를 사용해야만 합니다. 홈디렉토리에 존재하는 bandit20-do 파일을 ./bandit20-do 식으로 인자 없이 실행해보세요. 이번 단계의 패스워드는 setuid binary 를 사용한 다음에 일반적인 장소(/etc/bandit_pass) 에서 찾을 수 있습니다. setuid 개념과 풀이과정을 같이 살펴봅시다. 더보기 우선 bandit19 의 홈디렉토리를 살펴봅시다. bandit20-do 는 실행가능한 binary 파일입니다. 우리는 bandit19 이므로 소유자 그룹 권한에 의해서 해당 파일을 실행시..
id : bandit18 password : hga5tuuCLF6fFzUpnagiMN8ssu9LFrdg (203.05 기준) 홈디렉토리 안 readme 파일에 패스워드가 저장되어 있지만, 불행하게도.. 누군가가 우리가 ssh 에 로그인 했을때 로그아웃 하도록 .bashrc 를 바꿔놓았다고 합니다. 풀어봅시다. 더보기 bandit17 에서 획득한 패스워드로 로그인 하면 ByeBye 메세지가 나타나며 자동 로그아웃됩니다. 순식간에 로그아웃되서 캡쳐는 못떴습니다.. 인증 문제는 다 끝난줄 알았는데.. ssh 옵션을 사용해서 어떻게든 해결해햐 할 것 같습니다. 그래도 우리는 bandit18 패스워드를 알고 있습니다. 그리고 문제에서는 어마어마한 힌트를 줬습니다. 사용자 홈디렉토리의 readme 파일에 패스워드가..
id : bandit17 password : VwOSWtCA7lRKkTfbr2IDh6awj9RNZM5e (2023. 05 기준) 홈디렉토리에는 두개의 파일이 있습니다. 다음단계로의 패스워드는 passwords.new 에 있고 passwords.old 와 passwords.new 간 바뀐 한 줄에 있다고 하네요. ssh 와 인증 관련된 문제는 지나가고 리눅스 기본 커맨드를 활용한 파일 비교 문제입니다. 풀러 가봅시다. 더보기 홈디렉토리를 살펴보고 passwords.new 파일을 대충 훑어 보니 아래와 같은 모양입니다. passwords.old 도 동일하게 3300 byte 파일 사이즈네요 passwords.old 를 더 살펴보지 않아도 두개의 파일 내용이 거의 같고 딱 한줄만 변경되었다는 걸 알 수 있습니..
id : bandit16 password : JQttfApK4SeyHwDlI9SXGR50qclOAil1 (2023.05 기준) localhost 31000번 포트부터 32000번 포트 범위 내에 현재 패스워드를 제출해야 다음단계로 가는 자격증명을 얻을 수 있다고 합니다. 우선 서버에서 어떤 포트들이 리스닝 하고 있는지 부터 확인해보세요. 그리고 서버가 SSL 통신을 하는지, 아닌지를 확인해보세요. 단 하나의 서버만 다음 단계 자격증명을 줄 것이고, 다른 것들은 당신이 무엇을 보내던지 간단히 되돌려 보낼 것입니다. 우선 열려있는 포트부터 확인해야겠네요 netstat 을 이용해도 좋고 nmap 을 이용해도 좋습니다. 함께 풀어봅시다. 더보기 이번 문제에서는 특정 범위 내에 열려있는 포트를 확인해야 합니다. ..
id : bandit15 password : jN2kgmIXJ6fShzhT2avhotn4Zcka6tnt (2023.05 기준) ssl 암호화를 이용해서 localhost 30001번 포트로 현재 패스워드를 제출하면 다음 레벨로의 패스워드를 얻을 수 있다고 합니다. 이번 문제는 openssl 을 공부하고 풀어봅시다. 더보기 로그인하면 홈디렉토리에서 bandit14 패스워드를 확인할 수 있습니다. 지난 단계에서 제출한 값과 맞는지 비교하는데 사용되었겠죠 헤깔리지 말고 bandit15 의 패스워드 부터 확인해둡니다. openssl --help 를 살펴보니 다양한 서브 커맨드 들을 지원하는게 눈에 띕니다. 우리가 이용해야할 서브커맨드는 s_client 입니다. 리눅스에서 우리가 사용할 openssl 명령은 ss..
id : bandit14 password : fGrHPx402xGC7U7rXKDaxiWFTOiF0ENq (2023. 04월 기준) 현재 레벨의 패스워드를 localhost 30000번 포트로 패스워드를 제출하면 다음 레벨로의 패스워드를 되찾을 수 있다고 합니다. 이번 문제를 풀기 전에 IP address 와 Port 에 관해서 개념이 불확실 하다면 [IP 주소와 Port의 쉬운 설명]을 읽고 오시길 권해드립니다. 더보기 처음 접속해서 패스워드를 확인해봅니다. localhost 30000 으로 접속을 하고 패스워드도 제출해야 합니다. telnet 으로 포트번호 30000 으로 접속해봅시다. connected to localhost 가 나타나내요. 즉 연결이 잘되었습니다. ctrl + x 로 빠져나가기(es..
id : bandit13 password : wbWdlBxEir4CaE8LaPhauuOo6pwRmrDw (2023.04 기준) /etc/bandit_pass/bandit14 에 패스워드가 저장되어 있는데, bandit14 user 만 읽을 수 있다고 합니다. 이번 단계에서는 패스워드를 획득하는게 아니라 ssh 개인키를 이용하면 통과할 수 있다고 하네요. 그동안 별 생각없이 ssh 로 원격 로그인을 이용해왔지만 이제는 ssh 통신의 세부 원리 를 알아야 할 때가 되었습니다. ssh 통신의 세부 원리부터 공부하고 이 문제에 접근해봅시다. 더보기 ssh 를 통해 서버에 최초로 접속하면 이런식의 메세지를 볼 수 있습니다. 꼭 bandit13 이 아니라 bandit.overthewire.org 에 한번이라도 접속..
id : bandit12 password : JVNBBFSmZwKKOP0XbFXOoW8chDz5yVRv (2023.4월 기준) 다음단계로의 패스워드는 반복적으로 압축된 hexdump 파일인 data.txt 에 저장되어 있다고 합니다. 이번 단계에서는 /tmp 밑에 디렉토리를 만들고, cp 와 mv 를 이용하는게 좋을거라고 안내하고 있습니다. 살펴봅시다. data.txt 는 ascii 기반의 텍스트 파일이지만 내용은 16진수(hex) 로 이루어진 메모리 덤프(dump) 파일이네요 위의 덤프파일의 왼쪽 부분은 메모리 번지수를 의미하고, 가운데는 실제 메모리에 저장된 값들을 의미합니다. 오른쪽은 hex 데이터를 ascii 문자로 치환해서 표시한 값인데, 유의미한 문자열일 수도 있고 무의미한 문자열을 나타낼 수..
- Total
- Today
- Yesterday
- OverTheWire
- find
- over the wire
- 압축파일
- solution
- Encode
- 리눅스
- java
- 리터럴
- 웹보안공부
- Bandit
- bz2
- OpenSSL
- tr
- gz
- SSL
- ssh
- 풀이
- X32
- HTTPS
- tar
- Linux
- grep
- BASE64
- 32bit
- nc
- Strings
- natas7
- Natas
- 웹보안
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |