Monthly Archives: January 2017

TortoiseSVN AutoCommit in Windows – 자동 커밋 배치 만들기

TortoiseSVN AutoCommit in Windows TortoiseSVN 이 제공하는  CLI 명령을 이용하면 쉽게 자동 커밋 기능을 만들수 있습니다. 이를 스케줄러와 함께 사용하면 보다 효과적이라고 할 수 있습니다. 아래는 Batch Script로 작성하였을때 사용할 수 있는 옵션입니다. “C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe” /command:commit /path:D:\svnpath /logmsg:”AutoCommit” /closeonend:1   유심히 볼만한 부분은 /closeonend 옵션으로 에러가 있을 때 어떻게 대응할지에 대한 정보입니다. /closeonend:0 don’t close

Read More

Hidden Process – CreateDesktop

아래 링크를 보면 윈도우의 세션 관리 기능을 이용해서 프로세스를 다른 데스크톱에서 실행하여 사용자에게 숨길 수 있는 코드를 예제로 제공합니다. https://github.com/MalwareTech/CreateDesktop/blob/master/Main.cpp   위 코드와 관련하여, 함께 봐야 할 내용이 아래 내용이라고 할 수 있습니다. https://blogs.msdn.microsoft.com/coreinternals/2009/08/19/session-window-station-desktop/   요약해 보면, 윈도우는 세션 관리를 위해 Windowstation과 Desktop이 있는데 WindowStation은 Desktop을 관리하는 그룹으로 속한 Desktop들이  함께 사용하는 클립보드와 Atom Table(?)을

Read More

Hooking 후킹 – SetWindowsHookEx

메시지 후킹은 앞서 말했듯이 운영체제가 사전에 정해놓은 특정 이벤트(키 입력, 윈도우 크기 변경 등과 같은 작업)를 프로그램이 운영체제에 요청하고 처리 결과를 프로그램에 통보하게 되는데, 이 지점을 가로채기, 즉 후킹하여 메시지를 엿보거나 조작할 수 있다. 이런 메시지 훅은 운영체제에서 제공하는 기본 기능(여기서 소개할 이외 후킹들도 운영체제가 지원하는 기능들을 이용한 것이다)으로 하나의 메시지에 여러 개의 훅을 설치할

Read More

Hooking 후킹 – CreateRemoteThread

CreateRemoteThread 후킹을 위해 제일 많이 애용하는 방법이 바로 CreateRemoteThread일 것이다. CreateRemoteThread는 방법도 쉬울 뿐더러 Dll을 인젝션 오류 없이 진행할 수 있다. 그래서 실제 악성코드나 해킹도구에서도 많이 사용하는 방법이다. 그럼 이 CreateRemoteThread를 이용하는 로더 프로그램을 작성해 보자. injectiondll.cpp #include <stdio.h>#include <windows.h>#include <tlhelp32.h>BOOL InjectDll(DWORD PID, char* DllName){ HANDLE h = OpenProcess(PROCESS_CREATE_THREAD | PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION | PROCESS_VM_WRITE

Read More

해킹 명령어를 이용한 침해 탐지 (Hacker command)

Hacker command? 침해사고를 조사하다보면 해커들이 자주 사용하는 명령들에 대해서 알 수 있습니다. 그럼  해킹 명령어를 이용한 침해 탐지 방법에 대해 알아보도록 하겠습니다. 아래 글을 읽어보면 해커가 자주 사용하는 명령를 이용한 명령과 Applocker를 사용해서 해당 프로그램을 사용하려고 하였을때 실행을 막고 오류를 윈도우 로그에 남기는 방법이 소개되어 있습니다.   http://blog.jpcert.or.jp/.s/2016/01/windows-commands-abused-by-attackers.html 초기 탐지 조사 공격   제 기준으로

Read More

Hooking 후킹 – Code path (Inline patch) 코드 패치, 인라인 패치

해당 파일을 직접 변경하는 방법으로 일반적으로 후킹은 메모리를 대상으로 진행하지만, 몇몇 특수한 상황인 경우, 파일을 직접 수정할 수도 있다. 이는 패킹된 데이터에도 종종 이용하는데, 암호화 해제가 완료되는 시점에 해제된 코드를 인라인 패치를 통해서 수정하고 프로그램을 실행하도록 하는 구조이다. 즉 파일에 비어있는 영역을 이용하여 기계어로 처리하는 로직을 변경하는 것이다. 먼저 프로그램 내에서 빈 공간을 확인한 후에

Read More

후킹 Hooking

후킹에 대해 어느 정도 진행해야 할까 고민이 많이 되었다. 후킹은 영어로 “걸다”라는 의미로, 우리가 익히 알고 있듯이 “가로 채기”와 같다. 즉 중간에 끼어들어 정보를 훔쳐보거나, 가로 채는 MITM(Man in the Middle) 방식으로 원제공자와 처리자 사이에서 지나가는 정보를 보고 이를 조작하는 공격과 유사하다고 할 수 있다. 후킹은 무엇인가를 노리는 낚시와 같이 가장 대표적인 방식으로 특정 프로그램과

Read More

LINUX IPTABLE – Limit the number of incoming tcp connections

오늘 아시는 분이 Linux 에서 Syn Flood 공격 차단에 대해서 문의 해 왔습니다. 아래 정책인데, 보면 limit per second 를 이용해서 특정횟수이상 초단위 연결을 차단하는 룰셋인것 같습니다. # Interface incoming syn-flood protection -A INPUT -p tcp —syn -m limit —limit 1/s —limit-burst 3 -j RETURN -N syn_flood -A INPUT -p tcp —syn -j syn_flood -A

Read More

안티 디버깅(Anti-debugging, 디버거 탐지) – INT3 예외 처리

How to debugging detect? 프로그램 역분석, 즉 프로그램 디버깅 방법을 배웠다면, 해당 프로그램의 코드를 그대로 보는 것과 같아서, 숙달되면 프로그램의 모든 코드를 손쉽게 확인할 수 있다. 이를 통해 개발자가 원하지 않았던 방식으로 처리 흐름을 바꾸거나 데이터를 바꿔 치기 하는 등 악용할 수 있는 소지가 많다. 이를 방지하기 위해 개발된 기술이 바로 안티 디버깅으로, 말 그대로

Read More

SQL Server Memory AWE 옵션사용

4GB이상의 물리적인 메모리를 사용할 수 있다면 AWE옵션을 사용하여 SQL에 보다 많은 메모리를 할당 할수 있습니다. 또한 AWE 옵션은 기본적으로 Locked Page를 할당받기 때문에 Windows에 의해서 SQL Server의 메모리가 강제로 Page Out되는 현상을 예방하는 효과도 기대할 수 있습니다.   1.     C:\Boot.ini 안에 PAE옵션이 설정되었는지 확인합니다. [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINDOWS=”Windows Server 2003, Enterprise” /fastdetect

Read More