1. 프록시란?
- 프록시(Proxy)는 최종 사용자와 다른 웹사이트 또는 서버 사이의 가교 역할을 하는 물리적 또는 가상 서버입니다.
- 프록시는 알려진 위협으로부터 기업의 내부 인프라를 보호하는 것부터 인증 요청 처리, 웹 트래픽 관리에 이르기까지 위협에 대한 보안에 일반적으로 사용됩니다.
2. 웹 프록시 툴
- 웹 프록시 툴은 프록시를 사용하여 네트워크에서 통신하는 HTTP request를 가로채 분석 및 수정할 수 있으며 웹 취약점을 테스트하거나 해킹 공격을 수행할 수 있는 점검도구입니다.
- 즉, 웹페이지와 통신할 때 프록시 툴을 거쳐서 나가고, 웹 서버에서 응답값을 받을 때도 프록시 툴을 거쳐서 보이게 되는 것입니다.
- 웹 프록시 툴의 종류
- Burp Suit (가장 대표적)
- OWASP-ZAP
- Acunetix
3. 프록시 서버
프록시 서버는 클라이언트와 서버 사이에 위치하여 중계 역할을 수행하는 서버입니다.
- 포워드 프록시 : 클라이언트가 인터넷 서버에 요청할 때 중개 역할을 해줍니다.
- ex) IP 숨기기, 방화벽 우회
- 리버스 프록시 : 인터넷 사용자가 서버에 접근할 때 서버를 대신하여 요청을 처리하도록 합니다.
- ex) 부하 분산, 보안 강화
- 익명 프록시 : 사용자의 실제 IP를 숨기고 요청을 서버로 전달하도록 합니다.
4. VPN vs Proxy
- VPN(Virtual Private Network)
- 사용자의 장치와 VPN 서버 사이에 암호화된 보안 연결 터널을 생성하여 인터넷 트래픽을 암호화하고 새로운 IP 주소를 배정받습니다.
- 이로써 사용자의 IP 주소와 위치를 가려주고, 인터넷 업체의 추적과 정부의 감시를 피할 수 있습니다.
- Proxy
- 컴퓨터와 인터넷 간의 매개체로 웹사이트 측에서 사용자의 실제 IP 주소와 위치를 확인할 수 없도록 합니다.
- 하지만 프록시 서버는 VPN과 달리 트래픽을 암호화하지 않기 때문에 사용자의 인터넷 활동을 훔쳐보는 사람들로부터 보호할 수 없습니다.
VPN | 프록시 서버 | |
작동 원리 | 운영체제 수준에서 동작하여 모든 트래픽을 리디렉션 | 응용 프로그램 수준에서 동작하여 특정 앱 또는 브라우저의 트래픽만 라우팅 |
암호화 | 사용자의 모든 트래픽을 암호화 | 트래픽을 암호화하지 않음 |
로그 기록 | 대부분의 VPN 제공 업체는 웹 트래픽을 기록하지 않음 | 프록시 서버는 사용자의 웹 트래픽을 기록함 |
비용 | 일반적으로 유료 | 무료로 제공되는 경우가 있음 |
📌 실습 도전 과제
1. 웹 프록시 툴 설치하기 - Burp Suite
- 다운로드 버전 중 무료인 Community 버전을 선택합니다.
- 설치 후, 불러올 프로젝트가 없으므로 Temporary project를 선택합니다.
- Burp Suite 기본 설정
- 기본적으로 프록시 설정은 127.0.0.0:8080으로 되어 있습니다.
- 그러나 8080 포트를 다른 서비스가 사용하고 있는 경우에는 사용할 수 없기 때문에 다른 포트 번호로 변경하여 진행합니다.
- 이후, Open browser를 클릭하면, 비어있는 브라우저 창이 뜹니다. 해당 브라우저를 이용하면 별도의 프록시 설정 없이 패킷을 잡을 수 있습니다.
- 만약 패킷을 잡았을 때 Request만 잡히고 Response는 잡히지 않는 경우에는 옵션에서 Responses도 Intercept 할 수 있도록 체크해주어야 합니다.
- 만일 패킷에서 한글이 깨져있는 경우에는 설정된 폰트가 한글을 지원하지 않는 폰트이기 때문이므로 Settings -> User interface -> Display에서 한글을 지원하는 폰트로 변경하면 됩니다.
- Burp Suite 기능
- 대시보드 창은 Task, Event log, Issue activity로 나누어져 있습니다.
- Task 영역 : 무료 버전은 New Live task만을 지원하며 이를 통해 실시간 크롤링이 가능합니다.
- Event log 영역 : 작업에 대한 Error, info 등의 이벤트 로그가 기록됩니다.
- Issue activity 영역 : 스캔 활동에 대한 결과가 기록되는 곳으로 Pro 버전에서만 지원합니다.
- Target
- 타켓 어플리케이션에 대한 자세한 정보를 확인할 수 있습니다.
- 현재 작업의 범위 내에 있는 타켓을 정의할 수 있고, 취약성 테스트 프로세스를 수행할 수 있습니다.
- Target - Site map
- 브라우저에서 방문한 모든 URL이 개별 항목으로 기록되어서 각 항목에 대한 전제 요청 및 응답에 대한 전체 세부사항을 볼 수 있습니다.
- 도메인, 디렉터리, 파일, 매개변수로 구분된 URL 및 내용을 계층적 트리 형식으로 보여줍니다.
- 필터 표시창을 클릭하면 디스플레이 필터 옵션이 열립니다. 이를 통해 관심 있는 콘텐츠만 나타나도록 필터링 할 수 있습니다.
- Site map에 너무 많은 항목이 있으면, 타켓 사이트만을 분석하는 것이 어려울 수 있습니다.
- 그럴 때, request type의 필터를 통해 in-scope items만 볼 수 있도록 설정한 후, '오른쪽 마우스'를 클릭하여 타겟 사이트를 scope에 추가해주면 지정된 사이트에 대한 정보만 볼 수 있습니다.
- Target - Scope
- 공격하려는 대상의 범위에 대해 설정할 수 있습니다.
- Include in scope 영역은 범위 내 표시이고, Exclude in scope는 범위 내 차단을 의미합니다.
- 공격하려는 대상 범위를 설정한 후, 아래처럼 Proxy에서 설정해주면 공격하려는 범위에 대해서만 Intercept할 수 있습니다.
2. 웹 프록시 툴을 이용하여 패킷 변조해 보기
3. `http://war.knock-on.org:10001 실습하기
'ELITE HACKER bootcamp > Pre.web' 카테고리의 다른 글
[2주차 TIL] HTML (0) | 2024.12.16 |
---|---|
[1주차 TIL] HTML, CSS, Javascript란? (1) | 2024.12.16 |
[1주차 TIL] 패킷 (0) | 2024.12.16 |
[1주차 TIL] Cookie와 Session (0) | 2024.12.16 |
[1주차 TIL] HTTP/HTTPS (2) | 2024.12.15 |