전체 글

    ProjectH4C 3개월 2주차 과제 (해커스쿨 ftz - 2)

    해커스쿨 FTZ 2를 풀어보도록 하자. 너무 바쁘다 으으으윽 📖 1) 문제 파악 우선 나는 vi에서 쉘 명령을 실행시키는 법을 안다. vi 창을 열고 :!(명령어) 이렇게 해주면 된다. 우선 퍼미션 걸린 파일을 찾아보자. 📖 2) 문제 분석 /usr/bin/editor를 실행하면 된다는 것을 알았다. vim인 것 같다. 바로 명령을 실행해보도록 하겠다. 이렇게 가장 밑 command 부분에 whoami를 해보도록 하자. level3의 권한으로 해당 프로그램이 실행되는 것을 확인할 수 있다. 📖 3) 문제 풀이 level3의 권한으로 my-pass를 실행하도록 하자. 끝.

    ProjectH4C 3개월 2주차 과제 (해커스쿨 ftz - 1)

    이번엔 해커스쿨 FTZ를 풀어보도록 하자. level1 부터 시작한다. 📖 1) 문제 파악 find 명령을 통해 setuid가 걸린 파일을 찾아야 한다. 실행파일로 존재한 것 같으니 실행을 해보자. 📖 2) 문제 분석 프로그램을 실행시킨다면 딱 한 번 level2로써 살아갈 수 있다. my-pass명령을 ls에 붙여 사용했는데도 필터링 당하였다. level2로써 명령을 한 번 실행시킬 수 있지만 그 명령어가 bash나 sh가 된다면 어떻게 될까. level2의 bash나 sh가 끝나지 않는한, 프로그램은 종료되지 않을 것이다. 📖 3) 문제 풀이 풀었다. 별다른 풀이는 없다. 📖 4) 문제 해결, 느낀 점 사실 집에 문제풀이로 배우는 시스템 해킹 테크닉 책이 있다. 해커스쿨 문제 풀이집이라 중학생 때 반..

    ProjectH4C 3개월 2주차 과제(Dreamhack - basic_exploitation_002) : 실패

    포너블 아직 완전 쌩 초보이지만 정말 재미있는 것 같다. 📖 1) 문제 파악 포맷 스트링 버그를 이용한 공격인 것 같다. gdb와 ida를 통해 좀 더 보자. read 하고 printf 하는 과정을 유심히 봐야겠다. 그러면 flag를 출력해주는 함수가 존재할까 ? get_shell 함수는 존재한다. 주소는 0x08048609 이다. IDA로 열어보자. 우선 선언한 만큼 read를 해주기에 buf쪽에서 BOF를 생각하기는 힘들 것 같다. get_shell() 함수는 이렇게 system("/bin/sh")를 실행한다. 📖 2) 문제 분석 우선 첫 번째로 들어간 값을 가지고 놀 수 있다는 것은 위에서 확인을 하였다. (정확하게 어떻게 표현해야하는지 모르겠다.) 그러면 exit(0)코드에 Overwriting을..

    ProjectH4C 3개월 1주차 과제(Dreamhack - basic_exploitation_001)

    또 새로운 문제를 풀어보자. 재미있다 ㅎㅎㅎㅎㅎㅎ 📖 1) 문제 파악 이번에도 c파일이 존재하지만, 보지않고 풀어보도록 하자. 우선 실행을 하기 전에 보호기법을 먼저 보자. NX는 enabled가 되어있으므로 쉘코드는 불가능하지 않을까 싶다. 뭐지 ?? gdb로 열어보자. main함수 내부는 정말 무난하게 생긴 것 같다. 다른 함수들이 있는지 알아보자. read_flag 함수가 보인다. BOF를 통해서 RET를 0x080485b9 으로 덮으면 될 것 같다. 이게 main함수이다. read_flag 함수는 cat flag 명령을 실행시킨다. 📖 2) 문제 분석 방심은 금물이라지만, 이 문제는 매우 쉽게 풀 수 있을 것 같다. 먼저 gets함수에서 값을 끝없이 받아들일 수 있다. 하지만 s는 128 바이트이..

    ProjectH4C 3개월 1주차 과제(Dreamhack - basic_exploitation_000)

    드림핵의 문제들은 어떨까. 한 번 풀어보도록 하자. 📖 1) 문제 파악 이렇게 현재 buf의 위치를 출력해주고, 값을 입력받는다. 우선 프로그램에 적용되어있는 보호기법들을 확인해보자. NX가 적용되어있지 않은것을 보아 쉘코드를 올릴 수 있지 않을까 라는 생각이 들었다. 문제는 c파일을 제공했지만, 그래도 그냥 IDA로 분석해보겠다. 먼저 main 함수이다. 우선 initialize 함수는 그냥 30초지나면 TIMEOUT을 외치는 함수이다. 그래서 우리가 눈여겨 봐야할 부분은 scanf쪽이다. 먼저 v4는 128바이트만 선언이 되었지만 141바이트를 받아준다. 136바이트만 받더라도 RET까지 덮을 수 있기에 쉘코드를 넣으면 될거라고 생각하였다. 별 다른 함수가 존재하지는 않는다. 📖 2) 문제 분석 만약..

    우분투에 pip2 설치

    사실 pip3가 기본적으로 있긴 하지만 pwntools이 python2에 좀 더 잘 맞는 것 같기에 pip2도 설치를 하였다. linuxize.com/post/how-to-install-pip-on-ubuntu-20.04/ How to Install Python Pip on Ubuntu 20.04 Pip is a tool for installing Python packages. This guide explains how to install pip for Python 3 and Python 2 on Ubuntu 20.04. linuxize.com