'sniffing'에 해당되는 글 5건

  1. 2010.01.08 OTP and OPIE (2)
  2. 2009.10.20 ETTERCAP을 이용한 Sniffing, ARP Sfooping, DNS Sfooping
  3. 2009.06.03 BackTrack4 - Fragrouter 설치 및 사용법
2010. 1. 8. 19:46

OTP and OPIE

by Hye Jin Youn & Security KAIST
Sponsored by Initech.


Copyright (C) Jan 2000, Hye Jin Youn and Security KAIST

You may freely redistribute or republish this article, provided the following conditions are met as long as it is for non-commercial purposes. Otherwise permissions should be granted:

1. This article is left intact.

2. Proper credit is given to its authors; Hye Jin Youn and the Security KAIST

Contents
  • I. Background of OTP
  • II. Introduction is OTP
    • OTP란?
    • OTP의 여러가지 이용
    • 국내 기술 동향

  • III. S/Key 란?
  • IV. Let's Use OPIE!
    • How to install an OPIE server
    • How to login to an OPIE system
    • OPIE Command and man pages

  • V. References
  • VI. Down load( opie )
  • Whatis?


Background of OTP


  • 현재의 userid , password를 인증기반으로 하고 있는 unix system 은 password를 누출 시키는 경우 위험함

  • TCP/IP protocol은 desine당시 보안 문제는 고려하지 않았기 때문에 sniffing과 IP spoofing 등을 이용한 해킹이 많이 이용되고 있다.

  • 국내에서 발생된 대부분의 해킹 사례는 ID와 password도용 사례가 주류를 이루고 있다.


Introduction to OTP


  1. OTP란?

      OTP( one time password )란 말 그대로 한번 쓰고 password를 버리는 일회용 password이므로 기존의 password가 sniffing 등으로 가로채여도 새로 생성된 password를 사용하므로 안전할 수 있다. 이러한 otp를 구현하기 위한 방법으로는 다음과 같은 것들이 있다.
    • 동기화된 시간을 유지하여 Time-Stamp를 사용
    • server와 client의 임의의 패스워드 리스트 내의 위치이용
    • Challenge-Response Schemes이용

  2. OTP의 여러가지 사용

    1. S/Key 방식
      S/Key 인증 시스템은 passive attack에 대해 사용자의 패스워드를 보호하기 위한 간단한 스킴이다.

      더 자세한 것은 뒤에 설명하도록 할것이다.

    2. Challenge-Response 방식
      user가 login하면, server는 Challenge message를 보낸다.
      user는 PIN( Personal Identification Number )와 Challenge 를 이용하여, OTP를 생성하여 Response를 한다.
      서버는 동일한 Challenge와 등록된 사용자의 정보을 이용해 OTP를 생성한 후 user의 Response와 비교하여 사용자 인증을 해주는 방식이다

    3. Time-Synchoronous 방식
      난수생성 알고리즘은 관리가가 정한 시간(t)마다 64bit의 비밀키가 생성되어 진다.
      각각의 사용자에게는 특정키가 할당되어지고, 지능형 토큰과 인증서버 데이터 베이스에 이것들이 저장되어진다.
      사용자가 login을 할때 PIN과 6개의 숫자로 된 난수를 전달하면, (이 난수는 토큰으로 생성되어 짐)

      난수는 토큰안에 저장되어 있던 비밀키와 t를 초기값으로 하여 토큰안의 알고리즘을 통해 만들어진다.

      이렇게 만들어진 10개의 숫자가 서버로 가면 서버는 PIN을 인덱스로 하여 해당 비밀키를 찾고, 생성된 6개의 랜덤 숫자들을 수신 것과 일치하는 지를 확인한다.

  3. 국내의 기술 동향.

    • 반도체 장비 전문업체인 미래 상업은 사용때마다 결과치가 다른 해쉬함수를 기반으로 구현되어 추론및 재현 공격을 봉쇄할 수 있고 발생기에 고유 ID 를 부여, 분실시 오용되는 것을 원천적으로 방지할 수 있는 공중망 인증 시스템을 개발 ('97.3)

    • 케신 시스템에서 미국 브이원사의 SmartGate제품을 수입하여 판매중

    • internet security korea secure card, secure server, securid ( Time-Synchoronous 방식 )을 개발 판매중임

    • 한국 엑시스

    • 그외의 여러 단체에서 연구중임

    • ( 자신의 회사에서 연구중인 분은 저에게 연락을 주세요 :) )


