728x90

전체 글 184

어셈블리어

push스택에 값을 저장한다. push 후에는 스택이 4바이트 커지기 때문에 esp 레지스터는 4바이트 감소한다.(스택은 높은 주소에서 낮은 주소로 할당되기 때문에)PUSH EBP // EBP의 값을 스택에 PUSHpush 5 // 5를 스택에 PUSH POPPUSH와는 반대로 스택의 끝에 저장된 값을 가져온다. POP 후에는 스택이 4바이트 줄어들기 때문에 ESP 레지스터가 4바이트 증가한다. POP EBP // 스택 끝의 값을 꺼내서 EBP에 저장POP ECX // 스택 끝에 값을 꺼내서 ECX에 저장 pushhad범용 레지스터의 값들을 스택에 저장하는 명령어 OPERAND가 없다. 스택에는 레지스터의 값이 차례대로 저장된다.저장되는 순서는 eax -> ecx -> edx -> ebx -> esp -..

System Hacking 2025.07.04

SFP

Saved Frame Pointer의 약자로 실행될 때 이전의 EBP 값을 가지고 있다.EBP는 현재 스택의 가장 바닥을 가리키는 포인터로 새로운 함수가 호출되면 EBP 레지스터 값이 지금까지 사용하던 스택 꼭대기의 위에 위치하게 되고, 새로운 스택이 시작된다. EBP는 새로운 함수가 호출되거나 현재 실행중인 함수가 종료되어 리턴될 때 마다 값이 달라진다. 현재 함수가 끝나면 이전 함수의 ebp가 필요하게 되는데, 이 이전 함수의 ebp를 저장하는 공간이 SFP이다.

System Hacking 2025.07.01

Null 스캔 & FIN 스캔

NULL 스캔TCP 헤더에는 SYN, ACK, FIN, RST 등의 플래그 비트가 있습니다. Null 스캔은 미 모든 플래그를 0으로 설정하여 패킷을 전송합니다. 이러한 비정상적인 패킷은 방화벽이나 IDS의 탐지 규칙을 우회할 가능성이 있습니다. Kalisudo nmap -sN IP주소wireshark에서 확인을 해보면 다음과 같습니다.먼저 필터링을 설정을 합니다.tcp.flags == 0 and ip.dst == 192.168.0.100다시 nmap을 통해 null 스캔을 하면 다음과 같습니다. iptables 을 통해 null 스캔 차단하고 log 남기기#sudo iptables -I INPUT -p tcp --tcp-flags ALl NONE -j LOG --log-prefix "NULL_SCAN_..

network 2025.06.10

[Windows] Heap Overflow

힙 메모리는 스택과 다르게 RET, SEH가 존재하지 않으므로 공격을 성공시키기 위해 여러가지 다양한 기법들이 동원됩니다.주로 힙 메모리에 존재하는 다른 오브젝트, 포인터 및 헤더 등을 덮어쓰는 방법으로 공격합니다. 예제 코드#include #include #include int main() { char* buf1 = (char*)malloc(0x20); char* buf2 = (char*)malloc(0x20); printf("buf1: %p\n", buf1); printf("buf2: %p\n", buf2); memset(buf1, 'A', 0x30); free(buf1); free(buf2); return 0;}32바이트로 동적할당을 합니다.그리고 memset의 buf1의 48바이트를 채워서 buf..

System Hacking 2025.06.08

[Windows] Stack Buffer Overflow

1) Stack Buffer Overflow메모리 경계를 검사하지 않는 함수 사용으로 인해 스택을 덮어쓰게 되어 주로 발생한다. 아주 고전적인 취약점이지만 아직도 많이 발생하고 있으며 실제로 퍼징을 하다 보면 여전히 많이 발견된느 취약점이다.함수는 각각의 스택 프레임을 가지고, 함수 호출 시 저장된 SFP(Saved Frame Pointer), RET(Return address)를 이용하여 호출 이전의 코드로 돌아간다. 실습 소스코드#include #include #include int main(int argc, char* argv[]){ char readbuf[2000] = { 0, }; char printbuf[500] = { 0, }; printf(" # text reader #\n"); if (a..

System Hacking 2025.05.26
728x90