- 인프런 리눅스 기본 개념 섹션 7&8진행 /인프런 해킹대회 ctf출전을 위한 포너블입문 섹션1,2,3진행
인프런 리눅스 기본 개념 섹션 7&8
다중사용자
=시스템 복잡도 훪씬 증가하게 됨
id=식별하다/내가 누군지 알 수 있는
uid=user id
gid=group id(내가 어디에 속해있는지)
who=현재 이 시스템에 누가 접속해 있는지

k8805라는 사용자도 접속한다는 명령어
->who 실행시 k8805가 추가됨/exit입력시 빠져나오기 가능
리눅스 계열의 두 사용자 종류
super(root) user=권력을 가지고 있는 강력한 사용자
user=일반 사용자
sudo 명령어=슈퍼 유저만 할 수 있는 일을 입력할 때
그냥일반 사용자는 sudo를 쓸 수없음 권한이 있는 사람만이 실행가능
슈퍼유저
1.root라는 이름을 지님
2.$대신 #을 지님
su=슈퍼유저가 되는 명령어 || a라는사용자에서 b라는 사용자가 되고 싶을 때
su + username=슈퍼유저가 되는 코드
su -root -> 비밀번호 입력->슈퍼유저 상태가 됨 (가급적 일반유저로 활동)
exit=슈퍼유저에서 일반유저로
sudo passed -u root=슈퍼유저 막은 걸 푸는 코드
-u=unlock의 약자
cd/ root=최상위 디렉토리 밑에 있는 root라는 디렉토리:root사용자의 홈 디렉토리
cd/=최상위 디렉토리
<사용자의 추가>

sudo usermod -a -G sudo duru
- sudo : 관리자 권한으로 실행
- usermod : 사용자 정보를 수정하는 명령어
- -G sudo : sudo 그룹에 추가
- -a : 기존 그룹 유지한 채 추가(add)
- duru : 사용자 이름
=>duru 사용자를 sudo 그룹에 추가해서 관리자 명령을 사용할 수 있게 한다
su - duru
- su = 사용자 전환(switch user)
- - = 해당 사용자의 로그인 환경까지 같이 적용
- duru = 바꿀 사용자
=>현재 사용자에서 duru 사용자로 로그인 전환
섹션8
Permission=File&Directory(읽기,쓰기,실행 권한을 지정)
touch=새 파일을 만듦

echo=뒤 따라오는 문자를 그대로 화면에 표준 출력
echo ‘hi’ > perm.txt=hi라는 문자가 perm.txt안에 저장하고 출력
사용자가 egoing->k8805로 바뀌었을때 m.txt=egoing의 파일이므로 k8805일때 permission denied가됨,,
-기본적인 파일을 의미

->egoing은 읽고 쓰기 권한 있지만 실행권한 x/other은 읽기 권한만 존재 내용쓰기는 불가
perm.txt파일이 egoing임을 의미
<access mode>
rw=owner의 권한
-rw-=group의 권한
r- -=other의 권한
r:read/w:write/x:excute를 의미
읽는다=cat perm.txt에서 파일 내용을 출력 가능
쓴다=내용 변경 가능
chmod=change mode를 의미

chmod o-r perm.txt= other부분의 r을 삭제하는 코드
chmod o+r perm.txt=other부분의 r을 다시 넣음
<execute>

user에게 실행권한을 부여 u+x
./hi-machine.sh =파일을 실행시키는 명령어

ohter에게도 실행 권한을 부여->k8805에서도 파일 실행이 가능해짐
<chmod 정리>
-chmod의 기본틀

chmod o+r perm.txt=할 때마다 설정 비효율적임 따라서 아래와 같은 번호 사용


chmod 111 perm.txt=1은 execute only를 의미/따라서 모두 execute권한 부여
chmod 111 perm.txt=0은 none을 의미->other의 execute권한 사라짐

a+w=모두에게 w을 부여하는 코드
인프런 해킹대회 ctf출전을 위한 포너블입문 섹션1,2,3
해킹의 목표=하면 안되는 거 하기(권한이 없는 행위를 하는 것)
권한이 없는 행위란?
개발자가 의도하지 않은 프로그램의 동작같은 것
시스템 장악=Shell의 실행을 의미
shell=실행하고 싶은 코드를 실행시켜주는 프로그램
->나의 컴퓨터는 내가 시스템을 장악한 상태/ but 남의 컴퓨터로 넘어가 내 마음대로 앱을 실행:해킹을 의미
시스템:pc 그 자체/시스템을 장악하다=실행하고 싶은 코드를 실행할 수 있다
시스템 해킹(Punable) 의 목표:악의적인 실행흐름을 유도(쉘의 실행) 하는 것이 목표

공격대상 프로그램=반드시 인터넷과 연결되어 있어야함
pwnable=인터넷 어딘가에 위치한 외부(remote환경)에서 내부환경으로 침투
<CTF Pwanable 유형>

nc=특정 프로그램에 원격접속을 가능하게 해주는 명령어

포너블에서 왜 프로그램 접속이 필요한것인가?
포너블=외부->내부 침투/노출된 포트로 접속가능 프로그램에 접속하여 악의적 실행흐름을 통해 시스템 장악을 하기 때문
->시스템을 장악한다=외부에 포트가 열린 프로그램에 접근하여 쉘을 실행시킨다는 것+프로그램의 취약점을 찾아 쉘을 실행
<컴퓨터의 구조>

메모리=어떤 일을 해야하는지 저장+일을 꺼내 계산부분에 전달
---컴퓨터 메모리 특징---
실행할 코드가 저장되어있음&순서대로 코드가 실행됨
CPU
=저장부분에 있는 PC(Program Computer)에 쓰인 주소에 있는 프로그램 코드를 가져와서 실행
=핵심:검증없이 실행을 진행함
-------->PC를 조작하는 경우 악의적인 코드를 실행할 수 있음
악의적 프로그램 실행흐름 방법 2가지
1.메모리 영역 어딘가에 실행원하는 코드를 입력
2.PC값을 해당 코드가 있는 주소로 변경
'3. Pwnable (포너블) > 2) 개념 정리' 카테고리의 다른 글
| [26.05.22] 아포 8주차 팀활동 (0) | 2026.05.22 |
|---|---|
| [26.04.10] 아포 4주차 팀활동 (0) | 2026.04.10 |
| [2026.03.28] 아포 3주차 팀활동 (0) | 2026.04.03 |
| [2026.03.21]아포 2주차 팀활동 (0) | 2026.03.27 |
| [2025.04.11] 4주차 활동_Pwnabless (0) | 2025.04.11 |