일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- davtest
- Container
- 보안
- Kublet
- AttackGraph
- Chrome 작업관리자
- cgroups
- ip forwarding
- Shift + ESC
- Social Network in Game
- 강의
- 패시브스캐닝
- 화이트해커
- airdecap-ng
- OIDC
- NMAP
- decap
- 액티브스캐닝
- Mimikatz
- Mac
- 프로젝트
- dnsenum
- 공격그래프
- 계정 탈취
- OpenID Connect
- recon-ng
- SecurityMetric
- 무선채널
- 넷크래프트
- 대학원
- Today
- Total
네른
pwntools API 정리 본문
그동안 개념을 공부한다고 pwntools 없이 했었는데, 이참에 이 모듈에는 익숙해져보기로 함
1. process
- 로컬 바이너리를 대상으로 익스플로잇을 수행할 떄
- p = process('프로세스명')
2. remote
- 원격 서버를 대상으로 수행할 때
- p = remote('사이트', '포트')
3. send/recv
- 프로세스에 데이터 전송 및 받기
- p.send() / p.sendline() / p.sendlineafter('문자열', 'aa') - 문자열이 출력된 후 aa\n를 입력
- data = p.recv(128) -- 받은 데이터를 최대 128byte 만큼 data에 저장
- data = p.recvn(128) -- 데이터를 딱 128byte 만큼 받음. 받을때까지 대기
- data = p.recvuntil('문자열') -- 문자열을 받을 때 까지 계쏙받기
4. packing / unpacking
- p32(0x41414141) : 0x41414141을 32비트 패킹하기(결과는 AAAA)
- p64(0x4141414142424242) : 0x4141414142424242를 64비트로 패킹하기(결과는 AAAABBBB)
- u32() / u64()
5. interactive
- p.interactive : 직접 입력을 주고 출력을 볼 때 사용
6. elf
- e = ELF('프로세스명') : ELF 헤더 정보를 가져옴
7. context.log
- exploit 로깅용
8. context.arch
- 아키텍처 정보를 프로그래머가 지정
- context(arch='amd64', os='linux') 와 같이 사용가능
9. shellcraft
- 공격에 주로 사용되는 쉘코드들을 모아둔 모듈
- payload = shellcraft.sh() : 쉘을 실행하는 쉘코드를 만드는것
- 이 외에도 다양하게 있음 shellcraft.open() 이라거나 등등
- https://docs.pwntools.com/en/stable/shellcraft/amd64.html 여기서 볼 수 있음 (64bit 쉘코드)
10. asm
- 생성한 쉘코드를 기계어로 변환하는것
'강의 정리 > 드림핵 정리' 카테고리의 다른 글
Stack Buffer Overflow (0) | 2022.02.15 |
---|---|
Calling Convention (0) | 2022.02.15 |
orw shellcode (0) | 2022.02.11 |
2. FSB - Format String Bug / Double Free / Use After Free (0) | 2021.02.24 |
1. BOF - Buffer OverFlow / OOB - Out Of Boundary / Off-by-one (0) | 2021.02.23 |