전체 글 105

[윈도우즈보안과 악성코드기초] PE 파일

PE ( Portable Excutable ) 파일 : 실행 가능한 파일 ( exe, dll, sys, src, ocx 등 ) Win32 기본 파일 형식 ( 윈도우 환경에서 동작 ) 메모리 상에서 실행되는 형태 ( = Process ) : exe + dll 예전에는 exe 단독 사용, 윈도우 환경이 커지면서 여러가지 자원을 사용하기 위해 dll도 같이 사용 실행 과정 PE 파일 실행 -> 헤더 정보를 메모리에 매핑 -> 실제 프로그램 코드로 들어가서 실행 정적 분석에 해당 ( Hex Editor, PEview 등을 사용 ) 더보기 ※ PE 헤더 정보를 메모리에 매핑 1. 실제 프로세스를 위한 메모리 할당 2. 섹션 정보를 메모리에 복사 3. import 정보 처리 4. 기준 재배치 처리 PEview.ex..

[윈도우즈보안과 악성코드분석기초] crackme 리버싱

어셈블리로 작성된 코드 열자마자 시작 주소 ( EP가 시작주소이며 코드가 간단하고 명확(stub code가 없이)하게 작성되어 있음) 총 3개의 API 함수 사용 -> MessageBoxA, GetDriveTypeA, ExitProcess 00401002 PUSH 402000 ;Title="abex'1st crackme" -> dump 402000 위치로 이동하면 Title 내용 담겨져 있는 것을 확인할 수 있음 0040100E CALL 00401061 ;MessageBoxA, 함수내부에서 ESI=FFFFFFFF로 셋팅됩니다. -> 해당 번지인 00401061을 호출 ( 점프 ) 더보기 ※ [ 00401061 JMP DWORD PTR DS:[} ;USER32.MessageBox ] USER32 : use..

[FTZ] level3

level 3 (비밀번호 : can you fly?) 이번에도 level3 문제에 대해 알기 위해 ' ls ' -> ' cat hint ' 로 hint 파일의 내용을 보았다. hint 파일을 보면 두 가지 정보가 나온다. 첫 번째, autodig 의 소스 코드가 나온다. autodig은 사용자의 입력을 받아 인자가 2개가 아니면 오류를 출력한다. ( argc != 2 ) ' strcpy ' 를 사용해 " dig @ " 를 cmd로 복사하고, 나머지 인자들을 ' strcat ' 를 사용해 이어붙인다. ( strcat ( cmd, argv[1] ) ) ' strcat ' 를 사용해 마지막에 " version.bind chaos txt " 를 이어붙인다. ' system() ' 명령어를 사용하여 cmd 를 실..

Systemhacking/FTZ 2021.03.25

[FTZ] level2

level2 (비밀번호 : hacker or cracker) 이번에도 어떤 파일이 있는지 ' ls ' 를 먼저 해보았다. hint 파일이 있어서 내용을 보기 위해 ' cat hint ' 를 해주었더니 문구가 나왔다. ' 텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다는데... ' 라고 나온다. 아는 텍스트 파일 편집기는 ' vi 텍스트 편집기 ' 가 있고 종료하거나 저장할 때 ' :w ', ' :q ', ' :wq! ' 와 같이 명령어를 사용해 왔다. 일단 level3의 setuid를 가진 파일을 찾아보았다. [FTZ] level1 에서 설명했던 방법으로 찾았다. 원하는 ' /usr/bin/editor ' 를 얻을 수 있었다. ' /usr/bin/editor '를 실행하니까 바로 위와 같은 vi 편집..

Systemhacking/FTZ 2021.03.25

[FTZ] level 1

level 1 (비밀번호 : level1) 문제를 파악하기 위해 어떤 파일이 있는지 ls 을 해보았다. 사진과 같이 hint, public_html, tmp 가 나온다. 먼저 hint 파일의 내용을 보았다. ' cat hint ' 를 통해 hint 파일의 내용을 보니 ' level2 권한에 setuid가 걸린 파일을 찾는다. ' 라는 내용이 나왔다. setuid 파일을 찾아야한다. 앞 글 [FTZ] trainer6 ~ trainer10에서 setuid 파일을 찾는 방법을 배웠었다. 더보기 서버에서 setuid가 걸린 파일 찾는 법 find / -perm -4000 : /에서 부터 적어도 SetUId가 걸린 파일을 찾겠다. find 명령 옵션 -user : user와 일치하는 파일을 찾는다 서버에서 lev..

Systemhacking/FTZ 2021.03.25

[FTZ] trainer6 ~ trainer10

Trainer6 ( 패스워드 파일 분석 방법 ) (비밀번호 : welcome) cat : 리눅스 기본 명령 cat 파일이름 : 파일의 속내용을 화면으로 뿌려줌 root : x : 0 : 0 : Admin : /root : /bin/bash ' : ' : 필드를 구분해주는 문자 root x 0 0 Admin /root /bin/bash 로그인 시 사용되는 아이디 ( 계정 ) 패스워드가 있었지만 보안상의 이유로 x만 보여줌 해당 사용자 사용자가 속해 있는 그룹 사용자의 이름 로그인 성공 시 기본으로 위치하게 되는 디렉토리 처음 로그인 시 실행하게 될 프로그램 더보기 두 번째 필드 원래는 패스워드를 나타냈지만 보안상의 이유로 패스워드를 없애고 'x' 문자만 보여줌 두 번째 필드에 있떤 패스워드만 모아서 /et..

Systemhacking/FTZ 2021.03.25

[윈도우즈보안과 악성코드분석기초] 문자열 패치

문자열 패치 방법 문자열 버퍼를 직접 수정 다른 메모리 영역에 새로운 문자열을 생성하여 전달 1. 문자열 버퍼를 직접 수정 2주차의 'Hello World!'파일 사용해서 실습 ⓐ F8과 F7을 이용하여 main()함수에 들어가면 Text = "Hello World!" 부분을 찾을 수 있음 [ Run ]을 통해 바로 이동 > ⓑ 해당 부분의 어셈블리어 코드를 더블클릭해서 확인하면 Text가 어디에 저장돼있는지 확인할 수 있음 ⓒ Hex dump에서 Text부분을 드래그 해서 [ Ctrl + E ]해서 수정 [ Copy to Excutable File ] > 소스 코드 없이 문자열 수정 가능하다...