2011년 5월 25일 수요일

포트 스캐닝 감시 및 OS 정보 숨기기

nmap은 열린 포트를 확인하여 보안 점검을 위한 대표적인 툴이면서 원치 않는 서버를 대상으로 포트 스캐닝과 시스템의 OS 종류와 버전을 알아내는데 사용되기도 한다.
# nmap -A -T4 -F localhost

Starting nmap 3.45 ( http://www.insecure.org/nmap/ ) at 2003-09-16 22:45 KST
Interesting ports on truefeel (127.0.0.1):
(The 1203 ports scanned but not shown below are in state: closed)
PORT   STATE SERVICE  VERSION
21/tcp  open ftp    vsFTPd 1.2.0
25/tcp  open smtp    Sendmail smtpd Securing..214-2.0.0 This is sendmail version 8.12.
80/tcp  open http    Apache httpd 2.0.44 ((Unix) DAV/2 PHP/4.3.2)
... 중략 ...
Running: Linux 2.4.X|2.5.X
OS details: Linux Kernel 2.4.0 - 2.5.20, Linux kernel 2.4.20
Uptime 0.505 days (since Tue Sep 16 10:38:25 2003)

Nmap run completed -- 1 IP address (1 host up) scanned in 16.859 seconds


위에서 보는 것처럼 nmap의 뛰어난 기능으로 어느 OS를 사용하는지 쉽게 알 수 있다. 이러한nmap의 OS를 알아내는 기능은 7단계(T1~T7)를 거치게 된다. T1 단계에서 열린 포트로 SYN 패킷을 보내고, T2에서 열린 포트로 null 패킷 전송, T3에서 열린 포트로 SYN, FIN, URG, PSH 패킷을 전송 T5 부터는 닫혀진 포트로 비슷한 과정을 거치게 된다.
iplog 툴
iplog는 포트 스캐닝을 로깅하는 툴이다. TCP 포트, UDP 포트 스캐닝, TCP null 스캔, FIN 스캔, smurf 공격, Xmas 스캔, ping 플러딩, IP fragment 공격 등을 감지할 수 있다. procmisc 모드를 지원하여 같은 서브넷으로 들어오는 스캐닝을 감지할 수 있다. 또한 OS 정보를 숨기기한 목적으로도 사용할 수 있다.
1) 설치
http://ojnk.sourceforge.net/ 에서 iplog-2.2.3.tar.gz 을 받아온다.
# tar xvfz iplog-2.2.3.tar.gz
# cd iplog-2.2.3
# ./configure
# make
# make install
# cp example-iplog.conf /etc/iplog.conf


iplog.conf에서 다음 2가지를 수정한다.
user nobody          # default는 iplog 사용자로 실행함
pid-file /var/run/iplog.pid     # default는 /var/run/iplog/iplog.pid 임


2) 실행
iplog -o -z -i lo (테스트를 위해 lo interface를 지정함)
-o : 백그라운드로 실행하지 않는다. (기본 백그라운드)
-z : 이게 바로 핵심이다. nmap로 OS 정보 알아내는 것을 막는다.
-L : log를 화면으로 출력한다.
-i : interface를 지정한다. (기본 eth0)
-u : iplog 실행 사용자 또는 UID를 지정한다. (기본 nobody)
-g : iplog 실행 그룹명 또는 GID를 지정한다. (기본 nobody)
-l : 로그파일을 지정한다. (기본 /var/log/iplog)
-a : promisc 모드로 전환하여 지정한 네트워크 내의 스캐닝을 로깅한다. (예. -a 192.168.123.0/24)
-k : iplog 프로세스를 kill한다. 백그라운드, 포그라운드 실행중인 것과 상관없이 kill.
-R : iplog를 재실행한다.
3) nmap 실행
# nmap -sS -O localhost
Starting nmap 3.45 ( http://www.insecure.org/nmap/ ) at 2003-10-29 23:37 KST
Insufficient responses for TCP sequencing (2), OS detection may be less accurate
Insufficient responses for TCP sequencing (3), OS detection may be less accurate
Interesting ports on truefeel (127.0.0.1):
(The 1651 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
... 중략 ...
No exact OS matches for host (If you know what OS is running on it, see
TCP/IP fingerprint:
SInfo(V=3.45%P=i686-pc-linux-gnu%D=10/29%Time=3F9FD0B9%O=25%C=1)
T1(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=Y%DF=Y%W=100%ACK=O%Flags=BAPRSF%Ops=)
T2(Resp=Y%DF=N%W=0%ACK=O%Flags=BARS%Ops=)
T2(Resp=Y%DF=Y%W=100%ACK=O%Flags=BPRF%Ops=)
T3(Resp=Y%DF=Y%W=7FFF%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=N)

Uptime 0.303 days (since Wed Oct 29 16:21:04 2003)

Nmap run completed -- 1 IP address (1 host up) scanned in 21.301 seconds


nmap은 T1~T7까지 OS 탐지 테스트 과정을 거쳤지만 OS 종류는 알아내지 못했음을 확인했다.그럼 도대체 스캐닝 로그는 어디에 있는건가? /etc/iplog.conf 설정에 따라 /var/log/iplog에 저장된다.
Oct 29 23:37:09 ICMP: echo from truefeel (127.0.0.1) (8 bytes)
Oct 29 23:37:09 TCP: port 5901 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: port 516 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: port 657 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: port 32 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: port 2044 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: port 737 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: pop2 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: port 872 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: port 670 connection attempt from truefeel (127.0.0.1):49574
Oct 29 23:37:09 TCP: SYN scan detected [ports 5901,516,657,32,2044,737,109,872,670,374,...] from
truefeel (127.0.0.1) [port 49574]
Oct 29 23:37:12 TCP: Bogus TCP flags set by truefeel (127.0.0.1):49581 (dest port 25)
Oct 29 23:37:14 TCP: ipp connection attempt from truefeel (127.0.0.1):40509
... 생략 ...

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...