attack

    [해커스쿨] FTZ level14 풀이과정

    [해커스쿨] FTZ level14 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level13 풀이과정 보자보자!! 힌트를 보자!!!int 변수를 2개 선언하고, 20byte 배열 하나 선언하고 ... 그런데 45byte만큼 buf로 fgets 하네...check라는 변수에 0xdeadbeef가 들어있나 확인하네.. 정확하게 gdb로 파헤쳐보자. 보아하니.. 0x38(56byte)만큼 공간 할당하고, [ebp-56]에 fgets로 받은 문자열을 저장하고, [ebp-16]에 0xdeadbeef가 있구먼... fgets함수 바로 다음인 에 BP걸고 대충 아무 값인 "AAAAAAAA"을 넣고 실행해보니..일단 입력 받은 문자열이 들어가는 주소는 "0xbffff210"이네... 그런데 "0xdeadbeef"값이 안보인..

    [해커스쿨] FTZ level13 풀이과정

    [해커스쿨] FTZ level13 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level12 풀이과정 소스코드를 보니 long형 변수 i가 존재하고, i의 값이 0x1234567이 아니면 경고 메시지가 출력하는걸 볼 수 있다. 즉, i라는 변수의 값을 체크해서 오버플로우됬는지 판단하는 보안코드라고 볼 수 있겠다.하지만, 이는 너무 단순한 보안코드이다. 그러면 i형 변수가 가리키는 버퍼에 0x1234567을 넣으면 되지 않을까? 공격하자! gdb로 분석해보면, 일단 0x418(1048)만큼 공간을 확보하고, 0x1234567을 [ebp-12]에 저장한다.그리고 strcpy로 argv[1]인자를 복사하고나서 부분에 ebp-12의 값이 0x1234567의 값으로 잘 저장되어 있는지 체크한다.그럼 우리는 앞서 했던 ..

    [해커스쿨] FTZ level12 풀이과정

    [해커스쿨] FTZ level12 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level11 풀이과정 자.. 뭘해야될지.. 알지?...요? 힌트를 보장~ level11이랑 비슷하게 보이지만, 다르다.(당연히 다르니까 level12겠지!!)level11은 인자값으로 문자열을 입력받았다면, level12은 gets함수를 통해서 문자열을 입력 받는다. level12도 str(256) + dummy(8) + SFP(4) + RET(4) 이렇게 메모리 구조가 되겠다.level11과 똑같은 구조이지만, 입력받는 방식이 다르다는 차이점이다. 와 을 비교해보면 알 수 있다. 따라서, 문자열을 입력시키는 방법만 다르게 하면 문제는 level11과 똑같이 풀릴것이다.그래서 우린 Pipe('|')를 이용할 것이다. Pipe명령어..

    [해커스쿨] FTZ level11 풀이과정

    [해커스쿨] FTZ level11 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level10 풀이과정 힌트!!! 보자고~ attackme 라는 파일이 보이고, 힌트에는 어떤 소스코드가 들어있다. attackme 를 실행시켜 보니. 역시 소스코드데로 실행된다. 즉, 힌트가 attackme의 소스코드 인것이다. 그러면 이 문제는 어떻게 풀어야 될까... 소스 코드를 보니 단순히 256byte의 str배열을 선언하고 setreuid를 실행하고 argv[1]의 인자값을 str에 복사하고 str를 출력하는게 끝이다. 그런데.. strcpy를 사용하는 것을 보니 이또한 버퍼 오버플로우에 취약하다. level9 풀이(http://eunice513.tistory.com/54)를 보면 Buffer Overflow에 대한 설명..

    [해커스쿨] FTZ level10 풀이과정

    [해커스쿨] FTZ level10 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level9 풀이과정 힌트를 보자...(맨날 똑같은 시작문구 ㅋㅋㅋ) 공유메모리... key_t의 값이 7530... 뭔지 모르겠지만, 일단 공유 메모리에 대해서 검색해보자. 공유 메모리에 대하여 : http://www.joinc.co.kr/w/Site/system_programing/IPC/SharedMemory 위의 그림과 링크를 참조해보면, 2가지 이상의 프로세스들이 공유하는 메모리공간을 말한다. 그리고 공유메모리에 접근을 하기 위해서는 고유의 공유메모리 key 를 통해서 접근가능해지며, 이 key값을 통해서 다른 여러개의 공유메모리들과 구분되어 질수 있다.또, ipcs 명령어로 공유메모리 정보를 알 수 있으며, int shm..

    [해커스쿨] FTZ level9 풀이과정

    [해커스쿨] FTZ level9 풀이과정

    2017/01/11 - [Study :)/FTZ] - [해커스쿨] FTZ level8 풀이과정 힌트를 봐야 겠지? 힌트를 보니 Buffer Overflow 문제인 것같다. 버퍼 오버플로우는 어떻게 발생하는가? 버퍼 오버플로우를 이해하기 위해서는 먼저 프로그램이 데이터를 어떻게 저장하고 어떻게 함수가 호출되는지 알아야 한다. 하나의 프로그램은 수 많은 함수로 구성되어 있는데 이 함수가 호출될 때, 지역 변수와 복귀 주소(Return Address)가 스택(Stack)이라 하는 논리 데이터 구조에 저장된다. 복귀 주소가 저장되는 이유는 함수가 종료될 때 운영체제가 함수를 호출한 프로그램에 제어권을 넘겨야 하는데, 이 복귀주소가 없으면 함수가 종료된 후 어떤 명령어를 수행해야 할 지 모르기 때문이다. 버퍼 오..

    ARP Spoofing

    ARP Spoofing

    ARP Spoofing (속임수) 먼저 PC는 상대방 ip만 알고 MAC주소를 모를 때, ARP패킷을 주고받아 MAC주소를 알아오게 된다.이때, PC의 ARP Cache Table에 기록이 되게 되어 갱신하게 되는데,ARP Cache Table이 갱신 될 때는 1. 요청 받은 PC에 ARP Request를 받았을 때.2. 요청한 PC에 ARP Reply를 받았을 때. 이 두가지 경우에 ARP Cache Table이 갱신하게 된다.이 ARP의 특징을 이용해서 ARP Spoofing 공격이 진행된다. ARP Spoofing은 MAC주소를 이용한 공격이기 때문에 내부네트워크에서 진행되어 진다. ARP Spoofing이란 ? - arp의 특징을 이용해서 MAC주소를 속이는 방법.- ARP Cache Table을..

    Dos (Denial of Service) 정의 및 공격 유형

    Dos (Denial of Service) 정의 및 공격 유형

    DOS(Denial Of Service) # DoS의 정의 # DoS(Denial of Service)는 서비스 거부 공격으로 공격자의 컴퓨터로부터 표적 시스템과 그 시스템이 속한 네트워크에과다한 데이터를 보냄으로써 대역폭, 프로세스 처리능력, 기타 시스템 자원을 고갈시킴으로써정상적인 서비스를 할 수 없도록 하는 행위를 말한다. # DoS 공격 유형 # 1. 시스템 파괴 공격 (디스크, 데이터, 시스템 파괴)2. 시스템 자원 고갈 공격 (CPU, 메모리, 디스크의 사용에 과다한 부하 가중)3. 네트워크 자원 고갈 공격 (쓰레기 데이터로 네트워크 대역폭 고갈) # Ping of Death (ICMP Flooding) 공격 # ' 죽음의 필 날리기 ' 라고도 불리는 Ping of Death공격은 iCMp E..