셸코드 전송

코드를 강의를 참고하여
캡처.PNG
다음과 같이 작성하였고
objdump를 한 뒤 orw에 해당하는 기계어만 가져와서 \x형태로 만들고 전송하려고 하는데
그냥 전송하면 안된다 해서 (python -c 'print("\x31\xc0...")';cat) | nc host1.dreamhack.games <port> 이런형식으로
터미널에 입력하고 엔터를 눌렀는데 shellcode: 문구만 뜨고 아무런 반응이 없습니다....혹시 어떻게 해야 하나요 처음이라 너무 어렵네요 ㅠㅠ

#pwnable
작성자 정보
답변 2
탈퇴한 이용자
대표 업적 없음

echo -ne "쉘코드" | nc host1.dreamhack.games <포트번호>

이렇게도 한 번 해보실래요?? 아니면...

from pwn import *

p = remote('host1.dreamhack.games',<port>)

shellcode = b'\x55\x48\x89\xe5\x48\xb8\x6f\x72\x6c\x64\x21\x21\x21\x0a\x50\x48\xb8\x48\x65\x6c\x6c\x6f\x2c\x20\x77\x50\x48\x31\xc0\x48\x31\xd2\xb0\x01\x48\x89\xc7\x48\x8d\x34\x24\xb2\x10\x0f\x05\x48\x31\xc0\xc9\xc3\x0f\x1f\x40\x00'

p.send(shellcode)

p.interactive()
아니면 pwntool 있으시면 이렇게 쉘코드 넣어보셔도 좋구요 (쉘코드 넣어서..)

출처 : https://dreamhack.io/forum/qna/1795 ^오^님 보고싶습니다

2022.02.15. 18:19
avatar
d3lphia
대표 업적 없음

제 쉘코드에 오류가 있어서 수정한뒤 전송했더니 해결됐습니다. 다만 한가지 궁금한점이 있는데 강의에서도 그렇고 rax에 파일 주소를 16진수로 변환한 값을 넘겨줄 때 처음 값 부터 바로 넘겨주면 될 것 같은데 항상 push 0x67을 먼저하고 그 다음 값부터 rax에 값을 넘겨주는 이유가 무엇인가요??

2022.02.16. 01:19
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기