2017. 8. 2. 18:51ㆍNetworkHacking/Network
포트 포워딩은 " 리스닝 포트 "를 SSH Server, SSH Client 중 어느 곳에 여는 지에 따라서 두가지 방식으로 나뉘어 진다
[1] Local Port Forwarding 로컬 포트 포워딩 - SSH Client에 리스닝 포트를 연다
로컬 포트 포워딩을 사용하는 환경
: 웹 서버의 방화벽이 22/tcp 포트에 접속하는 연결만 허용하고 그 이외의 접속하려는 연결은 차단하는 경우 웹 서버에 접속하기 위해 사용
22/tcp: SSH Service Port
[ 방화벽 조건 ]
Inbound 22/tcp ACCEPT
Inbound ANY DROP
Outbound ANY ACCEPT
[ Local Port Forwarding ]
[ 로컬 포트 포워딩 과정 ]
Host-A == Application Client, SSH Client / Host-B == Application Server, SSH Server
1> 명령을 입력하는 사용자는 Application Client(웹 브라우저) 이다
2> 사용자가 Application Server ( 웹서버 80/tcp )에 접근하려고 하지만 방화벽에 막혀 접근할 수 없다
3> 따라서 SSH Server의 22/tcp포트의 연결 터널을 이용하려고 한다 ( 방화벽에서 22/tcp로의 외부 접속을 허용한다 )
4> SSH Client에 리스닝 포트( 8585/tcp )를 열어 놓는다
5> SSH Client의 8585/tcp포트와 SSH Server의 22/tcp포트의 SSH터널을 생성한다
6> Application Client는 8585/tcp포트로 접속하고 SSH터널을 통해 SSH Server의 22/tcp 포트로 연결해 SSH Server 내부로 접속
7> 현재 사용자는 Host-B내부에 위치하므로 Application Server의 방화벽에 차단되지 않고 80/tcp포트로 접속해 웹 서버에 접근한다
[ 명령어 구조 ]
#ssh -L [ 로컬 리스닝 포트 ] : [ 포워딩 할 주소( IP:Port ) ] [ SSL 서버 주소 ]
#ssh -L 8585:10.10.10.10:80 10.10.10.10 => SSH Client의 8585포트를 통해서 10.10.10.10의 80번 포트로 포트 포워딩하여 접근하겠다
[2] Remote Port Forwarding 원격 포트 포워딩 - SSH Server에 리스닝 포트를 연다
원격 포트 포워딩을 사용하는 환경
: 웹 서버의 방화벽이 로컬 포트 포워딩을 사용했던 22/tcp 포트에 접속하는 연결을 포함하는 모든 내부 연결들을 차단하고 내부에서 외부로 나가는 패킷만 허용하는 방화벽을 우회할 때 사용
[ 방화벽 조건 ]
Inbound ANY DROP
Outbound ANY ACCEPT
[ Remote Port Forwarding ]
[ 원격 포트 포워딩 과정 ]
Host-A == Application Client, SSH Server / Host-B == Application Server, SSH Client
1> 명령을 입력하는 사용자는 Application Client(웹 브라우저) 이다
2> 사용자가 Application Server의 웹서버 80/tcp에 접근하려하지만 방화벽에 의해 차단당했다
3> 로컬 포트 포워딩을 통해서 방화벽을 우회하려 했지만 외부에서 내부로 접속하는 모든 패킷들을 방화벽이 차단하고 있다
4> 하지만 내부에서 외부로 나가는 패킷들을 허용하고 있는 취약점을 이용해서 포트 포워딩을 실행하려한다
5> Host-A에서 SSH Server가 되고 Host-B가 SSH Client가 되어 SSH 터널링을 수행한다 ( 로컬 포트 포워딩과 반대 )
6> SSH Server에 리스닝 포트 ( 8585/tcp ) 를 열어 놓는다
7> 사용자는 SSH Server의 8585/tcp로 접속하고 SSH터널을 통해 SSH Client의 내부로 접속하게 된다
8> 현재 사용자는 Host-B내부에 위치하므로 Application Server의 방화벽에 차단되지 않고 80/tcp포트로 접속해 웹 서버에 접근한다
[ 명령어 구조 ]
#ssh -R [ 원격 리스닝 포트 ] : [ 포워딩할 서버( IP:Port ) ] [ SSL 서버 주소 ]
#ssh -R 8585:10.10.10.10:80 10.10.10.20 => SSH Server의 8585포트를 통해서 10.10.10.10의 80번포트로 포트 포워딩하여 접근하겠다
'NetworkHacking > Network' 카테고리의 다른 글
와이어샤크(Wireshark) 파일 카빙 기법 / 이미지 복구하기 / HxD사용법 (0) | 2017.08.02 |
---|---|
Wireshark 사용법 + 유용한 기능 (1) | 2017.08.02 |
SSL/TLS Handshake Protocol (0) | 2017.07.21 |
FTP서버구축 및 통신하기 ( netcat / ncat ) (0) | 2017.07.21 |
DNS Spoofing 실습 (0) | 2017.07.21 |