| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 쿠키변조
- bandit #밴딧 #웹해킹 #해킹 #화이트해커 #공부 #스터디 #IT #hacking #linux #openssl #nmap
- androGoat
- pentest
- 취약점 진단
- androidhacking
- 모의해킹
- error-based
- 안드로이드 모의해킹
- Bandit
- time-based
- msfconsole #heartbleed #247ctf #misc #webhacking
- Linux
- sql injection
- 리눅스
- 밴딧
- Today
- Total
d0r1
[bandit] 16-20 본문

[15->16]

읽어보면, 패스워드를 30001 (localhost)로 SSL 암호화를 사용해 제출하라고 한다.
SSL 관련해서는, 아래에 openssl 을 사용하면 될 것이라고 짐작이 간다.

뭐,, openssl은 TLS, SSL 프로토콜을 사용하는 오픈소스 툴킷이다. 정도로만 알고 가자
openssl 사용법은 다양하지만, 해당 문제에서는 s_client를 사용하기에 s_client에 대해 간략히 알면 된다
openssl s_client -connect HOST:PORT
다음과 같은 구문으로 접속할 수 있다.
다시 문제로 돌아가서, localhost의 30001 포트에 패스워드를 입력하라고 하였기에
시도해보자

접속을 시도하니, 다양한 값들이 출력되는데
이는 인증서에 대한 정보들이다
그 후, 우리는 이전 패스워드를 제출하여야 하여야한다

그럼 다음과 같이, Correct 라는 문장과 패스워드가 출력된다
pw : JQttfApK4SeyHwDlI9SXGR50qclOAil1
[16->17]

앞선 방법과 동일하지만, 이번에는 31000 ~ 32000 사이의 랜덤한 값 1개로 포트가 열려 있으니, 해당 포트를 찾아서 제출하라고 한다.
포트 확인을 위해, nmap을 사용하는 것이 권장되므로, 포트 스캔을 진행해보자
https://nmap.org/book/man-briefoptions.html
해당 페이지의 nmap manual을 사용해서 범위 스캔을 진행해보자

총 다섯 개의 포트가 열려있음을 확인할 수 있다.
한 개가 나온다고 하였는데, 5개가 나온 이유는 뭘까
아무튼 하나 하나 다 확인을 해보자

위처럼 몇번 반복을 해주니 rsa private key를 출력해주는 포트가 있었다


제출을 하면, 다음과 같이 key가 출력된다
MIIEogIBAAKCAQEAvmOkuifmMg6HL2YPIOjon6iWfbp7c3jx34YkYWqUH57SUdyJ
imZzeyGC0gtZPGujUSxiJSWI/oTqexh+cAMTSMlOJf7+BrJObArnxd9Y7YT2bRPQ
Ja6Lzb558YW3FZl87ORiO+rW4LCDCNd2lUvLE/GL2GWyuKN0K5iCd5TbtJzEkQTu
DSt2mcNn4rhAL+JFr56o4T6z8WWAW18BR6yGrMq7Q/kALHYW3OekePQAzL0VUYbW
JGTi65CxbCnzc/w4+mqQyvmzpWtMAzJTzAzQxNbkR2MBGySxDLrjg0LWN6sK7wNX
x0YVztz/zbIkPjfkU1jHS+9EbVNj+D1XFOJuaQIDAQABAoIBABagpxpM1aoLWfvD
KHcj10nqcoBc4oE11aFYQwik7xfW+24pRNuDE6SFthOar69jp5RlLwD1NhPx3iBl
J9nOM8OJ0VToum43UOS8YxF8WwhXriYGnc1sskbwpXOUDc9uX4+UESzH22P29ovd
d8WErY0gPxun8pbJLmxkAtWNhpMvfe0050vk9TL5wqbu9AlbssgTcCXkMQnPw9nC
YNN6DDP2lbcBrvgT9YCNL6C+ZKufD52yOQ9qOkwFTEQpjtF4uNtJom+asvlpmS8A
vLY9r60wYSvmZhNqBUrj7lyCtXMIu1kkd4w7F77k+DjHoAXyxcUp1DGL51sOmama
+TOWWgECgYEA8JtPxP0GRJ+IQkX262jM3dEIkza8ky5moIwUqYdsx0NxHgRRhORT
8c8hAuRBb2G82so8vUHk/fur85OEfc9TncnCY2crpoqsghifKLxrLgtT+qDpfZnx
SatLdt8GfQ85yA7hnWWJ2MxF3NaeSDm75Lsm+tBbAiyc9P2jGRNtMSkCgYEAypHd
HCctNi/FwjulhttFx/rHYKhLidZDFYeiE/v45bN4yFm8x7R/b0iE7KaszX+Exdvt
SghaTdcG0Knyw1bpJVyusavPzpaJMjdJ6tcFhVAbAjm7enCIvGCSx+X3l5SiWg0A
R57hJglezIiVjv3aGwHwvlZvtszK6zV6oXFAu0ECgYAbjo46T4hyP5tJi93V5HDi
Ttiek7xRVxUl+iU7rWkGAXFpMLFteQEsRr7PJ/lemmEY5eTDAFMLy9FL2m9oQWCg
R8VdwSk8r9FGLS+9aKcV5PI/WEKlwgXinB3OhYimtiG2Cg5JCqIZFHxD6MjEGOiu
L8ktHMPvodBwNsSBULpG0QKBgBAplTfC1HOnWiMGOU3KPwYWt0O6CdTkmJOmL8Ni
blh9elyZ9FsGxsgtRBXRsqXuz7wtsQAgLHxbdLq/ZJQ7YfzOKU4ZxEnabvXnvWkU
YOdjHdSOoKvDQNWu6ucyLRAWFuISeXw9a/9p7ftpxm0TSgyvmfLF2MIAEwyzRqaM
77pBAoGAMmjmIJdjp+Ez8duyn3ieo36yrttF5NSsJLAbxFpdlc1gvtGCWW+9Cq0b
dxviW8+TFVEBl1O4f7HVm6EpTscdDxU+bCXWkfjuRb7Dy9GOtt9JPsX8MBTakzh3
vBgsyi/sN3RqRBcGU40fOoZyfAMT8s1m/uYv52O6IgeuZ/ujbjY=
해당 키를 저장해서, ssh로 접근하면 될 거 같다
[+] 삽질을 했다. 내가 잘못 설정한건가 싶어서 구글링도 해보고 했지만 아무래도 문제가 바뀐 듯 하다?
local storage에 해당 키를 저장하고, 해당 키를 통해 bandit17로 ssh 로그인을 수행하면 된다


