Security/System Hacking

    APT 공격 실습 (3) - 워터링홀(Watering Hole)

    워터링홀(Watering Hole) 공격 이란 사자가 먹잇감을 사냥하기위해 물웅덩이(Watering Hole) 근처에서 매복을 하는 형상을 빗대어 만든 이름으로, 특정한 공격대상이 방문할 가능성이 있는 합법적인 사이트에 악성코드를 심어서 그 사이트에 방문하기만 해도 악성코드에 감염됩니다. 보통 제로데이나 원데이를 사용하며, 대표적인 표적공격 입니다. 먼저 희생자(WindowsXP) 가 자주 방문하는 사이트에 XSS취약점을 이용하여 해커의 홈페이지로 리다이렉션하는 악성스크립트를 심습니다.페이지는 가상으로 열어둔 웹서버이며, 고객센터를 들어가보니 XSS에 취약한 게시판이 있었습니다. 스크립트를 추가하여 게시글을 클릭하면 해커의 웹서버가 열리는 iframe 을 추가해주었습니다. 이제 공격자(KALI) 로 이동..

    APT 공격 실습 (2) - Metasploit 을 이용한 익스플로잇

    Metasploit 이란 모든 취약점과 관련한 메타 데이터를 관리하는 프레임워크입니다. 주로 모의해킹을 위해 쓰이며, H.D 무어에 의해 개발 되었습니다. 오픈소스로 제작되어 최신 취약점을 빠르게 업데이트 해주는 장점을 가지고 있습니다. 이 Metasploit 프레임워크를 사용하고, 브라우저 취약점을 사용하여 우리의 희생자 PC인 (WindowsXP) 를 공격하여 해커가 원하는 행위를 방화벽을 우회하여 XP에 띄우도록 해봅시다.제가 이용할 취약점은 아주 오래전에 발견된 취약점입니다 CVE코드는 CVE-2007-0038 입니다. LoadAniIcon() function of USER32.dll 에서 발생한 버퍼오버플로우 취약점 입니다. 시나리오는 해커가 만들어둔 사이트에 접속하게 되면, 취약점이 터지고 익..

    APT 공격 실습 (1) - 가상 실습환경 구성

    가상 실습망 설명먼저 두개의 망을 구성헀습니다. 하나는 192.168.57.1 대역이고, 하나는 192.168.56.1 네트워크 망입니다. 두 네트워크 망은 방화벽을 사이에 두고있고, 현재 방화벽 Rule은 인바운드 차단이 되어있습니다. 외부에서 WindowsXP로의 접근이 불가능합니다. 두개의 네트워크를 구성하기 위해 VirtualBox에서 하나의 랜카드를 더 만들어 주었습니다. 현재 방화벽 설정으로 WAN net 에서 LAN net 으로 가는 모든 IP및 포트를 차단해 두었습니다. 현재 해커(KALI Linux)의 IP는 192.168.57.10 이며, 피해자(Windows XP)의 IP는 192.168.56.10 입니다. 한번 방화벽이 정상적으로 작동하는지 핑을보내어 테스트해봅시다. 먼저 KALI에..

    [PE파일] 특정 PE파일로부터 Export Table 주소를 구해보자.

    ★ windows 7 32bit 환경에서 진행하였습니다. 간단한 어셈블리 프로그램으로~ 특정 PE 파일로부터 Export Table 주소를 구해봅시다. Export Table 주소를 구하고, 더 나아가서 Export 하는 함수들의 주소까지 구해볼수 있겠죠. kernel32.dll 를 이용해봅시다. PEView를 이용하면 쉽겠지만 동적으로 Export Table 내의 함수들의 주소를 받아오기 위해서 간단한 어셈블리 프로그램을 짜보도록 하겠습니다. 먼저 kernel32.dll 의 base 주소를 알아야겠죠? mov eax, fs:[eax+0x30] // PEB 의 주소 FS = TEB을 가리키고있음 mov eax, [eax+0xc0] // PEB_LDR_DATA mov eax, [eax+0x14] // .e..

    [BOF] strcpy 와 strncpy 함수의 취약점

    취약점을 공부하시는 분들 대다수는 Memory Corruption 취약점에대해 잘 알고 계실것입니다. 길이(메모리 경계) 를 검사하지 않는 함수는 buffer overflow에 취약하여 Exploit당하기 쉽죠.- BOF에 취약한 대표적인 함수 : strcpy , strcmp, gets, scanf, strcat, getwd, sprintf 등등 그래서 보통은 strncpy 같은 길이를 검사하는 함수를 쓰게되는데 .. 이함수도 bof에 안전한건 절대 아니였다. 나도 항상 길이를 검사하면 괜찮겠지 했는데 그게아니였다 ㅇㅅㅇ;; 먼저 strcpy , strncpy 함수부터 알아봅시다. strcpy : NULL문자를 만나기 전까지의 문자열을 복사합니다.strncpy : 문자열을 지정된 길이만큼 복사합니다. s..