농소
홈페이지 = http://overthewire.org/wargames/leviathan/ 우선 leviathan은 0단계부터 7단계까지 총 8단계의 문제가 있고난이도가 1/10라고 나와있는걸봐선 입문자가 풀기좋은 워게임인것 같네요간단히 풀어보도록 합시다./etc/leviathan_pass 디렉터리를 가보면 소유자만이 접근할 수 있는 패스워드 파일이 들어있다. 문제를 클리어 할 때마다 다음 사용자로 로그인하여 진행하는 방식이다. 우선 0단계를 시작해보겠다. 접속을하고나서 홈디렉터리에 ls -a 를 했을때 백업파일이 있음을 확인.들어가 보았더니 그룹권한으로 읽을 수 있었다 cat명령어로 읽어서 leviathan 단어가 있는곳을 찾아보았더니 패스워드를 발견. 0단계는.. 시스템 해킹이라고 볼순 없고 그냥 백업..
취약점 - 에러의 한 종류 - 모든 취약점은 에러다. - 하지만 모든 에러는 취약점이라고 할 순 없고, 여러 에러중에 취약점이 발생 메모리 변조 버퍼(스택) 오버 플로우 - 1995년도에 처음 발표 - smashing the stack for fun and profit // phrack 사이트에서 이런 문서가 나옴, 첫 시작 - by Aleph One (바이너리 분석에서 유명한 분) 이러한 버퍼 오버플로우가 생기는 이유는 바로 취약한 함수를 사용하기에 발생. 취약한 함수 : scanf, gets, strcpy, . . . 그중 strcpy를 예를 들자면 우선 두번째 인자값을 buffer2에 복사하는 c코드를 작성하였다.이제 실행파일을 만들고 여러 테스트를 해보면 1. 20바이트를 넘지않는 정상적인 값을 ..
리버싱을 통해 해당 실행파일의 패스워드를 찾기위한 연습을 진행한다. 실행을 해 보았더니 패스워드를 입력하라는 input이 호출되고 아무번호나 입력했더니 wrong password라는 false를 반환한다.true값을 반환받기 위해 이 파일을 분석해 보겠다. 우선 gdb로 바이너리를 asm로 변환시킨 모습이다. 자 이제부터 처음부터 차근차근 분석 해 보겠다. 1 우선 프롤로그를 설정해 주었고, printf를 calll하고 있는걸 봐선 앞에 push값은 주소값을 보아 segment영역 일 것이고 전역변수인 것을 알 수 있다. 확인해 보았더니 Input password: 라는 문자열이 나왔다. 이 과정을 c로 변환해 보면 int main(){ printf("Input password: "); return 0;..