본문 바로가기

전체 글

(270)
질문 기록 EIP 제어권을 획득한 후에는 쉘 코드가 실행되게 만들어야 한다. 일반적으로 레지스터나 레지스터 값의 상대적인 오프셋이 쉘 코드의 주소를 가리킨다.
토렌트 분석 참고 문헌PDF : http://space.postech.ac.kr/korms/2012_fall/sessionC/C9-4.pdfAhnlab : http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?menu_dist=2&seq=22812 P2P 방식 이용하는 대표적 프로토콜- client to client 구조의 1:多 구조의 파일 공유 방식- 하나의 클라이언트가 여러 개의 다른 클라이언트 들과 무수히 많은 세션을 생성 통신 시 역할 종류시더(Seeder)공유 파일의 "완전체" 를 가지고 있는 클라이언트. (파일의 모든 조각) 리처(Leecher)공유 파일의 일부 조각만 가지고 있는 클라이언트피어(Peer)Seeder 와 Leecher 를..
gremlin -> cobolt 버퍼에 쉘코드를 넣을 만큼의 충분한 공간이 없으므로, 쉘코드를 RET 뒤에 넣기로 했다. "\x90"*20 + RET(4) + "\x90"*200 + SHELLCODE(25) PAYLOAD./cobolt `python -c 'print "\x90"*20 + [NOP 슬라이드 주소] + "\x90"*200 + SHELLCODE'` hacking exposed
리눅스 마스터 오답문제 정리 다음 중 파일 속성에 대한 문자와 의미에 대한 설명으로 틀린 것은?c : 문자 특수 파일 d : 디렉토리 파일b : 배치파일l : 기호링크 답: 3 다음 중 새로 만들어 지는 파일 또는 디렉토리에 대해서 권한을 제한하는 명령으로 알맞은 것은?chownchshchgrpumask chown 소유권,chsh 쉘 변경chgrp 그룹변경답: umask 다음과 같이 사용자 tux1, 그룹 penguin 소유인 디렉토리 /home/tux1 를 포함한 하위 디렉토리, 파일의 소유자를 linus 로 변경하려고 할 떄 알맞은 것은? 보기drwxr-xr-x 3 tux1 penguin 4096 Dec 21 10:17 /home/tux1 chmod -R linus /home/tux1chown -R linus /home/tux1..
Stack Frame Pointer Overflow -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ::: Stack Frame Pointer Overflow 개념 이해하기 ::: written by naska21 in WiseGuys -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- :: 목차 :: 0x00. 준비하기 0x01. 이해하기 0x02. 마무리 -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 0x00. 준비하기 이 문서를 공부 하기 이전에 이 문서를 읽는 사람에겐 스택에 관한 배경 지식..
gate -> gremlin (gdb 기초 사용법) 기초 gdb 사용법 메모리 조회 x/[범위][출력형식][범위의 단위] [메모리 주소나 함수명]범위 : 기본 4byte 출력형식t : 2진수 o : 8진수 d : 부호없는 10진수 u : 부호없는 10진수 x : 16진수 (주로 이걸 사용할 듯) c : 최초 1바이트 값을 문자형으로 출력 f : 부동소수점 a : 가장 가까운 심볼의 오프셋을 출력 s : 문자열로 출력 i : 어셈블리 형식으로 출력범위의 단위b : 1 byte 단위 h : 2 byte 단위w : 4 byte 단위g : 8 byte 단위 Ex)x/200x $esp : esp 주소로 부터 16진수로 200바이트 만큼 보기 브레이크 포인트break func : func 함수의 시작부분에 브레이크 포인트 설정 break 10 10번째 줄에 브레이크..
책 원본 소스파일 # -*- coding: cp949 -*- from pydbg import * from pydbg.defines import * import struct import random def printf_randomizer(dbg): parameter_addr = dbg.context.Esp + 0x8 counter = dbg.read_process_memory(parameter_addr,4) #read_process_memeory returns binary string counter = struct.unpack("L",counter)[0] print "Counter: %d" % int(counter) random_counter = random.randint(1,100) random_counter = stru..
Memory Breakpoint 이론, 함수 정리 메모리 브레이크 포인트는,1. 브레이크 포인트를 설정할 메모리 영역의 베이스 주소와 페이지 크기를 구한다.2. 해당 메모리 영역 페이지의 접근 권한을 변경해 보호 페이지 (Guard Page) 로 설정한다.3. CPU가 보호 페이지에 접근하려 하면 GUARD_PAGE_EXCEPTION 가 발생.4. 이 예외를 처리하는 핸들러에서 페이지 속성을 원래대로 바꾸고 실행이 계속되도록 한다. 페이지의 크기를 계산하려면 먼저 운영체제에게 디폴트 페이지 크기를 질의해야 한다.이를 위해 GetSystemInfo() 함수를 이용해 SYSTEM_INFO 구조체 정보를 구한다.SYSTEM_INFO 구조체의 dwPageSize가 시스템의 페이지 크기 값을 나타낸다. 페이지의 접근 권한 정보를 구하고 변경하는 방법은 ,1. 메..