ftz 풀이 level16 ftz level16 풀어보겠습니다. 힌트조회 입니다. 이번에는 쉘을 획득할 수 있는 함수가 shell() 로 정의 되어 있고 main() 에서는 배열을 선언 후 버퍼 오버플로 취약점이 있는 fgets 함수를 사용하였습니다. 그러나 shell() 을 호출하지 않고 call() 를 호출하여 실행하면 "Hello there!" 문자열을 출력하도록 되게 해놓았습니다. 코드만 봐도 알 수 있듯이 call() 을 호출하는 부분에 shell() 주소를 집어 넣어 shell() 을 실행하여 쉘을 획득하는 방식으로 풀어 보겠습니다. 구조는 전에 레벨과 비슷합니다. 56바이트를 확보하고 0xffffffc8 부터 들어가는데 0xfffffff0 부분에 주소를 넣어서 그 주소를 호출하는 것으로 보아 printit() 가 들어.. 2017. 1. 6. 7. Routing Protocol(EIGRP) Routing Protocol 계속해서 EIGRP를 알아 보겠습니다. EIGRPIGRP가 발전된 Routing Protocol로서 Cisco 전용 입니다. DUAL 알고리즘을 사용하여 최적경로와 후속경로를 선출하여, 최적경로에 이상이 생기면 그 다음 후속경로를 최적경로로 하여 이상없이 통신을 적용하고, Convergence Time이 빠릅니다. DUAL 알고리즘에 대해 짚고 넘어가겠습니다. 최적경로는 FD 값이 가장 작은 경로가 최적경로가 되고, 후속경로는 경로의 AD가 최적경로의 FD보다 작아야 합니다. 이 조건이 충족되지 않으면 후속경로가 될 수 없습니다.*FD : 출발지 라우터로부터 목적지 라우터의 Metric*AD : 출발지 다음 라우터부터 목적지 라우터의 Metric 위의 그림을 분석해 보면 우.. 2017. 1. 5. 1. C언어 (hello world) C언어에 대해 복습겸해서 간단하게 올려볼까 합니다. 제일 먼저 컴퓨터에서 거의 걸음마처럼 들은 hello world 부터 시작하겠습니다. 우선 코드를 적고 실행과정과 해당 소스에 대해 알아보겠습니다. IDE 환경은 "Dev-C++"을 사용하였습니다. #include main(){printf("Hello, World\n");} 우선 맨윗줄의 #include 는 헤더 파일을 불러오는 것 입니다. 그러면 stdio.h 는 헤더 파일이 되겠습니다. 헤더파일은 라이브러리의 개념으로 보면 됩니다. 미리 만들어져 있는 함수를 가져다가 쓰는 것입니다. 세번째 줄의 printf 함수 의 경우에도 stdio.h 헤더가 없으면 사용하지 못하는 개념입니다. 이러한 헤더함수는 개인적으로 만들 수도 있습니다. 이점은 나중에 알아.. 2017. 1. 5. 14. Linux Process Scheduling Linux 프로세스 스케쥴링에 대해 알아보겠습니다. 프로세스 스케줄링은 관리자가 정한 시간에 정한 작업을 하도록 정할 수 있는 것입니다. 예를 들어 매일 새벽 1시에 서버에 대한 백업을 진행하고자 할때 이를 설정하여 매일 새벽 1시마다 백업이 자동으로 수행되 도록 하는 것입니다. 리눅스에서는 at와 cron 이 있는데 at같은 경우 주로 한번 실행하게 될때, cron은 주기적으로 실행할때 사용됩니다. 1. at지정한 시간에 원하는 작업을 실행할 수 있도록 해줍니다. atd 데몬에 의해 실행되며 지정한 작업을 지정한 시간에 수행할 수 있도록 합니다. 여기서 지정한 작업은 큐에 저장되고 이 저장된 작업은 /var/spool/at 디렉터리에 저장됩니다. 명령어를 입력후에 원하는 작업을 입력하고, Ctrl+d .. 2017. 1. 4. ftz 풀이 level15 ftz level15 풀어보겠습니다. 힌트조회 입니다. level14와 매우 유사하나 다른점이 있다면 check를 포인터 변수로 선언했다는 점입니다. 그렇다면 deadbeef의 값을 직접 넣어준 level14와 달리 deadbeef를 가르치고 있는 주소의 값을 넣어주면 될거 같습니다.구조를 살펴보겠습니다. 구조는 level14와 거의 같습니다. 0xffffffc8부터 해서 56바이트를 저장하고, 0xfffffff0 에 있는 주소로 가 그 값이 deadbeef 이면 성공적으로 쉘을 실행하는 것입니다. 구조는 level14와 거의 같습니다. 이제 deadbeef가 저장된 주소를 찾아서 값대신 그 주소를 넣어보겠습니다.우선 main을 뒤져 보았습니다. main을 보니 0x80484b0 부분에(빨간 네모박스) .. 2017. 1. 4. ftz 풀이 level14 ftz level14 풀어보겠습니다. 힌트조회 입니다. fgets 함수가 있는것으로 보아 버퍼오버플로우문제임을 알 수 있습니다. 또한 attackme 실행시에 입력을 받으면 바로 종료되기 때문에 이를 방지하기 위한 cat과 파이프를 이용하여 명령어를 사용하는 방법도 생각할 수 있습니다. 그 전과 다른점은 0xdeadbeef 값이 존재할 경우에 쉘을 실행시켜줍니다. 이번에는 따로 쉘코드는 설정안해도 될거 같습니다. 우선 디스어셈블러로 대략의 구조를 보겠습니다. 버퍼에 56바이트를 할당하는데 위에 변수 두개가 있었으므로 대략 구조는 아래와 같이 생각할 수 있습니다. 20(배열)+(dummy)+4(crap)+(dummy)+4(check)+(dummy)=56 그리고 빨간표시로된 부분을 보게 되면 에서 입력받는 .. 2017. 1. 3. 이전 1 ··· 8 9 10 11 12 13 14 ··· 19 다음