우선 모듈을 로드하기 위해 반드시 아래의
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
'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 |
댓글