Checksec.sh introduction and install. Checksec.sh은바이너리에 어떤 보호 기법이 적용되어 있는지, Objdump를 사용하지 않아도 되게 해주는 스크립트. 다운로드 링크 ==> http://www.trapkit.de/tools/checksec.html
분류 전체보기
32bit linux shellcode(/bin/sh). #gcc -o shellcode shellcode.c -m32 -z execstack.
Python string related methods.
Write shellcode comfortably. 32 - bit Syscall. 64 - bit Syscall. 구조 int $0x80 syscall 최대 6개 입력 ebx,ecx,edx,esi,edi,ebp rdi,rsi,rdx, r10,r9,r8 Ex) mov $0xb, %eax mov $0x3b, %rax lea string_addr, %ebx lea string_addr, %rdi mov $0, %ecx mov $0, %rsi mov $0, %edx mov $0, %rdx int $0x80 syscall Ex2) shell.c 메모리에 있는 코드가 어디에 있든 rdi 레지스터에 "/bin/sh" 문자열 주소를 출력한다.needl1() 및 needle1 레이블은 나중에 검색을 돕는 것이다.즉 0..
The default format for remote attacks in Python.
Using objdump. Disassembly. Diassembly 위는 간단한 C 소스이고, 컴파일한 바이너리 = [ Object file and 실행 파일 ] 파일이 있을 때, 이 바이너리 파일을 Disassembly할 때 objdump를 사용하면 된다. $gcc -c -g hello.c ==> -c로 object 파일만 생성하면서, 소스 코드를 같이 보기 위해 -g 옵션으로 디버그 정보를 추가해서 컴파일한다. $objdump -d -S hello.o ==> -d는 disassemble을 하겠다는 옵션이고, -S는 가능하면 소스와 같이 출력하라는 뜻. 컴파일할 떄 -g 옵션으로 컴파일하지 않았다면, 소스는 출력되지 않는다. ==> -S 대신 -I 옵션으로 사용할 수 있는데, 소스 코드 대신 소스 코..
Create a shellcode. 쉘 코드란 함수의 return address를 임의의 주소로 변경할 경우 임의의 주소에 있는 프로그램을 실행시킬 수 있다.임의의 주소에 프로그램이 있으려면 프로그램이 실행되어 있어야 한다.그 중 가장 강력한 기능을 가지는 shell을 실행시키는 작은 프로그램들을 일반적으로 shellcode라고 한다. 쉘 코드 생성하는 과정. 1. C코드의 구조를 이해.2. 함수의 사용법 확인.3. 함수의 사용법에 따라 어셈블리어 코드 작성.4. Object 목적 코드를 작성.5. 실행 파일을 작성.6. objump 프로그램을 이용해 OP code를 추출. 7. 16진수로 문자열을 변경해서 쉘 코드를 작성. 물론 이 순서대로 할 필요는 물론 없지만, 개인적으로는 이 순서를 정형화시키는 ..
Vim plugin. 주로 language의 syntax highlight 및 편집 기능 같은 것 사용하다가,연관된 것 있나 검색하다가 플러그인을 알게 되었다. 사용하는 언어 선택 후 generate 버튼 눌러주면 generate.vim 파일을 다운받을 수 있다.이거를 홈 디렉터리(linux 기준)로 복사한 후 이름을 .vimrc로 변경해주면 사용할 수 있다.그다음 vim 명령 실행하면 자동적으로 플러그인 설치가 진행한다. cf) 이전에 플러그인을 설치한 적이 없거나, curl이 깔려있지 않다면,sudo apt-get install curl로 curl 설치해주면 된다. 아래 링크로 들어가면 된다. https://vim-bootstrap.com/