Windows 보호기법의 우회 MS 는 SetProcessValidCallTargets 라는 API를 process 에 있는 arbitrary address 를 화이트리스팅하기 위해서 사용한다. SetProcessValidCallTargets 는 내부적으로 ntdll!NtSetInformationVirtualMemory 를 VmInformationClass=VmCfgCallTargetInformation 으로 실행한다. 1 2 3 4 5 6 7 //Whitelisting an arbitrary address HANDLE p = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_OPERATION, FLASE, process_id) MEMORY_BASIC_INFORM..
Process Injection 는 악성코드에 의해서 사용되며 용도는 다음과 같다. 1. malware 가 더 강력한 은폐 능력을 얻기 위해서 2. AV 같은 보안 제품을 우회하기 위해(예를 들어 네트워크 접속에 대한 권한이 허용된 프로세스에 Injection을 한다면 우회가능) 이 문서의 타겟은 'Windows 10 x64 1803+ 64bit processes' / medium integrity process (즉 권한 상승이필요한 경우는 제외함) CFG 그리고 CIG 를 적용한 상태 그리고 적용하지 않은 상태에서 테크닉을 사용해보았음 Injection 기술의 분류 1. Process spawning 이 방식은 정상적인 실행 파일의 프로세스를 생성한 후 이 프로세스를 시작(running)하기 전에 변..
Format String Bug (32bit)format string bug는 printf(string); 형식으로 사용했을 때 일어나는 버그이다. 이 취약점을 이용하면 memory write read 가 가능해진다. 읽기 %x 를 사용하면 메모리를 읽을 수가 있다. 현재 입력 값으로 printf("%4x %4x %4x") 를 주었다. 위는 printf 를 호출하기 전의 스택이다. 출력 값은 다음과 같다. 즉 간단히 $esp + 4 부터 차례대로 4바이트 씩 출력된다고 보면된다. %p 를 사용하면 더 깔끔하게 출력 가능하다. 특정 위치에 있는 것을 출력하기 위해서는 %숫자$p 를 사용한다. 숫자 부분에 들어가는 숫자만큼 4*숫자 만큼 뒤의 메모리를 얻을 수 있다. 예를 들어 %2$p 를 사용한다면 8바이..
알고있던 내용들이 정의로 깔끔하게 정리되어있어 문서를 좀 번역해보았습니다. 취약점을 익스플로잇 하고 코드 인젝션을 하기 위해서 다음 것들을 해야합니다. 1. 익스플로잇에 필요한 메모리를 해커가 덮어쓸 수 있어야합니다. 2. 익스플로잇에 필요한 메모리 주소를 찾습니다. 3. 코드를 프로그램의 메모리에 카피 시킬 수 있습니다. 4. 인젝션한 코드를 실행하기 위해서 취약점을 사용합니다. 관심있는 메모리 코드가 저장된 주소 : 만약 이 부분을 수정할 수 있다면 프로그램이 실행될 때 원하는 코드를 실행하게 할 수 있습니다. 종류 - 리턴 주소 : 대표적인 코드가 들어있는 주소입니다.- GOT : 리눅스에서 동적으로 로딩되는 함수의 코드가 들어있는 주소입니다. - Virtual function table : 실행할..
시간을 거치며서 퍼징 도구는 더 이상 랜덤 데이터 생성에만 의지하지 않습니다. 퍼징 도구는 각각 장단점이 있으며 댜양한 퍼징 도구와 파라미터로 시험하는 것이 좋습니다. 변형 퍼징 도구(Mutation Fuzzer) 가장 간단한 종류이며 입력 값을 랜덤하게 설정한다는 점에서 기본적인 퍼징 개념과 가깝습니다. 램덤으로 데이터를 변형하기 때문에 붙여진 이름입니다. 그리고 변형된 데이터는 소프트웨어와의 충돌을 위해서 사용됩니다. 변형 퍼징 도구에는 일반적으로 설정 가능한 두 가지 파라미터가 있습니다. 1. 변형 세그먼트(Mutation Segment) 변형 데이터 부분에 해당합니다. 전체 데이터를 변경하는 것일 수도 있습니다. 모든 데이터가 중요한 것은 아니기 때문에 파일의 특정 부분은 건너뛰는 것이 좋을 것입..
퍼징이란 테스트에 사용되는 데이터를 랜덤으로 생성하는 블랙박스 소프트웨어, 하드웨어 테스트이다. 지금은 퍼징 도구가 블락박스, 화이트박스에 따라서 접근 방법을 지원하며 많은 파라미터도 생긴 상태입니다. 그리고 이러한 파라키터를 통해 퍼징 과정을 미세하게 조정할 수 있습니다. 퍼징은 무엇보다 큰 장점은 내부 매커니즘을 이해할 필요가 없다는 점입니다. 취약점을 발견하는데 필요한 것은 어느 인터페이스를 통해 서 소프트웨어와 상호작용이 이루어지는지 알고 전달할 데이터를 만드는 것 뿐입니다. 퍼징, 퍼즈 테스트는 테스트 수행에 사용할 데이터를 랜덤하게 생성하는 소프트웨어 혹은 하드웨어 방법입니다. 기술의 발전으로 이제는 랜덤하게 생성된 데이터를 넣는다기 보다. 일종의 자동화된 스프트웨어 혹은 하드웨어 테스트가 되..
- Total
- Today
- Yesterday
- LKM
- 레거시 드라이버
- 루트킷
- gdb 명령어
- gdb intel
- 드라이버
- module
- BP
- Intel
- vmware 오류
- GDB
- gdb명령어
- 리눅스 모듈
- IRP
- breakpoint
- backdoor
- PNP 드라이버
- gdb intel 변환
- rootkit
- VMware
- 모듈
- vmware cannot connect to the virtual machine
- 백도어
- 디바이스
- 변환
- DriverEntry
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |