윈도우 시스템
plug&play : 다양한 하드웨어를 자동으로 인식하여 사용
윈도우의 HAL(Hardware Abstraction Layer) 계층이 하드웨어 인식
Micro kernel
- 메모리 확인 명령어 systeminfo | findstr “메모리”
- FAT → NTFS 변환, CONVERT C: /FS:NTFS
- 윈도우 인증 시스템, GINA, msgina.dll → 검증을 위해 아이디를 LSA에 전달
- 인증 프로세스 구성 요소
* winlogon : 윈도우 로그인 프로세스
* GINA(msgina.dll) : 사용자가 입력한 계정과 암호를 LSA 에 전달
* LSA(lsas.exe) : 계정과 암호 검증을 위해 NTLM(암호화) 모듈 로딩하고 검증
SRM 이 작성한 감사로그 기록
* SAM : 사용자 계정정보(해시값)에 저장, 리눅스의 /etc/shadow 역할
* SRM : 사용자에게 고유 SID 부여 및 SID 에 권한 부여
- 윈도우 실행 프로세스 : C:\windows\system32
* wininit.exe : 윈도우 시작 프로그램
* services.exe : 윈도우 서비스 관리
* lsm.exe : Local Session Manager, 시스템 관리 작업, 주요함수 실행, 컴퓨터와 서버의 연결 관리
* lsass.exe : Local Security Authority Subsystem Service, 로그인 검사, 비밀번호 변경 관리, 엑세스 토큰 생성, Windows Security Log 작성
* svchost.exe : 서비스를 관리하기 위한 프로세스
* conhost.exe : 키보드, 마우스 입력 허용, 문자 출력, 콘솔 API 등의 셸 기본 기능 수행
- 윈도우 실행 파일 PE(Portable Execute) 구조
윈도우 실행파일(*.exe) 의 포맷을 의미
.text : 코드 저장
.data : 문자열 및 전역 변수
.Idata : import된 함수
.edata : export된 함수
.rsrc : 이미지 아이콘 같은 자원 정보
- 윈도우 사용자 계정
Users : 기본권한, Domain Users 글로벌 그룹이 구성원
Account Operators : 사용자 계정, 그룹 생성 및 삭제, 수정할 수 있는 권한
Printer Operators : 도메인 컨트롤러에 있는 프린터 생성 및 관리
Server Operators : 도메인 컨트롤러에 있는 자원을 공유 또는 폴더를 백업하고 복구
- 유니버셜 그룹 계정
administrator : 모든 권한과 사용 권한
users : 기본적인 권한 갖지 않음, 컴퓨터에 생성되는 로컬 사용자 계정 포함
guest : 관리자에 의해 허락된 자원과 권한만을 사용
Backup Operators : Windows 백업을 이용해 모든 도메인 컨트롤러에 있는 파일과 폴더를 백업 및 복구할 권한 있음
Power Users : 시스템에 대한 전체 권한은 없지만 시스템을 관리할 수 있는 권한 부여
- NTFS
USN 저널, ADS, Sparse 파일, 파일 압축, VSS, EFS, Quotas, Unicode
* ADS : MAC 파일 시스템 호환성, 다중 데이터 스트림
* 파일 압축 : LZ77
* VSS : 파일과 디렉터리 백업 유지하여 복구 지원
* EFS : 대칭키 기법 암호화
동적 Bad 클러스터 할당, 대용량 지원(2TB)
- 데이터 은닉 기술(ADS = Alternative Data Stream)
echo ADS test > text.txt:hidden //문자열 은닉
more < test.txt:hidden //숨겨진 문자열 확인
- NTFS 파일시스템 구조
Volume Boot Record |
Master File Table |
Data Area |
* VBR : 제일 처음 위치, 부트섹터, 부트코드, NTLDR 위치 정보
* MFT : NTFS 메타정보, 파일 및 디렉터리 등의 정보 관리, 파일위치, 속성, 시간 정보, 크기정보 가짐
- 공유폴더, net share 명령
net share [공유폴더명] /delete → 공유폴더 삭제
기본적 공유 내용 C$, ADMIN$, IPC$
* IPC$ : 네트워크 프로그램 간 통신을 위해 파이프 사용, 네트워크 서버 원격 관리
윈도우가 설치된 서버에 IPC$를 통한 원격접속을 할 때 패스워드를 Null로 설정하여 접속할 수 있는 취약점 공격자가 시스템의 유저명, 공유정보 등을 열람할 수도 있고 일부 레지스트리에 접근할 수 있으며 DoS공격에도 활용 될 수 있음
공격 가능 여부 확인
net use \\IP주소\IPC$ * /u:
- 레지스트리 : 운영체제 및 응용프로그램 등에 필요한 정보 저장, 관리하기 위한 계층형 데이터베이스
구성 : Key, Value, Data Type, Data
* 루트키 : 가장 상위레벨에 있는 레지스트리 키
- HKEY_CLASSES_ROOT : 확장자 정보, 파일과 프로그램 간 연결 정보
- HKEY_LOCAL_MACHINE : 설치된 하드웨어, 소프트웨어 설치 드라이버 설정 정보
- HKEY_USERS : 사용자에 대한 정보
- HKEY_CURRENT_CONFIG : 디스플레이, 프린트 설정에 관한 정보
* 하이브(Hive) 파일 : 레지스트리 정보를 가진 물리적 파일
C:\Windows\System32\config
regidit.exe 파일은 하이브 파일을 읽어서 보여주거나 변경
하이브 셋(Hive Set) 하이브 파일의 목록
* 구성
SYSTEM : 부팅에 필요한 전역 구성 정보, SOFTWARE : 소프트웨어 정보
SECURITY : 보안정책, 권한 할당 정보, SAM : 로컬 계정 정보, 그룹 정보
HARDWARE : 하드웨어 장치, 드라이버 매핑 정보
COMPONENTS : 컴포넌트 관련 정보
BCD00000000 : 부팅관련 데이터 관리
# 하이브 파일 추출
forecopy_handy -g [경로]
# 윈도우 버전 정보 레지스트리 키
HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion
# 컴퓨터 이름 레지스트리 키
HKLM\SYSTEM\ControlSet00X\Control\ComputerName\ActiveComputerName
# 윈도우 시작 프로그램 레지스트리 키 , autoruns 프로그램
* 악성 코드 시도 → 시작에 등록된 백신 삭제, 악성코드 등록, 여러개로 나누어 은닉
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce → 한번만 실행
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices → 서비스에 대한 시작 프로그램
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
#최근 실행한 명령어 레지스트리 키
HKU\사용자\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
- 윈도우 이벤트 로그 : 이벤트 뷰어를 사용하여 확인 가능, 확장자 .evt
* 윈도우 로그 종류
- 응용프로그램 로그 : 응용프로그램들이 기록할 이벤트
- 보안 로그 : 로그온 횟수, 로그인 오류 정보, 파일 생성, 파일 열기, 삭제 등 리소스 사용 관련
- 시스템 로그 : 윈도우 시스템 구성요소에서 기록
# 이벤트 로그 파일 추출
forecopy_handy -e [경로]
- 웹 아티팩트 분석, 사용자의 웹사이트 이용 흔적 분석
* 웹 브라우저 캐시
- 캐시 데이터 : 다운로드 받은 이미지 텍스트 파일, 아이콘 등
- 캐시 인덱스 : 다운로드 URL, 다운로드 시간, 데이터 크기 등
* 히스토리 분석 : 방문 URL, 방문시간, 횟수, 사이트 제목 등
* 웹 브라우저 쿠키 : 호스트 정보, 경로, 수정시간, 만료시간 등
#IE에 대한 아티팩트 수집 데이터
- windows XP, 7 등 → index.dat → 캐시, 히스토리, 쿠키등 정보가 나뉘어 별도 파일 구성
- windows 10 → WebCacheV01.dat 또는 WebCacheV24.dat → 통합되어 관리
forecopy_handy -i [경로]
- 컴퓨터 바이러스 유형
* 1세대 원시형 바이러스 : 프로그램 구조 간단, 분석 쉬움
예루살렘, 돌 바이러스
* 2세대 암호화 바이러스 : 바이러스 암호화, 복호화 방식 동일
cascade, slow 바이러스
* 3세대 은폐형 바이러스 : 감염된 부분을 검사하면 감염되기 전의 내용 보여줌
맥가이버, 브레인, 512 바이러스
* 4세대 갑옷형 바이러스 : 다양한 암호화, 은폐 기법, 백신 진단 어려움
다형성, 자체 변형, BlueSky, Whale 바이러스
* 5세대 매크로 바이러스 : OS 상관 없이 응용프로그램에서 동작
Melisa, Laroux, Nimda 바이러스
- 감염대상 기준 바이러스
1. 부트바이러스 : 부트섹터에 바이러스 감염시켜 부팅 오래걸리거나 안됨
브레인, 미켈란 젤로
2. 파일바이러스 : 사용자가 사용하는 일반 파일에 감염
기생형, 겹쳐쓰기형, 산란형, 연결형 바이러스
3. 부트 및 파일바이러스
게킬라, 나타스, 침입자 바이러스
- 윈도우 DDE(Dynamic Data Exchange)
애플리케이션 간 데이터 전송 위한 프로토콜, 공유 메모리 사용
MS Word 에서 텍스트의 마우스 오른쪽 → 필드 코드 토글 선택
예시) {DDEAUTO C:\windows\system32\\cmd “\k calc.exe”}
* 자동연결 업데이트 해제하여 방어 → MS Word 의 경우 “문서를 열때 자동 연결 업데이트” 해제
- 셸코드와 Heap Spray
* 셸코드 : 명령 셸을 실행시켜 피해자의 컴퓨터를 통제, 어셈블리어 작성, 기계어 번역
msfvenom 도구를 통해 생성 가능
* Heap Spray 는 셸코드를 Heap 영역에 뿌림
전역변수 선언 후 대임, DEP(Data Execution Prevention) 를 해제 후 컴파일
- ASLR : 메모리 주소 난수화
리눅스 설정 → sysctl -w kernel.randomize_va_space = 1
- 버퍼오버플로우
* 스택(Stack) : 지역변수 저장, 복귀주소 가짐, 인자 값
* 힙(Heap) : malloc 과 free 통해 할당 및 해제
* 데이터 : 전역 변수, 정적 변수
* 코드 : 읽기만 가능한 메모리 영역, 프로그램 코드
- 스택 버퍼 오버 플로우 : 스택에 저장된 복귀주소가 지역변수에 의해 침범 당함
취약 함수 : strcpy, strcat, getwd, gets, fscanf, scanf, sprintf
방지 함수 : strncat, strncpy, fgets, vfscanf, snprintf, vsnpirintf
- 버퍼 오버런 : 메모리공간에 할당된 것보다 더 큰 데이터 입력하면 프로그램 오류
- 힘 버퍼 오버플로우 : 하위→ 상위주소 메모리할당, 경계값 검사 안하면 경계 초과
- 경쟁 조건(race condition)
다중프로세스 환경, 두개 이상의 프로세스가 동시에 수행될 때 발생하는 비정상적 상태
-백도어 생성, setuid 설정, 심볼릭링크 생성(백도어), 심볼릭 링크 실행
- APT(Advanced Persistent Threat)
특정 기법 및 조직을 대상으로 다양한 공격 기법을 지속적으로 하는것
SNS를 통한 정보 수집, Zero Day Attack, Mail APT, 백도어 APT
* 공격 단계
침투 → 탐색 → 수집/공격 → 유출
#바이너리 디핑
Zero Day Attack 을 찾을 수 있는 기법, 디핑 기술로 바이너리 함수 정보 획득
자동으로 Malware 탐지, 오픈소스 라이선스 준수 여부 확인
'자격증 > 보안기사' 카테고리의 다른 글
02_네트워크_3 (0) | 2021.01.23 |
---|---|
02_네트워크_2 (0) | 2021.01.23 |
02_네트워크_1 (0) | 2021.01.22 |
01_시스템 보안 정리_2 (0) | 2021.01.21 |
01_시스템 보안 정리_1 (0) | 2021.01.21 |
댓글