본문 바로가기

Security

정보수집

  1. MECHANIZE 라이브러리로 인터넷 검색하기

   - 브라우저 : 파일의 종류를 읽어와서 해석하고 사용자에게 보여줌(= 파이썬 프로그램의 소스파일+파이썬 인터프리터)

   - wget(in LINUX) : HTML 소스코드를 가져와서 처리함(파이썬에서 인터넷 검색을 하기위한 유일한 수단)

   - Mechanize : 파이썬 외부 라이브러리로, 간편한 HTML 폼 작성, 편리한 구문분석, HTTP-Equiv 명령어 처리 등의

     기능을 수행함.

      > browser 클래스를 통해 브라우저에서 조작할 수 있는 모든 부분을 파이썬에서 조작 가능하게 해줌.

viewPage.py

>> 스크립트 실행 시 HTML코드와 www.syngress.com 의 인덱스 페이지를 출력함

 

 2. 익명유지 - 프록시, User-Agent, 쿠키 추가하기

   - 웹 사이트에서 방문자를 식별하는 방법 

      1) IP주소 기록 > VPN(Virtual Private Network)나 Tor 네트워크를 통해 완화함

         (Mechanize의 Browser클래스에 프록시 서버를 설정할 수 있음)

proxpyTest.py

>> 프록시 서버가 닫혀 오류가 난 것으로 보임.

 

     2) user-agent 문자열을 통해 사용자를 식별함 

         > 커널저보, 브라우저 버전, 사용자에 대한 다른 정보도 포함되어 있을 수 있어 악의적으로 사용될 수 있음

         > NAT를 사용하는 컴퓨터를 구분하는 데 사용

userAgentTest.py

>> user-agent 를 Netscape로 바꿈

 

   3) 브라우저의 쿠키를 사용하여 사용자 식별

      > anonymize 함수를 수행할 때 쿠키를 브라우저에서 삭제하여 이를 방지

      > 파이썬의 Cookielib 라이브러리를 통해 쿠키를 처리함

          > 여러 종류의 쿠키를 디스크에 저장하는 기능이 포함되어 있어 웹사이트에 한번만 접속하면 쿠키를 계속

            볼 수 있음

printCookies.py

 

 2. 파이썬 클래스에서 AnonBrowser 최종화하기

    - Browser 클래스를 직접적으로 처리하는 모든 함수를 한 곳에 묶음

    - user-agents 목록이 있어 추가할 목록을 받기도 하고 사용자가 사용하고 싶은 프록시 서버 목록도 받기도 함.

cyber.ewha.ac.kr 접속

>> 웹사이트를 4번 방문하여 각 세션마다 anonymize 함수를 적용함

     > 방문할 때마다 고유한 쿠키를 얻어서로다른 php세션을 가져옴.

 

 

 # Anonbrowser로 웹 페이지 정보수집하기

   - 공격자는 메인 페이지를 정밀하게 살펴보며 숨겨진 중요한 데이터가 있는 지 확인함.

   - 웹사이트의 콘텐츠를 로컬 컴퓨터로 옮기면 페이지 뷰를 감소시킬 수 있고, 페이지를 단 한 번 방문하는 것으로

     로컬 컴퓨터에서 무한번 활용할 수 있음.

 

   1. Beautiful Soup으로 HREF 링크 처리하기
 

 * beautiful soup : 웹크롤러 요소 중 하나로 웹에서 원하는 데이터를 가져오기위해 해야하는 번거로운 수작업을 간다하게 해줌.

beautiful soup 설치
linkParser.py
cyber.ewha.ac.kr 홈페이지를 beautifulsoup으로 탐지한 링크를 출력함.
naver.com 홈페이지를 beautifulsoup으로 탐지한 링크를 출력함.

  2. Beautiful Soup으로 이미지 미러링하기

   - 페이지에 있는 이미지를 모두 가져오기. 

   - beautiful soup : "img"태그로 HTML 객체를 검색할 수 있음(img 태그 : 이미지를 삽입하는 태그)

   - 브라우저 객체는 사진을 다운로드하여 바이너리로 로컬하드에 저장함

      > 링크를 재작성하는 것과 동일한 과정으로 실제 HTML 코드르 수정함.

      > 웹사이트 이미지를 다운로드하고 로컬 컴퓨터에서 모든 링크를 접속 가능함.

 

imageMirror.py 일부
xkcd.com
/tmp/에 다운로드된 파일

 

/tmp/에 다운로드 된 파일

# 연구, 조사, 발견

 1. 파이썬에서 구글 API 사용하기

   - 구글 인터페이스를 사용하지 않고 쿼리를 구글에 전송하여 결과를 받을 수 있는 API있음.

    1) 키는 필요하지 않지만 버전 만료됨 - 하루에 여러개 쿼리 가능, 검색결과 30개 정도 출력 

    2) 키 필요 : 익명성 유지 불가능

 

 2. 파이썬으로 트위터 처리하기

   - [트위터이 가리키는 다른 트위터 사용자] + [트위터 텍스트, 축약된 URL이 포함될 수 있음] + [해시태그]

      = [사용자가 관심이 있어하는 사용자, 이 사람과의 연락을 신뢰할 가능성이 높음]

         + [사용자가 관심있어 하는 링크 또는 주제, 이 주제에 대한 다른 정보에 대해서도 관심이 있을 것임]

         + [사용자가 더 알고 싶어하는 트렌드 또는 주제]

 

 3. 정규표현으로 트위터의 관심 사항 추출하기

   ex) 트위터에 있는 링크, 해시태그, 트위터 사용자가 언급한 다른 트위터 사용자

 

 # 익명의 이메일

   - 일회용 이메일 계정 사용 http://10minutemail.com/10MinuteMail/index.html 

 

10 Minute Mail - Free Anonymous Temporary email - 10 Minute Mail - Free Anonymous Temporary email

1 0 0 0 Get 10 more minutes 10 Minute Mail Free Temporary Email Why would you use this? Maybe you want to sign up for a site which requires that you provide an e-mail address to send validation e-mail to. And maybe you don't want to give up your real e-mai

10minutemail.com

  1. Smtplib로 공격대상에 이메일 전송하기

    - 일반적인 이메일 전송 방식 : 이메일 프로그램을 열어서 새로운 이메일 작성하기를 클릭한 후 전송버튼을 클릭

        > 뒤에서 프로그램은 서버에 연결을 하고 전송자, 수신자, 다른 필요한 데이터에 대한 정보를 서버와 교환함.

    - 이 프로그램을 우리가 처리할 수 있도록 smtplib라이브러리를 사용함.

sendMail.py

 

> gmail 보안상의 문제로 실패함.