写在前面:
!一个好的工具,就如同魔法师手中的魔杖,能够助你轻松驾驭复杂之事,它必须具备三大要素:一是威力无穷,如同烈火焚烧万物;二是灵巧便捷,如同风中之叶,轻盈自如;三是持久耐用,如同山岳般稳固,历久弥新。这样的工具,才能称之为真正的好工具!
工具分享:
一,one_gadget
功能:查找已知的libc中exevce("/bin/sh")语句的地址
用法: one_gadget libc-x.xx.so
二:search-libc
匹配libc版本的神器,通过泄露的函数的值自动搜索好对方服务器所有可能的libc,然后一一列出来提供自己选择,一键搞定。
用ret2libc攻击手法最难受的就是不知道对方的服务器的libc是什么,每次泄露出来的函数还得暂停调试,然后打印出泄露出来的函数的值,再然后去对应的网站上面搜索,每次都会有十多个版本,又要一个一个下,还要一个一个导入脚本当中,再一个一个尝试直到测到正确的版本,太麻烦了,直接自动化给你搜索好,你只需要在它自动搜索后列出来的0-n个版本中输入数字自己选取就可以一键搞定。
使用方法:
libc = LibcSearcher("puts",puts_addr)
libc_base=puts_addr-libc.dump('puts')
system_addr=libc_base+libc.dump('system')
binsh_addr=libc_base+libc.dump('str_bin_sh')
三:IDA
一、IDA是什么?
IDA全称是交互式反汇编器专业版(Interactive Disassembler Professional),人们其简称为IDA,是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。
IDA怎么使用呢?这里给出我的经验总结快捷键:
1.F5 把晦涩难弄的汇编语言转化成通俗易懂的c语言伪代码,简称F5大法
2.shift+F12 自动分析出参考字符串,可以看下有没有直接的自动识别出来的后门可以打
3.按空格 反汇编窗口切换文本和图形
4.按TAB键 其实就是返回上一步操作的键
5.CTRL+s 列举出二进制程序的段的开始地址,结束地址等
6.CTRL + x 跟进字符串所在的函数
7.CTRL + T 搜索字符串
8./ 进行注释
四:pwntools
Pwntools是一个CTF框架和漏洞利用开发库,里面有很多小工具可以使用,还有很多封装好的函数可以用,大大的有利于我们编写脚本
依旧是给出我的使用经验的总结:
1.asm: 汇编与反汇编
2.dynelf: 远程符号泄露
3.elf: elf文件操作
4.gdb: 启用gdb调试
5.craft: shellcode的自动生成器
6.process/remote: 本地连接程序打/远程连接程序打
7.cyclic pattern: 偏移量的计算
五:pwndbg
1.break: 设置断点
2.run: 启动程序
3.continue: 继续执行程序
4.next: 单步执行程序,跳过函数调用
5.step: 单步执行程序,进入函数调用
6.vmmap: 显示进程的虚拟内存的映射
7.quit: 退出gdb
六:ROPgadget
ROPgadget这个工具允许你在二进制文件中搜索代码gadget片段,大大的有利于基本ROP攻击的利用。ROPgadget支持x86、x64、ARM、ARM64、PowerPC、SPARC和MIPS架构上的ELF/PE/Mach-O格式。
它可以对你锁定的程序自动抓取你想要的东西,然后列出来所有的供你选择,直接选取需要用到的gadget片段就行了
使用示例:
# 查找可存储寄存器的代码
$ ROPgadget --binary rop --only 'pop|ret'
# 查找字符串
$ ROPgadget --binary rop --string "/bin/sh"
# 查找有int 0x80的地址
$ ROPgadget --binary rop --only 'int'
写在最后:
一个剑客怎么能少了一柄好剑呢?持续更新ing