카테고리 없음

23.05.02 ECOPS 정규세션 week5 System Hacking

Doo Nut 2023. 5. 2. 19:42

아래 이론에 대한 정리와 세그먼트 부분에 있는 문제에 대한 답과 풀이를 작성해주세요.

 

  1.  컴퓨터 구조 - 컴퓨터의 효율적 작동을 위해 하드웨어 및 소프트웨어의 기능을 고안, 구성하는 방법
    • 폰 노이만 구조 (연산, 제어, 저장)
    • 하버드 구조
    • 수정된 하버드 구조
  2. CPU - 중앙처리장치, 프로그램 연산 처리 및 시스템 관리
    • 산술논리장치 / 제어장치 /레지스터
    • 명령어 집합 구조 >> CPU가 해석하는 명령어의 집합
    • 레지스터 - CPU 내부에 존재하는 다목적 저장 공간(데이터를 빠르게 저장 및 사용할때 이용)
      • 산술 연산에 필요한 데이터/주소 저장 및 참조 등
      • CPU 내부에 존재하기 때문에 고속으로 데이터 처리 가능
      • x64 Architecture 에는 범용 레지스터, 세그먼트 레지스터, 명령어 포인터 레지스터, 플래그 레지스터 존재

 

세그먼트 문제

  1. a가 위치하는 세그먼트: 컴파일 시점에서 값이 정해진 전역 변수 > 데이터 세그먼트
  2. b가 위치하는 세그먼트: 컴파일 시점에서 값이 정해진 전역 변수 / 값이 변하지 않으므로 > ro-data 세그먼트
  3. c가 위치하는 세그먼트: 컴파일 시점에서 값 정해지지 않은 전역 변수 BSS 세그먼트에 위치함
  4. d가 위치하는 세그먼트: 함수 foo 안에서 선언된 지역 변수 > 스택 세그먼트에 위치함
  5. e는 어떤 데이터의 세그먼트를 가리킬까?: malloc을 통해 동적으로 할당 받은 메모리 > 힙 세그먼트
  6. "d_str"가 위치하는 세그먼트: 상수 b 저장 > ro-data 세그먼트
  7. foo가 위치하는 세그먼트: foo 실행 가능 함수 > 코드 세그먼트

 

 

  • FTZ Hackerschool Trainer에 나오는 리눅스 명령어 중 최소 10개를 정리하고, 명령어의 역할과 예시를 함께 제시하세요.
  • trainer 1
    • ls : 파일 보여줌 
    • -a : 숨긴 파일 출력 / 파일 이름의 맨 앞에 '.'을 붙이면 숨김 파일 처리
    • -l : 디렉토리와 파일 구분 출
  • trainer 2
    • pwd : 현재 경로 출력 
    • cd .. : 현재 경로에서 한 단계 위로 이동
    • cd (디렉토리명) or /(디렉토리 경로) : 해당 디렉토리로 이동
    • / : 최상위 디렉토리
    • mkdir : 새로운 디렉토리 생성
    • rmdir : 디렉토리 삭제
    • cp (원본) (복사본) : 파일 1을 파일2 라는 이름으로 복사
  • trainer 3
    • w : 사람들이 접속해있는지 확인
    • finger -l : 사용자에 대한 더 많은 정보
    • tty : 자신의 터미널 정보 확인
    • ifconfig : 현재 접속한 서버의 ip 확인
    • write 명령 사용법 : write ID /dev/pts/pts번호

trainer3 접속한 사람 분석

  • trainer 4

디렉토리 종류
중요 파일

  • trainer 5
    • whoami : 접속자에 대한 정보
    • id : 자세한 정보
    • cat /etc/passwd : 모든 사용자들에 대한 정보
    • 커널 : 리눅스의 심장부 역할을 하는 파일(커널 버전에 따라 리눅스의 성능 차이 남)
    • uname -a : 커널 버전 확인
    • rpm -qa : 패키지 정보 확인
    • cat /proc/cpuinfo : 해당 서버의 cpu 정보 확인
  • trainer 6
    • 패스워드 파일: 서버를 사용하는 사용자들의 모든 정보를 기록해 놓은 파일
  • trainer 7
    • tar cvf (합칠 파일) (합칠 파일들)
    • tar xvf (해제할 파일)
    • c - Create : 새로운 파일 만드는 옵션
    • x - eXtract : 압축을 해제시키는 옵션
    • v - View : 압축이 되거나 풀리는 과정을 출력하는 옵션
    • f - File : 파일로 백업 하겠다는 옵션
    • gzip (파일이름) : 선택된 파일 압축
    • gzip -d (파일이름) : 선택된 파일 압축 해제

  • trainer 8
    • > : 리다이렉트
    • gcc -o (프로그램이름) (소스파일이름) : 컴파일
  • trainer 9
    • r: 읽기권한 / w: 쓰기권한 / x: 실행권한

  • trainer 10
    • s - SetUID : 일시적으로 자신의 ID 변경(x 포함)
    •  

find 명령어

 

 

  • FTZ Hackerschool Trainer 1~10을 풀고 각 마지막 단계별 인증샷을 찍어서 함께 올려주세요.
  • trainer 1

  • trainer 2

해당 단계는 똑같은 오류가 반복되어 가능한 부분까지 진행했습니다

  • trainer 3

  • trainer 4

  • trainer 5

  • trainer 6

  • trainer 7

  • trainer 8

  • trainer 9

  • trainer 10