이제 시작이야 해킹과 침투 테스트(6)

프레임 워크란 설계의 기반이 되는 부분을 기술한  확장 가능한 기반 코드와 사용자가 이 코드를 자기 입맛대로 확장하는 데 필요한 라이브러리 이 두 가지 요소가 통합되어 제공되는 형태를 말하며, 사용자가 이를 이용해 일정 수준 이상의 품질을 보장받는 코드를, 비교적 빠른 시간에 완성 및 유지 보수할 수 있는 환경을 제공해주는 솔루션으로 "기본적인 설계나 필요한 라이브러리는 알아서 제공해 줄꺼니깐 넌 그냥 니가 진짜로 하고 싶은 기능 구현에만 전념해!" 라는 취지에서 만들어진 물건이란 것이다. 프레임 워크에는 웹에 대한 다양한 기능이 탑재되어 있다. 1. 브라우저에서 전송하는 요청을 가로채는 기능 인터셉팅 프록시를 통해 제공된다. 각 요청의 핵심 부분 중 하나는 변수이다. 이러한 벼수들이 사용자에게 어떠한 페이지를 보여줄지 결정하게 된다. 그리고 사용자 또는 공격자가 요청에 있는 변수를 추가 편집 삭제를 할 수 있다는 것을 명심하자. 또한 웹 애플리케이션이 변조된 요청을 전송 받았을 때, 어떻게 대응할지 결정하는 것도 웹 애플리케이션이라는 것을 명심하자. 2.다음은 웹페이지, 디렉터리, 그 밖에 웹 애플리케이션을 구성하고 있는 모든 파일을 찾아주는 기능이다. 이 기능의 목적은 공격 가능한 범위를 알 수 있게 해준다. 하지만 은밀성은 많이 떨어진다. 3. 다음은 웹 애플리케이션에서 전송된 응답을 분석하여 취약점을 검사하는 기능이다. 프록시의 변수값을 변조해서 웹 애플리케이션으로 전송하면 웹 애플리케이션은 어떤 방식으로든 응답을 해야한다. 이러한 응답을 분석하여 애플리케이션에 취약점이 있는지 분석한다.  Nikto: 웹서버 정보 수집 툴 Nikto는 웹서버 취약점 스캐너다. nikto -h target_ip -p port_number w3af: GUI와 기능 w3af은 웹 해킹할 때 없어서...

이제 시작이야 해킹과 침투 테스트(5)

SET 기본 기능 SET은 메뉴 기반의 프로그램 공격을 공격대상에 특화시킬 수 있게 해준다. 웹 사이트 공격 벡터 SET의 주요 공격 벡터중의 하나는 웹사이트 공격 벡터다. 자바 애플릿을 이용한 공격 방법과 인증정보를 탈취하는 방법이 있다. 자바 애플릿을 이용한 기법은 자바의 설계적 결함을 활용한다. 먼저 SET가 해당 웹사이트에 가서 자동으로 웹사이트를 복사하고 , 복사한 웹사이트에 악성 코드가 삽입된 자바 애플릿을 넣는다. 그리고 웹서버를 설정하고, 여러 페이로드를 생성한다. 인증정보 탈취하는 방법도 자바 애플릿과 비슷하게 먼저 웹사이트를 복사하고 사용자에게 이메일을 보낸 다음 사용자들의 인증 정보를 탈취하는 것이다. SET는 2시간마다 업데이트 되기 때문에 정기적으로 업데이트를 해주어야한다.

이제 시작이야 해킹과 침투테스트 (4)

이미지
Medusa : 원격 서비스의 권한 획득하기 2단계 결과 값을 검토할 때  원격 접근 서비스가 있는 IP주소에 특별한 관심을 보여야한다. SSH, Telnet, FTP, PC anywhere, VNC 등의 접근 권한을 획득하면 공격대상을 장악할 수 있다. 해커들은 보통 이러한 서비스를 발견하면 "온라인 비밀번호 크래킹"을 시도한다. 온라인 비밀번호 크래킹이란, 비밀번호를 무작위 대입하여 공격하는 기법이다. 반대로 오프라인 패스워드 크래커를 사용할 때는 서비스가 실행되고 있지 않아도 된다. 그 대신 패스워드 해쉬가 필요하다. 비밀번호 크래킹 툴은 다향하나 가장 많이 사용되는 툴은 Medusa 와 Hydra가 있다. Medusa는 원격 인증 서비스의 접근 권한을 획득하기 위해 로그인 계정을 무차별로 대입하는 툴이다. Medusa를 사용하려면 공격 대상 IP주소, 로그인을 시도할 사용자 계정 또는 계정 목록, 로그인을 시도할 떄 사용될 비밀번호나 비밀번호 사전 파일, 인증을 시도하는 서비스의 이름 등 여러 가지 정보가 필요하다. JtR 같은 오프라인 비밀번호 크래킹들은 1초에 백만 개의 비밀번호를 테스트 할 수 있다. 하지만 Medusa 나 Hydra 같은 비밀번호 크래킹 툴은 1초에 한 두 개의 비밀번호를 테스트 할 수 있다. medusa -h 공격대상 IP -u 사용자 계정 -P 비밀번호 사전 경로 -M 공격할 인증 서비스 -U를 쓰면 사용자 계정들을 쓴 파일의 경로를 쓴다. -P도 마찬가지이다. #굉장히 오래걸리는 것을 확인할 수 있다. Metasploit 최초의 오픈소스 공격 프레임 워크이다. Metasploit은 공격대상과 다양한 페이로드를 선택할 수 있게 해준다. 페이로드는 추가적인 기능 또는 공격대상 컴퓨터에서 달성하고 싶은 행동 방식이다. Metasploit과 취약점 스캐너의 차이점에 대해 이해해야한다. 스캔은 매우 간접적인 방법으로 공격대상을 의도하지 않게 파손한다거나 영향을 줄 확...

