본문 바로가기

4-1. 2020-2 심화 스터디

(14)
[2020.11.28] [DigitalForensic] with CTF 네트워크 문제풀이 이번 문제는 Gregory가 죽는 원인을 알아내는 문제이다. Wireshark를 통해 다운 받은 pcap03 파일을 분석해보았다. Http 프로토콜을 통해 오고간 파일들을 보기 위해 Export Objects로 살펴보았다. 여러 Http 프로토콜 중 문제에서 힌트를 얻어 mms 형식의 패킷인 390번 패킷과 408번 패킷을 분석해보았다. 해당 패킷을 TCP Stream 을 이용하여 열고 raw data 형태로 저장하였다. 그러나 .mp4 확장자로 저장한 동영상이 실행되지 않는 모습을 확인할 수 있었다. HXD로 파일을 열어보면 위와 같은 데이터를 볼 수 있다. 해당 파일은 MP4 파일이었으므로, 맨 앞에 MP4의 시그니처가 있어야한다. 그러나 이상한 문자들로 시작하는 것을 볼 수 있다. MP4 시그니처가..
[2020.11.28] 세미나 준비 웹퍼저 팀은 이번주 활동시간에 세미나 준비를 위한 회의를 진행하였습니다. 목차는 이번 하반기에 활동한 내용을 위주로 다음과 같이 구성하여 발표를 준비할 예정입니다. ------------------------------------------------------------------------ 1. 활동계기&소개 2. '취약점 분석을 위한 퍼징' 문서 리뷰 - Web Fuzzing - File Fuzzing - Network Fuzzing - Memory Fuzzing 3. 논문 리뷰 - 제목 - 주제 - 구성 - 중요 포인트 - 결론(활용방안/한계점) 4. 코드 분석 - 오류(시도의 흔적) - 오픈소스 : Fuzzer_bof_check.py ----------------------------------..
[2020.11.21] Fuzzer review (open source) 11월 3주 Web Fuzzer팀은 open source 퍼저에 대해 리뷰해보는 시간을 가지기로 했다. 1. Fuzzer_bof_check.py 지정된 버퍼보다 큰 랜덤값을 대입하여 버퍼오버플로우를 발생시키는 코드이다. 오류 예상 시 fuzzer 함수에서는 앞서 본 코드와 같이 문자열 변수로 선택되는 임의의 문자를 반복해서 더해 무작위 값을 생성하고 결과값 out을 crash_if_too_long 함수의 인자로 넘겨 buffer 크기와 비교하는 역할을 수행한다. 퍼저 함수만 따로 실행하면, 다음과 같이 랜덤한 문자열을 생성하는 것을 확인할 수 있다. 2. BlazeDVD handler_av 라는 함수를 생성하여 크래시가 발생했을 때의 메모리 상태와 레지스터 값을 확인하고 저장하여 화면에 출력한다. Bla..
[2020.11.21] [DigitalForensic] with CTF 네트워크 문제풀이 오늘은 [DigitalForensic] with CTF의 Network 파트의 1번 문제를 풀어보았다. 회의가 예정된 요일을 구하는 문제이다. 문제를 풀기위해 round1.pcap 파일을 다운받아 wireshark로 열어본다. 처음 실행하면 위와 같은 화면이 나온다. Follow TCP Stream을 통해 필터링 해보았다. 필터링 하면 다음과 같은 결과가 나온다. 두 사용자가 주고받은 내용을 분석하면 회의를 언제할지에 대한 정보를 얻을 수 있을 것이라고 예상하였다. 또한, 위의 &#x~~와 같은 생김새를 보아하여 인코딩 된 문자열이라고 추측하고 디코딩을 시도하였다. 인코딩/디코딩 사이트에서 해당 문자열을 변환해주면 해석되어 출력된다. 전체 문자열 해석 결과는 다음과 같다. betty: How does W..
[2020.11.14] pydbg를 이용한 퍼저 구현 11월 2주 Web Fuzzer팀은 간단한 퍼저 구현을 목표로 하여 활동시간에 각자 구현한 퍼저에 대해 리뷰해보는 시간을 가지기로 했다. 간단하게 짜여진 퍼저 코드를 구현해보는 것을 목표로 하였다. 해당 코드를 간단히 분석해보면, 접근위반 예외가 발생할 시 오버플로우 발생으로 인지하고 detect_overflow 함수로 이동한다. 이때, 첫번째 발생한 예외는 운영체제에서 발생한 예외이기 때문에 건너뛰고 EIP 값 출력하는 프로세스로 진행된다. 1. pydbg 설치 paimei 설치 후에 압축을 풀어 python 경로에 pydbg를 설치(자동으로 경로가 지정되기 때문에 그대로 설치 진행, 설치하려는 버전이 뜨지 않을 경우 exe 파일로 설치하고 파일을 직접 해당 경로로 복사하는 방법) 2. pydasm.p..
[2020.11.14] Basic RCE 03 풀이 다양한 툴에 대한 활용도를 높이고자 이번 주차에는 Basic RCE 03 문제를 풀이하였다. 문제에 있는 파일을 다운받는다. ​ 프로그램을 실행해보려 하였으나 일반적인 실행 뿐 아니라 올리디버거를 이용한 실행도 되지 않았다. [참고] 비주얼 베이직은 윈도우 프로그램 개발에 쓰임 즉, 윈도우 운영체제에서 동작하는 프로그램을 만드는 것임. 대표적인 예: MS office,한글 등등 +이러한 프로그램을 만들기위해 비주얼 베이직은 "윈도우 폼(form)"이라는 개발환경에서GUI를 만듦 * GUI란? - 그래픽 사용자 인터페이스라 말하며 사용자에게 텍스트 뿐만 아니라 그래픽 이미지로도 정보를 보여주거나 입력 받기 위한 방법으로, 프로그램 실행시 보이는 화면 비주얼 베이직은 .net(닷넷)언어 중 하나인데, 닷넷 ..
[2020.11.09] OHack - 오픈소스 툴 선정 | 오픈소스 탐지 툴 조사 지금까지 조사한 오픈소스 탐지 툴 中 사용할 오픈소스 탐지 툴 선정 공통 대응방법 프로세스 모니터링 psutil 차별적 대응방법 레지스트리 분석 RegSmart 차별적 대응방법 레지스트리 분석 RtCA 추가 참고자료 AntiRansomware AntiRansom_Server * 향후계획 - 현재 오픈소스 동작 여부를 확인하였으며, 그 중 3개의 오픈소스를 선택하였다. - 백도어를 중심으로 오픈소스를 분석하여 백도어만의 특징이 탐지가 되었는지, 어떤 기능을 사용할 수 있는지 정리할 예정 - 테스트용 백도어를 찾을 예정
[2020.11.07] XSS game 문제풀이 오늘은 웹에서 사용되는 XSS 취약점에 대해 살펴보고 응용하는 시간을 가졌다. Mission Description 복잡한 웹 애플리케이션은 때때로 URL 파라미터의 값이나 location.hash의 일부를 기반으로 동적으로 JavaScript 라이브러리를 로드할 수 있는 기능을 가지고 있다. 이는 올바르게 하기 매우 까다롭다. XMLHttpRequest와 같은 잠재적으로 위험한 유형의 데이터나 스크립트를 로드할 때 사용자 입력이 URL에 영향을 미치도록 허용하면 종종 심각한 취약성을 초래한다. Mission Object 응용 프로그램이 알림을 실행하는 외부 파일을 응용 프로그램 alert()으로 만드는 방법을 찾아라. 먼저 코드를 보면, url의 #뒤에 gadget.js파일을 불러오는 것을 확인할 수 있..