간편결제, 신용카드 청구할인
인터파크 롯데카드 5% (25,650원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (18,900원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (21,600원)
(최대할인 4만원 / 2만원 이상 결제)
Close

그레이햇 C# : C#을 활용한 해커의 보안 도구 제작과 자동화 가이드

원제 : Gray Hat C#: A Hacker's Guide to Creating and Automating Security Tools
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 10
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

30,000원

  • 27,000 (10%할인)

    1,500P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
배송정보
  • 3/27(월) 이내 발송 예정  (서울시 강남구 삼성로 512)
  • 무료배송
주문수량
감소 증가
  • 이벤트/기획전

  • 연관도서(78)

  • 상품권

AD

책소개

보안 전문가나 침투 테스터가 자주 사용하는 다양한 보안 도구를 활용해 업무를 자동화하는 법을 알려준다. 책에 소개된 다양한 도구는 보안 전문가와 침투 테스터가 자주 활용하는 보안 툴이다. 플랫폼에 독립적인 C# 언어로 저자가 직접 작성한 코드를 통해 보안 도구와 연동하는 법을 자세히 알려주며, 이를 기반으로 자신만의 맞춤형 도구를 개발할 수 있는 좋은 지침서로 활용할 수 있다.

출판사 서평

★ 이 책에서 다루는 내용 ★

■ HTTP와 XML 라이브러리를 이용해 SQL과 XSS 인젝션을 스캔하는 퓨저 작성
■ 메타스플로잇에서 플랫폼과 아키텍처에 독립적인 페이로드를 생성하는 셸 코드 작성
■ 네서스, OpenVAS, sqlmap을 자동화해 취약점을 스캔하고 SQL 인젝션 익스플로잇 수행
■ OS X와 리눅스용 .NET 디컴파일러 작성
■ 시스템 정보를 덤프하는 오프라인 레지스트리 하이브 파싱 도구 작성
■ MSGPACK RPC를 이용해 아라크니와 메타스플로잇 보안 도구 자동화

★ 이 책의 대상 독자 ★

네트워크 엔지니어나 애플리케이션 보안 엔지니어 같이 보안 중심의 작업을 하는 이들은 취약점 스캔이나 악성코드 분석을 위해 어느 정도 자동화에 의존한다. 여러 보안 전문가는 다양한 운영 체제를 선호하기 때문에 모든 사람이 쉽게 실행할 수 있는 도구를 작성하는 일은 까다로울 수 있다. 모노는 플랫폼 간 호환성이 뛰어나고 보안 전문가의 업무를 자동화를 도와주는 훌륭한 핵심 라이브러리를 보유하고 있으므로 좋은 선택이 될 수 있다. 공격 익스플로잇 작성, 인프라 취약점 검색 자동화, 다른 .NET 애플리케이션 디컴파일이나 오프라인 레지스트리 하이브 파일 읽기, 다양한 플랫폼을 지원하는 페이로드 작성 방법에 관심이 있다면 이 책에서 다루는 많은 주제가 좋은 시작점이 될 것이다(C# 배경 지식이 없어도 좋다).

★ 이 책의 구성 ★

1장, ‘C# 속성 과정’에서는 간단한 예제를 사용해 C# 객체지향 프로그래밍의 기초와 다양한 C# 기능을 다룬다. Hello World 프로그램으로 시작해 객체지향 프로그래밍의 이해를 돕기 위한 소규모 클래스를 작성한다. 그 후 익명 함수와 P/Invoke 같은 고급 C# 기능을 다룬다.
2장, ‘퍼징과 XSS과 SQL 인젝션 공격’에서는 HTTP 라이브러리를 사용해 웹 서버와 통신하고 다양한 데이터 유형으로 XSS과 SQL 인젝션을 찾아내는 작은 HTTP 요청 퓨저를 작성한다.
3장, ‘SOAP 엔드포인트 퍼징’에서는 HTTP WSDL을 자동으로 생성해 잠재적인 SQL 인젝션 공격 가능성을 찾기 위해 SOAP WSDL을 검색하고 파싱하는 또 하나의 작은 퓨저를 작성해본다. 이는 이전 장의 퓨저 개념을 이해한 다음 단계로 볼 수 있다. 표준 라이브러리에서 제공하는 XML 라이브러리도 살펴본다.
4장, ‘재접속, 바인딩과 메타스플로잇 페이로드’에서는 HTTP에 중점을 두고 페이로드 작성에 관해 설명한다. 먼저 간단한 페이로드 2개를 제작하는데, 하나는 TCP, 다른 하나는 UDP를 통해 생성한다. 그런 다음, 메타스플로잇에서 x86/x86_64 셸 코드를 생성하고 여러 플랫폼과 아키텍처에서 사용할 수 있는 페이로드를 생성하는 방법을 학습한다.
5장, ‘네서스 자동화’에서는 취약점 스캐너 중 가장 뛰어난 네서스(Nessus)를 자동화하기 위해 HTTP를 다시 다룬다. CIDR 범위를 프로그램화하고 작성해 스캔하고 보고하는 방법에 관해 설명한다.
6장, ‘Nexpose 자동화’에서는 Nexpose 취약점 스캐너를 이용한 도구 자동화에 초점을 맞춘다. Nexpose는 HTTP를 기반의 API를 사용해 취약점 검사와 보고서 작성을 자동화한다. Nexpose의 제작자인 Rapid7은 커뮤니티 제품에 대한 1년 무료 라이선스를 제공하며 개인용으로 매우 유용하다.
7장, ‘OpenVAS 자동화’에서는 오픈소스인 OpenVAS를 사용해 취약점 스캐너 자동화에 초점을 맞춘다. OpenVAS는 네서스와 Nexpose와는 근본적으로 다른 종류의 API를 사용하며, 통신 프로토콜에 TCP 소켓과 XML만 사용한다. 또한 무료이기 때문에 취약점을 검색할 때 더 많은 경험을 쌓을 수 있다.
8장, ‘Cuckoo 샌드박스 자동화’에서는 Cuckoo 샌드박스를 사용한 디지털 포렌식(digital forensic)을 다룬다. 사용하기 쉬운 REST JSON API를 사용해 잠재적인 악성코드를 제출하고 결과 보고를 자동화한다.
9장, ‘sqlmap 자동화’에서는 sqlmap을 자동화해 SQL 인젝션을 최대한 활용해 공격한다. 먼저 sqlmap과 함께 제공하는 사용하기 쉬운 JSON API로 하나의 URL을 제출하는 간단한 도구를 제작한다. sqlmap에 익숙해지면 3장에서 다룬 SOAPWSDL 퓨저로 스크립트를 통합해 잠재적인 SQL 인젝션 취약점을 자동으로 공격하고 입증할 수 있다.
10장, ‘ClamAV 자동화’에서는 기존 비관리 라이브러리와의 상호작용에 중점을 둔다. 널리 사용되는 오픈소스 안티 바이러스 프로젝트인 ClamAV는 .NET 언어로 작성돼 있지 않지만, 원격 라이브러리를 사용할 수 있는 TCP 데몬 및 핵심 라이브러리와 여전히 인터페이스할 수 있다. 이 두 가지 시나리오에서 ClamAV를 자동화하는 방법을 다룬다.
11장, ‘메타스플로잇 자동화’에서는 다시 메타스플로잇으로 돌아가 코어 프레임워크와 함께 제공되는 MSGPACK RPC를 통해 프로그램화하고 공격해 셸을 얻은 호스트를 보고하는 방법에 관해 학습한다.
12장, ‘아라크니 자동화’에서는 이중 라이선스이긴 하지만 무료이자 오픈소스 프로젝트인 아라크니(Arachni)라는 블랙박스 웹 애플리케이션 스캐너 자동화에 초점을 맞춘다. 간단한 REST HTTP API와 프로젝트와 함께 제공하며, 좀 더 강력한 MSGPACK RPC를 통해 URL을 스캔한 결과를 자동으로 보고하는 간단한 도구를 생성한다.
13장, ‘관리 어셈블리의 디컴파일과 리버싱’에서는 리버스 엔지니어링에 관해 설명한다. 윈도우용 .NET 디컴파일러는 사용하기 쉽지만, 맥이나 리눅스용은 쉽지 않으므로 직접 간단한 디컴파일러를 작성한다.
14장, ‘오프라인에서 레지스트리 하이브 읽기’에서는 사고 대응으로 넘어가 윈도우 레지스트리의 바이너리 구조체를 알아보고 레지스트리 하이브에 초점을 맞춘다.
오프라인에서 레지스트리 하이브를 파싱하고 읽는 방법을 통해 레지스트리에 저장된 패스워드 해시를 암호화하는 데 사용한 시스템의 부트키(boot key)를 얻을 수 있다.

★ 옮긴이의 말 ★

이 책을 출간하는 시점에도 스펙터(Spectre)나 멜트다운(Meltdown)과 같은 새로운 공격 방식이 등장하며 보안 이슈는 끊임없이 사회 전반에 회자되고 있다. 일정 규모 이상의 조직에서는 아웃소싱 여부에 상관없이 IT 리스크 관리를 하기 시작했고, 그 중 하나가 침투 테스트라는 형태로 사용 중인 자산이 잘 보호되고 있는지 보안 전문가들로 하여금 실제 악의적인 공격자를 가장해 해킹을 시도해 보는 점검 방식이다. 하지만 침투 테스터 입장에서는 가능한 한 다수의 취약점을 발견하고 실제 취약점이 공격으로 이어질 가능성을 평가해야 한다. 또한 조치 후 문제가 사라졌는지 재검검도 필요하며, 실제 서비스에 영향을 주지 않고 주기적으로 점검할 수 있다면 더욱 이상적이다.
하지만 사실 이러한 반복적인 작업은 중요하지만 따분해지기 쉽다.
따라서 보안 전문가나 침투 테스터가 자주 사용하는 여러 보안 도구를 활용해 업무를 체계적으로 자동화하는 방법을 도입해야 한다. 이를 위해 저자는 플랫폼에 독립적인 C#이라는 언어를 택했다. C#에 익숙하지 않은 독자를 위해 1장에서 간단히 C# 언어에 대한 속성 과정을 제공한다. 객체지향 언어를 다뤄본 경험이 있다면 어렵지 않게 이해할 수 있을 것이다. 나머지 장에서는 웹 애플리케이션의 대표적인 취약점 XSS와 SQL 인젝션 퍼징, 악성코드 분석에 사용하는 쿠쿠 샌드박스와 ClamAV, 다양한 익스플로잇을 제공하는 메타스플로잇과 연동하는 법 등 실전에 사용할 수 있는 다양한 자동화 방법을 설명한다.
본인에게 필요한 맞춤형 자동화 도구를 개발할 때 책에 나온 코드를 참고한다면 좋은 지침서로 활용할 수 있으리라 믿는다. 나아가 자신만의 자동화 도구를 제작해서 오픈소스로 공개한다면 더욱 의미가 있을 않을까.

목차

1장. C# 속성 과정

__IDE 선택하기
__간단한 예제
__클래스와 인터페이스 소개
____클래스 생성하기
____인터페이스 생성하기
____추상 클래스의 서브 클래스화와 인터페이스의 구현
____Main( ) 함수로 모두 합치기
____Main( ) 함수 실행하기
__익명 함수
____함수에 위임자 할당하기
____Firefighter 클래스 업데이트하기
____선택 가능한 인자 생성하기
____Main( ) 함수 업데이트하기
____업데이트된 Main( ) 함수 실행하기
__네이티브 라이브러리와 통합하기
__결론

2장. 퍼징과 XSS와 SQL 인젝션 공격

__가상 환경 설정하기
____호스트 전용 가상 네트워크 추가하기
____가상 환경 생성하기
____BadStore ISO에서 가상 환경으로 부팅하기
__SQL 인젝션
__크로스 사이트 스크립팅
__변형(Mutational) 퓨저로 퍼징 GET 요청하기
____파라미터 변조와 취약점 테스트
____HTTP 요청 생성하기
____퍼징 코드 테스트
__POST 요청으로 퍼징하기
____POST 요청 퓨저 작성하기
____퍼징 시작하기
____퍼징 파라미터
__퍼징 JSON
____취약한 기기 설정하기71
____취약한 JSON 요청 잡아내기
____JSON 퓨저 생성하기
____JSON Fuzzer 테스트하기
__SQL 인젝션 공격
____수동으로 UNION 기반 공격 수행하기
____프로그래밍을 통해 UNION 기반 공격 수행하기
____부울-블라인드 기반(Boolean-Blind) SQL 취약점 익스플로잇
__결론

3장. SOAP 엔드포인트 퍼징

__취약한 엔드포인트 설정하기
__WSDL 파싱하기
____WSDL 문서의 클래스 생성하기
____최초 파싱 함수 작성하기
____SOAP 유형과 파라미터 관련 클래스 작성하기
____송신한 데이터를 정의하는 SoapMessage 클래스 생성하기
____메시지 부분 클래스 구현하기
____SoapPortType 클래스로 포트 작업 정의하기
____포트 작업을 위한 클래스 구현하기
____SOAP 바인딩에 사용할 프로토콜 정의하기
____작업 자식 노드 목록 컴파일하기
____SOAP 서비스 포트 찾기
__SQL 인젝션 취약점이 있는 SOAP 엔드포인트 퍼징 자동화하기
____개별 SOAP 서비스 퍼징
____HTTP POST SOAP 포트 퍼징하기
____SOAP XML 포트 퍼징하기
____퓨저 실행하기
__결론

4장. 재접속, 바인딩 작성과 메타스플로잇 페이로드

__역접속 페이로드 생성하기
____네트워크 스트림
____명령어 실행하기
____페이로드 실행하기
__페이로드 바인딩하기
____데이터 수신, 명령어 실행과 결과 반환하기
____스트림에서 명령어 실행하기
__UDP를 사용한 네트워크 공격
____공격 대상에서 실행하는 코드
____공격자 코드
__C#에서 x86과 x86-64용 메타스플로잇 페이로드 실행하기
____메타스플로잇 설정하기
____페이로드 생성하기
____어셈블리 코드로 네이티브 윈도우 페이로드 실행하기
____네이티브 리눅스 페이로드 실행하기
__결론

5장. 네서스 자동화

__REST와 네서스 API
__NessusSession 클래스
____HTTP 요청 생성하기
____로그아웃과 삭제하기
____NessusSession 클래스 테스트하기
__NessusManager 클래스
__네서스로 스캔 작업하기
__결론

6장. Nexpose 자동화

__Nexpose 설치
____활성화와 테스트하기
____Nexpose 용어 살펴보기
__NexposeSession 클래스
____ExecuteCommand( ) 함수
____로그아웃과 현재 세션 삭제하기
____API 버전 찾기
____Nexpose API 유도하기
__NexposeManager 클래스
__취약점 스캔 작업 자동화
____Asset을 통해 사이트 생성하기
____스캔 작업 시작하기
__PDF로 리포트 생성 후 사이트 삭제하기
__통합 실행하기
____스캔 작업 시작하기
____리포트 생성 후 사이트 삭제하기
____자동화 실행하기
__결론

7장 OpenVAS 자동화

__OpenVAS 설치하기
__클래스 생성하기
__OpenVASSession 클래스
____OpenVAS서버로 인증하기
____OpenVAS명령어를 실행하는 함수 생성하기
____서버 메시지 읽기
____명령어를 송수신하기 위한 TCP 스트림 설정하기
____인증서 확인과 가비지 컬렉션
____OpenVAS 버전 가져오기
__OpenVASManager 클래스
____스캔 작업 설정을 가져와서 대상 생성하기
____자동화 마무리하기
____자동화 실행하기
____결론

8장. Cuckoo 샌드박스 자동화

__Cuckoo 샌드박스 설치하기
__Cuckoo 샌드박스 API 수동으로 실행하기
____API 시작하기
____Cuckoo상태 확인
__CuckooSession 클래스 생성
____HTTP 요청을 처리하는 ExecuteCommand( ) 함수 작성하기
____GetMultipartFormData( ) 함수로 멀티파트 HTTP데이터 생성하기
____클래스를 이용한 파일 데이터 처리하기
____CuckooSession과 지원 클래스 테스트하기
__CuckooManager 클래스 작성하기
____CreateTask( ) 함수 작성
____작업 세부사항과 보고서 작성 함수
____Task 추상화 클래스 생성하기
____서로 다른 클래스 유형 처리와 생성
__통합 실행하기
__애플리케이션 테스트하기
__결론

9장. sqlmap 자동화

__sqlmap 실행
____sqlmap REST API
____curl을 이용해 sqlmap API 테스트하기
__sqlmap의 세션 생성하기
____GET 요청을 실행하는 함수 생성하기
____POST 요청 실행하기
____세션 클래스 테스트하기
__SqlmapManager 클래스
____sqlmap 옵션 목록화
____스캔 작업을 수행하는 함수 작성하기
____새로운 Main( ) 함수
__스캔 작업 보고하기
__전체 sqlmap 스캔 작업 자동화하기
__sqlmap을 SOAP 퓨저와 통합하기
____sqlmap에 SOAP 퓨저를 지원하는 GET 요청 추가하기
____sqlmap POST 요청 지원 추가하기
____새로운 함수 호출하기
__결론

10장. ClamAV 자동화

__ClamAV 설치하기
__ClamAV 네이티브 라이브러리 vs. clamd 네트워크 데몬
__ClamAV의 네이티브 라이브러리 자동화하기
____지원하는 옵션과 클래스 설정하기
____ClamAV’s 네이티브 라이브러리 함수 접근하기
____ClamAV 엔진 컴파일하기
____파일 스캔
____삭제하기
____EICAR 파일을 스캔해 프로그램 테스트하기
__clamd 자동화하기
____clamd 데몬 설치하기
____clamd 데몬 시작하기
____clamd에서 세션 클래스 생성하기
____clamd 관리자 클래스 생성하기
____clamd 테스트
__결론

11장. 메타스플로잇 자동화

__RPC 서버 실행하기
__Metasploitable 설치
__MSGPACK 라이브러리 가져오기
____MonoDevelop용 NuGet 패키지 관리자 설치
____MSGPACK 라이브러리 설치하기
____MSGPACK 라이브러리 참조하기
__MetasploitSession 클래스 작성하기
____HTTP 요청을 위한 함수 생성과 MSGPACK으로 활용하기
____MSGPACK에서 반환 데이터 변형하기
__세션 클래스 테스트
__MetasploitManager 클래스 작성하기
__통합 실행하기
____익스플로잇 실행
____셸에서 활용하기
____셸 획득하기
__결론

12장. 아라크니 자동화

__아라크니 설치
__아라크니 REST API
____ArachniHTTPSession 클래스 생성
____ArachniHTTPManager 클래스 생성
__Session과 Manager 클래스 통합하기
__아라크니 RPC
____수동으로 RPC 실행
____ArachniRPCSession 클래스
____ExecuteCommand( )를 지원하는 함수
____ExecuteCommand( ) 함수
__ArachniRPCManager 클래스
__통합 실행하기
__결론

13장. 관리 어셈블리 디컴파일과 리버싱

__관리 어셈블리 디컴파일하기
__디컴파일러 테스트
__monodis를 이용한 어셈블리 분석
__결론

14장. 오프라인에서 레지스트리 하이브 읽기

__레지스트리 하이브 구조
__레지스트리 하이브 가져오기
__레지스트리 하이브 읽기
____레지스트리 하이브 파일을 파싱하는 클래스 생성하기
____노드 키 클래스 생성하기
____키 값을 저장하는 클래스 만들기
__라이브러리 테스트
__부트 키 덤프하기
____GetBootKey( ) 함수
____GetValueKey( ) 함수
____GetNodeKey( ) 함수
____StringToByteArray( ) 함수
____부트 키 가져오기
____부트 키 검증하기
__결론

저자소개

브랜든 페리 [저] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

구형준 [역] 신작알림 SMS신청
생년월일 -

해당작가에 대한 소개가 없습니다.

이 상품의 시리즈

(총 79권 / 현재구매 가능도서 79권)

선택한 상품 북카트담기
펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    100자평

    작성시 유의사항

    평점
    0/100자
    등록하기

    100자평

    0.0
    (총 0건)

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    상호

    (주)교보문고

    대표자명

    안병현

    사업자등록번호

    102-81-11670

    연락처

    1544-1900

    전자우편주소

    callcenter@kyobobook.co.kr

    통신판매업신고번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    (주) 인터파크커머스 안전결제시스템 (에스크로) 안내

    (주)인터파크커머스의 모든 상품은 판매자 및 결제 수단의 구분없이 회원님들의 구매안전을 위해 안전결제 시스템을 도입하여 서비스하고 있습니다.
    결제대금 예치업 등록 : 02-006-00064 서비스 가입사실 확인

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시 15,000원 이상 무료배송, 15,000원 미만 2,500원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용