1 터널링이란?
터널링이란 캡슐화를 이용하여 한 네트워크에서 다른 네트워크를 거쳐 안전한 통신을 할 수 있도록 해주는 것으로 인터넷 상에 보이지 않는 길을 만들어 통신이 가능하므로 터널이라는 이름을 붙였습니다. 보통 캡슐화는 4 계층, 3 계층, 2 계층을 통과하면서 진행되고 스위치나 라우터와 같은 네트워크 장치를 지날 때 캡슐화를 풀어서 정보를 보고 다시 캡슐화를 하지만 터널링에서의 캡슐화는 캡슐화를 벗겨내지 않고 수행합니다.
터널링은 안전한 통신 뿐 아니라 방화벽 등으로 막혀서 접근할 수 없는 네트워크에 우회하여 접근할 수 있도록 지원해주며 이번 실습에서 이러한 기능을 사용해 보겠습니다.
- SSH 터널링 방법
2 실습 환경
사용자 - IP : 192.168.10.149, MAC : bc:5f:f4:34:14:ec
SSH 서버 - IP : 192.168.10.191, MAC : 00:0c:29:5c:88:09
접근 금지 서버 - IP : 192.168.10.152, MAC : 00:0c:29:c7:2e:d1
3 실습
3.1 접근 금지 서버 - 사용자 IP 차단
(1) iptables를 이용하여 사용자로부터의 접속을 차단합니다.
# iptables -A INPUT -s (접근을 차단할 IP) -j DROP |
- 192.168.10.149로부터의 접근을 차단
(2) 접근 차단 후 접속되던 페이지에 접근이 되지 않는 것을 확인할 수 있습니다.
- (위) 접근 차단 전, (아래) 접근 차단 후
3.2 사용자 - SSH 터널링 설정, 웹브라우저 프록시 서버 설정
3.2.1 SSH 터널링 설정
(1) putty에 에 ssh 서버로 사용할 호스트의 IP를 입력합니다.
- 192.168.10.191을 ssh 서버로 지정
(2) 접속 - ssh - 터널링을 선택하여 아래와 같이 설정해주고 추가 버튼을 누릅니다.
- ssh 터널링 설정
(3) 아래와 같이 포워드 포트가 등록된 것을 확인할 수 있습니다.
- 포워드 포트 설정
3.2.2 웹 브라우저 프록시 설정
(1) 브라우저에서 인터넷 옵션에서 LAN 설정을 선택합니다.
- 인터넷 익스플로러의 인터넷 옵션
(2) 프록시 서버를 사용하기 위해 체크하고 고급 버튼을 누릅니다.
- LAN 설정
(3) Socks 창에 ssh 터널링 설정에 사용한 localhost와 포트번호를 입력합니다.
- 프록시 설정
(4) ssh 서버를 통해 터널링이 구성되었고 웹서버에 우회하여 접근하는 것이 가능합니다.
- 웹서버 우회 접근
4 분석 결과
4.1 사용자 -> SSH 서버
패킷 캡쳐
00 0C 29 5C 88 09 BC 5F F4 34 14 EC 08 00 45 00 00 8C 02 3B 40 00 80 06 61 8C C0 A8 0A 95 C0 A8 0A BF EB CA 00 16 18 8E A0 97 1D 80 31 AE 50 18 3F A0 BC C2 00 00 CD 0E 02 79 2D 01 B1 B1 30 27 76 1F F4 54 050 25 B8 F3 01 95 76 E5 40 4B 7D A2 87 76 9D 9C 89 68 95 75 43 17 B1 94 35 55 50 BD 74 A3 06 58 48 E3 36 08 A3 C6 C3 0A 33 80 24 54 3E A3 E5 83 0E 99 10 4E 67 24 3B 1C 7E BC C6 47 7F C1 1F 47 F7 3C 71 A0 A1 8C C2 1F 84 1B 85 56 35 D7 60 3B 6D A4 0A ED C5 92 |
Etherent header
Destination MAC address |
00:0c:29:5c:88:09 |
Source MAC address |
bc:5f:f4:34:14:ec |
Type |
08 00 (IP) |
IP header 분석
Version |
Header len | TOS |
Total length |
0100 (IPv4) |
0101 (5words) | 00000000(사용안함) |
00000000 10001100 (140bytes) |
Identification |
Flag |
Fragment offset |
|
00000010 00111011 |
010(분할되지 않음) |
00000 00000000 |
|
TTL |
Protocol type |
header checksum |
|
10000000 (128) |
00000110 (6 : TCP) |
01100001 10001100 |
|
Source IP address |
|||
11000000 10101000 00001010 10010101 (192.168.10.149) |
|||
Destination IP address |
|||
10101000 01111110 00111111 10111111 (192.168.10.191) |
TCP header 분석
Source port # |
Destination port # |
|||||||
11101011 11001010 (60362) |
00000000 00010110 (22) |
|||||||
Sequence # |
ACK # |
|||||||
00011000 10001110 10100000 10010111 |
00011101 10000000 00110001 10101110 |
|||||||
Header len |
예약 | U | A | P | R | S | F |
Window size |
0101(5words) |
000000 | 0 | 1 | 1 | 0 | 0 | 0 |
00111111 10100000(16288) |
Checksum |
Urgent point |
|||||||
10111100 11000010 |
00000000 00000000 |
분석 결과
사용자가 SSH서버에게 패킷을 전송하지만 그 데이터가 보통 SSH 패킷보다 큰 것으로 보다 SSH 터널링을 통해 웹페이지 접속을 하려는 것 같지만 메세지는 암호화되어 확인할 수 없습니다.
4.2 SSH 서버 -> 웹서버
패킷 캡쳐
00 0C 29 C7 2E D1 00 0C 29 5C 88 09 08 00 45 00 00 3C F2 70 40 00 40 06 B1 A3 C0 A8 0A BF C0 A8 0A 98 90 7C 00 50 72 A9 69 A5 00 00 00 00 A0 02 16 D0 91 86 00 00 02 04 05 B4 04 02 08 0A 00 12 9B D5 00 00 00 00 01 03 03 06 |
Etherent header
Destination MAC address |
00:0c:29:c7:2e:d1 |
Source MAC address |
00:0c:29:5c:88:09 |
Type |
08 00 (IP) |
IP header 분석
Version |
Header len | TOS |
Total length |
0100 (IPv4) |
0101 (5words) | 00000000(사용안함) |
00000000 00111100 (60bytes) |
Identification |
Flag |
Fragment offset |
|
11110010 01110000 |
010(분할되지 않음) |
00000 00000000 |
|
TTL |
Protocol type |
header checksum |
|
01000000 (64) |
00000110 (6 : TCP) |
10110001 10100011 |
|
Source IP address |
|||
11000000 10101000 00001010 10111111 (192.168.10.191) |
|||
Destination IP address |
|||
10101000 01111110 00111111 10011000 (192.168.10.152) |
TCP header 분석
Source port # |
Destination port # |
|||||||
10010000 01111100 (36988) |
00000000 010100000 (80) |
|||||||
Sequence # |
ACK # |
|||||||
01110010 10101001 01101001 10100101 |
00000000 00000000 000000000 00000000 |
|||||||
Header len |
예약 | U | A | P | R | S | F |
Window size |
1010(10words) |
000000 | 0 | 0 | 0 | 0 | 1 | 0 |
00010110 11010000 (5328) |
Checksum |
Urgent point |
|||||||
10010001 10000110 |
00000000 00000000 |
분석 결과
SSH 서버에서 웹서버에 연결을 요청하고 있습니다. 이후 응답을 받고 연결이 완료되었습니다.
4.3 SSH 서버 -> 사용자
패킷 캡쳐
BC 5F F4 34 14 EC 00 0C 29 5C 88 09 08 00 45 10 00 5C 1A 0C 40 00 40 06 89 DB C0 A8 0A BF C0 A8 0A 95 00 16 EB CA 1D 80 31 AE 18 8E A0 FB 50 18 00 8E BD 46 00 00 18 09 39 1E 93 33 62 5C 13 63 22 41 77 52 CB 67 7B A4 E4 AC D4 EE E7 07 A5 10 73 9B 63 76 4E 8C 80 D1 A6 77 F6 05 B8 D7 D0 FA AC B9 2E B1 B1 F5 CE D0 BD 26 |
Etherent header
Destination MAC address |
bc:5f:f4:34:14:ec |
Source MAC address |
00:0c:295c:88:09 |
Type |
08 00 (IP) |
IP header 분석
Version |
Header len | TOS |
Total length |
0100 (IPv4) |
0101 (5words) | 00010000(사용안함) |
00000000 01011100 (92bytes) |
Identification |
Flag |
Fragment offset |
|
00011010 00001100 |
010(분할되지 않음) |
00000 00000000 |
|
TTL |
Protocol type |
header checksum |
|
01000000 (64) |
00000110 (6 : TCP) |
10001001 11011011 |
|
Source IP address |
|||
11000000 10101000 00001010 10111111 (192.168.10.191) |
|||
Destination IP address |
|||
10101000 01111110 00111111 10010101 (192.168.10.119) |
TCP header 분석
Source port # |
Destination port # |
|||||||
00000000 00010110 (22) |
11101011 11001010 (60362) |
|||||||
Sequence # |
ACK # |
|||||||
00011101 10000000 00110001 10101110 |
00011000 10001110 10100000 11111011 |
|||||||
Header len |
예약 | U | A | P | R | S | F |
Window size |
1010(10words) |
000000 | 0 | 1 | 1 | 0 | 0 | 0 |
00000000 10001110 |
Checksum |
Urgent point |
|||||||
10111101 01000110 |
00000000 00000000 |
분석 결과
보통 SSH보다 패킷이 큰것으로 보아 SSH 터널링을 통해 웹서버에 접근한 패킷으로 추측할 수 있지만 메세지는 암호화되어 확인할 수 없습니다.
'CERTIFICATE' 카테고리의 다른 글
[모의해킹] EP.08 : MITM 공격(웹 변조) (0) | 2019.10.14 |
---|---|
[모의해킹] EP.07 : 은닉채널 (0) | 2019.10.04 |
[모의해킹] EP.05 : DNS Spoofing (0) | 2019.09.24 |
[모의해킹] EP.04 ICMP Redirect (0) | 2019.09.23 |
[모의해킹] EP.03 : ARP Spoofing (0) | 2019.09.19 |