Security

Security/Reverse Engineering, RE

리눅스 환경 기반 스택 오버플로우 실습 (Trampoline Technique) -1

쉘 코드 실행 및 제어 권한 획득 gcc -fno-stack-protector -z execstack -o : -fno-stack-protector = 스택 오버플로우를 감지하는 스택 쿠키 배치 및 검증 코드를 제거 : execstack -o = 스택 메모리에서의 코드 실행 권한 추가 열쇠없이 금고를 열때 유리막을 건들면 깨지게 설계하듯이 코딩 설계할때도 이와같이 구조를 확인할 수 없게하는 장치 리턴 주소를 조작한 쉘코드 실행 방법 2가지 1. 분기할 곳을 직접 지정하는 "직접 주소 참조 방식" 2. 레지스터를 이용하여 함수(루틴)을 실행하는 코드를 이용한 간접 참조 방식 Trampoline Technique 가상 주소 공간에 있는 스택 메모리의 주소가 무작위한 특성으로 인해 "직접 주소 참조" 방식 공..

Security/Reverse Engineering, RE

IA32 아키텍처의 레지스터와 기본 명령어 및 실습

1. 레지스터의 역할 (EAX, EBX, ECX, EDX, ESI, EDI, ESP, EBP, EIP) 조사 레지스터 : 4바이트만큼의 데이터를 담거나 표현할수있음 EAX : 덧셈 혹은 뺄셈 같은 연산의 결과를 저장 혹은 어떤 함수가 실행이 된 결과 리턴값을 저장하는 역할 ECX : Count 레지스터 루프를 도는 값 즉, 루핑 카운터 레지스터(for문 10번 = ECX 10) EDX : EAX와 같이 쓰이고 부호 확장 명령 등에 쓰임 큰 수의 곱셈 또는 나눗셈 등의 연산이 이루어질 때, EDX 레지스터가 사용되어 EAX 레지스터와 함께 쓰임 EBX : ESI 레지스터나 EDI 레지스터와 결합 될 수 있으며, 메모리 주소를 저장하기 위한 용도로 사용 ESP : 스택 포인터, 스택 메모리의 최상단을 가르킴..

Security/Reverse Engineering, RE

리버스 코드 엔지니어링의 기본

실행 파일의 기본 구조 윈도우에서의 실행 파일인 경우 PE(Protable Executable) - EXE/DLL/SYS/SCR 리눅스에서의 실행 파일인 경우 ELF(Exectuable Linkable File) - SO 의 포맷으로 되어 있다. 컴파일러로 컴퓨터가 이해할 수 있는 변환하는것이 코딩이며, 코딩된 프로그램의 최종 실행은 CPU가 한다. 사람의 뇌에 동작방식에 가까운 언어 : 고급어 -> C , JAVA , C# 등등 컴퓨터에 동작방식에 가까운 언어 : 저급어 -> 기계어, 어셈블리어 사람의 코드를 컴파일하여 기계가 이해할 수 있게 하는것 : 컴파일러 실행 파일의 라이프 사이클 Address of Entrypoint(Offset) - 실행 파일이 메모리에 로드된 후 최초로 실행 되어야 할 코..

Security/Network

모의해킹 기본 용어 정리

Vulnerability : 취약점 Exploit : 취약점 공격을 뜻하며, 악성코드를 실행시키거나 유도하는 행위 또는, 시스템과 소프트웨어를 대상으로 공격자가 이득을 취하기 위해 수행하는 악의적인 행위 혹은 악의적인 행위를 위한 데이터/코드/소프트웨어 Payload : 공격대상 소프트웨어 혹은 시스템에서 임의로 실행시키고자 하는 기계어 코드 혹은 명령어 또는, Exploit에 의해서 강제로 실행당하는 행위를 페이로드라고 한다. (=Shellcode)

Security/Reverse Engineering, RE

PE 파일 구조

본 내용은 파이썬 오픈소스 도구를 활용한 악성코드 분석 책을 참고하였음을 알립니다. PE파일 포맷(Portable Executable File Format) : 파일이 이식 가능한 곳에도 실행 가능하도록 만든 포맷 1 . 윈도우에서 동작할수 있게하는 실행 파일, DLL 파일 등을 위한 파일 형식 2. 윈도우 로더가 실행 가능한 코드를 관리하는데 필요한 정보를 캡슐화한 데이터 구조체 3. Linking을 위한 동적 라이브러리 참조, API Export와 Import Table, 자원 관리 데이터 그리고 TLS 데이터를 포함 PE 파일 분석에 사용할 도구 : peframe.py , PEView, HxD IAT (Import Address Table) : 함수의 위치를 알려줌 IMAGE_DOS_HEADER :..

Security/Secure Solution

파이썬 오픈 소스 도구를 활용한 악성코드 분석 (1)

peframe : PE파일 구조를 분석하는 도구 1. 정규표현식 2. JSON 데이터 처리 maltrieve : 악성코드 자동수집기 ClamAV : 오픈소스 백신(C++로 제작) 쿠쿠박스(Cuckoo Box) : 자동 분석 환경 구성 야라(Yara) : 시그니처 패턴 탐지 필요사항 1. VirtualBox 2. Kali-Linux 3. sublime text3 4. peframe peframe.py 흐름도 argument --strings -> stringstat.get(filename) ↑ --json -> get_fileinfo(filename) (stdoutput()) -> get_pe_fileinfo(pe,filename)

DevSecOps
'Security' 카테고리의 글 목록 (2 Page)