그레이햇 C#
도서명:그레이햇 C#
저자/출판사:브랜든,페리/에이콘출판
쪽수:412쪽
출판일:2018-02-12
ISBN:9791161751184
목차
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( ) 함수
____부트 키 가져오기
____부트 키 검증하기
__결론