안녕!! 오늘도 왔어. 오늘은 재미있는 스니핑을 다뤄볼 거야.
스니핑이 모게 ? ? ?
스니핑 Sniffing
: 네트워크 상에서 자신을 목적으로 하지 않는 패킷을 탐지하는 행위
: 송신자와 수신자가 주고받는 데이터를 중간에서 도청하는 것
* 고가용성 패킷 스니핑 장비는 네트워크 감시와 분석을 위해서 사용된다.
프로미스큐어스 모드 Promiscuous mode
: 랜카드가 자신이 목적지가 아닌 패킷을 상위 계층으로 전송하는 모드
: UNIX는 OS 레벨에서 제공함
: WINDOWS는 OS레벨에서 제공하지 않음
# ifconfig [장치명] [+/-] promisc // 장치의 프로미스큐어스 모드 활성화/비활성화
# ifconfig eth0 promisc
Tcpdump
이더넷의 모든 패킷을 다양한 형식[패킷 헤더/전체]으로 캡처한다.
명령
# tcpdump -[옵션 값], ...
ex) tcpdump -xX -i eth0 tcp and host 192.168.10.1
옵션
- i [장치명]
- xX: 패킷의 내용 전체 캡처
- w: 내용을 파일로 저장 (r: 읽기)
‐ v : 좀 더 많은 정보들을 출력한다.
‐ vv : '‐v'보다 좀 더 많은 정보들을 출력한다.
‐ w : 캡춰한 패킷들을 분석해서 출력하는 대신에 그대로 파일에 저장한다.
‐ X : 패킷의 내용을 16진수와 ASCII코드로 보여준다.
‐ x : 패킷의 내용을 16진수로 보여준다.
‐ q : 프로토콜 정보를 간략하게 보여준다 .
‐ r file : 패킷들을 '‐w'옵션으로 만들어진 파일로 부터 읽어 들인다.
‐ A : 패킷의 내용을 ASCII 코드로 표시한다.
‐ a : Network & Broadcast 주소들을 이름들로 바꾼다.
‐ c Number : 제시된 수의 패킷을 받은 후 종료한다.
‐ D : 캡처에 사용할 인터페이스를 보여준다.
‐ e : 출력되는 각각의 행에 대해서 link‐level 헤더를 출력한다.
filter
src 192.168.10.100 패킷의 출발지 ip가 192.168.10.100인 패킷
dst 192.168.10.100 패킷의 목적지 ip가 192.168.10.100인 패킷
src or dst 192.168.10.100 패킷의 출발지ip나, 목적지 ip가 192.168.10.100인 패킷
host 192.168.10.100 패킷의 출발지ip나, 목적지 ip가 192.168.10.100인 패킷
src net 192.168.10.0/24 패킷의 출발지 주소가 192.168.10.0/24 네트워크
dst net 192.168.10.0/24 패킷의 목적지 주소가 192.168.10.0/24 네크워크
net 192.168.10.0/24 패킷의 출발지 주소나 목적지 주소가 192.168.10.0/24 네크워크
src port 22 소스포트가 22번인 패킷
dst port 22 목적지포트가 22번인 패킷
port 22 소스포트나, 목적지 포트가 22번인 패킷
portrange 1‐1024 소스포트나, 목적지 포트가 1‐1024번인 패킷
* arp, icmp, tcp, udp, ip, broadcast 지정 가능
* and, or, not 등의 연산자 사용가능
Tcpdump 설치 확인
# rpm -qa | grep tcpdump
[미설치]
설치 명령어
# yum install -y tcpdump
[설치]
[참고]
CentOS6는 공식적으로 repository를 지원하지 않는다.
원본 DVD(img파일)를 마운트하고 이를 local repository로 이용한다.
1) repository로 이용할 디렉터리 생성 # mkdir /cdrom
2) 원본 파일과 디렉터리 마운트 # mount /dev/cdrom /cdrom/
3) rc.local 파일에 마운트 문장 자동실행 설정 # vi /etc/rc.d/rc.local
4) repository 파일 추가
/etc/yum.repos.d 를 비우고 local.repo 파일 생성
# cd /etc/yum.repos.d
# rm -rf *
# vi local.repo
[local]
name=아무거나
baseurl=file://마운트디렉터리 (baseurl=file:///cdrom/)
enabled=1
gpgcheck=0
5) Yum 메타데이터 리셋
# yum clean all
# yum update
Tcpdump를 이용한 스니핑
해당 실습을 위해 구축 해야 할 환경 및 실습 개요
1. telnet 서버 (host: 192.168.11.17)
# yum install -y telnet-server // telnet 서버 설치
# systemctl start telnet.socket // telnet 서비스 시작
2. Windows (공격대상자) (host: 192.168.11.7)
# telnet 192.168.11.17 // telnet 서버 접속
3. Linux (공격자) (host:192.168.11.36)
# ifconfig eth0 promisc // 프로미스큐어스 모드 설정
# tcpdump -xX -i eth0 tcp port 23 and host 192.168.11.17 > sniffing.txt
// tcpdump를 이용한 스니핑, sniffing.txt에 스니핑 내용을 저장
ctrl + z : sniffing 종료
# cat sniffing.txt // 파일 확인
실습 과정
1) 스니핑 공격을 수행 할 Linux Lan 카드에 프로미스큐어스 모드 설정
2) Tcpdump를 이용하여 스니핑
3) 공격대상자인 Windows에서 Telnet Server 접속
4) 공격자 host로 돌아와 스니핑을 종료(ctrl+z)
5) ID/PW 확인
Dsniff를 이용한 스니핑
Dsniff: 스니핑을 위한 자동화 도구
CentOS [5,6,7], kali에서 설치 가능
- epel repository에서 제공하는 tool
Dsniff 설치
# yum install-y dsniff
Dsniff 실행
*** Dsniff를 실행하기 전에 반드시 프로미스큐어스 모드로 설정되어 있어야 한다.
# ifconfig eth0 promisc
# dsniff
실습 과정
1) 스니핑 공격을 수행 할 Linux Lan 카드에 프로미스큐어스 모드 설정
2) Dsniff를 이용하여 스니핑
3) 공격대상자인 Windows에서 telnet Server 접속
4) Telnet Server 서버 접속 종료 // # exit
5) 공격자 host로 돌아와 Dsniff 결과 확인
***패킷을 하나하나 분석해야 하는 Tcpdump와 달리 Dsniff는 결과를 한 눈에 보여준다.
[패키지 설치 과정 참고]
만약 yum 패키지 설치 명령어를 입력했을 때 'no package available'가 출력된다면,
1) 아래의 파일이 설치되어 있는지 확인한다.
epel-release-6-8.noarch.rpm
rpmforge-release-0.5.3-1.el6.rf.i686.rpm
2) 위의 파일이 이미 설치되어 있다면 아래의 명령어를 입력한다.
# yum clean all
# yum clean metadata
'인프라 7기 > 네트워크 보안 공격 기법' 카테고리의 다른 글
ICMP 리다이렉트 (0) | 2023.05.10 |
---|---|
ARP 스푸핑, ARP 리다이렉트 (0) | 2023.05.09 |
SQL 인젝션 공격이 불가하도록 웹 코드 개선 (0) | 2023.05.08 |
SQL 인젝션_실습 (0) | 2023.05.08 |
SQL 인젝션 (0) | 2023.05.04 |