분류 전체보기 (426) 썸네일형 리스트형 APK File APK ( Android Package ) > 안드로이드 플랫폼에서 어플리케이션 설치를 위해 배포되는 패키지 파일 - Android Package는 안드로이드 어플리케이션 파일이며 zip과 같은 하나의 압축 파일이다. 일반적으로 접하는 압축파일과 가장 큰 차이가 있다면 "서명된" 압축파일이라는 점이다. - 어플리케이션에 관계된 파일들을 하나로 압축해놓은 파일이기 때문에, 압축 프로그램을 사용하여 압축을 풀 수 있다. - APK는 앱 실행 파일이라기 보다는 설치 프로그램이라고 할 수 있음. - 애플 IOS의 IPA 확장자에 대응된다. 결론 : APK는 서명된 압축파일이며 파일 내부에는 데이터와 리소스, 자바 실행코드를 묶어놓았다. > 주요 구성요소 - AndroidManifest.xml : 앱에 대한 정보.. Android Architecture Android : 모바일 기기를 위한 Linux based kerenl & middleware & 핵심 애플리케이션을 포함한 소프트웨어 스택 1. 안드로이드 내부 구조 안드로이드 플랫폼 구조는 위 그림과 같다. Linux Kernel : 안드로이드는 리눅스 커널을 기반으로 하는 리눅스 계열 OS이다. 위 그림에서의 커널은 하드웨어와 우리가 사용하는 OS를 연결시켜주는매개존재로 운영체제에 있어서 핵심이다. HAL ( Hardware Abstraction Layer ) : 하드웨어 추상화 계층 하드웨어 추상화 계층에서는 같은 종류의 부품으로 다양한 하드웨어를 설계할 수 있어 직접 하드웨어에 접근하는 형태는 다소 복잡할 수 있다. 이러한 점을 해결하고 복잡한 내부를 감추고 일관성 있는 인터페이스를 제공하기 위.. 운영체제 명령 실행 취약점 진단 웹 어플리케이션 취약점 1. 운영체제 명령 실행 ( OS Command Injection ) 1-1) 개요 웹 어플리케이션에서는 이전에 pwnable 분야를 공부할때 쉘을 얻기 위하여 주로 이용하였던 system() , exec() 등과 같은 시스템 명령어를 실행시킬 수 있는 함수를 제공하며 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 운영체제 시스템 명령어를 호출하여 백도어 설치나 관리자 권한 탈취 등 시스템 보안에 심각한 영향을 미칠 수 있는 취약점이다. OS command Injection은 웹 서버에 OS 명령을 실행하기 위해 웹 인터페이스를 사용한다. 사용자는 웹 인터페이스를 통해 OS 명령을 실행하기 위하여 운영체제 명령어를 입력한다 , 만일 이 명령어가 제대로 필터링.. 웹 취약점 진단제거 가이드 1. 개요 우리나라를 비롯한 여러 국가에서는 IT 신기술을 활용해 대부분의 서비스를 인터넷을 통하여 제공하고 있으며 정보 시스템 개발 시 필요한 기능들을 미리 구현해 둔 소프트웨어 표준 ( 프레임워크 )이 민간기업으로 빠르게 확산되었으며 앞으로도 인터넷을 활용한 서비스는 더욱더 확대될 것이다. 그러나 이러한 인터넷을 활용한 서비스를 확대하는데 있어서 보안 취약점 또는 해킹 공격은 커다란 걸림돌이며 , 취약점을 잘 알며 악의적 목적을 가지고 접근하는 블랙햇 해커로부터 우리 나라를 비롯한 여러 국가의 정보 시스템이 자유로울 수 없다. 본 블로그 게시글은 KISA( 한국인터넷진흥원 ) 의 가이드를 바탕으로 참고하여 글을 작성하며 목적은 가이드를 공부하며 웹에 존재하는 보안 취약점들에 대한 안정성 및 신뢰성 확.. Return To Libc ( RTL ) RTL ( Return To Libc ) RTL : - RTL 이란 , 공유 라이브러리의 주소로 Return address 를 조작하는 기법이다. - Return Address 영역을 공유 라이브러리 함수의 주소로 조작하여 , 해당 함수를 호출하는 기법이다. - 해당 기법을 이용하여 NX bit ( DEP ) 메모리 보호기법을 우회할 수 있다. - 공격방식은 Buf + SFP + system + dummy(exit) + /bin/sh로 RET를 원하는 함수로 덮어 실행한다. NX bit ( MS : DEP ) : NX (Never eXecute bit, 실행 방지 비트 ) 란 , - 프로세스 명령어나 코드 또는 데이터 저장을 위한 메모리 영역을 따로 분리하는 CPU의 기술이다. NX bit를 적용함으로써.. Return to Shellcode Return to Shellcode - Return to Shellcode 란 , 이름 그대로 프레임의 Return address 영역을 Shellcode가 위치한 주소로 변경시켜 프로그램의 흐름을 의도적으로 조작하여 shellcode를 호출하는 방식이다. Return to Shellcode 이해하기 - Return to Shellcode를 이해하기 위해서는 Assembly Instruction 중 CALL 과 RET에 대한 이해가 요구된다. CALL Instruction : Return Address ( CALL 명령어 다음으로 실행할 명령어의 위치 ( 주소 ) ) 를 Stack에 저장후 , 피연산자의 주소로 이동 RET Instruction : POP Instruction을 통하여 ESP 레지스터가 .. Basic of pwnable Shellcode - shellcode란 , 명령 shell을 실행시켜 공격자가 해당 시스템을 제어하는 코드다. - machine code로 작성된 작은 크기의 프로그램으로 일반적으로 어셈블리어로 작성후 기계어로 변경된다. Shellcode를 개발하기 위해서는 다음과 같은 지식을 필요로 한다.- 우리가 주로 사용하는 많은 프로그램들은 대부분 C언어와 같은 High-level의 언어를 컴파일 과정에 의해 Assembly , Machine Language 등과 같은 저수준 언어로 변경된 파일이다. (C code는 해당 시스템에 맞는 Assembly Code로 변환 -> 변환된 Assembly code를 Machine code로 표현 ) - 위와 같은 방식으로 Machine code는 메모리에 로드되어 코드를.. BOF 기초문서 와우해커팀 소속 달고나님이 작성하신 Buffer OverFlow 기초문서 입니다. ( 저작권에 문제될 시 바로 삭제하도록 하겠습니다. ) 이전 1 ··· 37 38 39 40 41 42 43 ··· 54 다음