일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 문제풀이
- 보안
- hacking
- 선린인터넷고등학교
- 정보보호
- webhacking.kr
- 버그헌팅
- 웹해킹
- 포너블
- 정보보안
- 워게임
- CTF
- C언어
- 네퓨즈
- wargame.kr
- nefus
- 포렌식
- 해킹
- Pwnable
- webhacking
- WarGame
- 자료구조
- 프로그래밍
- xcz
- 버그바운티
- 시스템
- 블록체인
- 코드게이트
- DVP
- kangsecu
- Today
- Total
kangsecu's B1og
Pwntools 정리 - 1 본문
이번에는 폰툴을 이용하여 페이로드를 작성하면서 뭔가 굉장히 유용한데 가아끔 효율적인걸 까먹어서 그냥 정리하는 글을 작성하려한다.
연결
nc를 통해서 연결 : p = remote("접속주소", port)
ssh로 연결 : s = ssh(“사용자이름”, “접속주소”, port=포트번호 , password=”비밀번호”)
local에서 실행 : p = process("파일경로")
받기
1. recv(int)
그냥 int값 만큼 받아온다. ex) int(p.recv(10),16) > 10바이트를 16진수로 읽어오기 주로 주소가 변할 때 출력해주는 주소를 이용하기 위하여 사용한다.
2. recvuntil(str)
이건 뭔가 문자열이 출력된 후에 무언가를 전송해야할 때 해당 문자열을 받을때 사용한다. 무슨 말이냐,,,
what is your name? 뒤에 페이로드를 전송해야 할 경우 p.recvuntil(" what is your name? ")을 해주면 이 뒤에 다음 명령어를 실행한다.
3. recvline()
이름처럼 1줄을 그대로 받아온다. 나는 아직 딱히 사용해본적이 없는 것 같다.
보내기
1. sendline()
말그대로 한줄을 보내는 것 .
페이로드를 다 작성한 후에 전송할때 보통 많이 사용한다.
ex) p.sendline(payload)
패킹 & 언패킹
1. p32, p64
주소값을 각각 32비트 , 64비트에 맞게 리틀인디언으로 패킹해준다.
ex) p32(0x12345678) >" \x78\x56\x34\x12"로 패킹
p32(0x12345678, endian='big')을 하면 빅인디언도 패킹해준다.
2. u32, u64
위와 반대로 각각 32비트 64비트로 언패킹한다.
ex) u32("\x78\x56\x34\x12") > 305419896 (= 0x12345678 )
마찬가지로 u32("\x78\x56\x34\x12", endian = 'big') 하면 빅인디언도 언패킹 해준다.
그 외의 것
1. ELF
이번에는 peda의 checksec처럼 해당 바이너리의 보호기법 및 아키텍처 등을 출력해주는 ELF다.
이를 통해서 ELF파일이나 libc파일을 열어볼 수 있다.
ex) e = ELF("./test")
2. PLT , GOT , BSS
PLT와 GOT를 이용하면 해당 함수의 PLT와 GOT주소를 알 수 있다.
ex) puts_plt = e.plt["puts"] , puts_got = e.got["puts"] , bss = e.bss()
3.symbols
symbols을 이용하면 해당 함수나 변수의 주소를 알 수 있다.
ex) symbols = e.symbols
4. interactive()
가장 중요한 것 중 하나로, 위의 페이로드를 이용하여 쉘을 딴 후에 이를 이용하여 쉘을 취득한 권한으로 플래그를 확인할 수 있다.
ex) p.interactive()
앞으로 ROP를 추가할 예정이다. + 추가적인 팁들도
'System' 카테고리의 다른 글
one_gadget (0) | 2020.04.27 |
---|---|
함수 네이밍 이용 .dynstr exploit (0) | 2020.04.19 |
Pwnable - Return Oriented Programming(ROP) (0) | 2020.03.10 |
메모리 보호기법(Memory Mitigation) for Pwn (0) | 2020.02.19 |
포너블 공부,, (0) | 2020.02.19 |