분류 전체보기
-
[L.O.B] Level 1 - gateWargame/L.O.B 2022. 10. 10. 06:22
새로운 Wargame인 L.O.B를 시작해보자. 기본적으로는 F.T.Z와 유사하지만, L.O.B는 특이하게 각 Level 마다 이름이 정해져 있다. 먼저 Level 1이라고 할 수 있는 gate를 푸는 것으로 시작한다. (접속은 gate / gate로 한다.) 접속을 하면 gremlin이라는 실행 파일과 그 실행 파일의 소스 코드인 gremlin.c가 있다. 따로 hint는 없는데, 우선 gremlin.c 파일을 읽어보자. 먼저 256 바이트 크기의 char 형 배열인 buffer가 선언된다. 그 후 if 문으로 argc의 수가 2 미만이면 argv error를 선언하고 프로그램을 종료한다. argc가 2 이상이면 strcpy 함수를 이용해 argv[1]의 string을 buffer에 복사하고, buff..
-
[F.T.Z] Level 20Wargame/F.T.Z 2022. 10. 9. 07:41
Level 20을 풀어보자. 마지막 문제이니 시간을 들여 천천히 풀기 위해 주말까지 기다렸는데, 예상보다 더 어렵다.. 물론 개념을 미리 알고 있었으면 쉬웠을테지만, 그렇지 못하니 어려운 건 몸으로 부딪혀가며 알아가고 있다. Level 20의 hint를 살펴보자. 소스 코드가 짧은 것을 보니, 어려운 문제다. (짧은게 더 어려운 것 같다.) 코드를 분석해보자. 먼저, char 형의 80 바이트 크기를 가지는 bleh 배열이 선언된다. 다음으로 setreuid를 선언해 권한을 변경한다. 그 다음 fgets 함수를 통해 bleh에 입력된 79바이트를 표준 입력으로 가져온다. 마지막으로 bleh를 출력하며 프로그램이 끝난다. 굉장히 간단한 코드인데, 뭔가 이상하다. fgets에서 가져오는 크기가 선언된 배열 ..
-
[F.T.Z] Level 19Wargame/F.T.Z 2022. 10. 5. 05:08
Level 19를 풀어보자. Level 19의 hint를 살펴보자. F.T.Z의 초반 Level에서나 보던 아주 짧은 hint다. 3줄이기는 하지만 buf 배열도 있고, overflow를 할 수 있는 gets 함수도 있다. 있을건 대충 있는 것 같으니 다음 단계로 가보자. gdb로 attackme 파일의 main을 분석해보자. buf 배열이 ebp에서 40 바이트만큼 떨어져 있는 것이 보인다. sfp의 4 바이트를 더하면 ret까지는 44 바이트만큼 떨어져 있다는 것을 알 수 있다. NOP를 44 바이트만큼 채우고 ret를 변조하면 공격이 될 것이다. 이번 문제는 main 함수에 setreuid가 없으므로, setreuid가 포함된 쉘코드로 환경 변수를 만들도록 하자. 쉘코드의 앞에 NOP를 25 바이트..
-
[F.T.Z] Level 18Wargame/F.T.Z 2022. 10. 5. 03:27
Level 18을 풀어보자. 이번 문제를 받아들이기까지 굉장히 오래 걸렸다. (5일..??) 그리고 아주 허무하게 풀렸다.. 문제를 푸는 시간이 오래 걸린 것이 아니라 위에서 언급했듯 '받아들이기'까지 시간이 오래 걸렸다. Level 18의 hint를 살펴보자. 우선 한 눈에 봐도 굉장히 길다. 스크린샷을 찍었지만, 사실 밑에 shellout() 함수가 선언된 부분은 나오지 않았다. 이 길고 긴 소스 코드때문에 지레 겁을 먹고 시간이 오래 걸렸다. (정확히는 하나하나 분석해보겠다고 덤볐다가, 이해도 못하고 시간만 날려버렸다..) 소스 코드가 굉장히 길지만, 공격을 위한 부분만을 살펴보면 오히려 앞의 Level들보다 짧을 수도 있다. main 함수 내의 첫 4줄의 변수 선언 부분을 잘 보도록 하자. 그리고..
-
[Practice] Searchsploit & MetasploitPenetration Test/Practice 2022. 10. 4. 07:01
Information Gathering을 통해 많은 정보를 얻었다면 그 정보를 활용해야 한다. 알게 된 정보들을 토대로 어떤 취약점이 있는지를 알아보기 위해 Searchsploit을 이용한다. 이 Searchsploit을 이용해보기 전에 알아야 할 사이트가 있다. 바로, exploit-db 사이트이다. https://exploit-db.com Offensive Security’s Exploit Database Archive www.exploit-db.com 링크를 통해 들어가 보면 이 사이트가 어떤 곳인지 바로 알 수 있다. 날짜별로 어떤 유형의 취약점인지 잘 정리가 되어 있다. 또한, 해당 취약점에 들어가보면 작성된 코드를 보여주어 개인적으로 연습을 할 수도 있을 것이다. (아마도) Searchsplo..
-
[정보보안기사] Windows SystemCertificate/정보보안기사 2022. 10. 3. 01:23
1. 윈도우 인증 - Winlogon : 윈도우 로그인 프로세스 - GINA(msgina.dll) : Winlogon이 msgina.dll을 로딩해 사용자가 입력한 계정과 암호를 LSA에게 전달 - LSA(lsass.exe) : 계정과 암호를 검증하기 위해 NTLM(암호화) 모듈로 계정 검증, SRM이 작성한 감사로그 기록 - SAM : 사용자 계정정보에 저장 - SRM : 사용자에게 고유 SID를 부여하고 권한을 부여 2. 윈도우 실행 프로세스 - wininit.exe : 윈도우 시작 프로그램, 윈도우 세션 0 생성 - services.exe : 윈도우 서비스 관리 - lsm.exe : 시스템 관리, 주요 함수 실행, 호스트 컴퓨터와 서버의 연결 관리 - lsass.exe : 사용자 로그인 검사, 비밀..
-
[정보보안기사] 병행성 제어(Concurrency Control)Certificate/정보보안기사 2022. 10. 1. 20:52
1. 병행성이란 - 두 개 이상의 프로세스들이 동시에 존재하고, 병렬적으로 실행될 수 있는 상태 2. 상호배제(Mutual Exclusion) - 두 개 이상의 프로세스가 공유 자원에 동시에 접근하지 못하게 하는 제어 기법 - 임계영역의 개념을 이용하여 다수의 프로세스가 하나의 자원에 접근 시 무결성을 보장 * 임계영역(Critical Section) : 하나의 프로세스만 자원을 이용하도록 공유 자원의 독점을 보장하는 코드 영역 3. 교착상태(Dead Lock)란 - 하나 또는 둘 이상의 프로세스가 대기 중의 상태에 존재하고 프로그램이 진행을 할 수 없는 상태 - 프로세스가 특정 사건을 기다리는 상태 * 특정 사건 : 자원의 할당과 해제 4. 교착상태의 발생 조건 - 상호배제(Mutual Exclusio..
-
[정보보안기사] 파일 시스템(File System)Certificate/정보보안기사 2022. 10. 1. 20:36
1. 파일 시스템이란 - OS의 기능 중 하나로 생성한 파일을 저장하고, 저장된 파일을 쉽게 발견 및 접근할 수 있는 방법을 구성한 시스템 2. FAT16(File Allocation Table) - 대부분의 MS 운영체제에서 호환되는 단순한 구조의 파일 시스템 - 최대 2GB까지 지원 - 암호화 및 압축 불가능 - 파일명의 최대 길이는 영문으로 8자 - 클러스터당 1,632KB를 할당하여 내부 단편화가 발생함 3. FAT32(File Allocation Table) - FAT16을 보강한 것으로, 최대 2TB까지 지원 - 암호화 및 압축 불가능 - 파일명의 최대 길이는 영문으로 256자 - 클러스터당 4KB를 할당하여 내부 단편화 감소 4. NTFS(New Technology File System) -..