WinDbg – Windows XP 2/2 (작업관리자에서 notepad.exe 프로세스 숨기기)
·
Reversing
WinDbg – Windows XP 2/2 (작업관리자에서 notepad.exe 프로세스 숨기기)Posted on 2017년 9월 7일 by 2u110per작업관리자에서 notepad.exe 프로세스 숨기기notepad.exe를 실행 후 작업관리자로 확인– [dt _EPROCESS (notepad.exe의 Address)] 명령어를 실행 후 ActiveProcessLinks를 확인한다.ActiveProcessLinks– ActiveProcessLinks는 양 옆의 프로세스의 ActiveProcessLinks를 가르키를 연결리스트를 가지고 있다.– 간단히 보면 아래와 같이 설명할 수 있다.– 위 구조에서 프로세스를 숨기기 위해서는 아래 그림과 같이 구성되어야 한다. 즉 notepad.exe 프로세스를 제외..
WinDbg – Windows XP 1/2 (notepad.exe DLL 확인)
·
Reversing
WinDbg – Windows XP 1/2 (notepad.exe DLL 확인)Posted on 2017년 9월 7일 by 2u110perWinDbgWinDbg를 이용하여 Windows XP의 notepad.exe DLL정보 확인과 PED에 로딩된 DLL정보 확인WinDbg Download : Download Pagenotepad.exe를 대상으로 실습해보았다.실습환경 : Windows XP 32bit (Vmware)실습대상 : notepad.exe1. Vmware에서 SeialPort 추가 후 User named pipe에 ” \\.\pipe\COM_1 ” 입력2. Windows XP에서 실행 – .\boot.ini 열람 후 아래 그림과 같이 한줄을 추가한다.3. 로컬에서 WinDbg를 실행 후 Fil..
PE File Format – EAT(Export Address Table)
·
카테고리 없음
EAT(Export Address Table)라이브러리 파일에서 제공하는 함수를 다른 PE파일에서 가져다 사용할 수 있도록 해주는 핵심메커니즘다른 PE파일에서 라이브러리(ex. kernel32.dll)의 함수를 사용하고 싶다면 kernel32.dll의 EAT를 통하여 함수의 시작주소를 구할 수 있다. kernel32.dll을 대상으로 실습해보았다.실습환경 : Window7 32bit실습대상 : kernel32.dllGetProcAddress() API동작원리 – 인자로 함수의 이름 또는 함수의 Ordinal 값이 들어간다.1. AddressOfNames 멤버를 이용해 ‘함수 이름 배열’로 이동2. ‘함수 이름 배열’은 문자열 주소가 저장되어 있다. 문자열 비교(strcmp)를 통하여 원하는 함수 이름 찾..
PE File Format – IAT(Import Address Table)
·
Reversing
PE File Format – IAT(Import Address Table)Posted on 2017년 8월 25일 by 2u110perIAT (Import Address Table)– PE파일이 무슨 라이브러리와 어떤 함수를 사용하고 있는지 기술한 테이블DLL(Dynamic Linked Library) Loading– DLL의 로딩 방식은 2가지로 나뉜다.1. Explicit Linking (명시적) – 프로그램이 실행 중일 때 API를 이용하여 DLL 파일이 있는지 검사하고 동적으로 원하는 함수만 불러와서 쓰는 방법, 프로그램이 사용되는 순간 로딩되며 사용 종료 시 메모리에서 해제 된다. (DLL이나 함수가 실행 환경에 있을지 없을지 잘 모르는 경우에 사용되며, 때때로 메모리 절약을 위해 쓰이기도 한..
PE File Format – RVA to RAW
·
Reversing
PE File Format – RVA to RAWPosted on 2017년 8월 24일 by 2u110per책을 보고 IAT를 공부하다가 IMAGE_IMPORT_DESCRIPTOR 구조체의 Offset을 찾는 과정에서 RVA to RAW 부분이 이해가 잘되지 않아 이 부분을 다시 정리하였다.실습파일 : 계산기실습환경 : Window 7 32bitData Directory의 구조이다. NT Header의 Optional Header에 포함되어 있으며 크키는 80h이다. – 16개(10h)* 8ByteDataDirectory[0] : EXPORT DirectoryDataDirectory[1] : IMPORT DirectoryDataDirectory[2] : RESOUCE DirectoryData Direc..
PE File Fomat – PE Header
·
Reversing
PE 포맷(Portable Executable)은 윈도우 운영 체제에서 사용되는 실행 파일(EXE), DLL, object 코드, FON 폰트 파일 등을 위한 파일 형식이다.PE 파일은 크게 PE Header와 PE Body로 나누어 진다.Dos header부터 Section header까지를 PE Header라 하고, 그 아래 각 Section들과 NullPadding들을 합쳐서 PE Body라고 한다.우선 PE Header의 내용부터 정리해 보려고 한다.” PE HeaderDOS Header (40h/64)– IMAGE_DOS_HEADER 구조체 123456789101112131415161718192021typedef struct _IMAGE_DOS_HEADER { // DOS .EXE header ..
Blind SQL Injection을 이용하여 한글가져오기!
·
Web Hacking
CTF와 워게임을 진행하면서 Blind SQL Injection 문제를 여러개 풀어보았다.하지만 매번 ASCII코드와 HEX 값을 이용하여 영어를 한 글자 씩 조회하였다.하지만 한글을 조회해야하는 문제를 풀어야하는 김에 한글을 조회하는 Blind SQL Injection을 정리해 보았다. 1. 우선 테스트할 테이블을 만들고 데이터를 입력한다.id는 init 데이터 타입이며, name varchar 타입이다. 데이터베이스의 문자셋은 UTF-8로 설정하였다. 2. 한글 데이터를 HEX으로 출력해본다.18문자가 표현되는데 한글은 3글자이기 때문에 18을 3을 나누면 6이 나온다. 여기서 2글자가 1byte. 즉, 한글 한 한글자에 3Bytes이다. EUC-KR의 경우 2Bytes 이지만 UTF-8 3Bytes..
Oracle SQL Injection
·
Web Hacking
Oracle SQL Injection DB 버전 확인 : v$version 조회 SELECT banner FROM v$version WHERE banner LIKE ‘Oracle%’; SELECT banner FROM v$version WHERE banner LIKE ‘TNS%’; SELECT version FROM v$instance; 현재 DB명 확인 : global_name 조회SELECT global_name FROM global_name; SELECT name FROM v$database; SELECT instance_name FROM v$instance; SELECT SYS.DATABASE_NAME FROM DUAL; DB 리스트 확인 : SELECT DISTINCT owner FROM all..