전체 글 121

CVE-2023-21768 : Windows Local Privilege Escalation 분석 공부

개요 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-21768 CVE - CVE-2023-21768 20221213 Disclaimer: The record creation date may reflect when the CVE ID was allocated or reserved, and does not necessarily indicate when this vulnerability was discovered, shared with the affected vendor, publicly disclosed, or updated in CVE. cve.mitre.org 처음 해보는 원데이 취약점 분석입니다. 보통 윈도우 관련된 심각한 취약점들은 옛날 버전의 운..

리눅스 커널 익스플로잇 공부를 위한 커널 프로그래밍 공부 (2)

Character Device Driver: 버퍼 캐시를 사용하지 않고 데이터를 한번에 하나의 문자를 읽고 쓰는 드라이버 Block Device Driver : 버퍼 캐시를 통한 임의 접근과 블록 단위 입출력이 가능한 드라이버 Network Device Driver : 네트워크 스택과 네트워크 하드웨어 사이에 위치해 데이터의 송수신을 담당하는 드라이버 file_operations 구조체는 Charactor Device, Block Device 드라이버와 일반 프로그램 간의 통신을 위해 제공되는 인터페이스 입니다. read,write,open 등의 함 포인터들을 사용할수 있다는 특징을 가지고 있고 Network Device 드라이버는 위의 구조체를 사용하지 않는 대신, include/linux/netdev..

리눅스 커널 익스플로잇 공부를 위한 커널 프로그래밍 공부 (1)

커널 익스플로잇을 공부하기 전에 먼저 커널 모듈을 개발하는 방법을 공부하면서 리눅스 커널에 대해서 점차 알아갈것입니다. 먼저 저는 공부 자료에 나와있는 환경과 같은 ubuntu 18 버전으로 구축했습니다. 먼저 위와 같이 필요한 패키지를 설치해야 합니다. 이제 임시 폴더를 만든뒤 이 폴더에 간단한 커널 모듈을 작성해봅니다. 이 코드는 간단한 헬로월드 예제라고 합니다. init_module() 함수에는 모듈이 커널에 삽입될때 동작해야하는 코드가 포함되고 cleanup_module() 함수는 모듈이 커널에서 제거될때 동작해야하는 코드가 포함된다고 합니다. 커널 모듈에서 출력을 할때는 printk() 함수가 주로 사용되는거 같습니다. 그리고 이 코드를 커널에서 동작하게 할려면 Makefile을 작성해야합니다...

[DEF CON CTF Qualifier 2023] Live CTF : Test Your Luck

64비트 기반이고 실행파일의 보호기법은 PIE와 ssp가 걸려있습니다. 특이한점은 메모리 내에 rwx 권한이 있다는것입니다. 이 권한이 있는것을 보니 쉘코드를 활용하는 문제인것으로 유추할수 있을것같은데 한번 실행시켜보면 처음에 알수없는값이 출력되고 값을 입력해보면 세그폴트가 나타납니다. 도데체 무슨 프로그램인지 알아내기위해 IDA로 분석해보면 main함수는 다음과 같습니다. 처음에는 입력을 받은뒤 입력값이 전역변수값과 같으면 Correct! 라는 메세지를 출력하고 아니면 Incorrect 라는 메세지를 출력하는데 사용되는 전역변수의 값이 어디서 초기화되는지 살펴보면 위와 같이 랜덤값을 뽑아서 다른 변수들과 연산을 거친값의 결과입니다. 그러므로 당장 랜덤함수를 뚫을만한 방법은 보이지 않습니다. 그런데 아무..

CTF 2023.06.02

[DEF CON CTF Qualifier 2023] Live CTF : What a maze meant

주말에 BoB 자소서를 쓰다가 선배님이 데프콘 예선을 뛰고 있다고 연락이 왔습니다. 그래서 부럽다는 생각을 하고있었는데, 선배님이 데프콘 예선은 누구나 참가할수있다고 하셔서 저는 우선 데프콘 예선 문제들은 어느정도 수준일지 궁금하기도 하고 곧있으면 국내 메이저 CTF가 시작하기도 해서, 저의 버킷리스트중 하나인 데프콘 본선 진출해보기를 이루기 위한 경험을 쌓기 위해서 한번 참가해봤습니다. 문제들을 둘러보니 역시나 데프콘 답게 예선인데도 불구하고 문제들 수준이 왠만한 메이저 대회 본선급으로 난이도가 미쳐 날뛰고 있었습니다. 데프콘을 처음 경험해봐서 문제 시스템도 생소하기도 해서 뭐라도 푸는것이 불가능한가 싶었는데 데프콘 예선에서 Live CTF를 연습할수 있는 문제들이 나온다는것을 보고 예전부터 한번 풀어..

CTF 2023.05.31

2023 TAMUctf write-up

PWN 1. inspector-gadget 이 문제를 분석해보면 나오는 취약점은 pwnme 함수에 있습니다. read 함수에서 buf크기 이상의 값을 버퍼에 입력받기 때문에 BOF가 발생합니다. 프로그램에는 NX보호기법이 적용되어 있으므로 ROP를 시도해볼수 있습니다. 이 프로그램을 익스플로잇 하기위해서는 원가젯을 사용하거나 system함수를 사용해야하므로 먼저 libc base 를 leak하고나서 pwnme 함수로 다시 리턴한뒤 이 값을 기반으로 system함수를 호출해서 쉘을 따는 방식으로 익스플로잇 했습니다. 주의해야할건, system 함수를 사용해서 쉘을 따므로 rsp 16바이트로 정렬되어있어야 하는데 제가 작성했던 이전 페이로드는 16바이트로 정렬이 되지 않아서 익스플로잇에 실패했었습니다. 그러..

CTF 2023.05.15

[2023 root access CTF] write-up

PWN secret 이 문제의 바이너리를 확인해보면 64비트기반에 부분적인 RELRO와 NX 보호기법이 적용되어 있습니다. IDA로 정적분석을 해보면 다음과같은 main함수와 flag함수가 정의되어 있습니다. 처음에는 서버에서 동작하는 ELF에는 플래그값이 그대로 있는줄알고 이 flag함수로 리턴하기위해 가젯을 구성해봤지만, 서버에서도 똑같은 페이크 플래그를 출력했습니다. 그 다음으로는 적용되어있는 보호기법들을 고려해서 ROP공격을 시도해봤지만 rdx값이 비정상적으로 높게 설정되어있어서 실패했습니다. 그래서 ret2csu라고하는 기법으로 rdx도 컨트롤하려고 했지만, 입력받는 길이에 비해서 페이로드가 너무 길어지기 때문에 실패했습니다. 그래서 어떤방법이 있을지 자세히 분석해봤는데, 처음에 buf포인터가 ..

CTF 2023.05.02
728x90