III. S/Key 란?


  • 특징

    • 기본 otp의 특징을 가지고 있다.
    • 사용하기에 간단하다.
    • 비밀 패스워드를 기억하도록 한다.
    • 자동화가 되어질수 있다.
    • 알고리즘이 공개되어 있다.
      - MD4 또는 MD5 one-way hash 함수를 사용한다.
      ( 8byte 입력 8byte 출력 )
    • 어떤 비밀 정보도 호스트에 보관되어지지 않는다.

  • 알고리즘

    • 기본적인 알고리즘은 one-way hash 함수를 여러번 적용함으로 계속해서 생성되어진다.

    • 착안 : f(x) = y 에서 x를 알고 y 를 알면 구해질수 있으나 y를 알고 x를 알아내기란, 즉 x = f~(y) 는 거의 불가능하다.
      ( * MD4와 MD5참고 )

    • 첫 번째 OTP는 user의 비밀 패스워드(S)를 정해진 특정수 (N) 만큼의 one-way hash 함수를 수행함으로 생성되어진다.

      P(1) = f(f(f(f(S))))

      다음번에는 n-1번을 수행함으로 생성되어지는 P를 쓸것이다.

      P(2) = f(f(f(S)))

      그렇기 때문에 도청자가 P(i)를 알게 되더라도, 다음 password, P(i+1)을 알아낸다는 것이 불가능하게 된다.

    • 처음에 호스트 컴퓨터는 OTP의 복사본을 저장한다. 그리고 그것을 one-way hash 함수로 계산하여, 복사본과 비교한다.
      만약 일치하게 된다면, system password file의 사용자의 엔트리는 OTP의 복사본으로 갱신되어진다.

  • 사용자에 의해 one-way hash 함수의 수가 하나씩 줄어들게 되므로 어느 시점에 다다르면 초기화를 시켜주어야 한다.

  • user의 OTP는 노트북이나 palm-top등을 포함하는 다양한 기종의 pc에서 수행되어진다. 또는 플로피 디스크에 저장되어지고 수행되어질수 있다. 또는 미리 계산을 하여 프린트를 하여 사용할수 있다.

    예를 들어 이런 token card가 있을수 있다.

    IV. Let's Use opie!

    • What is OPIE( OneTime Password in Everything ) ?
        OPIE 버전 2.32을 기반으로 구현했다.
        OPIE 원타임 패스워드 시스템은 공개버전으로 Bellcore S/Key 시스템과 상호 운용성이 있으며, RFC 1938에서 기술하고 있는 원타임 패스워드 시스템을 구현한 것이다.

    • 이문서의 기준은 OPIE Software Distribution, Release 2.32의 버전을 가지고 다루었습니다.
      test server는 linux 6.0입니다.

    • How to 'Install' an OPIE server

        1. Read the OPIE README file

        2. OPIE system requirement

        • A UNIX-like operating system
        • An ANSI C compiler and run-time library
        • POSIX.1- and X/Open XPG-compliance(including termios)
        • The BSD sockets API
        • Approximately five megabytes of free disk space

        3. download the OPIE

        4. Unpack the software( 압축풀기 )

          %> gunzip opie-2.32.tar.gz
          %> tar xfv opie-2.32.tar

        5. Read INSTALL readme file( 제 나름대로 요약하면 )

          i) configure을 실행시킴
          ii) Makefile을 나름대로 필요한 것을 고칩니다. ( 사실 안고쳐도 대충됨 )
          iii) make라고 치면됩니다( client만 깔기위해서는 make client, 서버만 깔기위해서는 make server 라고 치세요 ) iv) make install( client는 make client-install )

        6. file 확인 

        7. Install test

        여기서 otp-md5는 md5를 쓴다는 이야기고, key는 497이고, seed는 en3197이다

        8. 지우기 위해서

          %>make uninstall

    • How to login to an OPIE system

        1. 처음에는 admin에게 passphrase를 물어봐야한다.

        2. passphrase 만들고, 바꾸기

          %>INSTALLDIR/opiepasswd -f -c

          INSTALLDIR 은 opiepasswd 라는 명령어가 있는 모든 경로를 말한다.
          예를 들면, 보통 /usr/local/bin 가 되겠다.

          -f : 강제적으로 만듬을 의미한다.
          -c : console mode로 만들어서 secure한 접속이게끔 만든다.
           

    • Key generator

      • In Linux

        'opiekey' 명령어가 해준다.  

      • In Windows  

    • OPIE Command and man pages

      • In Linux

        opiegen :

          passphrase를 가지고 key를 generate시켜줌
          vici%> opiegen otp-md5 495 wi01309
          Secret Pass Phrase:
          GILL HUED GOES CHUM LIEU VAIN
          vici%>

        opieinfo :
          다음의 sequence number와 seed 값을 출력

          %> opieinfo
          495 wi01309

          보통,
          %> opiekey -n 42 `opieinfo`
          이런 식으로 이용하면 좋다.

          정보는 /etc/opiekeys에서 얻어오는 것들이다.

        opiesu :
          su 명령어 대신을 하는 것이다.

          %> opiesu vici
          otp-md5 498 wi910502
          (OTP response required)
          vici's password: (echo on)
          vici's password: RARE GLEN HUGH BOYD NECK MOLL
          # ( root shell )

      • In Windows

    V. Reference


    VI. Download


    What is ?


    • Sniffing
        TCP/IP desine 이 보안을 고려하지 않았기 때문에 network상의 packet을 모아 재배열시키면 원래의 data를 복제할수 있다.
    • Spoofing
        network상에서는 상대방을 어떻게 인증할 것인가가 중요하다. 보통 password나 IP , hostname등에 의해 인증을 하는데 전자는 sniffing에 의해 노출이 가능하며 후자는 spoofing에 의해 공격이 가능하다.
      • IP Spoofing : 해커의 host가 target host가 trust하는 host인척하기
      • DNS spoofing : rlogin , rsh을 사용하고 DNS server에 많은 packet을 보낸다. 그럼 host는 잠시 마비가 되며 그틈을 타서 target host로 하여금 자신의 host를 믿는 정보를 보낸다.
      • IP hijacking : 일단 connection이 일어난 두 host간에 connection을 변조하는 것을 말함

    출처 : http://sparcs.kaist.ac.kr/~vici/

    Trackback 0 Comment 2
    1. FreeBSD Handbook 2010.01.08 19:54 address edit & del reply

      http://www.freebsd.org/doc/en/books/handbook/one-time-passwords.html

    2. OPIE 2010.01.08 19:56 address edit & del reply

      How to setup OPIE with pam On Linux
      http://www.rho.cc/index.php/linux2/46-1key/66-how-to-setup-opie-with-pam-on-linux

      jsotp: JavaScript OTP Calculator
      http://www.ocf.berkeley.edu/~jjlin/jsotp/

    2009. 10. 20. 10:29

    ETTERCAP을 이용한 Sniffing, ARP Sfooping, DNS Sfooping

    오픈소스 소프트웨어로서, GUI 를 지원하기 때문에 사용하기 편하다.

    기본적인 스니핑 기능을 가지고 있으며, arp poisoning,icmp redirect, Port Stealing, DHCP Spoofing 등의 기본 기능도 가지고 있다.

    그리고 플러그인을 통한 dns spoofing, dos attack 등을 지원하며 역으로 이런 공격을 찾는 search arp poisoner, search promisc 등의 기능도 가지고 있다. 사용하기에 따라서 매우 유용한 툴이라고 생각된다. 

     

    1. Ettercap  설치

    ettercap 을 위해서는 libnet,libpcap,libssl,ncurses 라이브러리가 필요하다. 다운받아서 설치 해준후 ettercap 을 설치해준다.

    libpcap 은 rpm 형태로 이미 설치되어 있을시 삭제해주고 0.8.1 버전을 설치해 줘야 한다.

    이후엔 필요 라이브러리 들을 tar zvxf 로 풀어주고 ./configure;make;make install 해준다.
    마지막으로 ettercap 을 설치.

     

    2. Ettercap 실행

    # ettercap -G -n 255.255.255.0                   => -G 는 GUI , -n 은 netmask 를 의미한다.

    먼저 스니핑할 NIC 를 선택해준다. eth0 을 선택한다.

    다음으로 할 것은 네트워크에 어떤 호스트가 있는지 스캔하는것!

     

    3. 스니핑

    이제 스니핑을 시작해보자. Ctrl + W 를 눌러도 된다.

    텔넷 접속 패킷을 스니핑하여 id 와 password 를 알아냄.

    자동적으로 패킷속에서 주요 키워드 (ID,PASSWORD 등의) 를 보여준다.

     

    4. ARP Poisoning(Spoofing) + DNS Spoofing

    Mitm 을 클릭해보면 기본적으로 4가지 공격이 있다.
    ARP Spoofing 에 해당하는 ARP Poisoning 을 해보자.

     => 모든 호스트에 대한 MAC Table 이 공격자(Red Hat) 으로 바뀌었다. 이제 모든 통신은 Attacker Host 를 거치게 된다. ettercap 의 filter 기능을 사용하여 패킷을 중간에서 변조한 후 보내줄 수 있다.

    이제 모든 패킷은 attacker host 를 거쳐서 가므로, dns 쿼리 패킷 또한 예외일 수 없다.

    우선 dns spoofing 모듈에서 사용하는 etter.dns  파일을 편집해야 한다.

    # vi /usr/local/share/ettercap/etter.dns

    target 호스트들이 네이버에 대한 dns 쿼리를 날릴 시 192.168.0.6 으로 돌려주도록 했다.
    192.168.0.6 은 실습을 위해 임의로 구축한 웹서버이며, 실제 공격에서는 악성코드가 삽입된 사이트로 유도할 수 있을 것이다.

    이제 Plugins 메뉴에서 dns_spoof module을 활성화 시킨다.

    공격당하고 있는 네트워크의 호스트에서 www.naver.com 을 질의 한 결과.

    정상적인 상태(위) 와 dns spoofing 을 하고 있는 상태(아래) 

     * 실제 www.naver.com 을 접속해본 결과

    ========================================================================================================

    ettercap 을 이용한 sniffing 과 arp,dns spoofing 을 알아보았다. ettercap 을 사용해본 결과 실제 해킹에서도 쓰일 만큼 꽤나 유용하고 강력한 도구라고 생각된다. 하지만 반대로 plugin 기능중에 search poisoner 기능과 search promisc 기능도 가지고 있으므로 보안도구로서도 활용될 수 있을 것으로 보인다.

    어떤 툴이든 사용자에 따라 해킹툴로도,보안툴도 될 수 있다는 것을 다시 한번 확인하게 되었다. ^^


    출처 : http://blog.naver.com/kimhmin85


    Trackback 0 Comment 0
    2009. 6. 3. 17:56

    BackTrack4 - Fragrouter 설치 및 사용법

    1. Fragrouter 1.6 Download하기

      Google에서 fragrouter를 검색하여 다운로드를 받는다. 


     2. 다운 받은 파일을 압축을 푼다.

     

    3. bison 설치 

       받은 소스를 컴파일 하기 전에 몇가지 설치해야 되는것이 있다.

       다음 명령어로 bison을 설치한다.

       명령어 : apt-get install bison

     

    4. yacc 설치

       다음 명령어로 yacc를 설치한다.

       명령어 : apt-get install yacc

     

    5. flex 설치

       다음 명령어로 flex를 설치한다

       명령어 : apt-get install flex

     

    6. 위 세가지가 모두 설치가 되었으면 다음 명령어로 fragrouter를 컴파일 하고 실행한다.

    a. ./configure

    b. make

    c. make install

    위 명령어를 실행 후 에러가 없이 정상적으로 컴파일이 되면 다음과 같이 파일들이 생성된다.

     

    7. fragrouter -B1으로 실행 시키면 fragrouter가 실행된다.




    출처 : http://www.itsecuritybank.com/



    Trackback 0 Comment 0