리눅스
UNIX를 기반으로 만든 오픈 소스 운영체제
이때, 운영 체제란?
-> 하드웨어와 소프트웨어 사이의 중재자, 컴퓨터 시스템 하드웨이 및 소프트웨어 자원을 여러 사용자 간에 효율적으로 관리하는 것
명령어 입력 => 쉘(Shell) 이 명령어 해석 => 커널(Kernel)을 통해 하드웨어를 조작
해커들이 리눅스를 선호하는 이유
- 리눅스에 맞춰 개발된 해킹 툴들
- 자유 소프트웨어, 오픈소스
-> 비용절감 -> 많은 서버에서 사용됨
CLI
- command-line interface : 명령 줄 인터페이스 (<-> GUI)
- 가상 터미널 또는 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
Sudo
- sudo : super user do
-> 명령어 앞에 붙이면 관리자 권한으로 실행 (ex. passwd, userdel, chmod)
- /etc/sudoers 파일에서 변경
- visudo 명령어로 해당 파일 접근 가능
Shell
- 명령어 해석기
- 응용프로그램의 명령어와 커널이 대화를 하도록 만들어 줌
Shell Code
시스템 해킹의 목표 : 관리자 권한 얻기 (=쉘 열기)
-> 쉘을 여는 함수들이 필요
-> 함수들을 기계어로 옮긴 것이 쉘코드
일반덕으로 어셈블리어로 작성, 기계어로 변경됨