이제 시작이야 해킹과 침투테스트 (3)

3장 스캐닝 1단계 탐색에서는 IP주소만을 목록화하는 것이다. 이제 2단계에서는 이 IP주소를 가지고 , 각 주소에 어떤 포트가 열려 있는지 그리고 어떤 서비스가 실행되고 있는지 확인할 것이다. 3장의 모든 예는 칼리 리눅스ㅔ서 운도우 xp나 metasploitable VM을 대상으로 실행되는 것이다. 이 책의 숙제는 Metasploitable VM을 성공적으로 해킹하여 시스템을 장악하는 것이다. 2단계를 다음 네 가지의 과정으로 재차 분류할 것이다. 2-1. 핑 패킷으로 컴퓨터가 작동 중인지 확인. 2-2. Nmap을 통한 포트 스캐닝 2-3. NSE을 활용하여 대상에 대한 정보 추가로 획득 2-4. Nessus를 통한 취약점 스캐닝 어느 정도 숙련이 되고 나면 2-1과 2-2를 별도로 진행하지 앟고 Nmap으로 한번 진행하게 될 것이다. 과정 2-2는 특정 컴퓨터에서 어떤 포트가 열려 있는지 그리고 어떤 서비스가 실행 중인지 확인하는 과정이다. 간단히 설명하자면 포트는 소프트웨어, 서비스,네트워크가 컴퓨터와 같은 하드웨어와 통신할 수 있게 해주는 수단이다. 과정 2-3은 NSE를 활용하여 앞에서 발견한 내용을 확인하고, 추가로 정보도 획득한다. NSE는 Nmap의 기능을 확장시켜준다. NSE로 직접 스크립트를 만들어서 결과값에 대해 확인하거나 새로운 취약점을 검색하거나 아니면 여러 해킹기법을 자동화 할 수 있다. 과정 2-4는 취약점 스캐닝이다. 이미 알려져 있는 취약점을 발견하는 것은 로또 확률이다. 해킹에 성공한 컴퓨터를 사용하여 다른 컴퓨터를 공격하는 것을 pivoting이라고 한다. 최종 목적지에 다다르기 위해 pivoting을 여러번 헤야 할 수 있다. 처음에는 외부 네트워크와 연결되어 있는 장비를 먼저 공략하고 , 점차 내부에 있는 장비를 공략하는 것이다. Fping : 핑과 핑 스윕 핑은 ICMP패킷이라고 불리는 특수 네트워크 패킷의 일종이다. 핑은 ICMP 반향 요청 패킷이라는 특수한 네트워크 트래...

이제 시작이야 해킹과 침투 테스트 (2)

netcraft 또 다른 정보 수집 수단. site repot 에는 IP 주소, 웹서버의 운영체제,DNS 서버 등을 포함하여 공격 대상에 대한 많은 정보들을 포함하고 있다. Host 종종 탐색을 하다보면 IP주소보다는 호스트 이름을 검색 결과로 얻을 경우가 있다. 이 때 host 툴로 host 이름을 통해 IP 주소를 알 수 있다. 터미널에 host target_hostname 을 입력하면 IP주소로 변환된다. 반대로 IP 주소로 host 이름을 알 수 있다. DNS에서 정보 추출하기 침투테스터는 공격 대상의 DNS 서버에 초점을 맞출 필요가 있다. DNS 서버는 고장나지 않으면 건들지 말라는 원칙으로 운영되고 있기 때문에 살펴보기 흥미롭다. 요새는 드물지만 공격대상 DNS를 해킹할 떄 가장 먼저 해야 할 것은 zone transfer 이다. 많은 네트워크에서는 redundancy 와 load balancing 을 위해 여러 대의 DNS 서버를 사용한다. 그 결과 DNS 서버들이 서로서로 정보를 공유하는 방법이 필요하다. 이러한 공유는 zone transfer(구역 전달)이라고 한다. 구역 전달은 공격 대상 DNS 서버가 보유하고 있는 모든 기록을 획득할 수도 있다. nslookup DNS을 조사하기 위한 첫 번째 툴은 nslookup 이다. 이것은 DNS 서버를 쿼리하고 호스트에 대한 기록을 확보할 수 있는 툴이다. Dig Dig 또한 DNS 에서 정보를 추출할 수 있는 훌륭한 툴이다. dig @target_ip Fierce : zone transfer가 실패했을 때 해야할 일 Fierce는 사용하기 쉽고, 강력한 펄 스크립트이며 추가 공격대상을 발견할 수 있도록 해준다. fierce는 /usr/bin/fierce 에서 dierce.pl 스크립트를 실행하면 툴을 실행할 수 있다. fierce는 지정된 도메인에 대한 구역 전달을 시도할 것이다. 만약 실패하면, 공격대상의 DNS서버의 쿼리를 전송하여 호스트...

