반응형

MacOS 31

Mac OS docker run 실행 시 경로 설정

맥미니에 도커를 올려 홈서버로 사용하려고 한다. 맥미니는 mac os를 운영체제로 하기 때문에 구축하는데 있어 오류가 생기는 경우가 종종 생긴다. 다음은 그 오류중에 하나를 가지고 왔다. docker run 명령어를 사용하게되면 일부 이미지들은 볼륨을 옵션으로 추가해주어야 한다. docker run -d -p 8080:80 -v /path/to/host/directory:/path/in/container nginx 다음은 nginx 컨테이너를 만들어 실행하는 명령어 예시이다. 여기서 -v /path/to/host/directory:/path/in/container 이 부분을 살펴보자 -v는 볼륨 옵션이다. 하지만 예시로 들어주는 볼륨 경로는 mac os와 맞지 않는것이 대부분이다. :를 기준으로 왼쪽은 ..

홈서버 구축 2023.08.01

해커스쿨 ftz level20 (macOS)

해커스쿨 ftz Level20 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level20 단계이다. 드디어 마지막이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level20@서버ip 라고 입력합니다. Id: level20, pw: we are just regular guys 로 로그인하고 파일을 확인하였다. hint를 확인하니 이번에는 배열의 크기보다 작은 크기의 값을 입력받는다. 이번에는 printf에 bleh라는 배열을 그대로 넣어 출력하기 때문에 이를 이용해야겠다. 프로그램을 실행하여 아무값이나 넣어보았다. 일반 문자는 그대로 출력하는 반면 서식문자는 메..

해커스쿨 ftz level19 (macOS)

해커스쿨 ftz Level19 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level19 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level19@서버ip 라고 입력합니다. Id: level19, pw: swimming in pink 로 로그인을 하고 파일을 확인하였다. hint를 확인하였는데 비교적 짧은 코드가 나왔다. setreuid함수가 없어서 이를 포함한 쉘코드를 환경변수를 사용하여 풀어야겠다. Gdb를 실행하였다. Main함수의 구조를 살펴보니 44바이트를 채우고 shell 코드의 주소를 넣으면 될 것 같다. tmp로 이동하여 환경변수에 등록하..

해커스쿨 ftz level18 (macOS)

해커스쿨 ftz Level18 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level18 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level18@서버ip 라고 입력합니다. Id: level18, pw: why did you do it 으로 로그인하여 파일을 확인하였다. hint를 확인하니 이전보다 긴 코드가 출력되었다. 쉘이 실행되기 위해서는 shellout함수가 실행되어야하고 그러기 위해서는 check값이 0xdeadbeef가 되어야 한다. gdb를 실행하였다. Main함수를 보니 코드처럼 내용이 많았다. check의 값보다 높은 주소에 string..

해커스쿨 ftz level17 (macOS)

해커스쿨 ftz Level17 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level17 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level17@서버ip 라고 입력합니다. Id: level17, pw: king poetic 로 로그인을 하고 파일을 확인하였다. hint를 확인하니 이전단계의 코드에서 shell함수가 사라졌다. 쉘코드를 환경변수를 이용하여 사용해야겠다. gdb를 사용하였다. Main함수를 보니 15바이트의 nop코드 후 shell코드를 넣으면 될 것 같다. $export EGG=`python -c 'print"\x90"*15+"\x31\..

해커스쿨 ftz level16 (macOS)

해커스쿨 ftz Level16 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level16 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level16@서버ip 라고 입력합니다. Id: level16, pw: about to cause mass 로 로그인하여 파일을 확인하였다. hint를 확인하니 shell함수와 printit함수, main함수가 보인다. Main함수는 printit 함수의 주소를 호출하는데 이를 shell함수의 주소로 바꾸어주면 될 것 같다. gdb를 통해 main함수를 확인했다. 20바이트의 buf와 20바이트의 dummy를 아무값으로 채..

해커스쿨 ftz level15 (macOS)

해커스쿨 ftz Level15 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level15 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level15@서버ip 라고 입력합니다. Id: level15, pw: guess what 으로 로그인하여 파일을 확인하였다. hint를 확인하니 이번엔 check가 주소값을 입력받도록 되어있다. gdb로 가서 0xdeadbeef가 존재하는 곳을 찾아보았다. 값들 사이에 beef와 dead가 나뉘어 숨어있는 것을 볼 수 있다. 0x80484b2 주소에 0xdeadbeef 값이 들어 있는 것을 알 수 있다. (python -..

해커스쿨 ftz level14 (macOS)

해커스쿨 ftz Level14 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level14 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level14@서버ip 라고 입력합니다. Id: level14, pw: what that nigga want? 로 로그인을 하고 파일을 확인하였다. hint 를 확인하니 이번엔 check 값이 0xdeadbeef가 되어야 함을 알 수 있었다. gdb를 통해 보면 buf 20바이트, dummy 20바이트 후에 check값 4바이트가 나오는 것을 확인하였다. (python -c 'print "A"*40+"\xef\xbe\xad..

해커스쿨 ftz level13 (macOS)

해커스쿨 ftz Level13 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level13 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level13@서버ip 라고 입력합니다. Id: level13, pw: have no clue 로 로그인하여 파일을 확인하였다. hint를 확인하니 소스코드가 나왔고 코드를 살펴보니 i의 값이 0x1234567로 잘 덮어주면 될 것 같다. gdb를 통해 attackme 프로그램을 보기로 했다. main함수의 구조를 확인하였다. buf 배열과 dummy부분을 아무값이나 채우고 i는 01234567로 채우고 다시 dummy값고..

해커스쿨 ftz level12 (macOS)

해커스쿨 ftz Level13 MacOS에서 푸는 해커스쿨 ftz 해커스쿨 ftz level13 단계이다. 먼저 ftz서버를 실행한다. 서버 실행을 모르면 ftz trainer1 단계에 소개되어 있다. Mac의 터미널을 열어 서버에 접속합니다. 명령어는 ssh -c aes128-cbc level13@서버ip 라고 입력합니다. Id: level12, pw: it is like this 로 로그인을 한 후 파일을 살펴보았다. Hint의 내용을 살펴보았다. gets 함수를 통해 입력을 받는데 ret 값에 쉘코드의 주소를 입력시키면 될 것 같다. 우선 쉘코드를 작성하였다. tmp 디렉토리에서 $export EGG=`python -c 'print "\x90"*15+"\x31\xc0\x50\x68\x2f\x2f\x..

반응형