Chapter 04. CPU 스케줄링 누워서 보는 운영체제 이야기 - 김주균 교수님 현재 실행 중인 프로세스로부터 다른 프로세스로 CPU를 넘겨줘야 할 때, 기다리고 있는 여러 프로세스 중에 누구를 선택해야 할지에 대한 방식이나 기준이 있어야 하는데 이때 필요한 것이 스케줄링 기법임 여러 프로세스들이 번갈아 사용해야 하는 자원이 있을 경우, 주어진 시점에서 어떤 프로세스가 이 자원을 사용할 것인가를 결정하는 것을 스케줄링(Scheduling)이라 하며 그 자원이 CPU일 경우 CPU 스케줄링이 되는 것 # 4.1 스케줄링(Scheduling)의 단계 ▶ 스케줄링 시점을 기준으로 구분 장기(Long-term), 중기(Medium-term), 단기(Short-term) 스케줄링의 세 가지로 나눔 ▶ 장기 스..
Chapter 03. 프로세스와 스레드 누워서 보는 운영체제 이야기 - 김주균 교수님 # 3.1 프로세스란 무엇인가? ▶ Job: 시스템에서 처리해줘야 할 일거리 하나의 단위 = process(Task, Thread) ≠ processor(H/W): 일을 처리할 수 있는 기능을 가짐 ex) CPU ▶ 프로세서의 정의 수행 중인 프로그램 (A program in execution) 수행 중(in execution): 어떤 일을 함을 나타내는 프로그램과 이때 필요한 값들을 저장하고 있는 처리기 레지스터, 스택 등의 데이터와 함께, 어느 정도 진행되었는지를 나타내는 PC 값 등으로 표현되어, 커널에 등록되어 있다는 것을 의미 ▶ 프로그램과 데이터를 기본으로 정상적인 실행을 위해 필요한 환경을 시스템으로부터 부..
Chapter 02. 들어가기 전에 누워서 보는 운영체제 이야기 - 김주균 교수님 # 2.1 OS의 목적 - 운영체제 사용자와 컴퓨터 사이의 가교 역할을 한다고 하였는데, 이것은 사용자가 컴퓨터를 보다 편리하게 사용할 수 있도록 해 주어야 한다는 것을 의미 하드웨어가 가지는 능력을 십분 발휘 되도록 제어한다고 하였는데, 이것은 컴퓨터 시스템의 자원들을 효율적으로 사용될 수 있게 해야 한다는 말. 즉, 사용자의 편리성과 자원의 효율적 사용이 그 목적임 효과적인 점검과 개발이 가능하고, 새로운 기능들이 추가될 수 있도록 만들어져서 사용자에게 보다 나은 서비스를 제공할 수 있도록 만들어져야 할 것 다른 각도에서 더 설명하자면 운영체제를 사용하는 사람들의 입장에서 보면 사용하기에는 쉽고 편리하며 배우기에는 쉽고..
Chapter 01. OS? Oh Yes! 누워서 보는 운영체제 이야기 - 김주균 교수님 # 1.1 OS? - 운영체제의 정의 컴퓨터의 여러 응용 프로그램을 설치되게 해 주고, 여러 가지 장치를 효율적으로 작동하도록 하며, 사용자가 컴퓨터를 손쉽게 이용할 수 있도록 해 주는 프로그램의 집단 컴퓨터의 사용자와 하드웨어 사이에서 가교(interfacing) 역할을 하는 프로그램 하드웨어 그 자체가 가지고 있는 능력을 십분 발휘되도록 제어해 주는 프로그램 컴퓨터가 컴퓨터 밖의 세계와 상호 동작하는 방법을 정의한 프로그램 - 운영체제의 역할 운영체제 역할: 사용자 인터페이스(User Interface)와 자원 관리(Resource Management)를 위한 프로그램 집합 시스템 프로그램: 컴퓨터 하드웨어에 의..
# Proxy - proxy를 통해 웹 서버에 접근 # yum -y install squid // proxy 설치 # systemctl restart mariadb // db 재시작 - proxy 설정 파일 수정 # cd /etc/squid # vi squid.conf // 웹 서버의 환경설정 파일 safe_ports만 허용하고 있음 다음과 같이 사용하는 ip를 추가하여 접근 제어 목록에 추가 변경 내용(centos7)의 접근 통제를 허용해 줌(적용하는 과정) - Client에서 web proxy를 찾아가도록 설정 firefox 설정에서 network proxy 찾기 수동으로 설정 port는 설정 파일에서 찾아보면 "http_port 3128"이라는 부분에서 알 수 있음 (아까 설정파일에서 localho..
Web: Hidden 5번 파일에 플래그가 있다는데 버튼은 4까지 밖에 없다.. 우선 버튼을 누르면 어떻게 변화가 일어나는지 살펴보았음 1번을 눌렀을 때 "Nop"이라는 메시지를 담은 경고창이 뜨면서 포트번호 뒤에 /?id=1이 추가된 것을 확인할 수 있다 1번부터 4번까지 눌러보았을 때 1번을 눌렀을 때와 크게 다른점은 확인할 수 없었다 id의 번호만 변경될 뿐이었기 때문에 이 id를 5로 변경하면 무엇인가 얻을 수 있지 않을까? 라고 추측해보았다 예상대로 id를 5로 변경하니 플래그를 획득할 수 있었다 성공 :)
Exploit Tech: Shellcode # 서론 1. 들어가며 🚪 - 익스플로잇(exploit): 해킹 분야에서 상대 시스템을 공격하는 것 - 익스플로잇은 '부당하게 이용하다'라는 뜻이 있는데, 상대 시스템에 침투하여 시스템을 악용하는 해킹과 맥락이 닿음 - 셸코드 셸코드 개념 orw 셸코드 작성 및 디버깅 execve 셸코드 작성 코스 요약 및 리뷰 퀴즈 2. 셸코드 🐚 - 셸코드(Shellcode): 익스플로잇을 위해 제작된 어셈블리 코드 조각을 의미 - 일반적으로 셸을 획득하기 위한 목적으로 셸코드를 사용해서, "셸"이 접두사로 붙었음 - 만약 해커가 rip(명령어 포인터 레지스터)를 자신이 작성한 셸코드로 옮길 수 있으면 해커는 원하는 어셈블리 코드를 실행시킬 수 있음 → 어셈블리어는 기계어와..
01. Metasploitable2 설치 Metasploitable - Browse /Metasploitable2 at SourceForge.net sourceforge.net - metasploitable2는 취약 서버(다양한 취약점을 가지고 있음)로 실습에서 사용하기 위해 설치 - login 정보 login: msfadmin password: msfadmin - root 사용자(관리자 mode) login: root password: msfadmin 02. Kali-Linux를 통한 Port Scanning 1) 분석 서버의 ip 주소 확인 metasploitable 2의 ip 주소는 192.168.56.133 임을 확인할 수 있음 CentOS7(Server)의 ip 주소는 192.168.56.131..
Web: / 페이지를 접속하니 로봇 사진이 나오면서 플래그가 숨어있다고 한다 사실 hidden flag라고해서 간단하게 주소 뒤에 /flag /hidden /hiddenflag /hidden_flag 등 다양하게 붙여봤지만 실패했다..! 그래서 다시 문제에 집중해 대체 왜 로봇사진이 있을까 생각해보았고 구글에 web robot이라고 쳐보니 아래 사이트를 찾을 수 있었다 웹 로봇(Web Robots)에 대해 알아보기 : robots.txt Index goodgid.github.io robots.txt라는 파일이 있다고 하는데 혹시나 싶은 마음에 /robots.txt를 쳐보았다 뭔가 새로운 화면이 나왔다 /robot_flag/를 disallow해놨다고 쓰여져 있다 이를 이용하여 페이지를 이동해보자 플래그를 ..
Tool: pwntools # 서론 1. pwntools의 등장 배경 - 파이썬으로 페이로드를 생성하고, 파이프(|)를 통해 이를 프로그램에 전달할 수 있음 - 그러나 익스플로잇이 조금만 복잡해져도 위와 같은 방식은 사용하기 어려워짐 - 그래서 해커들은 펄, 파이썬, C언어 등으로 익스플로잇 스크립트, 또는 바이너리를 제작하여 사용함 - 파이썬으로 여러 개의 익스플로잇 스크립트를 작성하다 보면 자주 사용하게 되는 함수들이 있는데, 이런 함수들을 반복적으로 구현하는 것은 비효율적임 - 그래서 시스템 해커들은 이들을 모아 pwntools라는 파이썬 모듈을 제작함 > 이제는 익스플로잇의 대부분이 pwntools를 이용하여 제작 및 공유됨 2. pwntools 설치 - pwntools는 깃헙에 오픈 소스로 공개..