모의해킹 스터디/Week1

리눅스 환경에서 포트를 열어서 실습하기

protruser 2024. 4. 26. 11:23

이전에 작업한 Termius 리눅스 환경에서 실습을 진행하였다.

 

OVA 파일을 먼저 실행하고 위의 그림과 같이

sudo python3 -m http.server 80

을 입력한다. (포트 번호는 http로 열 수 있는 범위 내의 포트를 마음대로 설정할 수 있다.)

 

이 명령어는 관리자 권한으로 python3을 실행하여 http 프로토콜의 80번 포트를 열겠다는 명령어이다.

명령어를 실행하였을 때, 어떤 오류 없이 Serving HTTP on 0.0.0.0 port 80 ~~~ 와 같은 로그가 기록되면 정상적으로 실행이 된 것이다.

 

이제 url에 http://[IP 주소]:[Port 번호] 를 입력한다.

 

아래 그림과 같이 디렉토리 안에 작성된 파일을 볼 수 있다.

여기에서 먼저 test.txt 파일을 열고 싶다면 파일 링크를 눌러도 되지만

url에 http://[IP 주소]:[Port 번호]/test.txt를 작성해서 열어보았다.

 

test.txt 파일

 

잘 작동되는 것을 볼 수 있다.

 

 

이번에는 포트를 닫고 normal dir/ 디렉토리에서 포트를 열어보려고 한다.

 

위의 그림과 같이 normal_dir 디렉토리에서 포트를 열고 이전 디렉토리에 있는 normaltic_pic.jpeg 파일을 열어보겠다.

그러면 url에 http://[IP 주소]:[Port 번호]/../normaltic_pic.jpeg

상대주소(.. = 이전 디렉토리) 개념을 이용하여 이전 디렉토리의 normaltic_pic.jpeg 파일 url을 입력하였다.

 

 

그러면 이와 같이 에러메세지를 출력한다.

분명히 이전 디렉토리에 normaltic_pic.jpeg 라는 파일이 있는데 왜 열리지 않는 것인가?

(만약에 열린다면 이전의 캐시가 남아있어서 웹브라우저가 기록하고 있는 부분을 보여준 것이다.)

 

이유는 보안상의 문제 때문이다.

포트를 열었을때 그 포트를 기점으로 상위 폴더까지 열어볼 수 있다면, 파일이 어떻게 구성이 되어있는지 모든 파일을 볼 수 있을 것이다. 한마디로 최상위 폴더로 진입이 가능하다는 뜻.

그러면 사용자는 파일의 모든 부분을 탈취할 수 있는 문제가 발생한다.

 

이를 막기 위해 포트를 열었을 때는 그 포트를 기점으로 하위 폴더와 파일만 접근이 가능하다.

 

따라서 포트를 어느 디렉토리에서 여는지가 매우 중요하다