본문 바로가기
network

IP 주소 추적!??!?!??!?!?!? 🥵🥵

by j.sanghyuk 2023. 8. 29.

IP 주소 추적이란?

IP 주소는 전 세계에 펼쳐진 네트워크에 해당 패킷을 전달하는 역할을 하는데, 모든 패킷에는 출발지와 목적지가 존재합니다. 따라서 인터넷을 떠돌아다니는 모든 패킷에는 출발지 IP 주소와 목적지 IP 주소가 입력되어 있습니다. 그리고 IP 주소 추적의 기본은 출발지 IP 주소를 확인하는 데에 있습니다.

 

패킷에서 출발지 IP 주소를 확인하는 일은 간단합니다. 전에 Wireshark를 통한 패킷 분석으로 출발지 IP 주소를 쉽게 확인한 적이 있습니다. 또 상대방의 IP를 알고 있다면 그 IP 사용자가 어디쯤에 있는지 아래와 같은 사이트에서 쉽게 확인할 수 있습니다. 아래 사진은 IP 정보를 확인할 수 있는 사이트입니다. (www.ip-tracker.org)

그러나 모두 이렇게 간단하게 확인할 수는 없습니다. 만약 중간에 출발지 IP 주소를 바꿔주는 시스템이 존재할 경우, 진정한 출발지 IP 주소를 확인하는 데 어려움을 겪게 됩니다.

해커가 자신을 숨기기 위해 경유 시스템에 간단할 툴을 이용하여 출발지 IP 주소를 숨길 수도 있습니다. 그러나 악의적인 목적이 없는 경우에도 출발지의 IP 확인이 어려운 경우는 많습니다. 예를 들어 IP 주소가 부족하여 사설 네트워크를 사용할 때 인터넷을 이용하기 위해 NAT(Network Address Translation)을 많이 사용합니다. 이때도 출발지 IP 주소를 확인할 수 없습니다. 또한, 인터넷 회사의 서비스를 이용하는 경우에도 서비스를 제공하는 회사의 프로그램을 거치면서 출발지 IP 주소가 바뀌기도 합니다. 이메일 서비스나 메신저 서비스등이 이에 해당합니다.

 

메일/P2P 서비스를 통한 IP 추적

 

메일을 통한 IP 추적

메일을 통한 IP 주소 추적은 전송된 메일의 헤더를 분석해 전송된 메일 서버의 IP 주소를 확인하는 방법입니다. 이 IP 주소를 분석하면 메일 전송자의 위치까지 확인 가능한 경우도 있기에 상당히 유용합니다.

 

메일은 처음부터 완성된 형태를 갖춰서 전송되는것이 아닌 각 전송 단계를 거치며 완전한 메일의 형태를 갖춥니다. 구글의 경우 수신된 내용의 원본 전체 내용을 확인하기 위해 Show original 또는 원본 보기 메뉴를 이용할 수 있습니다. 이를 흔히 '메일 헤더를 확인하다'라고 합니다. 이 메일 헤더에는 보통 몇 가지 IP 정보와 전송 정보가 포함되어 있습니다.

수신된 메일의 전체 내용

메일은 송신 측에서 작성한 후 여러 메일 서버를 거쳐 최종 목적지까지 전달되는데, 각 단계에서 전송 과정을 메일에 추가로 붙이게 됩니다. 추가로 붙는 정보는 항상 전달받은 메일의 맨 위에 기록합니다. 수신한 메일의 구조에서 1차 메일 수신 정보가 가장 중요한데, 1차 수신 정보가 사설 IP를 가지는 경우에는 2차 수신 정보가 더 중요한 경우도 있습니다.

P2P 서비스를 통한 IP 추적

P2P(Peer to Peer, PC to PC)서비스의 대표적인 예는 카카오톡, 스카이프, 네이트온 등의 메신저입니다. 보이스톡과 같은 개인 간 통신 서비스, 토렌트 같은 파일 공유 프로그램 등도 이에 해당합니다.

사진과 같은 형태로 통신을 하는 경우, 전송되는 패킷을 분석하거나 통신 중에 수립되는 네트워크 세션을 확인하면 상대방의 IP를 쉽게 확인할 수 있습니다. 이 과정에서 자신의 IP 주소가 노출될 수도 있고 상대방의 IP 주소를 획득할 수도 있습니다. 전송하는 파일이나 그림을 서버에서 일단 수신한 뒤 다시 수신자에게 전달하여 IP 주소의 노출을 제한하는 P2P 서비스도 있다.

 

이처럼 P2P 서비스는 간단한 메시지를 주고받을 때는 P2P 서버를 이용하지만 클라이언트 간에 파일을 주고받을 때는 세션을 직접 생성합니다. 이때 netstat이나 패킷 분석을 통해 상대방의 IP 주소를 확인할 수 있다.

 

웹 게시판/traceroute를 통한 IP 추적

 

웹 게시판을 통한 IP 추적

개인 정보의 유출 사고는 상당수가 웹 해킹일 만큼 웹 해킹 공격이 많이 발생합니다. 해커가 웹 사이트에 공격한 흔적은 로그 파일 분석을 통해 확인할 수 있습니다. 즉, 웹 게시판에 글을 쓸 때 기본적으로 글쓴이의 IP 주소가 기록되며, 웹 서버의 로그에서도 IP 주소를 확인할 수 있습니다. 웹 게시판 뿐만 아니라 공격의 대상이 되는 다른 서비스들(FTP, Telnet 등)도 로그를 남깁니다. 따라서 서비스의 로그를 분석하면 해커의 IP를 확인할 수 있습니다.

 

