최신글
-
System (Pwnable)
Dreamhack basic_rop_x86 문제 풀이 방향
Dreamhack basic_rop_x86 문제 풀이 방향https://dreamhack.io/wargame/challenges/30 basic_rop_x86Description 이 문제는 서버에서 작동하고 있는 서비스(basic_rop_x86)의 바이너리와 소스 코드가 주어집니다. Return Oriented Programming 공격 기법을 통해 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" 파일dreamhack.ioArch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) i386-32 비트이다. 디스어셈블을 해보면, 스..
-
System (Pwnable)
NX 및 ASLR 우회방안 - PLT GOT 설명
NXNX(No-eXecute)- 실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리- 코드에 쓰기권한 있는 경우 : 임의 코드 입력, Return to Shellcode 등이 가능함- CPU가 NX를 지원해야 함.- NX를 인텔은 XD(eXecute Disable) , AMD는 NX, 윈도우는 DEP(Data Execution Prevention) , ARM에서는 XN(eXecute Never) 라고 칭하고 있습니다. 명칭만 다를 뿐 모두 비슷한 보호 기법입니다. ASLR(Address Space Layout Randomization)- 바이너리가 실행될 때마다 스택, 힙, 공유 lib 등을 임의의 주소에 할당하는 보호기법- 이제 buf의 주소를 구하는 것이 선행되어야 함 Library..
-
System (Pwnable)
스택 카나리(Stack Canary) 설명 및 카나리 우회방안(Return to Shellcode Writeup)
스택 카나리(Stack Canary) 설명 및 카나리 우회방안(Return to Shellcode Writeup)1.스택 카나리(Stack Canary)- 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에서 임의의 값을 삽입한다. - 이 값을 함수의 에필로그에서 해당 값의 변조를 확인(fs+0x28값과 현재 값을 XOR) - 카나리의 값은 TLS에 전역변수로 저장된다. 2. TLS의 주소 파악- fs의 값을 알면 TLS의 주소를 알 수 있고, fs의 값은 특정 시스템 콜에서만 조회가 가능 - arch_prctl(ARCH_SET_FS, addr)의 형태로 호출하면 fs의 값은 addr로 설정된다. - gdb 명령어 중 catch 명령어로 arch_prctl이 호출될 때를 잡아서 확인(info regist..
-
System (Pwnable)
cdecl, SYSV 호출 규약 및 버퍼 오버 플로
cdecl, SYSV 호출 규약 및 버퍼 오버 플로cdecl, SYSV 호출 규약 SYSV 인자 전달 순서 : rdi, rsi, rdx, rcx, r8, r9 스택 버퍼 오버 플로버퍼란- 데이터가 목적지로 이동하기 위한 임시 저장.- 데이터 처리 속도가 서로 다른 장지간에 오가는 데이터를 임시로 저장. 스택버퍼: 스택에 있는 지역변수힙버퍼: 힙에 있는 지역변수 버퍼 오버 플로란- char 배열의 길이가 10이면, 10byte가 할당되어 있다. 이때 20byte에 데이터가 들어오는 경우, 오버플로가 발생- 오버된 버퍼들의 값을 조작하면 위험이 발생함 레퍼런스https://learn.dreamhack.io/54https://learn.dreamhack.io/60
-
System (Pwnable)
pwndbg 설치 및 기본분석
pwndbg 설치 및 기본분석1. pwndbg 설치https://github.com/pwndbg/pwndbg GitHub - pwndbg/pwndbg: Exploit Development and Reverse Engineering with GDB & LLDB Made EasyExploit Development and Reverse Engineering with GDB & LLDB Made Easy - pwndbg/pwndbggithub.com git clone https://github.com/pwndbg/pwndbgcd pwndbg./setup.sh 간단한 C 프로그램을 만들고, 컴파일한다.gcc -o sum sum1.c -no-pie 1 #include 2 3 int main(void){ ..
-
Hardware(IoT)
Iptime Firmware 분석
Iptime Firmware 분석 ipTIME G204 펌웨어 버전 7.60 펌웨어 다운로드http://iptime.com/iptime/?pageid=4&page_id=126&keyword=7.60&uid=9565&mod=document EFM, ipTIME 아이피타임이지메시, 이지메쉬, 메시와이파이, 기가 와이파이, 유무선 및 무선 인터넷 공유기, 와이파이 증폭기 및 확장기, 기업 및 가정용 나스, NAS STORAGE 등 제품소개와 펌웨어 다운로드 고객지원 제공iptime.com 1) binwalk g204_kr_7_60.binbinwalk로 확인했을 때, 파일이 두개가 보인다. 0~65592까지 i.tmp이고, 65592~720896까지가 Squashfs 파일시스템이다.i.tmp는 앞부분이기에 ..