[dreamhack] Cherry 문제풀이
·
문제풀이/시스템해킹
아래는 문제 코드다.// Name: chall.c// Compile: gcc -fno-stack-protector -no-pie chall.c -o chall#include #include #include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1);}void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30);}void flag() { char *cmd = "/bin/sh"; char *args[] = {cm..
[dreamhack] random-test 문제풀이
·
문제풀이/웹해킹
아래는 문제 코드이다.#!/usr/bin/python3from flask import Flask, request, render_templateimport stringimport randomapp = Flask(__name__)try: FLAG = open("./flag.txt", "r").read() # flag is here!except: FLAG = "[**FLAG**]"rand_str = ""alphanumeric = string.ascii_lowercase + string.digitsfor i in range(4): rand_str += str(random.choice(alphanumeric))rand_num = random.randint(100, 200)@app.rou..
[dreamhack] Return Address Overwrite 문제 풀이
·
문제풀이/시스템해킹
문제 코드는 아래와 같다.// Name: rao.c// Compile: gcc -o rao rao.c -fno-stack-protector -no-pie#include #include void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0);}void get_shell() { char *cmd = "/bin/sh"; char *args[] = {cmd, NULL}; execve(cmd, args, NULL);}int main() { char buf[0x28]; init(); printf("Input: "); scanf("%s", buf); return 0;} 메인 함수에서 리턴 주소를 get_shell 주소로 변환해주면 간단하게 ..
pwntool 사용법
·
시스템해킹/공부
pwn 모듈 불러오기from pwn import *  p = process('./프로그램') # 로컬 프로그램을 대상으로 익스플로잇r = remote('주소', 포트번호) # 원격 서버를 대상으로 익스플로잇 ELF 매서드로 아키텍처 알아내서 쓰면 될 듯 하다.context.arch = "amd64" # x86-64 아키텍처context.arch = "i386" # x86 아키텍처context.arch = "arm" # arm 아키텍처 str = 0x12345678p32(str) # 0x78563412 값을 가짐. # 값을 packing하는 매서드, 입력 값을 little endian으로 변환해줌. p32(str, endian = 'big') # big endian으로 packi..
문서 악성코드 분석 교육 1일차
·
교육
수업을 들으며 핸드폰 메모장에 저장했던지라 교육이 모두 끝난 3일차에 작성한다. 핸드폰으로 작성하다 보니, 상세한 내용 작성은 어려웠고, 공부했던 키워드만 정리했다. 따라서, 본 글을 작성할 때, 키워드를 설명한 부분의 내용이 정확하지 않을 수 있다. 정리한 내용 및 키워드는 다음과 같다. 구글 알리미 : 보안 기사들을 자주 보면 면접 때 유리하다. 랜섬웨어, 보안 위협 등과 같은 단어를 구글 알리미로 설정하고 기사를 자주 보자. SBOM 설명을 들었을 때 소프트웨어의 제품증명서? 같은 거라고 했던 기억이 있다. 해외에서는 소프트웨어를 배포할 때? SBOM이 꼭 있어야하는 법안이 통과되어 시행 중이라고 한다. 강사님 말로는 한국에도 빠른 시일내에 SBOM 법안이 통과될 것이라고 한다. APT 공격( Ad..
문서 악성코드 분석 교육 3일차
·
교육
어제 docx 파일 이어서 교육. VBS 언어 실행할 때, MSOffice 문서에서 실행시킬 수 있음. 난독화 되어 있을 때, 이렇게 복호화 가능함. 윈도우에서는 cscript.exe라는 vbs 코드를 실행시킬 수 있는 실행파일이 있음. WMI 네임스페이스란? https://powershell.one/wmi/root Understanding WMI Namespaces - powershell.one powershell.one excel 파일도 doc 파일과 마찬가지임. oledump.py [파일명] oledump.py [파일명] -s 8 -v > s8.vbs (여기서 숫자는 대문자가 표시된 부분만 추출하면 됨.) 분석 방법은 doc과 동일함. excel 같은 경우는 macro 4.0이라는 것도 있음.) 매..
문서 악성코드 분석 교육 2일차
·
교육
pdfid pdf 파일 내부의 구조 확인할 수 있는 정적분석 도구 pdfid.py [pdf 파일] /pdfid로 확인한 이름(예시 : JS) /pdfid로 확인한 이름(예시 : obj) /pdfid로 확인한 이름(예시 : endobj) pdf-parser pdfid로 확인한 이름을 통해 전체적인 구조나 내부 자바스크립트코드 확인 가능 pdf-parser.py --search [pdfid로 확인한 이름] [pdf 파일명] pdf-parser.py --object [obj 번호] [pdf 파일명] pdf-parser.py --object [obj 번호] --raw --filter [pdf 파일명] > ob.js 쉘 코드 복사 붙혀넣기로 txt 파일 생성(예시 :unicode.txt) cat unicode.t..
Numpy 라이브러리(모듈)
·
프로그래밍/파이썬
1. Numpy (Numerical Python) 2. Numpy로 배열 생성 3. 배열의 데이터 타입 : dypte 4. ndarray의 차원 관련 속셩 : ndim & shape 5. Indexing & Slicing 1. Numpy(Numerical Python) Python에서 대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리 특징 1. 데이터 대부분을 숫자 배열로 확인 가능 2. 반복문 없이 배열 처리 가능 - 파이썬 리스트에 비해, 빠른 연산을 지원하고 메모리를 효율적으로 사용 pandas, Metplotlib와 같은 비슷한 라이브러리가 있음. 2. Numpy로 배열 생성 리스트는 콤마로 구분하지만, Numpy의 array 함수로 생성 시 공백으루 구분함. import numpy as n..
Goblebin
고블빈