2017년 1월 17일 화요일

스니핑, 스푸핑, python 웹페이지 읽어오기

스니핑

패킷을 가로채는 분석 혹은 해킹 기법

파이썬으로 스니퍼를 개발하려고 한다면 scapy모듈을 사용하면 쉽게 구현이 가능하다. scapy는 깃허브에 올라와 있기 때문에 쉽게 설치가 가능하며, 구현하고자 한다면 직접 한번 써보는 것이 좋다. 본인은.. 전에 한번 써봐서..패스~

이런 스니핑을 방어하기 위한 방법은 다음과 같은 방법들이 있다.

  • 패킷 스니퍼가 설치될 수 없도록 네트워크 미디어에 물리적인 접근을 제한한다.
  • 중요한 데이터가 오고갈때는 암호화 하여 전송한다.
  • ARP스푸핑 방지를 위해 정적IP와 정적 ARP 테이블을 사용한다.
  • ARP 캐시에 게이트웨이 영구 MAC 주소 설정한다.
  • SSH나 SCP, SSL과 같은 암호화 세션을 사용한다.
  • 승인된 사용자만 네트워크를 쓰도록하며 패킷을 탐지 하지 못하게 브로드캐스트 기능을 오프한다.

스푸핑

MAC주소나 IP주소 등의 네트워크 정보를 속여 정보를 가로채는 해킹 기법이다. 보통은 스니핑을 이용해 정보를 획득하고 arp스푸핑이나 dns스푸핑을 사용해 패킷을 수정하여 대상 시스템에 전송하는 식의 공격이 많이 이용된다.

IP 스푸핑

IP 스푸핑은 보내는 IP주소를 위조한 IP 패킷을 생성하여 다른 시스템이 보낸 것처럼 위장하는 해킹기법을 말한다. 이러한 IP 스푸핑을 이용한 공격 방법으론 SYN Flooding, Connection Hijacking, 순서제어번호 추측 공격, Connection Killing Attack이 있다.

스푸핑 방어하기 위한 방법 - ARP 스푸핑 방어: MAC 주소를 변조하지 못하도록 정적으로 설정 - IP 스푸핑: TCP/IP 구조상 발생하는 취약점으로 모니터링을 통해 점검하는 것이 좋다. 예를 들어 스위치/라우터에 패킷 필터링을 통해 보내는 주소가 내부 IP주소인 경우 차단, 혹은 rsh, rlogin과 같은 패스워드에 의한 인증 과정이 없는 서비스를 사용하지 않는 방법이 존재한다. - DNS 스푸핑 - 모든 DNS 쿼리는 로컬 DNS 서버에서만 해석 - 외부 서버로 향하는 DNS 요청 막음 - DNSSEC 적용 - DNS 해석기에 무작위 소스 포트 번호를 처리 - 방화벽에 외부 DNS lookup을 제한 - Recursive DNS 서비스를 사용하도록 제한

python 웹 페이지 관련 파이썬 코드

웹페이지 읽는 파이썬 코드

from urllib.request import urlopen

url = 'target url address'
with urlopen(url) as h:
    print(h.read())

웹 서버의 응답 정보 출력하는 코드

from urllib.request import urlopen

url = 'target url address'
with urlopen(url) as h:
    print(h.geturl())   # 실제로 응답한 URL 출력
    print(h.info())     # 헤더 등과 같은 페이지 메타 정보 출력
    print(h.getcode())  # HTTP 응답 코드

댓글 없음:

댓글 쓰기