본문 바로가기

전체 글122

[CodeEngn] Challenges Basic RCE L20 CodeEngn_Challenges Basic RCE L20 L20. 이 프로그램은 Key파일을 필요로 하는 프로그램이다. 'Cracked by: CodeEngn!' 문구가 출력 되도록 하려면 crackme3.key 파일안의 데이터는 무엇이 되어야 하는가 Ex) 41424344454647 (정답이 여러개 있는 문제로 인증시 맞지 않다고 나올 경우 Contact로 연락주시면 확인 해드리겠습니다) 파일 실행 결과 key파일이 없어서 그런지 아무것도 뜨지 않는다. 더보기 key파일 없이 풀어보려도 시도했던 흔적.. createFileA API return결과 key파일이 없어 eax=FFFFFFFF이므로 401032에서 비교 후 분기되지 않는다. 이 부분을 수정하여 key파일이 없어도 파일이 존재할 때 실행되.. 2021. 10. 18.
디버깅 탐지 방법 틀린 부분이 있다면 언제든지 댓글 남겨주세요! TEB / PEB를 통해 디버깅 탐지 1. PEB의 BeingDebugged Flag 확인 (IsDebuggerPresent API로 플래그 값 확인 가능 or PEB+0x02값 확인) 디버거가 동작중인 경우 1의 값을 가짐 - 우회: 플래그 값 변경, IsDebuggerPresent API 후킹 및 리턴값 0으로 변경 2. Heap메모리 영역의 특성 이용 (Heap메모리 영역에 접근해 디버깅시의 heap 특성 이용) Heap메모리 영역는 사용되지 않는 부분을 0xFEEEFEEE 또는 0xABABABAB 값으로 채우는 특징을 가짐 따라서 heap메모리 영역을 도는 if을 생성하여 0xFEEEFEEE 또는 0xABABABAB값을 가지면 디버깅 중임을 알 수 있.. 2021. 10. 15.
[CodeEngn] Challenges Basic RCE L17, L18, L19 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeEngn_Challenges Basic RCE L17 L17. 키값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가 힌트 : Name은 한자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) Name이 한자리라고 해서 1을 입력하고 Key에 '123'을 입력했더니 다음과 같이 더 많은 문자를 입력하라는 문자열이 나온다. 파일의 정보를 확인해보니 델파이로 작성된 파일이다. x32dbg을 사용해보도록 하겠다. 메시지 박스가 뜨는 부분과 'Please Enter More Chars..'문자열을 이용하여 핵심 코드를 찾아가 보았다. 45BB24부분에서 eax값과 뒤의 숫자를 비교해 같거나.. 2021. 10. 14.
KeyLogger 분석 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeCure 동아리_KeyLogger 프로그램 작성 및 분석 1. 개요 File Name KeyLogger.exe File Size 51,712 byte File Type Win32 EXE 분석 도구 x32dbg / Visual Studio 2019 2. 프로그램 빌드 및 동작 Visual Studio을 이용하여 코드 작성 후 Key Logger 프로그램 keyLogger.exe을 빌드한다. GetAsyncKeyState API를 이용하여 현재 키의 상태를 알아온다. 이전에 키를 누른 적이 없고 현재 시점에서 눌리지 않은 경우 0을 반환하고 눌린 경우 0x8000을 반환하며, 이전에 키를 누른 적이 있고 현재 눌리지 않은 경우 1을 반환하고 현재 눌린 경.. 2021. 9. 27.
Debugger software BP의 원리 틀린 부분이 있다면 언제든지 댓글 남겨주세요! Debugger software BP의 원리 - Debugger: 디버깅 하는 프로그램 - Debugging: 프로그램 개발의 마지막 단계에서 프로그램의 오류를 발견하고 원인을 찾는 과정 Debugger의 Break Point에는 3가지가 있다. Software BP, Hardware BP, Memory BP Software Break Point는 CPU 실행을 중단하며, 제한없이 사용할 수 있다. 다만 코드를 변경하게 되므로 코드를 변경하면 안되는 경우 Hardware Break Point를 사용해야 한다. (최대 4개) Debugger가 Debugging중 반드시 처리해야 하는 예외 중에 exception_breakpoint가 있다. Software Br.. 2021. 9. 8.
relocation과 .reloc섹션 틀린 부분이 있다면 언제든지 댓글 남겨주세요! ASLR(Address Space Layout Randomization): 보안 강화를 위해 exe파일이 메모리에 로드될 때 로드 시작 주소 값을 매번 랜덤하게 바꾸는 것(windows vista이후 도입) PE재배치(Relocation): PE파일이 ImageBase에 로딩되지 못하고 다른 주소에 로딩될 때 수행되는 일련의 작업 이 재배치 과정에서 Base Relocation Table이 사용됨 재배치 과정 :하드코딩 된 위치 찾기(Base Relocation Table 이용) > 값에서 ImageBase만큼 빼기(VA→RVA) > 실제 로딩 주소 더하기(RVA→VA) type offset = type + offset 하드코딩 주소 = Virtual Add.. 2021. 8. 28.
[CodingStudy] 완전 탐색 -소수 찾기 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_완전 탐색 -소수 찾기 문제. 한자리 숫자가 적힌 문자열 배열 numbers가 주어졌을 때, 만들 수 있는 소수의 개수 return ( numbers는 0~9까지 숫자를 요소로 가지며 리스트의 길이는 1~7 ) ex) [0, 1, 1]으로는 소수 [11, 101]를 만들 수 있으므로 2 return import itertools def solution(numbers): numlist=[] for s in range(1, len(numbers)+1): # 각 자리수 별로 순열값 생성해서 list에 추가 numlist=numlist+list(map(''.join, itertools.permutations(numbers, s))) numlist=lis.. 2021. 8. 27.
[CodingStudy] 정렬 -가장 큰 수 틀린 부분이 있다면 언제든지 댓글 남겨주세요! 프로그래머스_정렬 -가장 큰 수 이 문제는 전혀 다른 방향으로 코드를 짜는 바람에 다른 분들의 코드를 참고하여 다시 공부했다 ㅠㅠ 생각보다 너무 짧아서 놀랐다..파이썬은 참 좋은 언어야.. 파이썬 공부를 코드 짤때 그때그때 하다보니까 모르는 함수나 문법이 아직도 많다..ㅠㅠ 문제. 0 또는 양의 정수가 담긴 배열 numbers가 주어질 때, 재배치하여 만들 수 있는 가장 큰 수를 문자열로 return (numbers의 길이는 1 이상 100,000 이하, 원소의 길이는 1,000 이하) ex) [3, 30, 34, 5, 9] > 9534330 / [6, 10, 2] > 6210 def solution(numbers): # numbers리스트의 요소 타입을 s.. 2021. 8. 26.
OSINT, STIX, MITRE ATT&CK SOAR(Security Orchestration, Automation and Response) SOAR를 통해 SOC(Security Operation Center)의 업무 프로세스를 자동화 및 개선 OSINT(Open Source INTelligence) : 공개된 출처에서 수집할 수 있는 정보. TIS(Threat Intelligence Service) 및 TIP(Threat Intelligence Platform)등에서 제공되는 정보를 일컫기도 함. 일반적으로 IP, Domain, URL, Hash등과 같은 단편적인 정보 (사고 분석 후 공유되는 정보이므로 이력이 상이할 수 있음) - OSINT로 attack surface를 찾는 데 도움을 받을 수 있음 > 네트워크에 방어 시스템을 설계하면 at.. 2021. 8. 24.
PE구조 틀린 부분이 있다면 언제든지 댓글 남겨주세요! PE: 32bit 형태의 windows 실행파일 (PE+, PE32+: 64bit) DOS Header 시작부터 64bit가 Image_dos_header [주요 구조체] magic number = 4D 5A (MZ) (맨 처음 2byte) > PE파일 e_lfanew = 00000200 (맨 마지막 4byte) > NT header의 주소 (실질적인 윈도우 헤더 위치) * 주소는 리틀엔디언 방식으로 저장됨 MS-DOS Stub : DOS 운영체제에서 윈도우용 PE파일을 실행한 경우에 보여줄 오류 메시지 저장 윈도우에서 실행하는 경우 실행되지 않는 부분 NT Header : 4바이트의 signature + IMAGE_FILE_HEADER, IMAGE_OPTI.. 2021. 8. 23.
[CodeEngn] Challenges Basic RCE L13, L14, L15, L16 틀린 부분이 있다면 언제든지 댓글 남겨주세요! CodeEngn_Challenges Basic RCE L13 L13. 정답은 무엇인가 다짜고짜 정답이 무엇이냐고 한다.. 우선 파일정보를 확인하고 파일을 실행시켜보았다. 123을 입력했더니 틀렸다고 다시 입력하라고 한다. 이곳에 입력할 패스워드를 찾는 것 같다. 파일의 정보를 확인해보니 C#으로 작성된 .net파일이다. .net파일은 ollydbg에서 디버깅하기 어렵기 때문에 다른 프로그램을 사용한다. dotPeek 프로그램에서 파일을 열어보았다. 세개의 cs파일이 보이는데 그 중 RijndealSimpleTest.cs파일에서 패스워드를 찾을 수 있을 것 같다. * Rijndeal..익숙하다 싶었는데 대칭 암호 알고리즘이다. 이 알고리즘을 기반으로 AES암호.. 2021. 8. 22.
한국인터넷진흥원 채용연계형 인턴 지원 후기 한국인터넷진흥원(KISA) 2021 하반기 채용연계형 인턴 지원 후기 모집일정 및 부분은 아래와 같다. 나는 기술분야에 지원했다. 1. 서류 우선 이력사항을 작성해야 했다. 인턴 경력, 자격증, 봉사 내역, 케이쉴드 교육, 침해사고 교육, 학교 수업중 보안 관련 수업도 몇개 적었다. 프로젝트 내역엔 졸업작품과 케이쉴드 하면서 했던 보안 관련 프로젝트만 썼다. 자기소개 문항은 총 6개였다. - 지원동기 및 직장을 선택하는 본인만의 기준 - 협업 경험 - 문제해결 경험 - 기업 최근 이슈와 역할 및 향후 발전 방향 - 원칙과 효율성 사이에서의 가치관과 경험 - 입사지원서에 기재한 경력, 경험 및 역량 합격 발표는 발표당일 22시 넘어서 나왔다. 2. 필기 서류 합격 발표나고 2,3일 정도 후에 필기 시험을 .. 2021. 8. 21.
728x90
반응형