본문 바로가기
Systemhacking/Base info

How to use pwntools

by reindeer002 2021. 1. 20.
728x90

우선 모듈을 로드하기 위해 반드시 아래의

from pwn import*

를 적어주고 마지막엔 쉘을 획득한 상태를 유지하기 위해

p.interactive()

를 적어주자

 

1. 실행

[LOCAL]

p = process('파일명')

[SERVER]

p = remote('IP', Port)

s = ssh('username', 'IP', port = 'port', password = 'PASSWORD')

 

2. 데이터 전송

p.send('content')

-> '\n'를 제외한 전송

-> read함수에 사용

p.sendline('content')

-> '\n'를 포함한 전송

p.sendafter('content1', 'content2')

-> content1의 문자열을 읽은 후 content2를 전송

p.sendlineafter('content1', 'content2')

-> content1의 문자열을 읽은 후 content2 + '\n'를 전송

 

3. 데이터 수신

p.recv(size)

-> 출력된 문자 size개를 읽음

p.recvuntil('str')

-> str까지의 문자열을 읽음

 

4. 데이터 변환

[packing]

p32('addr'), p64('addr')

-> 각각 4byte, 8byte의 크기를 맞춰야 한다.

[unpacking]

u32('packed value'), u64('packed value')

-> 단 u64를 사용할 때 64bit에서 libc의 값은 6byte이므로 ljust를 통해 8byte로 unpacking하기!

ex) data = u64(p.recv(6).ljust(8, '\x00'))

[10 진수 -> 16 진수]

hex(dec value)

 

추가적인 정보는 아래 티스토리를 참고하라(정리가 아주 잘 되어있음).

[python] pwntools 모듈 정리 (tistory.com)

 

[python] pwntools 모듈 정리

[pwntools] pwntools 설치 - cmd[관리자 권한] 에서 pip install pwntools라고 입력해서 설치를 하면 된다. - 만약 설치가 안된다면 pip 환경변수 설정이 안되있는 것이므로 환경변수를 설정하자. [python]환경변

security-nanglam.tistory.com

 

728x90

'Systemhacking > Base info' 카테고리의 다른 글

Fastbin Double Free  (0) 2021.04.04
Heap Base  (0) 2021.04.03
What is GOT & PLT  (0) 2021.01.24
Security Techniques 1.  (0) 2021.01.22
Tools setting  (0) 2021.01.22

댓글