IT&보안151

[FTZ]level2 level2계정으로 접속을 했으면 확인을 해봅시다. 텍스트 파일 편집기라... Windows 사용자가 메모장을 알고있다면 Linux 사용자는 vi나 gedit정도는 알고 있겠죠? shell을 실행시킬 수 있다..? 그러면 level1과 동일하게 SetUID가 적용된 편집기에서 shell을 실행시키면 level3의 권한으로 실행되겠네요!!! 벌써 다 푼 것 같지만 찾았으면 열어봅시다. 누가봐도 vi editor네요?? 아 맞다 vi editor의 명령모드에서 shell로 잠시 빠져나갈 수 있죠? :sh 실행해 줍시다. 참고로 :!id와 같이 느낌표를 치고 명령어를 실행할 수 도 있습니다. editor이 답답한지 터미널에 바람쎄러 나왔습니다. 나는 누구일까요? level3입니다. 그 전에 우리가 아는 vim.. 2019. 9. 3.
[FTZ] level1 시작해볼까요? ID : level1, PW : level1로 접속을 합니다. 접속하자마자 어떤파일이 있는지 확인합니다. 궁금증을 유발하는 hint파일이 있네요? 궁금하니 열어봅니다. level2 권한에 setuid가 걸린 파일을 찾는다?? SetUID란? 다른 사용자가 파일을 실행시켰을 경우 실행되는 동안에는 파일의 소유자 권한으로 실행됩니다. 접근권한에서 4000을 사용합니다. 파일을 찾아볼까요? find 명령어 1) -name 옵션 ▶ 파일의 이름으로 검색 2) -type 옵션 ▶ 파일의 타입으로 검색 3) -user 옵션 ▶ 사용자가 소유한 모든 파일을 검색 4) -perm 옵션 ▶ 지정한 접근권한과 일치하는 파일 검색 여기서 사용한 명령어는? $ find / -user level1 -perm +4.. 2019. 9. 3.
[운영제체 취약점 이해 및 대응]윈도우 시스템의 이해 및 보안 운영체제를 업데이트 해주지 않는다면? KISA에서는 상위버전의 윈도우를 사용하라고 권장합니다. 그러면 바로 서비스 종료된 OS를 안 쓸 수 있을까요? 수십억을 들여서 Windows7에서 만들어놨는데 Windows10으로 변경할 수 없겠죠? 변경했을 때 솔루션이 운영체제랑 충돌할 수도 있구요. 지하철에서 쓰는 프로그램만 해도 현재 XP를 사용하는 경우도 있습니다. 종료된 OS에 대한 취약점은 전부 제로데이겠죠? 1) 윈도우 아키텍처 ▶ 윈도우 시스템은 크게 사용자 모드 (User mode)와 커널 모드(Kernel mode)로 구분됩니다. ▶ 운영체제의 중심에 Kernel이 위치합니다. ▶ Kernel은 인터럽트(Interupt) 처리, 프로세스 관리, 메모리 관리, 파일 시스템 관리 등 운영체제의 기본 .. 2019. 9. 2.
[운영체제 취약점 이해 및 대응] 취약점에 대한 이해 2. 취약점에 대한 이해 1) 취약점과 익스플로잇 [1] 취약점 : Vulnerability ▶ 취약점이란 사용자에게 허용된 권한 이상의 동작이나 정보 열람을 가능하게 하는 설 계상의 허점이나 결함을 말함. ▶ 취약점이 발생하는 이유: 프로그램은 사람이 만드는데, 개발자가 프로그램 개발 시 실 수를 하기 때문. 수백, 수천 명 이상이 검토하고 검토한 윈도우 및 리눅스도 여전히 취 약점이 발견되고 있음 ▶ 취약점을 연구하는 목적: 판매, 명예와 공부(돈벌려고), 불법적인 행위(돈벌려고), 군사적인 목적(돈벌려고) [2] 익스플로잇 : Exploit ▶ 일반적으로 취약점이 발견되면 해당 취약점을 공격하여 원하는 코드를 실행하거나 특 정 목적을 달성하는 공격코드 또한 개발됨. 이런 공격코드를 Exploit(익.. 2019. 9. 1.
악성코드 분석[4] x86 아키텍처에서 EIP는 instruction pointer나 program counter로 알려져있습니다. 즉, 프로그램에서 수행할 다음 명령어의 메모리 주소를 담고있는 레지스터입니다. 만약 이 EIP가 손상된다면 어떻게 될까요? EIP가 손상되었다는 말은 정상프로그램 코드가 아닌 곳의 메모리 주소를 가리킨다는 말이겠죠? ▶ CPU는 실행할 정상 코드를 가지고 오지 못하므로 실행 중인 프로그램은 종료될 것입니다. ▶ EIP를 제어할 때 CPU의 실행을 제어할 수 있습니다. ▶ 바로 공격자가 EIP타겟팅 하는 이유도 CPU의 제어권을 갖기 위해서이지요. ▶ 그래서 메모리상에서 자신이 실행하고자 하는 코드를 EIP가 가리키도록 합니다.!! mov와 lea명령어의 차이를 아시나요? "mov는 값을 옮기고.. 2019. 9. 1.
악성코드 분석[3] 1. 잠재적인 악성코드를 어떻게 찾을 수 있을까요? ▶ 특정 함수를 연달아 호출하거나 DLL injection등과 같이 사용하는 함수가 정해져있다면 악성코드일 확률이 높겠지요. ▶ 결국 프로그램 기능에 대한 힌트를 줄 수 있는 함수를 찾는 것이 중요합니다. 일반적으로 프로그램이 사용하는 공통 DLL을 알아봅시다. DLL Description Kernel32.dll 메모리, 파일, 하드웨어 접근 Advapi32.dll 서비스관리자, 레지스트리 등의 컴포넌트 User32.dll 버튼, 스크롤바, 인터페이스 등의 컴포넌트 GDI32.dll 그래픽 보기, 조작 Ntdll.dll 윈도우 커널 인터페이스 직접 import가 불가능하며 Kernel32.dll을 통해 import WSock32.dll Ws2_32.dl.. 2019. 8. 30.
자료의 요약 단어가 데이터다. 클릭이 데이터다. 링크가 데이터다. 오타가 데이터다. 꿈속에 나온 바나나가 데이터다. 어조가 데이터다. 쌕쌕거리는 숨소리가 데이터다. 심장박동이 데이터다. 비장의 크기가 데이터다. 검색어는 가장 계시적인 데이터다. 사진 역시 데이터로서의 모습을 드러냈다. - 모두 거짓말을 한다 - ▶ 커플들의 싸움을 일으키는 76%의 원인이 사소한 습관 때문이라고 합니다. ▶ 만약 당신이 "내 친구의 남자친구는 그렇지 않더라"는 발언으로 비교 평가하려 한다면 그 말을 잠자코 듣고 있던 당신 남자친구의 87%는 자괴감에 밤잠을 설칠 것이라고 합니다. ▶ 물론 그들 중 30%는 화를 내기도 합니다. ▶ 한번 헤어졌던 연인과 관계회복을 꿈꿨던 사람은 무려 82%에 달합니다. ▶ 헤어졌다가 다시 만난 커플의 .. 2019. 8. 30.
[운영체제 취약점 이해 및 대응] 운영체제에 대한 이해 1. 운영체제에 대한 이해 1) 운영체제 [1] 컴퓨터 시스템을 손쉽게 사용하도록 하고, 시스템 자원 (메모리, 프로세서, 입출력 장치, 정보, 네트워크 등)을 효율적으로 관리할 수 있도록 하는 프로그램의 집합입니다. [2] 악성코드는 운영체제의 취약점을 이용해서 공격할 수도 있습니다. 2) 운영체제 기능 [1] UCI = User Command Interface(사용자 명령 인터페이스) [2]메모리 관리 (Memory Management) ▶ 프로그램을 실행할 때 프로그램 코드와 데이터를 저장하고 처리하기 위한 메모리 필요 ▶ 프로그램의 메모리 요청에 대한 적합성 검증하고 메모리를 할당 ▶ 할당된 메모리를 다른 프로그램이 접근하지 못하게 관리하고 보호, 사용 종료 후 회수 ▶ 운영체제/시스템 해킹 할 .. 2019. 8. 29.
악성코드 분석[2] 악성코드는 패킹과 난독화 기법을 사용합니다. 패킹은 압축돼서 분석할 수 없도록 난독화된 것을 말합니다. 난독화는 바이너리에 대한 은폐한 것을 의미하죠. 패킹되고 난독화 된 코드는 적어도 LoadLibrary()와 GetProcAddress()함수를 포함해요. 이 함수들은 추가함수를 로딩해 접근할 때 사용합니다. PE파일은 코드에 대한 정보, 애플리케이션의 유형, 필요한 라이브러리 함수, 메모리 공간 요구사항 등을 포함한 헤더로 시작합니다. 그러므로 악성코드 분석가에게 PE헤더는 가치있는 포장지같은 느낌이겠죠? 라이브러리 링크에 대해 볼까요? import하는 함수 목록은 실행파일에서 수집할 수 있는 유용한 정보입니다. import는 실제로 다른 프로그램에 저장되어 있지만 외부프로그램이 사용할 수 있도록 한.. 2019. 8. 28.
악성코드 분석[1] 악성코드 분석에 대한 지식을 정리해볼까요? 1. 악성코드 분석의 목표 네트워크 침입에 대한 대응을 할 때 필요한 정보를 알아내기 위해서 분석을 합니다. 즉, 대응 방안을 찾기 위해서죠. ▶ 무슨일이 발생했는지 ▶ 감염된 시스템과 파일이 무엇인지 ▶ 어떤 행위를 하는지 ▶ 피해규모는 어떤지 ▶ 그렇다면 어떻게 탐지해야 하는지? 위 내용들이 어느정도 되었다면 ▶ 네트워크기반의 시그니처와 호스트기반의 시그니처를 생성해야 합니다. 2. 악성코드 분석 기법 [1] 정적분석은? ▶ 프로그램의 명령어가 하는 작업이 무엇인지 파악합니다. ▶ 즉, 디스어셈블러에 대한 지식이 필요합니다. [2] 동적분석은? ▶ 디버거를 이용해 동작하는 악성파일의 내부 상태를 확인합니다. ▶ 실행파일의 세부정보를 알아내기 좋지요. 2019. 8. 28.
윈도우(Window), 메세지(Message) Windows API를 통해 간단한 Application은 만들어 보았지만 Application Hacking에 대한 이론이 옅어서 정리를 해보려고 합니다. 그럼 시작해 볼까요? 1. Window ▶ 1) Window란 무엇일까요? 사용자의 입력을 처리하고 결과를 보여주는 Windows OS의 가장 중요한 I/O 구성요소 입니다. Window에 알기 전에 먼저 Thread에 대해 알아야 합니다. 2) 그렇다면 Thread는? [1] Thread는 Window를 생성하고 소유할 수 있으며 Window를 제어하는데 사용되는 메세지를 수신하기 위한 메세지 큐(Message Queue)를 함께 가지고 있습니다. [2] 가지고 있는 메세지 큐에서 전달받은 메세지를 꺼내서 메세지에 대한 동작이 정의되어 있는 Cal.. 2019. 8. 27.
데이터과학이란? 세상에는 3가지 거짓말이 있습니다. 그럴듯한 거짓말, 새빨간 거짓말 그리고 통계입니다. - Benjamin Disraeli(벤저민 디즈레일리) - 인공지능의 시대에 통계학이 매우 중요한 학문이 될 것이며, 미래의 종교는 데이터종교가 될 것 입니다. - Yuval Noah Harari(유발 하라리) - 현실에서 보듯이 데이터과학은 레드불과 같은 각성음료에 의지해 날밤을 새우는 해킹과, 에스프레소에 의해 영감을 받은 통계학의 혼합입니다. - Metamarket의 CEO, Michael Driscoll(마이스 그리스콜) - 1. 데이터과학은 무엇일까요? 위키백과에서 말하기를 "데이터 마이닝(Data Mining)과 유사하게 정형, 비정형 형태를 포함한 다양한 데이터로부터 지식과 인사이트를 추출하는데 과학적 방.. 2019. 8. 23.