네트워크 안에서 한번쯤 IP 충돌을 경험해 본 사람이 있을것이다. 많은 경우는 같은 IP 를 서로 설정해서 사용한 경우이다.
그런데 특정 시스템 접속시 연결이 잘 되다가도 가끔 연결이 안되는 이상한 현상이 발생하였다. 그렇다고 인터페이스에 같은 IP 설정은 더더욱 아니었다. 맥 인증 장비에서 IP 충돌이 난다는 이슈를 접하고 해당 네트워크 대역에 대해서 ARP 스캐닝을 해 보았다.
ARP 스캐닝에는 arp-scan 을 이용하였으며,
# apt-get install arp-scan
으로 쉽게 설치가 가능하다.
이더넷 인터페이스를 지정하기 위하여 -I 를 사용하였고 특정 대역을 넣어주었다. -l 옵션을 사용하면 인터페이스에 설정된 로컬 네트워크 주소를 사용한다. 만약 서브넷이 255.255.0.0 이었다면 B 클래스 대상으로 스캐닝이 될 것이다.
# arp-scan -I eth0 192.168.11.0/24
ioctl: Cannot assign requested address
WARNING: Could not obtain IP address for interface eth0. Using 0.0.0.0 for
the source address, which is probably not what you want.
Either configure eth0 with an IP address, or manually specify the address
with the --arpspa option.
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.6 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
192.168.11.39 00:14:22:xx:xx:xx Dell Inc.
192.168.11.52 00:14:22:xx:xx:xx Dell Inc.
192.168.11.91 00:04:75:xx:xx:xx 3 Com Corporation
192.168.11.110 00:25:64:xx:xx:xx (Unknown)
192.168.11.94 08:00:20:xx:xx:xx SUN MICROSYSTEMS INC.
192.168.11.125 00:1e:c9:xx:xx:xx (Unknown)
192.168.11.207 00:22:19:xx:xx:xx (Unknown)
192.168.11.208 xx:xx:xx:fa:a8:0d (Unknown)
192.168.11.209 d4:be:d9:xx:xx:xx (Unknown)
192.168.11.210 xx:xx:xx:fa:a8:0d (Unknown)
192.168.11.210 xx:xx:xx:fa:10:1c (Unknown) (DUP: 2)
192.168.11.214 78:2b:cb:xx:xx:xx (Unknown)
192.168.11.215 78:2b:cb:xx:xx:xx (Unknown)
[삭제 - 일부는 xx:xx:xx 처리 ]
38 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.6: 256 hosts scanned in 1.334 seconds (191.90 hosts/sec). 38 responded
결과와 같이 192.168.11.210 이 2개의 맥 주소를 가지고 있는 것으로 나타난다. fa:a8:0d 와 fa:10:1c 이다. 192.168.11.208 번에 할당된 맥 주소는 fa:a8:0d 이다. 즉, 210 번 IP 에 fa:a8:0d 를 가져서는 안되는 것이다. 이러니 어떤 경우에는 접속이 되다가도 갑자기 끊어져서 접속이 안된다든지의 상황이 발생하는 것이다.
192.168.11.208 ,210 인터페이스를 살펴보았으나 IP 중복 설정은 보이지 않는다. 그럼 도대체 어디서 이게 나타나는 것인가? 일단 208 번이 의심된다. 208 번에서 해당 맥을 가지고 있는 것으로 추정되고 시스템 전체에서 해당 IP 설정이 없는지 찾아보기로 하였다.
# find / -exec grep "11.210" {} \;
11.210 번 문자열을 grep 으로 찾아보았는데, 하나 나타나는 것이 있다. keepalived 설정 파일이었다. 이때 바로 생각이 나는 것이었다. 해당 장비를 사용하기전 로드발랜싱 테스트를 위하여 잠깐 설정을 한적이 있었고, 잊고 있었던 것이다.
/etc/keepalived/keepalived.conf
해당 파일을 살펴보니 역시나 192.168.11.210 IP 가 설정되어 있었다.
해당 데몬을 disable 하고서는 다시 정상으로 돌아왔다. 역시나, 분명 어딘가에는 문제점이 존재한다는 사실!
IP 충돌(ARP Conflict)의 많은 경우는 직접 IP 를 동일하게 설정하거나 또는 필자가 경험했던 것과 같이 관련 소프트에어의 설정에 의한 것 그리고 ARP 테이블에서 지워지지 않고 잘못된 맥 정보를 가지고 있거나 중간 단계의 장비에 의한 문제정도로 생각된다.
/Rigel
[참고]
1. IPv4 Address Conflict Detection
http://tools.ietf.org/html/rfc5227
2012년 12월 7일 금요일
2012년 5월 24일 목요일
네트워크 스캐닝의 강자 Nmap 6.0 버전 릴리즈
네트워크 스캔 도구로 유명한 Nmap (Network Mapper) 이 최근 새로운 6.0 버전을 릴리즈 하였다. 2009년 7월 Nmap 5 버전 이후로 3년 여만에 새롭게 선보인 것으로 3,924 개의 코드가 새롭게 반영되었고 더욱 파워풀 해진 NSE(Nmap Scripting Engine) 과 289 개의 새로운 스크립트등 이전 보다 더욱 기능이 풍성해 졌다.
주요 기능은
- NSE 기능 향상과 많아진 스크립트 (Nmap 5 버전에서 59 개였던것에 비해 6 버전에서는 348 개로 증가)
- 더 나아진 웹 스캐닝
- IPv6 완벽지원
- 새로운 Nping 도구
- 더욱 나아진 Zenmap GUI 와 결과 뷰
- 더욱 빨라진 스캔 ( traceroute 시스템 코드 재 작성)
세부적인 기능 및 설명은 다음 경로를 참고하면 된다.
http://nmap.org/6/
5 버전을 사용하였던 사용자들은 6 버전으로 점프업 해보자!
[참고]
1. 이미지출처
http://nmap.org
2010년 9월 2일 목요일
NMAP 스캐너를 통해 만든 웹 아이콘 지도
NMAP 에서 재미있는 리서치 결과를 내 놓았다. NMAP 시큐리티 스캐너와 스크립트 엔진을 이용해 뉴욕타임즈, 구글, 엔가젯 같은 수 많은 사이트를 스캐닝 하였다.
스캐닝은 HTML 링크의 아이콘 태그의 파일과 /favicon.ico 를 하였는데, Unique 하게 수집된 아이콘 파일이
328,427 개 였다고 한다. 이중 288,945 개가 적합한 형태의 이미지였는데, 이걸 종합적으로 합쳐 아이콘을
이용한 맵을 만들었다. 아이콘이 클수록 규모도 크다고 볼 수 있는 것이다. 아이콘을 보게되면 역시나
구글이 가장 큰 크기를 차지하고 있고, 그 다음으로는 페이스북, 유투브, 야후, MSN 등이 크다.

