전체 글
DefenitCTF 후기
저희 동아리는 최종적으로 71등을 달성하였습니다. (초반에 10등 찍고 못내려온게 아쉽)개인적으로 많이 아쉬운 CTF였습니다. 각 잡고 준비도 하고 3일 연속으로 진행하고싶었지만 bob준비나 ccit 과제나 여러 가지 겹쳐서 그러지도 못하고 진행 동안에도 중요한 약속으로 첫날 밖에 진행 못한점이 많이 아쉬웠습니다....그래도 저희 동아리 신입생이나 CTF를 경험해보지 못한 친구들이 값진 경험을 했다고 생각하고 저 또한 첫날은 시간 가는지 모르고 재밌게 진행했던것 같습니다. 올해 이런 멋진 대회 열어주신 데피닛 + 관계자분들 정말 수고하셨습니다! , 내년에도 열어주시면 Pwnable문제 올클 할정도로 성장해보이겠습니다!
Fodhelper를 이용한 UAC bypass
수업을 진행하면서 UACME를 이용하여 UAC bypass를 한 흔적을 분석해본 시간이 있었다. 이 떄 UACME에서 Fodhelper를 이용하였는데 이 과정이 궁금해서 한번 개인적으로 정리해보았다. UAC 가장 먼저 UAC에 대하여 한번 알아보자. 사용자 계정 컨트롤(User Account Control, UAC)은 마이크로소프트의 윈도우 비스타 운영 체제에서 처음 선보인 보안 기술이다. 윈도우 서버 2008과 윈도우 7에도 도입되었다. 관리자가 권한 수준을 높이는 것을 허용할 때까지 응용 프로그램들은 표준 사용자 권한으로 제한을 둠에 따라 운영 체제의 보안을 개선하는 데 중점을 두었다. UACME UACME는 위와 같은 UAC를 우회 할 수 있는 즉, UACbypass를 할 수 있는 opne sour..
bubble sort 구현
bubble sort구현 하는 과제가 나와서 이를 구현해보고 글로 남겨보았다. Problem 변수명 num에 수록된 값을 콘솔에 한 라인으로 출력 변수명 num에 나열된 값을 크기순으로 정렬 변수명 num에 정렬된 값을 콘솔에 한 라인으로 출력 Code 코딩을 할 때 다음 두가지를 생각하며 구현했다. num의 i 번쨰 와 i+1 번쨰를 비교하는 코드 비교 후 i 번쨰가 더 큰 숫자이면 두 숫자의 위치를 바꿔주는 코드 전체적으로 1번이 동작하면서 내부에 2번이 동작하는? 느낌으로 구현해 보았다. 추가로 num의 저장된 숫자를 출력하는 함수를 따로 구현하여 출력을 해주었다. TITLE bubblesort (bubblesort.asm) INCLUDE c:\Irvine\Irvine32.inc .data num ..
Regex in c++
수업을 진행하면서 c++에서 처음으로 regex를 사용해보았는데 거의 반나절을 삽질한 내용을 포스팅 하려고한다. 진행은 하나 예시를 들어 진행한다. Example 예시는 다음과 같이 http data가 있다고 할 떄 Host:이후에 있는 데이터를 뽑아내려고 할 때 로 가정한다. GET / HTTP/1.1Host: test.gilgil.netConnection: keep-aliveUpgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36Accept: text/html,application/..
Incident Response
침해사고대응에 대해 전체적인 개념에 대해 정리를 하기 위해 글을 썼다. 용어 정리 내용에 들어가기 앞서 사용하는 여러 용어에 대해 적어두었다. Incident vs Event Event(사건) 시스템 또는 네트워크에서 관찰 가능한 모든 행위를 의미한다. 예) 공유 폴더에 연결하는 사용자 웹 페이지 요청을 수신하는 서버 이메일을 보내는 사용자 Incident(사고) 사내 컴퓨터 보안 정책 위반, 시스템 권한의 불법적인 사용, 민감한 데이터에 대한 무단 접근, 악성코드 실행 등과 같은 부정적인 결과를 초래하는 유해한 모든 이벤트를 의미한다. 예) 봇넷에게 웹서버에 많은 양의 연결 요청을 보내 서비스 거부를 유발하도록 명령 사내 이메일을 통해 수신된 악성 첨부파일 실행 조직의 민감한 데이터를 입수한 공격자가 ..
Amcache 수집 및 분석
침해사고대응 수업 진행을 하면서 amcache에 대한 정보를 정리해 두었다. amcacheparser로 export 되는 csv에 대한 내용이 궁금해서 찾아본 내용이 대부분이다. Amcache amcache란? amcache는 Windows 7에서 RecentFileCache.bcf파일이 윈도우 8부터는 레지스트리 하이브 파일인 amcache.hve로 대체되었다. amcache는 최근 실행한 프로그램에 대한 정보를 가지고 있으며, 연결된 usb나 블루투스 장치와 관련된 정보들도 가지고 있다. amcache 수집 amcache는 다음과 같은 경로(C:\Windows\appcompat\Programs)에 위치한다. amcache 추출 amcache의 분석은 rega, amcacheparser등 여러 툴이 있..
ChildHeap (double free, stdout leak)
stdout을 이용하여 leak이 필요한 문제이다. Writeup File information Code Main int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // [rsp+Ch] [rbp-4h] Init(*(_QWORD *)&argc, argv, envp); while ( 1 ) { while ( 1 ) { menu(); v3 = input_number(); if ( v3 != 1 ) break; Malloc(); } if ( v3 != 2 ) exit(0); Free(); } } Main함수는 다음과 같은 역할을 한다. menu 함수 호출 input_number로 입력을 받아 입력에 따라 다음..
HackCTF Reversing Me
Writeup information #include #include int main() { int i; char *serial = "H`cjCUFzhdy^stcbers^D1_x0t_jn1w^r2vdrre^3o9hndes1o9>}"; char enter[54]; printf("키를 입력하시게 : "); scanf("%s", enter); if (strlen(enter) == strlen(serial)) { for (i = 0; i < strlen(serial) && (enter[i] ^ (i % 2)) == serial[i]; i++); if (i - 1 == strlen(enter)) printf("정답일세!\n"); } else printf("그건 아닐세...\n"); exit(0); } 문제는 위..
stdout을 이용한 leak
hackctf childheap 문제로 처음 접한 기법이다. 최근 heap문제에서 자주 사용되기도 하고 한번 정리해두고 싶어 글을 쓰게 되었다. (모자란 부분은 조금씩 채워 나갈 예정) Source Code source code는 puts의 code를 간단하게 분석하면서 최종적으로 _IO_SYSWRITE가 어떻게 호출이 되는지 알아보자. 먼저 호출되는 puts함수부터 살펴보면 다음과 같다. _IO_puts #include "libioP.h" #include #include int _IO_puts (const char *str) { int result = EOF; size_t len = strlen (str); _IO_acquire_lock (_IO_stdout); if ((_IO_vtable_of..
HackCTF Magic PNG
전에 프로젝트 진행하면서 PNG 구조 알아본 적이 있는데 덕분에 쉽게 풀었던 문제이다. Writeup File information 문제 파일을 다운 받고 압축을 해제하면 다음과 같이 png파일이 하나 있다. 이 파일은 깨져서 열어도 아무것도 볼 수 없는 파일이다. Solve 이 문제는 PNG format을 조금 알아보면 쉽게 풀 수 있는 문제이다. PNG의 시그니쳐 89 50 4E 47 0D 0A 1A 0A PNG에는 크게 세 청크가있다. IHDR (49 48 44 52) iHDR은 말 그대로 헤더 즉 PNG의 여러 메타 데이터가 저장된다. IDAT (49 44 41 54) 실제로 이미지에 대한 데이터가 저장된다. IEND (49 45 4E 44) 파일의 끝을 알려주는 청크 먼저 HxD or 010 e..