Kali가 Win7과 통신을 하려고 한다.
그런데 보안상 Win7 에서는 SSH서버인 CentOS 에서 오는 패킷만 받는다고 한다.
이때, Kali에서 SSH 터널링을 이용하여 CentOS에 접속하여 Win7과 통신을 해보자.
참고로 이 과정은 Putty의 SSH 원격접속과 같은 원리이다.
[환경 설정]
1. VM을 이용하여 3개의 OS를 구동 후 네트워크 설정을 모두 Host-Only로 설정한다.
(∵ VM끼리만 통신)
2. Win7 에 netcat 프로그램을 다운로드 한다.
(다운로드 주소 : eternallybored.org/misc/netcat/)
저는 1.11버전 사용했고 로컬에서 다운로드 한 뒤 Win7에 드래그 앤 드롭하면 됩니다.
※ Kali랑 CentOS에는 netcat이 있습니다.
3. 각 OS에 IP를 설정한다.
Kali -> ifconfig eth0 10.10.10.10/24
CentOS -> ifconfig eth0 10.10.10.20/24
Win7 -> 네트워크 및 공유 센터 > 어댑터 설정 변경 > 네트워크 속성 > TCP/IPv4
IP 주소 : 10.10.10.30 / 서브넷 마스크 : 255.255.255.0
4. 통신 테스트를 위하여 Win7의 고급 방화벽 설정 > 인바운드 규칙
TCP/8080(로컬)의 연결 허용 규칙을 생성한다.
(규칙이 없으면 Kali와 통신이 안되요)
그 다음으로
Win7 -> nc -lvp 8080 으로 먼저 통신 대기를 한다.
Kali -> nc 10.10.10.30 8080 으로 Win7에 메시지를 보내본다.
Kali 측)
Win7 측)
위의 그림처럼 Kali 에서 보낸 메시지가 잘 왔는지 확인 후
CentOS에서도 Win7으로 메시지를 보내서 통신이 잘 되나 확인한다.
여기까지 왔다면 아까 만들었던 Win7의 TCP/8080 규칙을 끈다.
[SSH 터널링]
1. Kali에서 Win7으로의 통신을 막는 방화벽 규칙을 만든다.
사용자 지정 > 모든 프로그램 > TCP / 모든 포트 > 원격IP주소에 10.10.10.10 추가 > 연결 차단
CentOS에서 Win7의 8080포트와의 통신을 하기 위한 방화벽 규칙을 만든다.
사용자 지정 > 모든 프로그램 > TCP / 로컬 8080 > 원격IP주소에 10.10.10.20 추가 > 연결 허용
이렇게 설정하면 CentOS에서 Win7의 TCP/8080 통신만 가능하다.
2. SSH 통신을 위하여 CentOS에 SSH 서비스를 실행한다.
CentOS -> service sshd start
3. Kali에서 Win7과의 통신을 위하여 SSH 터널을 설정한다.
Kali -> ssh -L 1004:10.10.10.30:8080 10.10.10.20
( ssh -L [사용할 로컬포트]:[최종접근지] [SSH 서버 IP] )
위의 명령을 내린 후 CentOS의 패스워드를 입력하라고 나오면 SSH 터널이 생성된 것이다.
4. Kali에서 Win7으로 다시 통신을 해본다.
Kali -> nc 10.10.10.30 8080
5. 결과
Kali 측)
Win7 측)
저는 10.10.10.10(Kali)에서 메시지를 보냈지만
Win7 측의 빨간색 박스를 보면 10.10.10.20(CentOS)에서 메시지가 온 것으로 나옵니다.
추가로 Kali에서 22번 포트(SSH 포트)를 확인해본다.
Kali -> lsof -i:22
10.10.10.20(CentOS)과 SSH 연결이 되었음을 알 수 있다.
마지막은 Win7의 Wireshark 패킷 캡쳐입니다.
6. 참조