[이미지 출처 : NMAP 사이트 ]
우선 Favicon 을 이용해 지도를 만들었다는 사실이 참 재미있다. 그럼 여기서 사용한 스크립트는 무엇일까?
웹 페이지에서 Favicon 아이콘을 얻는 이 스크립트는 HTTP-Favicon.nse 이다. 이 스크립트는 다음 두가지
방법을 통해 아이콘을 확인한다.
- HTML 파일의 <link rel="icon"> 태그를 파싱
- /favicon.ico 확인
NMAP 에서의 스크립트 사용은 아래와 같다 :
nmap --script=http-favicon.nse --script-args favicon.root=<root>,favicon.uri=<uri>
스크립트를 만드는데 이용된 언어는 Lua 이다. 와이어샤크에서도 바로 이 Lua 가 이용된다.
시간이 주어지는대로 와이어샤크와 NMAP 에서의 스크립트 사용에 대해서 한번 소개할 예정이다.
아참, 그리고 Favicon 아이콘을 모르시는 분들을 위해:
이 아이콘은 브라우저 주소창에서 앞쪽에 표시는 작은 아이콘이다. 패킷인사이드에도 보면
주소창앞에 패킷인사이드 로고가 나오는데 바로 이것이다.
[1] WWW 아이콘 지도
[2] HTTP-Favicon NMAP 스크립트
[3] Favicon 이란?
2010년 4월 18일 일요일
구글에서 배포한 웹 보안 스캐너 Skipfish 를 이용해 보자
웹 보안 스캐너 도구를 하나 소개해 보고자 한다. 워낙 많은 도구가 존재하지만, 그 중에서도
구글이 만들어 배포하는 Skipfish 를 소개한다. 다운로드 및 세부 정보는 아래의 사이트를
방문해 보자
Skipfish 의 가장 큰 특징은 C 로 만들어져 있어 초당 2000 개 이상의 요청이 가능하다.
HTTP 핸들링에 있어 최적화 되어 있고, CPU 사용을 최소화한다. 사용이 쉽게 설계했다는
것도 Skipfish 가 자랑하는 점이며, 적은 오탐률과 뛰어난 기능을 자랑한다고 한다.
이 도구가 지원하는 스캐너 기능으로는 상,중,하의 위험도로 구분된 패턴과 내부 경고
메시지와 정보성의 메시지 정도로 구분된다. 상 위험도라 하면 서버 측면의
SQL 인젝션, 명령어 인젝션, 포맷 스트링 취약점 등이 있다.
참고로 업데이트 속도가 빠르다는 것도 장점이다. 이 도구를 소개하기 위해 접한게
1.09b 버전이었는데, 지금은 벌써 1.31 베타 버전이다. 설치는 어렵지 않게 진행할 수 있으며,
리눅스의 경우라면 컴파일 하기 위해 필요한 약간의 라이브러리 사전설치와 make 를
해 주기만 하면 된다. 필자의 경우는 libidn 이 없어 이것만 설치하고 쉽게 사용이 가능하였다.
# apt-get install libidn11-dev
# make
cc skipfish.c -o skipfish -Wall -funsigned-char -g -ggdb -D_FORTIFY_SOURCE=0 -I/usr/local/include/ -I/opt/local/include/ -O3 -Wno-format http_client.c database.c crawler.c analysis.c report.c -lcrypto -lssl -lidn -lz -L/usr/local/lib/ -L/opt/local/lib
NOTE: See dictionaries/README-FIRST to pick a dictionary for the tool.
컴파일 후, 실행을 시켜보면 아래와 같이 간단하다.
# ./skipfish
skipfish version 1.09b by <lcamtuf@google.com>
[-] PROGRAM ABORT : Scan target not specified (try -h for help).
Stop location : main(), skipfish.c:379
특정 사이트를 대상으로 한번 실행해 보면 다음과 같은 이미지 결과를 볼 수 있다.

자, 그리고 skipfish 가 수행한 결과는 웹 페이지 형태로 깔끔하게 볼 수 있는데, 다양한 결과를 보여주고 있다.

웹 사이트를 초기 구축하였거나 운영중인 사이트가 있다면 Skipfish 를 통해 웹 사이트 점검을 해 보는 것은
어떨까 한다. 분명 많은 도움을 받을 수 있지 않을까 생각한다. 최소한 아무런 보안 점검 없이,
이러한 점검은 분명 사이트 안전에 큰 도움이 된다.
피드 구독하기:
글 (Atom)