'sniffing'에 해당되는 글 1건

  1. 2008.06.28 sniffing , ehterear , tshark
2008. 6. 28. 22:29

sniffing , ehterear , tshark

네트워크 상에서 흘러 다니는 정보의 작은 단위를 패킷이라고 한다.

그러나 이 패킷에는 목적지 주소와 수신지 주소의 정보가 담겨 있는데 무차별 모드라는 것으로 네트워크의

목적지에 관계 없이 흘러 다니는 모든 패킷을 감시하고 잡아 낼 수 있게 된다.

이를 스니핑이라 한다.


사용자 삽입 이미지

이더넷 카드는 (이하 NIC) 는 Promiscuous mode 와 Propagation이 있다.
기본 적으로 위처럼 나와야 하지만 만약 UP BROADCAST RUNNING PROMISC MULTICAST 라고 표시된다면
# ifconfig eth0 -promisc 로 변경 시켜주자!   커널의 오류로 인해 생길 수가 있다.



tcpdump 사용
두대의 linux machine 을 구축해 놓자. vmware에서 clone이나 폴더를 복사 시켜 vm에서 오픈 시켜준뒤
간단히 셋팅을 마친 후..host, network ip등등

필자는 다음과 같이 셋팅을 하였다.

사용자 삽입 이미지

사용자 삽입 이미지


1. centos  , 192.168.10.10
2. fedora   , 192.168.10.30

패킷 캡쳐를 위해 centos  - ftp서버를 실행 시킨다.
[centos]
# rpm -qa | grep ftp
lftp-3.5.1-2.fc6
ftp-0.17-33.fc
vsftp 가 설치 되어 있지 않다면

# yum -y install vsftpd
rpm -qa |grep ftp
ftp-0.17-33.fc6
lftp-3.5.1-2.fc6
vsftpd-2.0.5-10.el5
# service vsftpd start

서비스가 실행되었다면 nmap이나 netstat 명령어로 확인해보면된다.
[root@centos ~]# nmap localhost

Starting Nmap 4.65 ( http://nmap.org ) at 2008-06-28 16:01 KST
Interesting ports on centos.linux.com (127.0.0.1):
Not shown: 1708 closed ports
PORT    STATE SERVICE
21/tcp  open  ftp
22/tcp  open  ssh
23/tcp  open  telnet
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp
996/tcp open  xtreelic

Nmap done: 1 IP address (1 host up) scanned in 0.078 seconds

21 ftp port가 열려 있다


이제 xp에서 centos로 ftp접속을 시도 한다. fedora에서 스니핑해보자.

[fedora]

[root@fedora ~]# rpm -qa |grep tcpdump
tcpdump-3.9.4-11.el5     // 없으면 yum으로 설치~
[root@fedora ~]# tcpdump port 21 and host 192.168.10.30 -w ftp.sniff
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 byte

[xp]

사용자 삽입 이미지

[fedora]
ctrl +c
# cat ftp.sniff

C��)�P�Z331 Please specify the password.
�eH��<<
       )x~LPE(�1@��.�

)�C��P����eH��CC
                )x~LPE5�@��5�

)�C��P���PASS user01
�eH]<<PV�
        )x~E(��@@��

C��)�P�v�eHdMMPV�
                )x~E?��@@��

C��)�P��230 Login successful.
�eH<<
     )x~LPE(��@����

)�C�ȆP��c|[root@fedora ~]#
자료가 깨져 보인다. ㅋ
볼 수 있게 변환해 보자!

# tcpdump -r ftp.sniff        -r 파일로 저장된 tcpdump 읽기

00:06:11.961865 IP 192.168.10.30.ftp > 192.168.10.1.4122: P 1:21(20) ack 1 win 5
840
00:06:12.055858 IP 192.168.10.1.4122 > 192.168.10.30.ftp: . ack 21 win 65515
00:06:27.071235 IP 192.168.10.1.4122 > 192.168.10.30.ftp: P 1:14(13) ack 21 win
65515
00:06:27.071235 IP 192.168.10.30.ftp > 192.168.10.1.4122: . ack 14 win 5840
00:06:27.071758 IP 192.168.10.30.ftp > 192.168.10.1.4122: P 21:55(34) ack 14 win
 5840
00:06:27.121756 IP 192.168.10.1.4122 > 192.168.10.30.ftp: . ack 55 win 65481
00:06:28.117381 IP 192.168.10.1.4122 > 192.168.10.30.ftp: P 14:27(13) ack 55 win
 65481
00:06:28.154908 IP 192.168.10.30.ftp > 192.168.10.1.4122: . ack 27 win 5840
00:06:28.156703 IP 192.168.10.30.ftp > 192.168.10.1.4122: P 55:78(23) ack 27 win
 5840
00:06:28.264336 IP 192.168.10.1.4122 > 192.168.10.30.ftp: . ack 78 win 65458

턱하니 숨이 막힌다. ㅡ.,ㅡ;

좀더 쉬운 툴로 확인해 보자

# rpm -qa ethereal*
#    아무메시지 안뜨면 설치가안되어있다는것

설치 완료후 패키지 확인.


[참고] 현재  테스트 할때는
ethereal 이 아니라 wiseshark 로 이름이 변경 되어 설치 되었다.
검색 결과 이름 때문에 개명했다고 한다 ..
해서 shark로 수정해서 올린다.

# tshark -r ftp.sniff
사용자 삽입 이미지

해서... 저장해놓은 파일을 열어 보면 접속 했을때 쳤던 명령어가 그대로 보여지고 있다!!

해서...(자꾸 해서가) 암튼 이렇게 헀을때 모든 패킷정보가 보여지게 되는데 이건

패스워드가 그대로 노출 된다는 말이다...

해서 openssh를 써야한다.!!(secure shell : 보안쉘)