Pwn 相关工具使用

0x00 one_gadget

1. 介绍

onegadget 是一个可以在给定的 libc 库中,找能够直接完成 getshell 功能的 gadget 入口地址的工具,不过在使用这些 gadget 之前依旧需要满足某些条件。
使用 onegadget 的优点是不需要设置 “/bin/sh” 字符串参数,不过使用 onegadget 需要知道 libc 版本(没给 libc 的情况下,可以尝试猜测 )

2. 参数

-n:找最靠近某个函数的 gadge
-l:指定搜索级别,显示更多的one gadget
-b:BuildID[sha1],直接搜索某个 libc 的 onegadget,不用下载对应 libc

3. 使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

0x01 libcSearcher

1. 介绍

libcSearcher 是一个可以通过泄露地址计算 libc 基址,并寻找指定函数在内存中真实地址的工具;libc database search 的功能和 libcSearch 类似,不过其是网页版的,无法写成自动化脚本,不过其比 libcSearcher 准确

2. 使用

from LibcSearcher import*                    ## 导入 LibcSearcher 库
obj = LibcSearcher("fgets", 0x7ff39014bd90)  ##  初始化类
obj.add_condition(("fgets", 0x7ff39014bd90)  ##  添加条件
obj.dump("fgets")                            ##  泄露 fgets 函数真实地址

## 计算基址:
libc_base = puts_addr - libc.dump('puts')

## 通过基址计算 system 和 ("/bin/sh"):
system_addr = libc_base + libc.dump('system')
binsh_addr = libc_base + libc.dump('str_bin_sh')

0x02 ROPgadget 使用

--binary      指定文件名
--only        筛选某种格式的 gadget
--string      搜索字符串偏移,ELF 文件中明文字符串
--depth num   rop chain 深度

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

### 配置Docker环境用于PWN工具的安全测试 #### 创建适合的Docker镜像 为了创建一个适用于PWN(即破解二进制程序)练习和竞赛(如CTF)的开发环境,可以从基础Linux发行版开始构建自定义Docker镜像。通常会选择轻量级的基础映像来减少资源消耗并加快启动速度。 ```dockerfile FROM ubuntu:20.04 # 安装必要的软件包和支持HTTPS下载 RUN apt-y software-properties-common && \ add-apt-repository universe && \ apt-get update && \ apt-get install -y wget git python3-pip build-essential libssl-dev libffi-dev python3-dev pkg-config zip g++ make jq curl vim strace ltrace nmap gdb radare2 checksec binutils socat net-tools iproute2 htop tmux screen bash-completion zsh sudo tree cpio bsdmainutils file unzip unrar p7zip-full p7zip-rar xz-utils tar gzip bzip2 lrzip arj rpm alien cabextract mbuffer dosfstools parted ntfs-3g exfat-fuse fuseext2 squashfuse fuse-zip fuseiso fusesmb sshfs unionfs-fuse aufs-tools overlayfs-tools devio kpartx cryptsetup dmsetup losetup mount bind9-dnsutils dnsutils whois traceroute tcptraceroute mtr-tiny tcpdump wireshark tshark aircrack-ng hashcat john hydra medusa patator sqlmap wpscan nikto dirb wfuzz whatweb theharvester recon-ng metasploit-framework exploitdb seclists amass sublist3r eyewitness witnessme nuclei aquatone ffuf gobuster dalfox waybackurls paramspider subfinder assetfinder httpx crobat findomain gauplus anew unew qira rizin pwntools angr triton unicorn-engine capstone keystone pyelftools ropper ropgadget one_gadget gef peda pwndbg # 设置工作目录 WORKDIR /home/woodwhale/workspace/ctftools/ # 复制预编译好的pwndbg至容器内指定位置 COPY ./pwndbg-dev.zip /tmp/ RUN cd /tmp && unzip pwndbg-dev.zip -d pwndbg && mv pwndgb /home/woodwhale/workspace/ctftools/pwntools && rm -rf /tmp/* # 清理缓存以减小最终镜像大小 RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ``` 上述`Dockerfile`脚本会基于Ubuntu 20.04 LTS版本建立一个新的镜像,在其中安装了一系列对于逆向工程、漏洞挖掘以及调试非常有用的工具集[^1]。 #### 构建与运行容器实例 完成编写后保存此文件名为`Dockerfile`,接着在同一路径下执行如下命令: ```bash $ docker build -t my_pwn_env . $ docker run --name=pwn_container -it --rm my_pwn_env /bin/bash ``` 这将会依据刚才准备好的描述文档去制作新的镜像,并立即启动一个交互式的shell供使用者操作[^4]。 #### 使用已有的PWN工具 进入容器之后就可以直接调用之前提到的各种安全研究相关应用程序了。特别是针对二进制分析方面的工作,比如加载GDB加上扩展插件`pwntools`来进行动态调试;或是运用ROPgadget寻找返回导向编程的有效gadgets等[^3]。 例如要解压并配置好`pwndbg`这个强大的GDB增强模块可以这样做: ```bash unzip ~/workspace/ctftools/pwntools/pwndbg-master.zip -d ~/.gdbinit.d/ echo "source ~/.gdbinit.d/pwndbg/gdbinit" >> ~/.gdbinit ``` 这样就完成了基本的设置过程,现在可以在该环境中开展更深入的学习和技术探索活动了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值