농소
level1 - > level2 시작해보겠습니다 이번에도 c파일을 열어서 무슨 취약점이있는지 봅시다. 환경변수 egg변수의 값이 null이면 종료되고 아니라면 egg변수값을 가져와 실행을 하네요.그렇다면 egg환경변수에 쉘코드를 작성해서 실행시키면 될 것 같습니다. 이런식으로 egg변수에 쉘코드를 넣고 실행 시켜주었습니다.그런데 왜인지는 모르겠지만 쉘은 실행이 되었지만 권한상승이 안되었네요이럴경우 방법은 2가지가 있습니다 1. 쉘코드 전 setreuid를 추가해 준다. 2. 쉘코드가 아닌 cat코드를 삽입하여 비밀번호를 본다. 두가지 중 무엇을 하든 자기가 편한걸 선택하시면 되지만저는 연습도 할겸 이 2가지 방법을 모두 해보도록 하겠습니다. 1. 쉘코드앞에 setreuid를 추가 xor eax, eax ..
leviathan 다음으로 narnia라는 워게임을 해보겠습니다. 난이도는 10중에 2로 입문자 들도 쉽게 할 수 있는 난이도 인것 같네요 데이타는 /narnia에 있다고하고 여기에는 안나와있지만 password는 /etc에 존재했습니다.자 이제 시작해 보도록 하겠습니다. narnia 폴더에 가보면 한번에 10개의 문제가 존재하네요 권한을 한단계씩 올리면서 마지막 문제까지 푸는 방식입니다.친절하게도 풀기 쉽게 c파일까지 같이 주네요 우선 narnia0.c 를 cat으로 보았습니다.val이라는 변수에 0xdeadbeff라는 값이 들어가야 setreuid와 쉘이 실행되네요간단한 오버플로우 문제네요 buf에 20개의 문자를 넣고 다음에 0xdeadbeef를 넣어주면 될듯합니다. 자 넣었더니 생각한대로 권한이 ..
쉘코드 ( Shellcode ) - 공격자가 실행하길 원하는 코드를 미리 작성 - 해당 공격코드를 타겟 프로세스의 메모리에 강제로 업로드 - 타겟 프로세스 메모리에 실행하고자 하는 명령들을 올려놓고 실행 우선 메모리에 올리려면 반드시 알아두어야 하는 것이 있다. 1. 기계어로 작성되어 있어야 한다.2. 데이터 세그먼트 사용 불가능. 왜 기계어로 사용해야하고 세그먼트를 사용하지 못하는건가? 이유는? 1) C로 작성 -> 기계어 추출 하는 경우 - ELF파일 전체가 메모리에 있어야만 명령어를 실행할 수 있다. - 여기선 기계어 코드만 메모리에 존재하기 때문에 실행될 수 없다. 해결책 - 세그먼트 없이 실행 가능하도록 스택형식으로 만들어야함. - 위와 같이 라이브러리 함수의 주소가 다른 프로세스에서의 라이브러..