[17->18]

파일이 두개 존재하는데, old, new 중 new에 패스워드가 저장되어 있다고한다.


많이 긴 암호화..? 혹은 그냥 무작위 문자열이 존재한다
두개의 차이점을 확인하면 된다고 한다.
차이점을 확인하는 명령어는 diff 를 통해 확인할 수 있다
https://man7.org/linux/man-pages/man1/diff.1.html
나는 두 파일의 차이를 먼저 확인하기 위해 -c 옵션을 사용했다

! 된 부분이 이전의 파일과 다른 것을 확인할 수 있다.
앞서 new에 password가 있다고 했으므로, hga.. 가 패스워드임을 짐작할 수 있다.
pw : hga5tuuCLF6fFzUpnagiMN8ssu9LFrdg

Notice를 확인해보면, ByeBye 라고 출력이 되면, 해당 문제를 푼 것이 맞고 이는 19레벨에 사용되는 것이라고 한다.
일단은 킾 해두자
[18->19]

홈디렉토리 안에, readme 에 패스워드가 저장되어 있는데
누가 .bashrc 파일을 수정해서, 로그인하면 로그아웃 된다고 한다
bye가 뜬 이유가 이거인가보다
ssh ~~ "command" 를 통해 명령을 수행할 수 있다

readme 파일이 있음을 확인할 수 있다.

pw : awhqfNnAbc1naukrpqDYcF95h7HoMTrC
[19->20]

setuid가 설정된 파일을 통해, /etc/bandit_pass 내의 파일을 열어보라고 한다

우선 20-do 제외하고 특별한 파일은 보이지 않는다
s -> setuid가 설정되어 있음을 확인할 수 있다.
이를 실행해보자
다른 유저의 권한으로 명령어를 실행하는 거 같다.
id를 통해

euid가 20으로 설정되어있다.
즉, 해당 파일을 통해, 20의 권한으로 명령을 사용할 수 있다.

해당 권한을 통해, 앞서 말한 경로내에 어떤 파일들 혹은 디렉터리가 있는지 확인해보자
안에는 다양한 파일이 있었는데, 우리는 20번의 패스워드를 알면 되기에 20번을 열어봐야한다

ascii로 작성된 파일임을 확인했으니, 해당 파일을 열어 확인해보면 pw가 출력된다.
pw : VxCazJaVykI6W36BkBU0mJTCM8rR95XT
[20->21]
'bandit' 카테고리의 다른 글
| [bandit] 12-15 (0) | 2023.09.19 |
|---|---|
| [bandit] 6~11 (1) | 2023.09.19 |
| [bandit] 4-5 (0) | 2023.06.19 |
| [bandit] 0~3 까지 풀이 (0) | 2023.06.15 |
| [bandit] (0) | 2023.06.15 |