Reverse Dynamic Port Forwarding
☀️공지 사항☀️ 해당 페이지는 Red Raccoon - PNT 학습 후 추가적인 개인 공부를 통해 재구성 및 실습한 내용입니다. 필자의 환경에 맞게 공부 및 실습을 진행하여 이 점 참고 바랍니다. Red Raccoon - PNT 강의 사이트로 이동하기
리버스 다이나믹 포트 포워딩
개요
리버스 다이나믹 포트 포워딩은 원격 호스트가 중계 서버에 다이나믹 포트(소켓 프록시)를 생성하여, 외부에서 중계 서버를 통해 여러 목적지로 동적으로 안전하게 접속할 수 있도록 하는 포워딩 방식이다.
다이나믹 포트 포워딩의 경우 공격자(출발 호스트) -> 대상 서버(프록시) -> 타겟 호스트 로 진행되지만
리버스 다이나믹 포트 포워딩의 경우 프록시 서버=출발 서버가 된다. 그러므로 출발 서버(프록시) -> 공격자(대상 호스트) -> 출발 서버(프록시) -> 타겟 호스트 순서로 진행된다.
리버스 포트 포워딩을 사용하는 이유
예를 들어보자, 피싱 이메일이나 다양한 초기 침투를 이용해 사내망 안의 임의의 호스트를 장악한 상태라고 가정해보자. 장악한 호스트를 피벗 호스트 삼아 더 많은 내부망 안 네트워크들에 접근하려고 할 경우 다이나믹 포트 포워딩을 사용하면 될 거라고 생각하지만 불가능하다.
그 이유는 다음과 같다.
- 일반적으로 회사의 IT망에는 일반 유저의 호스트가 공인 IP를 가지고 있지 않다.
- 회사 내부망에는** NAT, 방화벽 이외에도 수많은 네트워크 장비들이 존재**한다.
앞서 공부했던 포트 포워딩(로컬, 다이나믹)을 사용하려면 첫 번째로 해당 호스트에 직접적인 네트워크 연결이 가능하고, 두 번째로 직접적인 SSH를 해야한다 라는 제한 조건이 존재한다. 만약 내무방 모의해킹 시나리오라면 직접적인 SSH 접근이 가능하겠지만 외부망 시나리오일 경우에는 해당 방법이 사실상 불가능하기 때문에 리버스 다이나믹 포트 포워딩 기술을 사용한다
실제 침투에서 사용하는 상황
사내망의 임의의 유저 호스트가 인터넷에 있는 공격자 서버의 TCP/22(SSH) 포트로 직접 접속을 시도하는 상황은 회사 방화벽에서 차단될 가능성이 크다. 일반적으로 임직원이 사용하는 망에서는 인터넷으로 나가는 아웃바운드 TCP/22 SSH 트래픽을 허용하지 않는 경우가 많기 때문이다.
실무에서는 이런 제한을 우회하기 위해 HTTPS 터널링을 활용하는 경우가 많다. HTTPS 연결 안에 SSH나 포트 포워딩 트래픽을 숨겨 리버스 다이나믹 포트 포워딩을 구축하게 되면 회사를 보호하는 방화벽에서는 정상적인 HTTPS 트래픽처럼 보이기 때문에 차단이 어렵다.
포트 포워딩 자체는 SSH 이외에도 다양한 툴과 방식을 통해 구현할 수 있다. 실제 C2(Command and Control) 프레임워크에서는 SOCKS 프록시 명령어 등을 통해 리버스 다이나믹 포트 포워딩 개념을 적용할 수도 있다.
댓글 남기기