2010-07-01 4 views
1

커널 메모리에서 기밀 정보를 얻기 위해 악용 할 수있는 C 응용 프로그램을 만들고 싶습니다.일부 커널 메모리 공개로 응용 프로그램 빌드

문제는 어디서부터 시작해야할지 잘 모르겠다 ... 나는 반환 값에 대한 적절한 검사없이 copy_to_user()를 사용하면 이런 종류의 문제가 발생할 수 있다는 것을 알았지 만, 그것이 어떻게 악용 될 수 있는지 이해합니다. 내가 진행할 수 있도록 몇 가지 조언을 해줄 수 있다면 좋을 것입니다.

편집 : 내가 갖고 싶은 것은 일종의 익스플로잇이다 : http://inj3ct0r.com/exploits/7837, 여기서 X 바이트의 커널 메모리가 최종적으로 덤프된다.

사실 SCTP 소켓이나 아무것도 원하지 않지만 "기밀 정보"의이 덤프를 다시 만드는 가장 쉬운 방법입니다.

버퍼 오버 플로우와 병렬 처리를하려면 gets() 함수를 사용하는 vuln.c 파일을 만든 다음 작업을 수행 할 특수 문자열을 작성하십시오. 공개의 경우, 나는 그것이 또 다른 C 파일이 될 것이라고 생각한다.

이 의미가 되길 바랍니다.

최고.

+0

나열되어 일부는

  • 많은 다른 코드 주입 return oriented programming을 사용 하시겠습니까 당신은? –

  • +1

    실수로 저를 용서해주십시오.하지만 질문에 대해 취약한 사용자 공간 응용 프로그램을 작성하면 마술처럼 커널 취약점이 발생합니다. 이것은 단순히 잘못된 것입니다. 커널 취약점이 존재하는 경우, 자신의 응용 프로그램을 "악용"할 필요가 없습니다. 커널을 직접 개발하는 코드를 작성하십시오. 커널 취약점이 없거나 적어도 알 수없는 경우 사용자가 작성할 수있는 사용자 공간 코드가 변경되지 않습니다. –

    +0

    글쎄, 나는 이러한 취약성이 내 목표 시스템에 존재할 수 있음을 증명하고 그들이 어떻게 작동하는지 더 잘 이해할 수 있기를 바란다. 필자는 시스템에 대한 모든 권한을 가지고 있기 때문에 취약한 커널 모듈을 개발 한 다음 사용자 공간을 개발할 수 있다고 생각했습니다. 이것이 가능한 경우 질문은 여전히 ​​있습니다. 어떻게 취약점을 만들 수 있습니까 ??? 최고. – Toopiboum

    답변

    0

    커널 내부가 아닌 것으로 가정하면 this question을 살펴보십시오.

    1

    실제로 어떤 종류의 악용을 배우려는지에 따라 진행 방법은 다양합니다.

    1. 은 당신이 off by one error를 사용하여 악용 할 copy_to_user에 대한 호출이 이미 거기에 당신이 buffer overflow and change of return pointer?
    2. 을 통해 코드를 삽입 하시겠습니까?
    3. , 당신 대신 당신은 리눅스 커널에 트로이 목마를 저지하려고하지 않는 here
    관련 문제