보안 전문가를위한”해커 도구”
저스틴 허친스에 의해
“윤리적 해커”의 개념은 항상 아이러니 한 개념이었습니다. 윤리적 해킹 및 공격적 보안의 발전 추세는 정보 보안 산업을 세계에서 가장 영속적 인 산업 중 하나로 변화 시켰습니다.
취약한 정보 자산을 보호하는 데 사용되는 소프트웨어와 도구는 이러한 자산을 악용하는 데 사용할 수 있는 도구와 동일합니다. 아마도 그것은 다른 방법입니다. 아마도 정보 자산을 악용하기위한 목적으로 만들어진 도구는 이제이를 보호하기 위해 사용되고 있습니다. 나는 이것이 영원히 계속 될 수있는 논쟁이고 정말로”무엇이 먼저 왔는지…
이 글의 목적은 의도에 대한 철학적 문제를 논의하는 것이 아니다. 내 의도는 더 겸손합니다. 난 단지 지속적으로 악성 해킹 소프트웨어로 분류 된 도구의 중요성을 정당화하고자. 내가 언급하고 도구는 네트워크 매퍼,또는 짧은 엔맵입니다. 당신이 글로벌 혁명을 선동에 구부러진 미친 불량 에이전트 또는 네트워크 보안 전문가(희망 후자,오히려 전보다)이든,엔맵은 툴킷에 영구적 인 장소가 있어야합니다. 아마,대신 매우 기능적인 네트워킹 도구에 비판을 던지는의,우리는 자신의 행동에 대한 책임을 개인을 유지하고 잘 알려진 벤자민 파커주의 사항에 반영해야한다…”큰 힘으로,큰 책임이 온다.”반대로 일부 주장에도 불구하고 엔맵은 악성 소프트웨어가 아닙니다. 그리고 나는 그것이 종종 그러한 것으로 분류되는 유일한 이유는 매우 인상적인 기능 목록 때문이라고 생각합니다. 엔맵은 해를 끼칠 가능성에도 불구하고 전문적인 환경에서 네트워크 인프라를 확보하는 데 중요한 역할을 할 수 있습니다.
엔맵은 단순한 스캐닝 유틸리티에서 완전한 침투 테스트 플랫폼으로 꾸준히 발전해 왔습니다. 보안 감사 프로세스의 모든 단계에서 네트워크 검색,포트 검색,서비스 열거,취약점 매핑 및 악용을 포함하는 데 사용할 수 있습니다. 이 문서 전반에 걸쳐,나는 그들이 침투 테스트 프로세스의 각 단계에 관련된 엔맵의 기능에 대해 설명합니다.
설치 및 준비
물론,엔맵을 사용하기 전에 사용 중인 시스템에 기능 버전을 설치하는 것이 중요합니다. 이 프로그램은 자바 바이트코드 프로그램의 갯수를 카운트하고,스크립트의 메인 형식을 합계냅니다,그리고 확인되지 않은 실행 텍스트 파일을 찾습니다.. 그러나,그것은 또한 당신의 선택의 거의 모든 플랫폼에로드 할 수 있습니다. 일반적으로 사용되는 모든 운영 체제에 쉽게 설치할 수 있습니다. 이 도구는
젠맵–그래픽 인터페이스
엔맵의 기존 명령줄 인터페이스 외에도 젠맵이라는 그래픽 프런트 엔드 인터페이스도 있습니다. 젠맵은 또한 이전에 논의된 다양한 침투 테스트 플랫폼에 통합되어 있습니다. 그러나,칼리 리눅스(나는이 튜토리얼을 위해 사용하게 될 플랫폼)에 기본적으로 설치되어 있지 않습니다. 다행히,그것은 설치 저장소에 쉽게 하나의 명령으로 설치할 수 있습니다:
젠 맵의 포인트 앤 클릭 인터페이스는 효과적으로 그렇지 않으면 복잡한 명령을 필요로 무엇을 간소화뿐만 아니라 그것은 또한 엔맵을 사용하는 방법을 학습하기위한 매우 유용한 도구가 될 수 있습니다. ‘프로필’을 사용하여 나중에 수정 및/또는 사용하기 위해 일반적으로 사용되는 스캔 구성을 저장합니다. 그림 1 에서 제공하는 젠맵 인터페이스의 이미지를 살펴보고 각 구성 요소에 대해 간략하게 설명합니다.
그림 1. 첫 번째 구성 요소는 대상 필드입니다(그림 1. 아). 이 필드는 검색을 실행할 원격 시스템을 지정할 수 있는 필드입니다. 단일 아이피 주소(예:192.168.1.1)를 입력할 수 있으며,아이피 주소의 순차적 범위(예:192.168.1)를 입력할 수 있습니다.서브넷(예:192.168.1.0/24)을 지정할 수 있습니다. 두 번째 구성 요소는 프로파일 필드입니다(그림 1. 비). 이 필드의 오른쪽에있는 드롭 다운 화살표를 클릭하여 스캔을 위해 미리 구성된 여러 프로필을 볼 수 있습니다. 프로필을 사용하면 나중에 사용할 수 있도록 일반적으로 사용되는 스캔 구성을 저장할 수 있습니다. 당신은 또한 당신의 자신의 프로필을 만들 수 있습니다 그리고 그들은 다음이 목록에 나타납니다(우리는이 문서의 뒷부분에서이 작업을 수행하는 방법에 대해 설명합니다). 세 번째 구성 요소는 명령 필드입니다(그림 1. 기음). 이 필드는 백엔드로 전송 될 명령을 나타냅니다. 이 필드에 나타나는 명령을 실행하려면,당신은 단순히 스캔 버튼을 클릭합니다. 이 필드의 값을 직접 수정할 수 있지만 대상 필드 및 선택한 프로필의 값을 기반으로 자동으로 채워집니다. 이 필드를 사용하면 적절한 구문과 다른 엔맵 명령의 사용을 더 잘 이해할 수 있습니다. 네 번째 구성 요소는 호스트/서비스 목록입니다(그림 1. 디). 스캔을 수행한 후에는 이 목록에 정보가 채워집니다. 호스트 단추를 선택한 경우 검색된 모든 호스트 주소가 나열됩니다. 그리고 서비스 버튼을 선택한 경우 검색된 모든 네트워크 서비스가 나열됩니다. 최종 구성 요소(그림 1. 전자)당신은 당신이 수행 한 모든 검사에 의해 생성 된 모든 정보를 통해 정렬 할 수있는 곳입니다. 명령줄 인터페이스에서 명령을 입력한 경우 제공되는 정확한 출력을 표시합니다. 포트/호스트 탭의 내용은 목록에 대해 호스트 또는 서비스 단추를 선택한 경우에 따라 달라집니다. 호스트 단추가 선택되면 포트/호스트 탭 아래의 정보가 목록에 있는 활성 강조표시된 주소에 식별된 서비스를 반영합니다. 그렇지 않으면 서비스 단추를 선택하면 포트/호스트 탭 아래의 정보가 목록에서 강조 표시된 특정 서비스가 있는 것으로 확인된 모든 호스트를 식별합니다. 토폴로지 탭은 스캔을 통해 검색된 모든 호스트를 포함하는 네트워크의 논리적 토폴로지를 그래픽으로 표시합니다. 호스트의 논리적 방향(상대적인 방향)을 표시하기 위해 반환된 값(라이브 시간)을 사용합니다. 호스트 세부 정보 탭에서는 선택한 호스트에 대해 검색된 대량의 정보를 찾을 수 있습니다. 이 정보에는 맥 주소,아이피 주소,열린 포트,식별된 서비스,운영 체제 정보 및 수집된 추가 정보가 포함됩니다. 마지막으로,검사 탭은 세션 중에 수행 된 검사의 역사를 제공 할 것입니다.
화면 상단에 스캔,도구,프로필 및 도움말을 포함하는 여러 가지 드롭 다운 메뉴가 표시됩니다. 도움말 메뉴는 자명하다. 스캔 메뉴에는 새 스캔을 만들거나,스캔을 저장하거나,이전에 저장한 스캔을 열 수 있는 옵션이 포함되어 있습니다. 도구 메뉴를 통해 정렬하고 스캔하는 동안 수집 된 정보를 구성하는 데 사용할 수있는 몇 가지 추가 기능을 제공합니다. 그리고 프로필 메뉴는 새 스캔 프로필을 만들거나 기존 프로필을 편집 할 수있는 옵션을 제공합니다.
이제 새 프로필을 만든 다음 해당 프로필을 사용하여 스캔을 시작하는 방법에 대해 간략하게 설명합니다. 시작하려면 프로필 드롭 다운 메뉴를 선택한 다음”새 프로필 또는 명령.”이렇게 하면 그림 2 에서 볼 수 있는 프로필 구성 인터페이스가 열립니다.
그림 2. 첫 번째 탭(프로필 탭)을 사용하면 프로필에 대한 고유한 이름과 설명을 만들 수 있습니다. 다른 모든 탭은 스캔에 사용될 다른 구성을 지정하는 곳입니다. 그림 2 에 표시된 검사 탭에서 볼 수 있듯이,검사 프로필을 만드는 것은 활성화하려는 옵션의 상자를 확인하거나,이러한 옵션을 효과적으로 사용할 수 있도록 값을 입력하거나,드롭다운 메뉴에서 미리 정의된 선택 항목에서 선택하는 것과 같이 간단합니다. 여기서 어떤 옵션의 기능이나 적절한 사용에 대해 잘 모르는 경우 마우스로 마우스를 가져 가면 화면 오른쪽의 도움말 열에 특정 옵션의 기능에 대한 정보와 요청 된 입력 필드에 대한 적절한 값 및 구문이 자동으로 채워집니다. 스캔 구성을 조정할 때마다 맨 위의 명령 필드가 그에 따라 조정됩니다. 이 기능은 젠맵을 엔맵 명령을 올바르게 사용하는 방법을 배우는 데 매우 효과적인 도구로 만듭니다. 당신이 원하는대로 스캔 옵션을 구성 한 후에는 단일 사용을 위해 화면의 오른쪽 상단에있는 스캔 버튼을 선택할 수 있습니다,또는 당신은 오른쪽 하단에 변경 사항 저장을 선택할 수 있습니다. 변경사항 저장 버튼은 첫 번째 탭 구성에서 제공된 이름으로 프로파일을 저장한 후 즉시 또는 나중에 메인 젠맵 인터페이스의 프로파일 드롭다운 메뉴에서 이름별로 선택하여 사용할 수 있습니다. 젠맵은 매우 강력하지만 엔맵의 명령줄 기능을 학습하지 못하게 하는 버팀목이 되어서는 안 됩니다. 젠맵은 동일한 기능을 많이 수행할 수 있지만 여전히 한계가 있으며 엔맵만큼 강력하지는 않습니다. 엔맵을 효과적으로 사용하고 잠재력을 최대한 발휘하려면 커맨드 라인 인터페이스에 똑같이 익숙해지는 것이 중요합니다.
네트워크 검색
우리가 논의 할 침투 테스트 프로세스의 첫 번째 단계는 네트워크 검색입니다. 네트워크에서 정보 시스템의 보안을 평가하기 전에 먼저 평가하는 내용을 파악해야 합니다. 여러 가지 방법으로 네트워크에서 호스트를 검색할 수 있습니다. 이 섹션에서는 계층 2,3 및 4 에서 호스트 검색을 수행하는 방법에 대해 설명하고 각각의 장점과 단점에 대해서도 설명합니다. 예를 들어의 명령을 수행하 2 층 발견 여기에서 볼 수 있습니다:
nmap-PR-sn192.168.1.0-255
The-PR
지정하는 스위치 ARP 습니다. 이 계층 2 아프(주소 확인 프로토콜)패킷을 사용 하 여 지정 된 범위 내에서 라이브 호스트를 식별 합니다. 이 경우 각 주소에 대한 브로드캐스트 요청을 보냅니다. 네트워크 상에 라이브 호스트가 있는 경우,해당 호스트는 스캐닝 시스템에 응답을 보냅니다. 모든 라이브 호스트에서 응답을 수집한 다음 발견된 호스트 목록을 반환합니다. -sn
스위치는 포트 스캔을 수행하지 않도록 요청하는 데 사용됩니다. 이렇게 하면 레이어 2 호스트 검색 스윕을 수행하는 데 필요한 것 이상의 추가 트래픽이 전송되지 않습니다. 레이어 2 검색은 세 가지 옵션 중 가장 빠르기 때문에 효과적입니다. 그러나 스캔을 수행하는 시스템과 동일한 로컬 영역 네트워크에 있는 호스트에 대해서만 수행할 수 있다는 사실에 의해 제한됩니다.
원격 호스트의 경우 레이어 3 또는 레이어 4 검색을 사용해야 합니다. 계층 3 검색을 수행하는 데 사용할 수 있는 명령의 예는 다음과 같습니다.
모든 라이브 호스트 목록을 반환합니다. 이 검색 검사는 아크 핑을 수행하는 것보다 느리지 만 원격 네트워크의 호스트에 대한 결과를 반환합니다.
마지막으로,방화벽 뒤에 있는 원격 시스템(레이어 2 를 사용할 수 없음)을 검색하려고 시도한다고 가정합니다. 이 문제를 해결하려면 전송 계층(계층 4)에서 검색을 수행해야 합니다. 여러 가지 방법으로 레이어 4 스캔을 사용하여 검색을 수행할 수 있습니다. 한 가지 효과적인 방법은 핑을 사용하는 것입니다. 핑 명령의 예는 다음과 같습니다:이 명령은 각 대상 주소에 대한 일련의 서버 상태 요청을 생성합니다. 그러면 이러한 결과가 반환됩니다. 이 기술을 사용하여 추가 라이브 호스트를 식별할 수 있습니다. 또 다른 효과적인 레이어 4 대안은 다음과 같습니다. 이 예는 아래에서 볼 수 있습니다:이 명령은 모든 호스트에 대해 지정된 포트에 일련의 원치 않는 응답 응답을 보냅니다. 이러한 응답 패킷은 설정된 통신 회선의 컨텍스트를 벗어났기 때문에 라이브 호스트는 통신이 중단되어야 함을 나타 내기 위해 첫 번째 패킷을 사용하여 응답합니다. 엔맵은 라이브 호스트의 표시로 이러한 응답을 수집한 다음 목록을 반환합니다.이제 침투 테스트를 수행하는 네트워크에서 활성 아이피 주소를 발견했으므로 각 시스템의 열린 포트와 해당 포트에서 실행되는 서비스를 식별해야 합니다. 가장 기본적인 기능은 다음과 같습니다. 109.74.11.34
다른 엔맵 명령과 마찬가지로 순차 시리즈(192.168.192.168.1.0/24). 이 명령은 일반적으로 사용되는 1000 개의 포트에서 스캔을 수행합니다. 또는 스캔할 포트 번호를 차례로 사용하여 스캔할 단일 포트를 지정할 수 있습니다.이 명령은 지정된 시스템에서 포트 21 을 스캔합니다. 원하는 포트를 나열하고 쉼표로 구분하여 일련의 포트를 검색할 수도 있습니다. 이 명령은 대상 시스템의 포트 80 과 443 을 검사합니다. -p
스위치 뒤에 범위의 첫 번째 값,대시 및 범위의 마지막 값을 사용하여 순차 포트 범위를 검색할 수 있습니다.위의 명령은 처음 100 개의 포트를 검색합니다. 대상 포트에서 65,536 개의 모든 포트를 검색하려면 다음 명령을 사용합니다.
이러한 취약점은 쉽게 손상될 수 있습니다. 대상 시스템에서 서비스를 검색하려면 다음 명령을 사용하십시오.
특정 포트에 대한 스캔을 통해 문서 스캔을 완료하는 데 필요한 시간을 줄일 수 있습니다. 다음과 같은 방법으로 포트를 지정할 수 있습니다.파일 전송 프로토콜에 대해 일반적으로 사용되는 포트 69 를 스캔합니다. 또한 각 특정 서비스에 대한 버전 및 버전 번호를 식별 할 수도 있습니다. 이 작업을 수행하려면 스위치를 사용하십시오.
이 명령은 배너 잡기와 프로브 응답 분석을 조합하여 스캔한 각 포트에 대해 해당 서비스의 서비스 및 버전 번호를 식별하려고 시도합니다. 이와 유사한 기술을 사용하여 대상에서 실행 중인 운영 체제를 확인하려고 시도할 수도 있습니다. 이렇게 하려면-O
스위치를 사용하십시오.
109.74.11.완료되면 운영 체제의 긍정적 인 식별을 반환하거나 최상의 추측을 한 다음 다른 가능한 운영 체제의 목록을 제공합니다.
고급 스캐닝 기술
중소형 기업 네트워크에 대해 침투 테스트를 수행할 때 자주 발생하는 일반적인 문제가 있습니다. 대부분의 기업과 조직은이 요즘 더 많은 보안 마음 되 고 가능성이 방화벽 또는 침입 탐지 시스템 스캔 하려고 하는 시스템 사이 서 있을 것 이다. 이러한 시스템을 스캔하려면 좀 더 고급 스캔 기술을 사용해야합니다. 방화벽 및/또는 침입 탐지 시스템을 잠재적으로 우회하는 한 가지 방법은 엔맵에 통합 된 일부 전통적인 스텔스 스캐닝 기술을 사용하는 것입니다. 사용할 수 있는 한 가지 방법은 느린 타이밍 템플릿을 사용하는 것입니다. 타이밍 템플릿은-T0
(편집증 스캔)에서-T5
(미친 스캔)까지 다양합니다. 타이밍 템플릿의 값이 낮을수록 검색 속도가 느려집니다. 느린 검사는 침입 탐지 시스템에 의해 플래그가 지정 될 가능성이 적습니다. 편집증 스캔의 예는 다음과 같습니다.
이 기능을 사용하면 트래픽을 스푸핑할 여러 주소를 지정할 수 있습니다.
109.74.11.0-255:5
위의 명령은 대상 시스템의 기존 포트 스캔을 수행하는 것 외에도 5 개의 임의의 주소에서 트래픽을 스푸핑하여 실제 스캔 트래픽을 난독 화합니다. 사용할 수 있는 또 다른 기술은 전송된 요청의 패킷 길이를 변경하는 것입니다. 일부 침입 탐지 시스템 및 방화벽은 서명 패킷 길이에 따라 패킷을 삭제합니다. 이를 방지하기 위해--data-length
스위치 뒤에 패킷 크기(바이트 수)를 사용하여 데이터 길이를 지정할 수 있습니다.
109.74.11.0-255–데이터 길이 15
이 명령은 길이가 15 바이트 인 패킷으로 모든 검색 트래픽을 보냅니다. 이것은 일부 서명 기반 침입 탐지 시스템을 피하는 데 도움이 될 수 있지만,비정상적인 지정된 패킷 길이의 패킷을 일관되게 보내면 이상 기반 침입 탐지 시스템에 플래그가 지정 될 수 있습니다. 지정된 네트워크 범위 내의 시스템에 순차적으로 연결하기 시작하면 네트워크 침입 탐지 시스템도 트래픽에 플래그를 지정합니다. 스캔을 순서대로 수행하지 않으려면--randomize-hosts
스위치를 사용할 수 있습니다.
109.74.11.0-255–랜덤 화-호스트
위의 명령은 순서대로 수행하는 대신 범위의 각 호스트를 무작위로 검색합니다(109.74.11.0,109.74.11.1,109.74.11.2 등). (열려 있는 포트를 확인하는 데 필요한 회신을 받지 못하기 때문에)맥 주소를 스푸핑할 수는 없습니다. 이 작업을 수행하려면–스푸핑-맥 스위치,공급업체 아이디,특정 맥 주소 또는 0 을 사용할 수 있습니다.109.74.11.0-255–스푸핑-맥 0
0 을 인수로 사용하면 스캔 트래픽에 임의의 맥 주소가 적용됩니다. 언급 할 가치가있는 마지막 기술 중 하나는-에프 스위치를 사용하여 패킷을 조각화하는 것입니다.패킷을 조각화하면 스캔 트래픽의 데이터 페이로드가 여러 패킷으로 분리되므로 콘텐츠 검사 침입 탐지 시스템이나 방화벽을 보다 쉽게 우회할 수 있습니다. 이러한 모든 기술은 방화벽 뒤에서 공개적으로 액세스 가능한 서버를 검색하는 데 효과적 일 수 있지만 일반적으로 내부 네트워크의 호스트를 검색하는 데 충분하지 않습니다. 공개적으로 액세스 할 수있는 특정 서버를 검색 할 수 있지만 내부 인프라의 대부분은 네트워크 내에서 더 깊고 쉽게 액세스 할 수 없습니다. 그림 3 의 다이어그램을 고려하십시오. 이는 엔터프라이즈 네트워크에서 일반적인 구성의 간단한 예입니다.
그림 3. 일반적인 네트워크 구성
여기서 발생하는 문제는 내부 네트워크가 외부 방화벽에 비해 인그레스 트래픽에 대한 엄격한 규칙을 가진 내부 방화벽 뒤에 있다는 것입니다. 이 내부 방화벽은 웹상의 원격 주소의 인바운드 트래픽을 차단할 수 있습니다. 이러한 내부 시스템을 스캔하기 위해서는 비무장지대의 시스템이 우리를 대신하여 작동하도록 해야 합니다. 프록시 스캐닝,좀비 스캐닝 및 바운스 스캔을 포함하기 위해이 작업을 수행하는 여러 가지 방법에 대해 설명합니다.
아마도 내부 시스템을 스캔하는 가장 쉬운 방법은 프록시 체인을 사용하는 것입니다. 오픈 액세스 프록시 서비스를 찾거나,하이드라로 프록시 서비스를 무차별적으로 강제 적용하거나,이미 손상된 컴퓨터에 프록시 서비스를 설치하여 비무장지대 내에서 프록시 서비스에 대한 액세스 권한을 획득했다고 가정해 보겠습니다. 프록시를 통해 트래픽을 라우팅하도록 시스템을 구성한 후에는 전체 연결 검색(-sT
)을 사용하여 트래픽을 라우팅할 수 있습니다.사용 가능한 프록시 서비스가 없는 경우,내부 시스템에서 스캔 결과를 얻기 위해 비엠지 내의 머신을 활용할 수 있는 영리한 방법이 있습니다. 이를 수행하는 한 가지 방법은 유휴 스캔이라고도하는 좀비 스캔을 사용하는 것입니다. 내부 랜의 시스템에 대한 좀비 스캔을 수행하기 위해,우리는 비무장지대 내에서 실행 가능한 좀비 호스트를 찾을 수있다. 좀비 호스트는 증분 아이피드 시퀀싱을 사용하는 비교적 유휴 시스템입니다. 좀비호스트를 찾기 위해 이 설명에 맞는 시스템을 스캔할 수 있습니다.109.74.11.0-255
이 스크립트는 각 호스트에 일련의 패킷을 보내고 받은 모든 회신에 대한 아이피드 번호를 추적합니다. 그런 다음 이러한 아이피 숫자를 분석하여 각 시스템을 무작위 시퀀스,모두 0 또는 증분으로 분류합니다. 증분 시스템의 출력 예는 그림 4 를 참조하십시오.
그림 4. 우리는 우리의 좀비 스캔을 시도 할 준비가 된 것입니다. 스캔을 수행하는 방법을 해결하기 전에 스캔이 어떻게 작동하는지 간략하게 설명합니다. 열린 포트에 대해 좀비 스캔을 수행할 때의 다이어그램은 그림 5 를 참조하십시오.
그림 5. 이 패킷은 서버와 서버 간의 연결을 통해 서버와 서버 간의 연결을 제어합니다. 원래 좀비 시스템에서 연결을 설정하기 위해 보낸 동기 패킷 이 없기 때문에 좀비는 첫 번째 패킷으로 스캐너에 응답합니다. 그런 다음 스캐닝 시스템은 첫 번째 패킷의 아이피드를 기준점으로 사용합니다. 그런 다음,우리의 스캔 시스템은 즉시 좀비 시스템의 소스 주소를 사용하여 대상 시스템으로 전송 스푸핑 된 동기 부여 패킷으로이 작업을 수행합니다. 이 연결 요청은 방화벽을 통과할 수 있을 가능성이 높습니다. 만약 대상이 패킷을 수신하고 대상 포트가 열려 있다면,대상은 좀비 시스템(원래 동기 패킷을 보냈다고 생각하는 사람)에 동기/응답 패킷을 반환할 것이다. 이 패킷은 다음 첫 번째 패킷을 사용하여 대상 시스템에 회신합니다. 마지막으로,우리의 스캐너는 좀비 시스템에 마지막 동기/응답 패킷을 보내드립니다. 좀비에 대한 첫 번째 응답은 아이피드를 한 번 더 증가시킵니다. 따라서 원격 시스템의 대상 포트가 열려 있으면 반환되는 최종 아이피드 값은 원래 값보다 두 자릿수가 더 높습니다. 대안적으로,도 6 은 타겟 시스템의 포트가 폐쇄될 때 일어나는 일을 도시한다.
그림 6. 닫힌 포트에 대한 좀비 스캔
대상 시스템의 포트가 닫히면 좀비 시스템은 대상으로부터 원치 않는 응답을 받지 않으므로 대상에 첫 번째 패킷을 보내도록 유도하지 않습니다. 따라서 최종 첫 번째 응답의 아이피드 값이 1 씩 증가한다면,우리는 첫 번째 응답을 선동하기 위해 좀비 시스템에 응답이 전송되지 않았기 때문에 포트가 닫혀 있다고 추론 할 수 있습니다. 그렇지 않으면 최종 아이피드 값이 원래 값에서 2 씩 증가했다면,대상 시스템의 포트가 좀비에게 응답하여 좀비 시스템의 아이피드 값을 증가시킨 응답을 유도했기 때문에 열려야 한다고 추론할 수 있습니다.
이것은 매우 복잡하게 들릴 수 있지만; 당신의 안드로이드 장치에 대한 새로운 게임을 발견하는 큰 물고기 게임 앱 받기! 실제로 좀비 스캔을 수행하려면,당신은 단지 간단한 명령을 입력해야합니다.192.168.199.132-192.168.199.130
-sI
스위치는 좀비 호스트(192.168.199.132)로 다음 주소를 사용하여 좀비 스캔을 수행하도록 지시합니다. 2935>스위치를 사용하면 스캔을 시도하기 전에 대상 시스템에서 초기 핑을 수행할 수 없습니다. 이 명령의 최종 주소는 대상 시스템을 식별합니다. 이 명령의 출력은 그림 7 에서 볼 수 있습니다.
그림 7. 닫힌 포트에 대한 좀비 스캔
이 좀비 스캔을 시연하는 데 사용한 범위는 내부 네트워크의 개인 범위라는 점에 유의해야합니다. 원격 네트워크에 대해 효과적으로 작동하려면 원래 시나리오에서 설명한 대로 원격 네트워크 및 내부 네트워크의 시스템이 공개적으로 라우팅할 수 있는 범위에 있어야 합니다. 네트워크 주소 변환 서버 뒤에 있는 개인 범위에 내부 네트워크가 구성되어 있으면 원격 위치에서 내부 주소로 스푸핑된 동기화 패킷을 보낼 수 없습니다.
내부 네트워크의 호스트 스캔을 시도하기 위해 디엠지 내의 시스템을 사용하는 또 다른 방법은
이 스캔을 완료하면 바운스가 가능한지 여부를 나타냅니다. 포트 스캔을 사용하여 네트워크의 다른 시스템에 대해 포트 스캔을 수행할 수 있습니다. 그림 8 은 이것이 어떻게 작동하는지 보여줍니다.
그림 8. 3880>
스캐너는 지정된 포트의 대상 시스템에 이진 데이터를 전송하려고 시도합니다. 대상 시스템의 포트가 열려 있음을 나타냅니다. 이 스위치를 사용하려면 다음 단계를 따르세요.
1.128-255
이 명령에서-b
기능은 사용자 이름”사용자 이름”과 암호PassW0rd
를 사용하여 바운스 스캔을 수행하는 데 사용됩니다. 위의 다이어그램에 설명된 작업은 10.1.1.128 에서 10.1.1.255 까지 각 대상 호스트의 공통 1000 포트 각각에 대해 수행됩니다.대상 네트워크에서 라이브 호스트를 발견하고 해당 호스트에서 열려 있는 포트 및/또는 실행 중인 서비스를 열거하고 나면 취약점 테스트 및 악용 작업을 시작할 수 있습니다. 이 스크립트는 다음과 같은 기능을 제공합니다. 이 스크립트는 기본 정보 수집(우리가 이미 논의한 두 가지와 같은),취약성 매핑,무차별 강제,서비스 거부 및 원격 착취와 같은 다양한 기능을 가지고 있습니다. 이 모든 스크립트는 엔맵 설치 디렉토리에 있습니다. 칼리 리눅스에서는/usr/share/nmap/scripts/
에서 찾을 수 있습니다. 이러한 스크립트를 찾아 작업을 시작하려면 다음 명령을 사용합니다:이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다.이 명령은 디렉토리의 내용을 표시합니다. 그런 다음cat
명령 다음에 보려는 스크립트의 이름을 사용하여 스크립트를 볼 수 있습니다. 이 데모의 목적을 위해ftp-vuln-cve2010-4221.nse
를 사용합니다. 이 스크립트의 내용을 보려면 다음 명령을 사용하십시오.2014 년
그림 9. 그림 9 는 이 스크립트의 내용을 표시합니다. 스크립트 내용의 맨 위로 이동하면 스크립트에 대한 설명,참조할 추가 리소스 목록,스크립트의 적절한 사용 및 구문을 포함하는 유용한 정보가 여러 개 표시됩니다. 그러나 디렉토리에서 이러한 스크립트를 정렬하고 특정 기능을 수행하는 스크립트를 찾는 것은 매우 지루할 수 있습니다. 제 생각에는 젠 맵(이전에 논의했던 그래픽 인터페이스)이 실제로 빛나는 곳입니다. 3880>
다음 프로필 드롭다운 메뉴를 선택하고”새 프로필 또는 명령”을 클릭합니다.”프로필 편집기가 열리면 화면 상단의 스크립팅 탭을 선택합니다. 그림 10 에는 젠맵 스크립팅 인터페이스의 이미지가 표시됩니다.
그림 10. 사용 가능한 모든 엔맵 스크립트 목록은 화면 왼쪽에 있습니다. 이 중 하나를 선택하여 엔맵 명령에 포함할 수 있습니다. 일부 스크립트는 올바르게 실행할 수 있도록 인수가 필요합니다. 포스트 인증 스크립트는 종종 특정 네트워크 서비스에 대한 사용자 이름과 암호가 필요합니다. 그림 10 의 예제에서는 인수를 제공하여 서비스에 대해 수행할 무차별 대입 공격을 구성할 수 있습니다. 인수 창에 값을 입력하여 스크립트 인수를 쉽게 전달할 수도 있습니다. 이러한 인수는 생성된 엔맵 명령에 자동으로 채워집니다. 상단 중앙에있는 창은 스크립트의 기능을 설명하기 위해 선택한 스크립트,적절한 사용 및 구문,심지어 범주에 대한 설명을 제공합니다. 이러한 범주는 취약성 분석과 같은 특정 유형의 작업을 수행하려는 경우 특히 유용할 수 있습니다. 이 명령을 실행하면 표준 출력 결과를 볼 수 있습니다. 무차별 대입 스크립트의 경우,무차별 대입 공격이 성공했는지 출력이 표시되며,이 경우 검색된 사용자 이름과 암호가 표시됩니다. 취약점 스크립트의 경우 출력은 취약점이 대상 시스템에 있는지 여부를 나타냅니다. 그리고 착취 스크립트의 경우 출력은 이후에 대상 시스템에 전달 된 페이로드에 대한 정보를 제공합니다.
스크립팅 엔맵
자체 통합 스크립팅 엔진 외에도 출력 분석을 수행하기 위해 기존 스크립팅 언어를 쉽게 사용할 수 있는 여러 출력 옵션을 지원합니다. 스크립팅에 유용할 수 있는 두 가지 출력 형식에는 그렙 가능 출력(-oG
)과 출력(-oX
)이 있습니다. 이 프로그램은 자바 바이트코드 프로그램의 갯수를 카운트하고,스크립트의 메인 형식을 합계냅니다,그리고 확인되지 않은 실행 텍스트 파일을 찾습니다.. 이 출력 기능을 스크립팅과 함께 사용하는 방법을 설명하기 위해 그림 11 에 표시된 간단한 4 줄 배쉬 쉘 스크립트를 검토하여 엔맵 스캔 결과를 분석합니다.
그림 11. 네트워크 스캔에 대한 결과 분석 배쉬 스크립트
파일. 하지만 전체 네트워크의 포트 21 을 다시 스캔하는 데 필요한 시간을 낭비하고 싶지는 않습니다. 이 간단한 스크립트는 지정된 포트가 열린 모든 시스템을 추출합니다. 첫 번째 줄은 사용자에게 포트 번호를 묻는 메시지를 표시합니다. 그런 다음 두 번째 줄은 사용자 입력 값을’포트’변수에 할당합니다. 세 번째 줄은 해당 열린 포트가 있는 모든 시스템이 나열된다는 것을 사용자에게 나타냅니다. 그리고 마지막으로,마지막 명령은 엔맵 그렙 가능 출력의 결과를 그렙 아웃하는 곳입니다. 이 스크립트는 그렙 명령을 사용하여 지정된 포트를 참조하는 출력 파일에서 모든 라인을 추출합니다. 여기에는 포트가 열려 있거나 닫혀 있거나 필터링된 곳의 각 인스턴스를 열거하는 줄이 포함됩니다. 그런 다음 지정된 포트가 열려 있는 인스턴스만 추출하는 다른 그렙 함수로 출력을 파이프합니다. 이 출력은 공백 문자를 구분 기호로 지정한 다음 두 번째 필드를 출력하는 절단 함수로 파이프됩니다. 이렇게 하면 지정된 포트가 열려 있는 각 시스템에 대한 아이피 주소를 출력합니다. 그림 12 는 스크립트의 출력을 표시합니다.
그림 12. 이 스크립트는 매우 간단한 스크립트이지만 그렙 가능한 출력 형식에서 정보를 추출하는 것이 얼마나 쉬운지를 보여줍니다. 일단 획득되면,이 수집 된 정보는 추가 스크립팅에 쉽게 사용될 수 있습니다. 특정 포트가 열려 있는 것으로 확인된 각 시스템에 대해 다른 후속 작업을 수행하기 위한 시작 지점으로 사용할 수 있습니다.
올인원 침투 테스트 도구
서로 다른 기능을 결합하여 엔맵을 단독으로 사용하여 완전한 침투 테스트를 쉽게 수행 할 수 있습니다. 엔맵이 인상적인 기능 및 기능 목록을 가진 정말 강력한 도구라는 것은 부인할 수 없습니다. 그리고 몇 년이 진행됨에 따라 더 많은 사람들이이 프로젝트에 계속 기여함에 따라 더욱 강력해질 것입니다. 아버지의 총을 가진 아이처럼,엔맵은 잘못된 손에 위험한 도구가 될 수 있습니다. 그러나 올바르게 사용하면 네트워크 인프라의 보안을 보장하는 데 매우 중요한 자산이 될 수 있습니다. 그래서 항상 현명하게 사용하고 잘 사용하는 것을 기억하십시오.
저자에 관하여
저스틴 허친스는 현재 네트워크 취약점 분석,침입 탐지 및 33,000 네트워크 시스템과 대기업 네트워크에 대한 디지털 포렌식을 수행합니다. 그는 정보 기술 분야에서 네트워크 설계,시스템 개발,데이터베이스 관리 및 네트워크 보안을 포함하도록 다양한 역할을 담당했습니다. 그는 또한 현재 역 추적 및 칼리 리눅스 운영 체제와 침투 테스트 과정을 가르치고 있습니다. 그는 현재 정보 기술 학사 학위와 여러 전문 자격증을 보유하고 있으며,여기에는 정보 시스템 보안 전문가,윤리 해커,보안 전문가,컴퓨터 해킹 법의학 수사관 등이 포함됩니다.