* 참조
제대로 된 ip주소를 획득할 수 있다면 해당 ip에 해당하는 위치를 찾는것은 어렵지 않은 일이다. (구글에 ip위치 찾기 정도만 검색해도 가능)
하지만 proxy,VPN등을 통한 ip의 변경이 매우 쉽기때문에 ip에 해당하는 그 위치가 내가 찾는 곳이 맞는지 확신할수 없다.
그리고 해당 서버,사이트를 운영하는 입장이 아닌경우 application level에서 ip정보를 얻는것은 어렵다.
1. 메일 이용하기
공격 대상의 ip주소를 추적하는 다양한 방법 중에서 메일을 통한 ip 주소 추적을 가장 먼저 살펴보자. 메일의 ip주소를 추적하여 확인하는 일은 실무에서 생각보다 많이 사용되고 유용한 경우가 많다. 대부분 메일을 읽을 때 제목과 보낸 사람, 보낸 시간, 본문과 첨부 파일 정도를 확인한다. 하지만 실제로 메일에는 이보다 더 많은 정보가 함께 전달되어 온다.
메일은 처음부터 완성된 형태를 갖춰서 전송되는 것이 아니고, 각 전송 단계를 거치면서 완전한 메일의 형태를 갖추게 된다. 구글의 경우는 메일의 전체 내용을 확인하기 위해서 다음과 같이 [원본 보기] 메뉴를 이용할 수 있다.
이는 다음과 같이 뜬다.
이는 SMTP 헤더이다. SMTP란 인터넷에서 이메일을 보내기 위해 이용되는 프로토콜이다. 사용하는 TCP 포트번호는 25번이다.
자세히보면 Received가 여러 개 나오는데 이러한 과정이 바로 1,2,3차 메일 서버 정보이다. 그냥 보고 해석하기에는 나 같은 초심자는 무리가 있다. 따라서 구글에서 제공해주는 분석 사이트를 이용한다.
https://toolbox.googleapps.com/apps/messageheader/analyzeheader
이곳에 가서 헤더를 붙여넣으면
이런 식으로 메일 정보가 뜬다.
2. P2P서비스 이용하기
요즘에는 다양한 P2서비스가 있다. 대표적으로 카카오톡, 스카이프, 네이트온 등의 메신저 또는 보이스톡과 같은 개인 간 통신 서비스, 토렌트와 같은 파일 공유 프로그램이다. peer to peer라는 특성, 즉 당사자 간의 통신이라는 특성을 가지고 있어서 서비스를 이용하는 사용자의 IP 정보가 노출될 수 있다. 물론 P2P에 접속한 사용자의 IP 주소가 항상 노출되는 것은 아니다. 일반적으로 텍스트를 교환하는 형태의 정보 교환에서는 사용자의 IP가 노출되지 않는다. 기본 텍스트 교환은 다음과 같이 서버를 통해 이루어지기 때문이다.
하지만 기본적인 텍스트 교환 외에 많은 양의 데이터 전송이 필요하거나 인터넷 전화 서비스를 이용하는 경우는 사용자 간의 직접 통신이 이루어진다. 이와 같은 형태로 통신을 하는 경우, 전소오디는 패킷을 분석하거나 통신 중에 수립되는 네트워크 세션을 확인하면 상대방의 IP를 쉽게 확인할 수 있다.
3. 웹 게시판 이용하기
요즘에는 웹 해킹 공격이 많이 발생한다. 우리나라에서 게임이나 포털 업체를 통해 개인 정보가 유출되는 사고의 상당수도 웹 해킹을 통해서다. 해커는 웹 사이트의 구조를 파악하고 공격하기 위해 웹 게시판에 접근한다. 그 흔적은 로그 파일 분석을 통해 확인할 수 있다. 웹 게시판뿐만 아니라, 공격의 대상이 되는 다른 서비스들도 로그를 남긴다. FTP나 Telnet 서비스도 마찬가지다. 따라서 서비스의 로그를 분석하면 해커의 IP를 확인할 수 있다. 이는 웹 서버를 운영하는 관리자에게 해당된다. 이러한 로그는 apache 웹 서버, 혹은 IIS웹 서버일 경우 충분히 활용할 수가 있다.
4. Traceroute 이용하기
traceroute는 패킷이 목적지까지 도달하는 동안 거쳐가는 라우터의 IP를 확인하는 툴이다.
traceroute는 UDP와 ICMP,IP의 TTL값을 이용한다. a.a.a.a에서 b.b.b.b까지 traceroute를 한다고 가정하면 다음과 같이 동작한다.
1) Traceroute툴이 TTL값을 1로 설정하고 33435번 포트로 UDP 패킷을 한 번에 세 개씩 보낸다.
2) 첫 번째 라우터는 1로 설정된 UDP 패킷의 TTL값을 0으로 줄이고, 출발지 주소로 ICMP Time Exceeded 메시지를 보낸다.
3) a.a.a.a에서는 첫 번째 라우터로부터 돌아오는 패킷을 통해 첫 번째 라우터 까지의 시간을 알아낼 수 있다.
4) 두 번째 라우터까지 UDP패킷의 TTL값을 2로 다시 설정하여 보내면, 두 번째 라우터도 첫 번째 라우터와 같은 과정을 거친다.
5) 앞의 과정을 반복해 목적지 시스템에 도달하면 출발지에 ICMP Port Unreachable 패킷이 돌아오고 모든 과정이 끝난다.
traceroute는 상대방의 ip 주소를 알고 있는 상태에서, 상대방이 속한 인터넷 구성 등을 짐작할 수 있다.
고려할 사항은 traceroute가 패킷 라우팅 되는 네트워크를 지나기 때문에 실행할 때마다 같은 경로를 거치지는 않는다는 점이다.
즉, traceroute를 수행할 때 경우에 따라 경로가 다를 수 있다. 그런데 traceroute를 수행할 때 경로가 매번 다르게 형성되다가 하나로 고정되다면 역추적을 당하고 있을 수 있다.
* Traceroute 실습
Traceroute 툴로 UDP 패킷을 이용하면 상대방에게 전송되는 경로를 확인할 수 있다.
리눅스에서는 traceroute 명령, 윈도우에서는 tracert명령으로 수행한다.
여기선 KT의 DNS서버인 168.126.63.1까지 tracert를 실행해본다.
여기서는 시간값이 나와있지만 *으로 표시되는 경우는 일반적으로 방화벽이 존재하는 곳이다.
이외에 https://sourceforge.net/projects/openvisualtrace 를 통해 좀 더 명확히 확인할 수 있다.
이렇게 지리적인 위치까지 보여준다.
마지막으로 sam spade를 이용할 수도 있다. 이에 대한 방법은
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lekorean&logNo=220970001102
다음 블로그를 참조하여 사용할 수 있다.
'Network Security' 카테고리의 다른 글
TLS보안 프로토콜 기술 (0) | 2021.12.01 |
---|---|
터널링과 VPN (0) | 2021.08.23 |
스푸핑 공격 대응책 (0) | 2021.08.18 |
스니핑 : promiscuous,tcpdump,fragrouter,dsniff과 대응책 (0) | 2021.08.09 |
스캔 및 탐지 (0) | 2021.08.08 |