코드라이언 1주차 멋진 에디터를 익히자

이미지
일반 모드에서 입력 모드로 전환할 때  i  키 이외에  a  키와  o  키도 사용할 수 있다.  i  키,  a  키,  o  키 모두 일반 모드에서 입력 모드로 전환할 때 사용할 수 있으나, 그 방식에 약간의 차이가 있다. 아래의 표에 잘 정리되어 있으니 참고하도록 하자: 키 설명 i 현재 커서 위치에서 입력 모드로 전환 (Insert) o 현재 커서 바로 아래에 새로운 행을 하나 만들고, 새로운 행의 맨 앞으로 커서가 이동하면서 입력 모드로 전환 (Open line) a 커서를 현재 위치에서 한 칸 뒤로 옮긴 뒤, 입력 모드로 전환 (Append) 실제로 빔 상에서  i  키,  o  키,  a  키를 눌러보면서 어떻게 변화하는지 직접 관찰해 보도록 하자! 만약 위의 키들을 다 기억하기 어려우면, 일단  i  키만 잘 기억해도 코드를 작성하는 데 크게 문제는 없다. 키 설명 e 바로 다음 단어의 맨 마지막 문자로 커서 이동 ( e nd of word) w 바로 다음 단어의 맨 첫 번째 문자로 커서 이동 ( w ord) b 바로 이전 단어의 맨 첫 번째 문자로 커서 이동 ( b efore word) $ 현재 위치한 행의 맨 마지막 문자로 커서 이동 ^ 현재 위치한 행의 맨 첫 번째 문자로 커서 이동 gg 현재 파일 내용의 맨 첫 번째 행으로 커서 이동 ( g o) G 현재 파일 내용의 맨 마지막 행으로 커서 이동 위 표에 나온 키들 중에서  $ ,  ^ ,  G 는 각각  Shift + 4 ,  Shift + 6 ,  Shift + g  키를 나타낸 것임에 주의하자. 또,  gg  키의 경우  g  키를 연속으로 두 번 누른 것을 나타낸 것...

코드라이언 0주차 개발환경 구축

클라이언트의 요청에 따라 웹 페이지를 보내는 서버를 편의 상 ‘ 서비스 서버 ’ 라고 하자 . 사실 웹 서비스를 제공하기 위해서는 이 ‘ 서비스 서버 ’ 만 있으면 된다 . 하지만 개발의 편의를 위하여 , 서비스 서버 외에 하나의 서버를 더 개설하고 여기에서 개발 작업을 수행하는 경우가 있다 . 이를 ‘ 개발 서버 ’ 라고 부른다 . Mac OS 나 리눅스를 운영체제로 하는 컴퓨터는 별도의 작업 없이 개발 서버로 사용할 수 있다 . 하지만 윈도우 (Windows) 를 운영체제로 하는 컴퓨터의 경우 , 그 자체를 개발 서버로 돌리기에는 사전에 거쳐야 할 셋팅 과정이 까다로우며 실제 사용하기에도 돈이 너무 많이 든다 . 그래서 윈도우 이용자들의 경우 외부로부터 리눅스를 운영체제로 하는 서버를 제공받아 원격으로 개발 서버를 이용하는 것이 더 편리하다 .   한편 최근 들어서는 ‘ 클라우드 컴퓨팅 (cloud computing)’ 기술이 각광받고 있다 . 클라우드 컴퓨팅은 가상화 기술을 이용하여 한 대 혹은 여러 대의 서버 공간을 가상으로 분할하여 제공하는 방식으로 , 사용성 , 확장성 , 비용 등의 측면에 있어 웹 / 서버 호스팅을 능가한다 . 이렇게 등장한 클라우드 컴퓨팅 서비스 중에서 가장 인기있는 서비스는 아마존 웹 서비스 ( 이하 AWS. Amazon Web Services) 이다 . 도메인은 인간의 편의를 위해 인간의 언어로 붙인 서버 주소로서 , 네이버를 비로소 ‘www.naver.com’ 으로 , 구글을 비로소 ‘www.google.com’ 으로 만들어준다 . 이 때 중요한 것은 , 컴퓨터는 서버의 주소를 IP 주소로 이해하며 , 인간은 서버의 주소를 도메인으로 이해한다는 점이다 . 즉 , 컴퓨터와 인간 모두를 위해 IP 주소와 도메인은 공존해야 하는 것이며 , 상호간에 일대일로 대응되어 자유롭게 변환될 수 있어야 한다 . 이렇게 IP 주소를 도메인으로 , 도메인을 IP 주소로 변환하는 작업을 담당하는 서버가 존재하...