pwntools:簡單來說就以一整套pwn工具集,涵蓋了pwn題利用指令碼所需要的各種工具。包括方便的io互動函式,rop、格式化字串等利用的自動化工具,shellcode生成器等等。pwntools是目前最好用也是僅有的大型pwn利用框架。能節省大量編寫指令碼的時間。
pwntools使用參考文獻
pwnlib.asm
asm模組主要通過capstone進行彙編的編譯和反編譯。通常用來編譯各種平台構架的shellcode。
pwnlib.constants
標頭檔案巨集定義的封裝,通過此模組,可以直接獲取一下系統巨集定義對應的整數資料。
pwnlib.context
上下文管理器,通過他來控制一些全域性的資訊。比如目標計算機體系結構,log等級等。控制生成shellcode,log時候的預設行為。
pwnlib.dynelf
通過記憶體leak資料來自動化定位程式中函式位置。及其實用。
pwnlib.encoders
shellcode編碼工具,通過編碼排除shellcode中的特殊字元,防止無法轉化。
pwnlib.elf
讀寫elf檔案結構中的各種資訊。非常方便實用。
pwnlib.fmtstr
格式化字串自動化利用工具。有缺陷,只能使用少數情況。
pwnlib.gdb
可以在指令碼中直接使用此模組attach程序或者啟動gdb
pwnlib.libcdb
libc的database,可以通過一些資訊查詢對應libc
pwnlib.log
通常是pwntools內部**使用
pwnlib.memleak
記憶體洩漏管理工具,方便拼接多次洩露出來的記憶體。
pwnlib.shellcraft
shellcode生成工具
pwnlib.tubes
主要的io工具
pwnlib.util
包含一些列有效的小工具
pwnlib.rop
rop生成工具,可以直接生成32位rop
tubes模組包含remote和process子模組
from pwn import
*io = remote(
"127.0.0.1"
,32152
)# 與網際網路主機互動
io.sendline(
"hello"
)io.send(
"hello"
)# sendline傳送資料會在最後多新增乙個回車
io.recv(
1024
)io.revuntil(
)io.recvline(
"hello"
)# recv()讀取1024個位元組,recvline()會讀取一直到回車,recvline()讀取到指定資料
io.interactive(
)
io = process(
"./bin"
, shell=
true
)#啟動本地程式進行互動,用於gdb除錯
io.p32(
0xdeadbeef
)io.p64(
0xdeadbeefdeadbeef
)io.u32(
"1234"
)io.u64(
"12345678"
)# 將位元組陣列與陣列進行以小端對齊的方式相互轉化,32負責轉化dword,64負責轉化qword
shellcraft&asm
pwntools的shellcraft主要用來生成彙編**形式的shellcode,而asm的作用是根據彙編**編譯出二進位制shellcode。
# 生成執行sh的shellcode並編譯
asm(pwnlib.shellcraft.thumb.linux.sh(
), arch=
"thumb"
)# 可以將thumb換成對應cpu
# 讀取flag並輸出到標準輸出
pwnlib.shellcraft.i386.linux.cat(
"flag"
, fd=
1)
# 使用forkbomb破壞系統(慎用)
pwnlib.shellcraft.i386.linux.forkbomb(
)
contextcontext.log_level =
"debug"
context.arch =
"amd64"
# 設定成debug,pwntools會將所有io資料等輸出,方便編寫poc的時候進行除錯,而arch可以設定攻擊目標的指令構架。
elf
用於讀取elf檔案中的各種結構資料。例如plt,got,函式位址等等。
Pwntools使用介紹
pwntools的許多設定都是通過全域性變數context進行控制的,例如系統 架構 位元組序等都可以通過如下的方法更改 context.clear 清空context context.update arch amd64 設 置架構型別 context.os linux 設定os型別 要進行漏洞利用...
SAS SHARE 介紹及使用
sas share功能 其提供乙個多使用者訪問的資料伺服器,允許多個使用者同時讀寫同乙個資料檔案 除了提供本地資料共享給使用者外,也可以通過遠端路徑共享其它資料給使用者,而無需構架sas connect進行sign on 通過sas access配合,sas share提供了乙個訪問不同資料來源的統...
APT介紹及使用
apt advanced packaging tool 是debian linux和基於debian進行開發的linux發行版 如ubuntu 使用的高階包管理系統.apt最初的設計目的是處理debian系統中的.deb軟體包,但現在通過apt4rpm,已經可以在其他系統處理rpm軟體包了.apt通...