본문 바로가기

3. Pwnable (포너블)

[2022.11.26] 포시즌 - 포너블팀 활동보고

생활코딩 - Linux 섹션 8 그룹

그룹: 소유자를 제외하고 특정 사람들을 묶어 권한을 부여하고 싶을 때, 그룹을 생성할 수 있다.

 

pwnable라는 그룹을 만드는 코드

sudo groupadd pwnable

그룹이 만들어진 것을 확인하려면 /etc/group을 입력하면 된다.

/etc/group

그룹에 권한을 추가하는 방법, pwnable이라는 그룹에 팀원들을 추가해보자.

-a -G는 group append라는 뜻으로 그룹에 추가한다는 뜻이다. 

sudo usermod -a -G pwnable yejin
sudo usermod -a -G pwnable jiwon
sudo usermod -a -G pwnable sumi
sudo usermod -a -G pwnable raon

그룹에 새로운 사용자들이 추가되었으니 다음으로 2가지의 과정이 필요하다. 

첫 번째, 디렉토리인 pwnable의 소유 그룹을 변경하기. (명령어 chown을 사용하여 파일이나 디렉토리의 소유자와 소유 그룹을 바꿀 수 있다. )

맨 끝의 .는 현재 디렉토리를 나타내고, root:pwnable은 root를 소유자, pwnable을 소유 그룹으로 정한다는 뜻이다. 여기서 pwnable이 현재 디렉토리여야 pwnable 디렉토리에 적용된다. 

sudo chown root:pwnable .

이 단계를 끝내면 소유 그룹이 root에서 pwnable로 바뀐다.

 

두 번째, 그룹 권한에 쓰기 권한을 부여하기. 

sudo chomod g+w

그룹에 속해있는 사용자 4명은 각자 이름의 파일을 디렉토리 안에 만드는데 어려움이 없다. 하지만 사용자 권한을 얻지 못한 다른 사용자들은 pwnable 안에 파일을 만들지 못한다. (쓰기 권한이 부여되지 않아 에러가 발생한다.)

 

생활코딩 - Linux 섹션  9. 인터넷, 네트워크 그리고 서버

서버 안에서 리눅스를 사용하기 위해서는 클라이언트-서버 사이의 요청과 응답이 어떻게 이루어지고 있는지에 대해 알아야한다. 

 

요청 (Request): 인터넷에서 검색을 하기 위해 naver.com으로 이동하고 싶다면 웹 브라우저에서 https://naver.com을 을 검색해서 들어야가한다. 그런다면 User의 컴퓨터는 naver의 메인 컴퓨터에 접속되며 웹 검색을 하기 위해 필요한 것을 요구한다. 

응답 (Resopnse): naver의 컴퓨터는 user의 컴퓨터에 대해 요청한 것을 전송한다.

클라이언트 (Client): 요청을 보낸 User의 컴퓨터

서버 (Sever): 응답을 보내는 컴퓨터 (이 시나리오에서는 naver를 뜻한다.)

 

User의 컴퓨터가 naver에 접속하기 위해서 IP주소 또는 Domain Name을 알아야한다. naver.com -> 하나의 도메인 네임이다. 리눅스에서는 명령어 ping을 통해서 IP주소를 알아낼 수 있다.

ping naver.com

자신의 IP주소를 알아내는 방법 https://ipinfo.io/ip 에 들어가면 IP주소를 받을 수 있게된다. 여기서 명령어 curl을 사용하면 응답을 쉘로 받을 수 있다. (공인 IP)

curl ipinfo.io/ip

자신의 IP주소를 알아내는 다른 방법 (사설 IP)

ip addr

라우터 (Router) : 인터넷을 사용하기 위해서 통신사의 회선에 장치를 연결해야하는데 통신사는 회선에 대한 IP주소를 보내주게 된다. 하지만 연결된 장치가 많을 수록 여러 회선을 통신사한테 비용을 지불해야하기 때문에 비용이 올라간다.  그래서 라우터를 사용한다.