네트워크 구성
Attacker(Kali Linux)에서 Victim(Win_Client_A)에게 ARP Spoofing Attack
- Attacker PC에서 ARP Spoofing을 통해서 Victim이 FTP, Web서버에 접속할 때 패킷을 확인할 수 있다.
1. 외부로 나가는 패킷 스푸핑
- arpspoof -t 1.1.1.1 1.1.1.254 명령어를 Victim에서 외부로 나가는 패킷 스푸핑
2. 중계 처리
- fragrouter -B1 명령어를 통해 패킷 중계 처리 수행
3. 응답 패킷 스푸핑
- arpspoof -t 1.1.1.254 1.1.1.1 명령어를 통해 외부에서 Victim으로 들어오는 패킷 스푸핑
4. 스푸핑 결과 확인
- Victim에서 FTP 접속 패킷을 확인하면 정보들을 확인할 수 있다.
- Victim이 Web서버로 접근할 경우 이동 패킷과 쿠키값을 확인할 수 있다.
CA 서버 설치
- 위와같은 스푸핑 공격을 예방하기 위해 인증서로 관리하여 TLS 통신을 하려고 한다.
1. 서버 역할 선택
- Active Direcrtory 인증서 서비스(CA 서비스)를 체크 후 다음 버튼을 클릭한다.
2. AD CS 설치 시 기본 설정
- 인증서 서비스 역할을 확인한 뒤 다음 버튼을 클릭한다.
- 인증 기간 웹 등록을 체크한 후 역할 서비스를 추가한다.
- 추가가 확인되면 다음 버튼을 클릭한다.
- AD를 구축하지 않은 단일 윈도 서버이기 때문에 독립을 체크한 후 다음 버튼을 클릭한다.
- 해당 CA 서버가 상위 CA가 있는 것이 아닌 Root CA이기 때문에 루트 CA를 체크한 후 다음 버튼을 클릭한다.
- CA서버에 사용될 CA 개인키를 만들기 위해서 새 개인키 만들기를 체크한 후 다음 버튼을 클릭한다.
- 암호화는 RSA 키 길이 2048bit로 설정하고 Hash 함수는 빠른 처리를 위해 SHA1을 선택한다.
- SHA 뒤에 숫자가 높을수록 해시의 길이가 길어지고 그만큼 보안성이 강화된다. 하지만 속도는 반비례한다. (SHA1은 현재 해시 길이가 짧아서 Crack 되었다.)
- 안전한 암호화 전송을 하고 싶다면 SHA512를 사용하면 된다.
- CA의 일반 이름은 certsec.com으로 설정한 뒤 다음 버튼을 클릭한다. (추후에 수정이 가능하다.)
- 인증서 유효기간을 설정한 후 다음 버튼을 클릭한다.
- 인증서가 저장될 위치를 선택한 후 다음 버튼을 클릭한다.
- 계속 Default 값으로 다음 버튼을 클릭한 후 설치 선택 확인 항목이 나오면 설치 버튼을 클릭한다.
- 설치가 완료되면 닫기를 클릭한다.
CA 서버 Web Server 인증서 서비스 접속
- CA Web 서버(Window Server_B)에서 http://2.2.2.1/certsrv로 접속하면 정상적으로 인증서 서비스 페이지가 열린다.
CS 서버의 IIS에 인증서 등록
- CA 서버에는 AD CS와 IIS 두 가지의 서버가 있다.
- 서비스에서 AD CS를 통해 IIS에게 인증서 발급한다.
1. IIS에서 인증서 요청 생성
- 시작 → 관리 도구 → IIS 관리자를 클릭한다.
- 서버 인증서를 요청하기 위해서 서버 인증서 항목을 클릭한다.
- 오른쪽 영역에 인증서 요청 만들기를 클릭한다.
- 인증서 정보를 적은 후 다음 버튼을 클릭한다.
- 인증서 암호화 방식을 RSA 1024bit로 설정한 후 다음 버튼을 클릭한다.
- 다운로드할 인증서를 바탕화면에 certcrs라는 이름으로 저장한다.
- 정상적으로 경로가 등록되면 마침 버튼을 클릭한다.
- certcrs 파일은 인증서가 인코딩 되었기 때문에 알아볼 수 없는 형태로 저장된다.
2. IIS 인증서 요청 설정
- IIS인증서를 받기 위해 인증서 요청을 클릭한다.
- 고급 인증서를 클릭한다.
- Base 64 인코딩 되었기 때문에 아래 항목을 클릭한다.
- 메모장 안에 있는 내용을 저장된 요청에 붙여 넣은 다음 제출을 클릭한다.
- 제출이 완료되면 AD CS서버로 요청이 가게 되고 승인을 해줄 때까지 해당 인증서는 보류가 된다.
AD CS에서 인증서 발급
1. 요청한 인증서 발급
- certsec.com → 보류 중인 요청 항목에 들어가면 IIS에서 요청한 인증서가 있는 것을 확인할 수 있다.
- 해당 인증서를 발급한다.
인증서 다운로드
- 다시 인증서 페이지에 접속한 후 보류 중인 인증서 요청 상태 확인을 클릭한다.
- 발급받은 인증서 목록이 출력된다. 해당 저장된 요청 인증서를 클릭한다.
- 인증서 다운로드를 클릭한다.
발급된 인증서 정보 확인
- 인증서를 다운로드하면 바탕화면에 인증서가 생성된다.
- 인증서를 클릭해 보면 버전, 일련번호, 인증 서버 공개키 번호 등 다양한 정보가 들어있다.
- 인증 경로를 살펴보면 certsec.com(Root CA)에서 바로 발급받은 것을 확인할 수 있다.
IIS 서버에 생성 한 인증서 등록
- IIS 관리자로 들어온 후 서버 인증서를 클릭한다 그 후 오른쪽에 있는 인증서 요청 완료를 클릭한다.
- 경로를 클릭한 후 바탕화면에 저장되어있는 인증서를 클릭한다.
- 이름을 지정한 후 확인 버튼을 클릭한다.
- 서버 인증서에 정상적으로 등록된 것을 확인할 수 있다.
IIS 서버 HTTPS 바인딩 및 SSL 통신 적용
- CA Web 서버를 HTTP로 통신하기 위해서 Default Web Site에서 바인딩을 클릭한다.
- 포트 종류를 https로 설정한 후 바탕화면에 다운로드하였던 인증서를 선택한 후 확인 버튼을 클릭한다.
- http 통신은 이제 하지 않을 것이기 때문에 제거를 클릭한다.
- 모든 설정이 완료되면 닫기 버튼을 클릭한다.
- IIS 관리자에서 SSL설정을 클릭하고 SSL 필요를 체크한 후 적용 버튼을 클릭한다.
인증서 적용 테스트
- 이제 http로 주소를 입력하면 접속이 되지 않는다.
- https://2.2.2.1/certsrv/를 입력하면 아직 신뢰할 수 있는 인증기관에 등록하지 않아서 보안 인증서 문제 페이지가 뜨지만 이 웹 사이트를 계속 탐색합니다. 항목을 클릭하면 정상적으로 HTTPS 통신이 가능하다.
- 정상적으로 접속이 가능한 것을 확인할 수 있다.
인증서 신뢰할 수 있는 기관 등록 및 접속 테스트
- 인터넷 옵션에서 내용 → 인증서 항목에 들어오면 웹 브라우저에 등록된 인증서(CRL)들을 확인할 수 있다.
- 인증서를 등록하기 위해서 신뢰할 수 있는 루트 인증기관 → 가져오기를 클릭한다.
- 마법사가 실행되면 다음 버튼을 클릭한다.
- 인증서가 있는 경로를 선택한 후 다음 버튼을 클릭한다.
- 모든 인증서를 다음 저장소에 저장을 체크한 후 다음 버튼을 클릭한다.
- 모든 설정을 마치면 마침 버튼을 클릭한다.
- 하지만 등록한 후에도 인증서 문제 오류가 뜨는데 이것은 인증서가 등록이 안돼서 뜨는 문제가 아니라 가설 사설망에서 다른 네트워크 대역을 쓰고 있기 때문에 뜨는 문제 이므로 인터넷 옵션 → 고급 → 인증서 주소가 일치하지 않은 경우에 경고 체크를 해제한다.
- 브라우저를 재시작하면 인증서 문제 페이지가 열리지 않고 정상적으로 접속이 가능하다.
TLS 통신 패킷 WireShark확인
- TLSv1 프로토콜을 통한 통신이 이루어진 것을 확인할 수 있다.
- 세부 패킷 정보를 확인해 보면 아래와 같다.
1. Client Hello 패킷 (Plain Text)
- 지원 가능한 암호방식, 키 교환 방식, 서명방식, 압축방식을 서버에 알린다.
- Cipher Suite: 자기가 지원 가능한 보안정책 목록을 서버에게 알려준다.
2. Server Hello, Certification, 패킷 (Plain Text)
- 지원 가능한 암호방식, 키 교환 방식, 서명방식, 압축방식을 응답한다.
- 새로운 Session ID를 할당한다.
- Certification 공개키로 암호화해서 AES 대칭키를 보내준다.
3. Client key Exchange, Change Cipher Spec (Cyper Text)
- Client key Exchange: 추가적인 AES 대칭키를 암호화 전송한다.
- Change Cipher Spec: 지금까지의 협상에 의해 결정된 암호방식, 키 교환 방식, 서명방식, 압축방식을 다음부터 적용할 것임을 알린다.
4. Change Cipher Spec (Cyper Text)
- Change Cipher Spec: 서버와 동일한 방식으로 통신한다.
5. Application Data (Cyper Text)
- 서버와 클라이언트 간 TLS 암호화 통신이 이루어진다.
FTP 인증서 연결 설정
- FTP 서버(Win_Server_A)에서 IIS관리자로 이동한 후 FTP SSL 설정을 클릭한다.
- SSL 연결 필요 항목을 체크한 후 적용 버튼을 클릭한다.
FTP 접속 확인
- 알 FTP는 TLS통신이 지원이 되지 않으므로 Victim(Win_Client_A)에서 FileZila로 접속한다.
- 사이트 관리자 아이콘을 클릭한 후 새 사이트 클릭하고 정보들을 입력한 뒤 연결 버튼을 클릭한다.
- 연결이 완료되고 정상적으로 다운로드도 가능하다.
Attacker(Kail_Linux) 확인
- Attacker에서 다시 ARP Spoofing을 진행한 후 FTP 접속 패킷을 확인하면 이전과 다르게 암호화 통신이 이루어지고 있는 것을 확인할 수 있다.
- TCP Stream을 확인해보면 초반 평문 전송인 인증단계만 보이고 인증이 완료된 후에는 암호화 통신을 하는 것을 확인할 수 있다.
Web 서버(Win_Server_B) 인증서 적용
- Window 2000 CA 적용방법은 아래 파일을 확인하면 된다. (인증서 발급, 승인 과정은 위에 있으므로 생략)
- Victim(Window_Client_A)에서 Web 서버에 https로 인증서 오류 없이 정상적으로 접근이 가능하다.
- Attacker(Kali_Linux)에서 스니핑 한 결과를 확인해보면 암호화 통신을 하는 것을 확인할 수 있다.
'Server > Window Server' 카테고리의 다른 글
[Window Server 2012] 파일 생성 시 그룹권한 추가 하는법 (다른 사용자가 수정 가능하게 하는법) (0) | 2019.11.04 |
---|---|
[Window Server2012] 도메인 컨트롤러(Domain Controller)구성 및 클라이언트 PC에서 AD 접속 (0) | 2019.11.04 |
[Window Server 2012] AD DS(Active Directory Domain Service) 설치 (0) | 2019.11.04 |
AD (Active Directory) 개념, 용어, 장점, AD DS 정리 (0) | 2019.11.01 |
[Window Server 2008] Syslog 서버 설치 및 운용 (0) | 2019.10.29 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