traceroute를 통한 IP 추적

traceroute를 통해 패킷이 목적지까지 도달하는 동안 거쳐 가는 라우터의 IP를 확인할 수 있습니다. traceroute는 UDP와 ICMP, IP와 TTL 값을 이용합니다. 2.2.2.2에서 3.3.3.3까지 traceroute를 한다고 가정하면 아래 순서처럼 동작합니다.

  1. traceroute가 TTL 값을 1로 설정하고, 33435번 포트로 UDP 패킷을 한 번에 세 개씩 보냅니다.
  2. 첫 번째 라우터는 1로 설정된 UDP 패킷의 TTL 값을 0으로 줄이고 출발지 주소로 ICMP Time Exceeded 메시지를 보냅니다.
  3. 2.2.2.2에서는 첫 번째 라우터에서 돌아오는 패킷을 통해 첫 번째 라우터까지의 시간을 알아낼 수 있습니다.
  4. UDP 패킷의 TTL 값을 2로 다시 설정해 보내면 두 번째 라우터도 첫 번째 라우터와 같은 과정을 거칩니다.
  5. 앞의 단계를 반복해 목적지 시스템에 도달하면 출발지에 ICMP Port Unreachable 패킷이 돌아오고 모든 과정이 끝납니다.

traceroute는 상대방의 IP 주소를 알고있는 상태에서 상대방이 속한 인터넷 구성 등을 짐작할 수 있습니다. traceroute를 이용할 때에는 traceroute가 패킷 라우팅되는 네트워크를 지나기 때문에 실행할 때마다 같은 경로를 거치지 않는다는 점입니다. 즉, traceroute를 수행할 때 경우에 따라 경로가 다를 수 있습니다.

 

웹, DHCP, DNS 서버 동작 이해하기

패킷 트레이서로 웹, DHCP, DNS 서버를 구축해 동작 원리를 이해해보도록 하겠습니다.

 

1. 네트워크 장치 연결하기

아래 사진과 같이 라우터, 스위치, PC 2대, 웹/DHCP/DNS 서버를 구성합니다. 스위치는 2960, 라우터는 4331을 사용합니다. 

2. 서버 이름과 IP 주소 설정하기

각 서버 시스템의 이름과 IP 주소를 아래의 표와 같이 설정합니다.

장치 장치 이름 IP 주소
Server-PT Server0 DHCP 192.168.16.5
Server-PT Server1 DNS 192.168.16.6
Server-PT Server2 Web Server 192.168.16.7

그리고 Router0을 클릭한 후 GigabitEthernet0/0 에서 IPv4 Address에 192.168.16.1을 입력하고 Port Status를 On 으로 체크합니다. 그리고 CLI 탭에서 다음과 같이 입력해 라우팅 설정을 합니다. 이때 스위치는 IP 주소를 할당할 필요가 없습니다.

Router(config-if)#ip dhcp pool netA
Router(dhcp-config)#network 192.168.16.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.16.1
Router(dhcp-config)#exit

 

3. DHCP 서버 설정하기

DHCP 서버는 네트워크 관리자가 수동으로 설정할 필요 없이 네트워크에 접속하는 장치들의 IP 주소를 자동으로 할당해주어 클라이언트가 많아지면 꼭 필요한 서버입니다.DHCP 서버를 클릭한후 IP Configuration 탭에서 아래와 같이 설정합니다.

(이때 PC0과 PC1의 IP Configuration 에서 꼭 Static이 아닌 DHCP를 체크해야 합니다.)

 

그 후 Service 탭의 DHCP 에서 Interface의 Service를 ON으로 체크합니다. Default Gateway와 DNS Server에 아래와 같이 주소를 입력하고 ADD를 눌러 설정합니다. (이때 Pool Name을 serverPool2로 변경합니다.)

4. DNS 서버 설정하기

DNS 서버를 클릭한 후 IP Configuration 탭에서 아래와 같이 설정합니다.

그 후 Services 탭 - DNS에서 DNS Service를 On으로 체크합니다. DNS 서비스를 할 도메인 이름과 IP 주소를 각각 Name과 Address에 www.sanghyuk.com, 192.168.16.7을 입력 후 Add를 눌러 설정합니다.  

5. 웹 서버 설정하기

웹 서버 설정도 같은 방법으로 IP Configuration에서 아래와 같이 설정합니다.

6. 서버 연결 확인하기

PC1에서 Desktop - Web Browser 를 선택한 후 URL에 www.sanghyuk.com  을 입력하고 Go를 눌러 DNS 서버에 등록한 도메인을 사용하는 웹 서버에 접속할 수 있습니다.

접속 성공 ㅎㅎ

7. 네트워크 경로 추적하기

tracert 명령을 이용해 네트워크 경로를 추적할 수 있습니다. PC1에서 아래와 같이 입력하면 PC1과 DNS가 스위치 하나로 연결되어 있기 때문에 1단계만 진행되는 것을 확인할 수 있습니다.

끝!!!
이 글은 "네트워크 해킹과 보안(4판)" 책을 참고하였습니다.