728x90
인프라 구성 및 기본 사양
각 PC 고정 아이피
공격자
- IP : 192.168.0.133
- MAC Address : 00-0C-29-99-87-1F
희생자 1
- IP : 192.168.0.131
- MAC Address : 00-0C-29-BE-62-FB
희생자 2
- IP : 192.168.0.171
- MAC Address : 00-50-56-37-FC-0D
공통 G/W
- IP : 192.168.0.2
공격에 사용하는 도구
공격자
- ARP Spoofing : Cain & Abel
- IP Spoofing : sTerm
희생자
- 희생자 1 : Telnet_Client
- 희생자 2 : Telnet_Server
공격 개요 및 흐름도
희생자2 PC (Telnet_Server)
- sudo service iptables stop : 기본적으로 Linux에서 telnet 원격 접근을 iptables가 deny 함, 때문에 iptables 끄고 진행
- sudo service xinetd start : telnet서비스는 ssh등과 같은 standalone 서비스가 아니므로 '아닌 xinetd데몬' 재시작을 통해 구동
접근제어
- ALL:ALL 설정으로 다른 접속 차단
- ALL:192.168.0.131 (접근을 허용할 IP주소)
공격자 PC
- Cain & Abel 설치 후
- Start/Stop Sniffer 클릭 볼록모양으로 들어가게 클릭
- 상단 Sniffer 탭 > 하단 Hosts
- 마우스 오른쪽 클릭 후 Scan Mac Address 클릭
- Target 범위를 확인 후 OK 로 진행
- 하단 ARP 탭 클릭
- Sniffing 할 희생자1 IP 와 희생자 2 IP 선택 후 'OK' 진행
- 희생자1 PC를 통해 희생자 2 PC로 Telnet 접속 시도
- 공격자 PC에서 Start\Stop APR 클릭
- 하단 탭 Passwords 클릭 > 사이드 탭에 Telnet 정보가 확인 후 클릭
- 메인 화면에서 Sniffing 중인 내용 View로 확인
- Cain&Abel 을 통해 얻은 정보를 가지고 공격자 PC에서 희생자 2로 Telnet접근 시도 ⇒ 실패 !!
- 화가난ㄷ..ㅏ
sTerm : IP Spoofing 공격에서 사용하는 프로그램. 보안 정책에 의해 관리자PC만 접근이 허영되어 있는 경우, 공격자 PC의 주소를 관리자 IP 주소로 변경하여 접근하는 공격 툴
- sTerm tool을 사용 재 접근 시도
- configure 클릭
- 사용할 interface 선택
- Spoofing 할 IP ( Telnet_Server 에 접속할 Telnet_Client IP주소 입력)
- 공격자의 MAC Address를 G/W에게 속여서 스위치가 패킷을 보낼 때 공격자에게 패킷이 올 수 있게 설정 (ARP Spoofing)
- Real 이 아닌 공격자 MAC Address 또한 거짓으로 작성 > '확인'
- 상단탭 Connect 클릭
- Target 에 Telnet_Server인 희생자2 IP주소 입력 후 > OK 클릭
- Cain&Abel 을 통해 얻은 정보를 가지고 login
- 관리자 권한을 가진 root 계정까지 접근 가능
Spoofing 대응방안
- 희생자 2 (Telnet_Server) 의 ARP 테이블을 정적으로 설정하여 MAC 주소가 변환되지 않도록 설정하는 방법
- 희생자2 PC에서 apr -s [IP주소] [MAC주소] 로 설정
- 희생자1 PC(Telnet_Client)에서 희생자 2 PC(Telnet_Server)로 접속 가능 확인
- 공격자PC(Attacker)에서 희생자 2 PC로 접속 불가능 확인
정적으로 설정 :
arp -s 명령어를 사용하여 테이블에 저장할 때 직접 삭제하거나 재부팅 하지 않는 이상 리스트에서 사라지지 않음 만약 재부팅 이후에도 지속 설정 하려면 '/etc/rc.d/rc.local' 파일을 이용 하단에 명령어 추가
- /etc/xinetd.d/telnet 설정파일에서
- 접근 허용시간을 근무시간으로 설정
- 서버의 접근 허용 최대 클라이언트 수 설정
- 하나의 클라이언트 당 접근 횟수 설정
- 위 설정으로 접근을 제한
- /bin/su 의 권한을 제어해 일반 계정에서 접근 불가하게 설정
- root를 제외하고 사용 불가
- 중요 문서 따로 보관해서 보안성 유지
IP 스푸핑을 막는 최고의 방법은 트러스트 인증법 자체를 사용하지 않는 것이 가장 확실할 것 같습니다.
그 외 방법.
- 패킷 필터링 패킷 필터링은 네트워크에 연결을 시도하는 모든 장치 또는 사용자에 대한 IP 패킷을 검사합니다(이는 들어오는 통신을 모니터링하기 위한 수신 또는 나가는 통신을 모니터링하기 위한 송신일 수 있음). 이 방법은 IP 주소가 포함된 각 IP 패킷의 헤더를 특히 자세히 살펴 소스와 일치하고 모든 것이 제대로 보이는지 확인합니다. 잘못된 것이 있으면 패킷이 의도한 대로 연결을 완료할 수 없습니다.
- 공개 키 인프라를 통한 인증 PKI( 공개 키 인프라 )는 공개 및 개인 키 쌍에 의존하는 사용자 및 장치를 인증하는 일반적인 방법입니다. 개인 키는 통신을 암호화하고 사용자장치의 진위를 확인할 수 있는 반면 공개 키는 이러한 통신을 해독할 수 있습니다. 중요한 것은 이러한 인증 방법이 비대칭 암호화를 사용한다는 점입니다. 즉, 각 키가 쌍의 다른 키와 다릅니다. 이 방법은 해커가 개인 키를 결정하는 것을 매우 어렵게 만들고 중간자 공격과 같은 일반적인 유형의 IP 스푸핑 공격을 방지하는 데 매우 효과적입니다.
- 네트워크 모니터링 및 방화벽 네트워크 모니터링은 의심스러운 항목을 찾기 위해 네트워크 활동을 면밀히 추적하는 방법입니다. 이는 해커가 IP 스푸핑을 통해 액세스하는 것을 방지하는 데 약간 어려울 수 있지만 이러한 접근 방식은 존재를 위장해야 하므로 조기에 악의적인 활동을 포착하여 피해의 흐름을 막을 수 있습니다. 한편, 네트워크 방화벽을 설정하는 것은 IP 주소를 인증하고 개략적으로 보이고 IP 스푸핑의 대상이 될 수 있는 트래픽을 필터링하는 또 다른 방법입니다.
IP 스푸핑을 방지할 수는 없지만 스푸핑된 패킷이 네트워크에 침투하는 것을 방지하기 위한 조치를 취할 수 있습니다. 스푸핑에 대한 매우 일반적인 방어는 BCP38(Best Common Practice 문서)에 설명된 수신 필터링입니다. 수신 필터링은 일반적으로 수신 IP 패킷을 검사하고 소스 헤더를 확인하는 네트워크 에지 장치에서 구현되는 패킷 필터링의 한 형태입니다. 해당 패킷의 소스 헤더가 원본과 일치하지 않거나 비정상적으로 보이면 패킷이 거부됩니다. 일부 네트워크는 또한 네트워크에서 나가는 IP 패킷을 확인하는 이그레스 필터링을 구현하여 해당 패킷에 합법적인 소스 헤더가 있는지 확인하여 네트워크 내의 누군가가 IP 스푸핑을 사용하여 아웃바운드 악의적인 공격을 시작하는 것을 방지합니다.