목록분류 전체보기 (285)
tmxklab
0. 목차Contents0. 목차1. 소개1.1 배경1.2 파일리스(Fileless)기법1) AVT(Advanced Volatile Threat)2) 사용 이유3) 문제점2. 파일리스(Fileless) 공격 2.1 공격 절차2.2 Powershell 예제 및 옵션1) Powershell 실행 정책2) Powershell Oneliner Example3. 지속성(Persistence) 3.1 지속성 전략1) 레지스트리2) 서비스3) 작업 스케쥴러4) WMI4. 대응 방안5. 참고자료5.1 Fileless5.2 powershell 옵션에 관한 것 1. 소개1.1 배경공격자는 네트워크를 통해 직접 접근이 어려운 경우 이메일이나 인터넷을 통해 악성 파일을 유입시키는 방법을 선택하게 된다. 이에 대응하기 위해 악..
1. 문제확인We made a simple MD5 calculator as a network service. Find a bug and exploit it to get a shell. Download : http://pwnable.kr/bin/hash hint : this service shares the same machine with pwnable.kr web service Running at : nc pwnable.kr 9002네트워크 서비스로 간단한 MD5 계산기를 만들었으니 버그 찾아서 익스플로잇 해보라고 한다. 1) mitiagation 확인 2) 문제 확인libcrypto.so.1.0.0 이 없어서 실행이 안되는듯, 설치 ㄱㄱ아마도 64bit용 libssl1.0.0 라이브러리는 있는데 32b..
1. 문제 확인I made a simple brain-fuck language emulation program written in C. The [ ] commands are not implemented yet. However the rest functionality seems working fine. Find a bug and exploit it to get a shell. Download : http://pwnable.kr/bin/bf Download : http://pwnable.kr/bin/bf_libc.so Running at : nc pwnable.kr 9001간단한 brain-fuck 에뮬레이션 프로그램을 만들었는데 [ ] 안에 들어갈 명령어를 아직 구현하지 못했음그래서 버그를 찾아서 쉘을 따..
1. 문제 1) mitigation 확인 2) 문제 확인 환경변수 team_name=bi0s를 설정하고 파라미터를 주면 됨 3) 코드흐름 파악 3-1) main __int64 __fastcall main(int a1, char **a2, char **a3) { const char *s1; // [rsp+20h] [rbp-10h] s1 = getenv("team_name"); if ( s1 && !strncmp(s1, "bi0s", 4uLL) ) { if ( a1 == 2 ) { if ( (unsigned int)sub_87C(s1, a2[1]) == 1 ) sub_830(a2[1]); else printf("Better luck next time!"); } else { printf("usage: chal..
1. 문제 1) mitigation 확인 문제 이름대로 32비트 MIPS 바이너리 파일이다. 2) 문제 확인 qemu로 확인할라 했는데 이상하게 mips만 안됨, 실행시키면 세그먼테이션 폴트 발생 3) 코드흐름 파악 undefined4 main(void){ char input_24; int input_length; int flag1; char cStack49; int flag2; uint flag3; int flag4; char input [28]; memset(input,0,0x1a); printf(0xdf0); __isoc99_scanf(0xdfc,input); input_length = strlen(input); if (input_length == 0x19) { flag1 = 0; while (fl..
0. 목차Contents0. 목차1. 소개1.1 UAC(User Account Control)1.2 UAC Bypass2. UAC 우회 악성코드 유형 분석2.1 분석환경3. 분석3.1 정적 분석1) TOKEN_ELEVATION_TYPE 확인 및 분기2) 레지스트리 키 생성 및 ComputerDefaults.exe 실행3.2 동적 분석1) TOKEN_ELEVATION_TYPE 확인 및 분기2) 레지스트리 키 생성 및 ComputerDefaults.exe 실행4. 정리4.1 몰랐던 내용4.2 레지스트리 관련 API 함수 정리1) RegOpenKeyExA()2) RegCreateKeyA()3) RegSetValueExA()4) RegDeleteKeyA()5) RegCloseKey()5. 참고자료5.1 UAC ..
0. 목차Contents0. 목차1. Reflective DLL Injection1.1 배경1.2 DLL Injection과 Reflective DLL Injection1) DLL Injection2) Reflective DLL Injection1.3 차이점2. Reflective DLL Injection 유형 분석2.2 소스코드 및 실행 파일3. 분석3.1 정적 분석1) DLL 데이터 호출 프로세스에 저장2) 윈도우 토큰권한(보호된 프로세스 권한 재설정)3) LoadRemoteLibraryR() 호출4) CreateRemoteThread()5) ReflectiveLoader() - 사실 이 부분이 제일 핵심임3.2 동적 분석1) DLL 데이터 호출 프로세스에 저장2) LoadRemoteLibraryR(..
악코분을 하다보면 가끔 CreatRemoteThread()를 호출하여 타겟 프로세스에 스레드로 동작시키게 한다. 그래서 스레드가 동작하는 과정을 x64dbg를 통해 디버깅하는 방법에 대해서 간략하게 소개하려고 한다. 먼저, CreatRemoteThead()와 같이 타겟 프로세스에서 Thread를 동작하게 해주는 프로그램을 동작시킨다. 그리고 x64dbg를 하나 켜주고 [Alt + a]를 눌러서 Attach할 항목을 선택한다. 여기서 나는 타겟 프로세스가 CFF Explorer(pid : 37800)이므로 이거를 선택한다. 참고로 저기 항목에서 안나오는 경우가 있다. 그럴 땐 밑에 [창 찾기]버튼을 눌러서 프로세스 이름을 적어준다. 그리고 F9를 눌러 실행시켜준다. 그러면 다음과 같이왼쪽에 타겟 프로세스인..
0. 목차Contents0. 목차1. Fuzzing1.1 Fuzzing1.2 퍼징을 하는 이유1.3 일반적인 문제1.4 퍼징 준비1) 입력을 받는 타겟 선정2) 찾고자 하는 버그의 유형3) 퍼저 선정 2. Architecture of a typical fuzzer3. types of fuzzing3.1 Mutation Based Fuzzing(Dumb Fuzzing)3.2 Generation Based Fuzzing(Smart Fuzzing)+) Guided fuzzing4. Fuzzing Tools5. references5.1 Fuzzing 관련5.2 fuzzer 계보 시각화 사이트5.3 FuzzBench - fuzzer 평가 벤치마킹 Tool 5.4 Code Coverage에 관한 글 1. Fuzzi..
0. 목차Contents0. 목차1. Thread Injection이란2. Thread Injection 유형 분석2.1 분석 환경2.2 예제 소스 코드 및 컴파일3. 분석3.1 정적 분석start()1) ProcessHandle = (HANDLE)OpenProcess(0x42A, 0, pid);2) snap = CreateToolhelp32Snapshot(4, 0);3) Thread32First(snap, &v2);4) Thread32next()5) OpenThread()6) SuspendThread()7) GetThreadContext()8) BaseAddress = (PVOID)VirtualAllocEx(ProcessHandle, 0, 0x1000, 0x3000, 0x40);9) NtWriteVir..