15. - Port Redirection and Tunneling
15.1 - Port Forwarding/Redirection
요약: 다른 공용IP 네트워크 컴퓨터에 rinetd 서비스 설치 후 허용되는 포트를 구성, 원하는 대상에 포워딩시키기, rinetd는 리눅스 Tool
포트 포워딩 / 리디렉션은 가장 간단한 트래픽 조작 기술입니다. 지정된 IP 주소 및 포트에서 트래픽을 수락 한 다음 단순히 다른 IP 주소 및 포트로 리디렉션하는 과정이 포함됩니다. rinetd와 같은 간단한 포트 전달 도구는 편리하고 구성하기 쉽습니다.
root@kali:~# apt-get install rinetd
root@kali:~# cat /etc/rinetd.conf
...
# bindadress bindport connectaddress connectport
...
이제 다음 시나리오를 고려하십시오. TCP 포트 53의 아웃바운드 트래픽만 허용하는 네트워크에 있습니다.
분명히 이 방화벽 제한으로 인해 인터넷 검색(a.b.c.d:80) 시도가 실패합니다.
- a.b.c.d (Web Server)
- x.y.z.d (Other Home Machine)
우리는 공용 IP 주소를 가지고 있는 집에 있는 컴퓨터(w.x.y.z)에서 TCP 포트 53을 수신하도록 rinetd 데몬을 설정했습니다. 홈 컴퓨터에서 포트 53에서 들어오는 트래픽을 수락하도록 rinetd를 구성한 다음 포트 80 웹 서버로 리디렉션합니다. rinetd.conf 파일의 포트 리디렉션 항목은 다음과 유사합니다.
# bindadress bindport connectaddress connectport
w.x.y.z 53 a.b.c.d 80
15.2 - SSH Tunneling
SSH 프로토콜에는 숨겨진 비밀이 많이 있습니다. 그 능력 중 하나는 양방향 통신 채널을 지원하는 SSH 프로토콜 내에 암호화 된 터널을 생성하는 것이다. SSH 프로토콜의이 모호한 기능은 다음 예에서 볼 수 있듯이 침투 테스터와 보안 관리자 모두에게 광범위한 영향을 미칩니다.
15.2.1 - Local Port Forwarding (*SSH Client에 리스닝 포트를 연다.)
SSH 로컬 포트포워딩을 사용하면 전송 프로토콜로써 SSH를 사용하여 터널 로컬 포트를 원격 서버로 터널링 할 수 있습니다. 이 기술의 효과는 약간의 왜곡을 지닌 포트포워딩 효과와 유사합니다.
15.1에서 포트포워딩에서 겪었던 것과 동일한 시나리오를 고려하십시오.
예. SSH 로컬 포트포워딩 기능을 사용하여 다음과 같은 구문을 사용하여 egress 제한을 우회할 수 있습니다.
ssh <gateway> -L <local port to listen>:<remote host>:<remote port>
Local Port Forwading
EX) ssh w.x.y.z -p 53 -L 8080:abcd:80
* 다른 공용아이피를 지닌 홈머신 w.x.y.z의 53 포트를 통해 웹서버 a.b.c.d의 80포트로 들어감
* 홈머신 w.x.y.z는 53번 포트로 SSH 서버가 실행되고 있어야함.
터널이 생성되면 로컬 포트 8080으로 브라우즈합니다. 그것은 홈 컴퓨터의 TCP포트 53인 아웃바운드 SSH터널을 통해 우리의 트래픽을 웹 서버로 리디렉션합니다. 로컬 컴퓨터와 홈 컴퓨터 사이의 트래픽은 SSH를 통해 터널링되므로 이 두 시스템 간의 트래픽이 암호화됩니다.
* 구글링 추가 자료
별도의 홈머신 사용안함, victim 서버 내에서 ssh(22)가 http(80)포트로 포트포워딩 된다.
물론 victim 서버에 ssh서버가 실행되고 있어야함. 포트 지정을 안했기 때문에 defualt로 22번 지정됨.
EX) ssh -L 8585:10.10.10.10:80 10.10.10.10(gateway)
참고:https://itsaessak.tistory.com/171
15.2.2 - Remote Port Forwarding (* SSH서버에 리스닝 포트를 연다.)
SSH의 원격 포트 포워딩 기능은 초보자에게 종종 복잡한 기술입니다.
SSH 원격 포트 포워딩을 통해 원격 포트를 로컬 서버로 터널링 할 수 있습니다.
이 기술의 효과는 다음 시나리오를 통해 가장 잘 설명됩니다.
Cient-side-Attack을 사용하여 평가하는 동안 라우팅 할 수 없는 내부 회사 컴퓨터에서 "쉘을 팝"했습니다.
일부 사용자 비밀번호를 덤프 및 크래킹했으며 침투 한 로컬 머신이 포트 3389로 Windows RDP 서비스를 실행하고 있음을 발견했습니다. 침투 된 내부 시스템에서 당신의 공격 시스템으로 역방향 SSH 터널을 생성하여 포트 3390인 공격시스템에 피해자의 RDP 포트를 expose합니다.
다음과 유사한 구문을 사용하여 SSH로 이 터널을 생성 할 수 있습니다.
>ssh <gateway> -R <remote port to bind>:<local host>:<local port>
1. 침투
2. Client-Side 공격으로 쉘 획득
3. 피해자 시스템은 3389 RDP서비스 실행중 확인
4. 피해자 시스템의 local RDP서비스에 대한 원격SSH터널 생성.
>ssh a.b.c.d -R 3390:127.0.0.1:3389
(윈도우는 plink.exe를 사용하면 됨)
* a.b.c.d는 공격자 컴퓨터.
5. 3390으로 RDP터널이 생성됨
6. 공격자는 3390포트 터널을 통해 RDP에 연결함
# rdesktop 127.0.0.1:3390
터널이 생성되면 공격자는 원격 데스크톱 클라이언트를 사용하여 로컬 호스트 인터페이스 포트 3390에 연결할 수 있으며 트래픽은 터널을 거쳐 피해자의 원격 데스크톱 서비스(3389)로 다시 리디렉션됩니다.
* 구글링에서의 시나리오 (* SSH서버에 리스닝 포트를 연다.)
내부 네트워크 방화벽이 인바운드 패킷은 모두 차단하고 아웃바운드 패킷만 허용할 경우
이를 우회하기 위해 원격 포트포워딩을 사용할 수 있음.
참고:https://itsaessak.tistory.com/171
보충자료 링크
https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding
'OSCP > OSCP Course PDF' 카테고리의 다른 글
17. Bypassing Antivirus Software (0) | 2020.06.02 |
---|---|
15. Port Redirection and Tunneling - 2 (Dynamic, Proxychain,http터널링) (0) | 2020.03.20 |
12. - Client Side Attacks (0) | 2020.03.10 |
14. Password Attacks -2 (0) | 2020.03.06 |
11. Privilege Escalation (0) | 2020.03.05 |