완료됨
opcode 형태 질문입니다.
강의에서 /bin/sh 에 대한 execve 셸코드의 opcode는
"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80" 입니다.
그런데 제가 검색을 해 본 바로는
"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80" 더군요
어째서 다른것인가요?
#시스템해킹
#공격기법
작성자 정보
답변
1
wyv3rn
무플 방지 위원회장
쉘코드라는게 결국 쉘을 실행시키는 명령어를 opcode로 변환한건데, opcode를 어떻게 구성하느냐에 따라 다를 수 있습니다.
결국은 그 역할은 같기에 크게 상관 없습니다.
예를 들어 eax를 0으로 만드는 방법으로
mov eax,0
도 있지만
xor eax,eax
라던지
xor edx,edx
mov eax,edx
와 같은 방식도 가능하니까요.
다만 공격 시 사용 가능한 버퍼의 크기에 따라 적절한 크기의 쉘코드를 구성하여 사용하면 됩니다.