- 博客(18)
- 收藏
- 关注
原创 windows 平台shellcode编写
0x00、介绍比方说你手头上有一个IE或FlashPlayer现成的漏洞利用代码,但它只能够打开计算器calc.exe。但是这实际上并没有什么卵用,不是吗?你真正想要的是可以执行一些远程命令或实现其他有用的功能。在这种情况下,你可能想要利用已有的标准shellcode,比如来自Shell Storm数据库或由Metasploit的msfvenom工具生成。不过,你必须先理解编写shellcode的基本原则,才可以在自己的漏洞利用代码中有效地使用它们。对于不熟悉这个术语的同学们,可以参考一下维基百科:在
2021-05-21 19:57:23 917 1
原创 Windows系统禁止自动更新配置
1关闭系统自动更新服务首先win+r输入services.msc打开服务管理界面,然后找到windows update,双击打开设置,把启动类型改为禁止,服务状态改为停止。然后在上面的恢复菜单栏里面,把重新启动服务改为无操作,点击确定2. 配置本地策略组,使配置生效打开运行界面输入gpedit.msc打开本地策略组,依次打开windows组件,然后找到配置自动更新,双击配置为已禁用,这样就能禁止系统更新啦!QAQ...
2021-04-24 16:04:55 956
原创 Double free(hows2heap)
1.fastbin_dupfast binfast bin主要是用来存放一些小的内存,使用fastbin可以提高小内存的分配效率,在默认情况下,对于SIZE_SZ为4B(32位)的平台,小于64B(字节)的chunk分配请求,和对于SIZE_SZ为8B(64位)的平台,小于128B的chunk分配请求首先会在fast bin中查找是否有所需大小的chunk存在,如果存在,就会直接返回内存资源,如果不存在,才会到其他bins中去查找。fastbins 可以看成一个后进先出的栈,使用单链表来实现,通过 f
2021-04-23 22:02:46 1753
原创 how2heap-first_fit
标题1.first_fit (unsorted bin)first-fit是一个glibc堆管理策略,当程序在分配内存时,malloc会现在first bin或者unsorted bin中查找适合的chunk,如果有适合的chunk,就会直接分配给程序使用,如果没有找到合适的chunk,就会把unsorted bin中的所有chunk放到所属的bins链中去,然后再从这些bins中查找合适的chunk分配给程序,下面是网上基于64位的程序来做的一个展示,代码如下:#include <stdio.
2021-04-23 18:28:28 205
原创 堆 overlapping和漏洞利用
堆 overlapping首先给出源码:```bash```c /* A simple tale of overlapping chunk. This technique is taken from http://www.contextis.com/documents/120/Glibc_Adventures-The_Forgotten_Chunks.pdf */ #include <stdio.h> #include <stdlib.h> #in
2021-03-20 10:14:29 315
原创 攻防世界 dice_game栈溢出+随机数
攻防世界 dice_game栈溢出+随机数检查保护发现是64位程序,并且开启了NX保护和地址随机化上ida发现flag敏感字符,追踪发现sub_B28函数里面可以直接得到flag这里解释一下Fopen函数:FILE *fopen(char *filename, char *mode);filename为文件名(包括文件路径),mode为打开方式,它们都是字符串。Fget函数:函数原型char *fgets(char *str, int n, FILE *stream);参数:
2021-03-19 19:16:01 219
原创 ROP-Ret2Libc概述和利用
ret2libc简介ret2libc就是控制函数的执行libc中的函数,通常是返回至某个函数的 plt 处或者函数的具体位置 (即函数对应的 got 表项的内容)。一般情况下,我们会选择执行 system("/bin/sh"),因此我们通常需要找到 system 函数的地址ret2libc通常可以分为下面这几类:程序中自身就含有system函数和"/bin/sh"字符串程序中自身就有system函数,但是没有"/bin/sh"字符串程序中自身就没有system函数和"/bin/sh"字符串,但给
2021-03-19 18:53:11 1546
原创 利用ROP-Ret2Syscall突破NX保护
利用ROP-Ret2Syscall突破NX保护Ret2text依赖的是系统中有system函数,但是有的程序里面没有system,并且有的程序开启了NX保护,这是就不能使用ret2shellcode自定义shellcode代码,因此,我们就要用ret2Syscall帮忙实现。Gadgets是指在程序中的指令片段,有时我们为了达到我们执行命令的目的,我们需要用到多个Gadgets来完成我们的功能。Gadgets最后一班都有ret,因为要将程序控制权交给下一个Gadget。利用ROP-Ret2Sysca
2021-03-19 18:20:18 244
原创 Rop-Ret2Shellcode-64位实例
Rop-Ret2Shellcode-64位实例前面写过了32位的shellcode,这次继续64位shellcode,当我们的64位程序中没有system函数,并且开启了NX保护时,这时我们需要用到64位的shellcode来执行execve(“/bin/sh”,null,null);如何编写shellcode呢?①想办法调用execve("/binsh" , null, null);②借助栈来传入字符串/bin/sh③系统调用execverax = 0x3b(64bit)rdi = bin_
2021-03-19 18:12:36 895
原创 手动制作shellcode
概括:我们要将自己生成的shellcode汇编文件,编译为.o文件,然后再编译为可执行文件,然后将可执行文件中的有用的代码段单独复制出来,最后我们利用python脚本将我们的这一个文件发送到测试的程序中去一:准备shellcode文件1将汇编代码文件shellcode_32.Asm中代码编译为shellcode_32.o文件命令为:nasm -f elf32 -o shellcode_32.o shellcode_32.asmpush 0x68push 0x732f2f2fpush 0x6e6
2021-03-19 17:59:14 690
原创 Ret2shellcode和NX保护机制
Ret2shellcode和NX保护机制ret2text漏洞利用依赖于程序中存在执行system(“/bin/sh”)的函数,如果没有这个函数,怎么办呢?没有执行shell的函数,没有开启NX保护我们需要传入自定义shellcode,这就利用方式就是ret2shellcodeShellcode是黑客编写的用于实行特定功能的汇编代码,通常是开启一个shell例如:(linux系统下)Execve(“/bin/sh”,null,null);汇编代码展示push 0x68push 0x73f2f
2021-03-19 17:54:55 1417 3
原创 gdb调试64位程序
首先看一下程序源码,要是我们的程序调用system函数#include <stdio.h>void exploit(){system("/bin/sh");}void main(){char buf[20];gets(buf);}我们会用到两个窗口,一个调试,另一个运行脚本首先看一下保护模式,什么都没有开启1,先用objdump –d –M intel ./test 命令查看所有的汇编代码我们要执行的程序在这里,我们要运行的函数是system函数,并且带参数bin/
2021-03-19 17:39:56 614
原创 如何利用printf漏洞突破canary保护
如何利用printf漏洞突破canary保护原理:1、 在所有函数调用发生时,向栈帧内压入一个额外的随机 DWORD,这个随机数被称作“canary”,用 IDA 反汇编时,又被称作“Security Cookie”。2、 canary 位于 EBP 之前,系统还会在.data 的内存区域中存放一个 canary 的副本。3、 当栈中发生溢出时,canary 将被首先淹没,之后才是 EBP 和返回地址。4、 在函数返回之前,系统将执行一个额外的安全验证操作,称作 Security Check。
2021-03-19 17:29:55 429
原创 攻防世界stack2 and ida动态调试
首先按照常规,检查程序保护机制,发现除了pie,都开启了,并且使32位程序。上ida调试,查看伪代码,分析程序,发现程序的功能就是一个字符数组的展示,增加,修改,还有就是求平均值伪代码如下程序的第三个功能就是字符串的修改,这里发现漏洞,这里可以发现在对v13赋值时,程序并没有进行边界检查,这就给了我们栈溢出的机会,我们可以利用栈溢出构造ROP,达到劫持程序的效果。搜索字符串,发现敏感字符,跟进发现后门函数,利用思路:我们利用栈溢出漏洞将返回地址修改为我们的后门函数地址,实现程序劫持。
2020-07-24 10:28:47 411
原创 格式化字符串漏洞简介
格式化字符串简介:这里先介绍一下c语言中格式化字符串:在c语言中的printf,fprintf,sprintf,snprintf等printf函数经常会用到类似%形式的一个或者多个说明符,例如:#include <stdio.h>int main (void) {char a[100];printf("my name is %s",panghu);return 0;}...
2020-07-23 18:29:55 1194
原创 pwnable.tw - hacknote(uaf漏洞利用)
pwnable.tw -hacknote前言:看了几个大佬写的pwnable.tw-hacknote ,自己也尝试写一下;程序分析:首先运行一下程序发现这里有add_note ,delete_note ,print_note三个功能,我们看一下main函数,add_note,和delete_note 函数,main函数:add_note函数:可以看到首先为ptr+note_offs...
2019-12-07 22:01:18 482
原创 pwn hacknote学习(UAF漏洞利用)
hacknote:uaf漏洞通常就是内存块被释放后,其对应的指针没有被置为NULL,然后在下一次使用前,有相应的代码对这块内存进行了修改,当程序再次使用相同的内存空间的时候,我们就能覆盖原来的地址,从而返回我们想要执行的函数的地址。我们通常称释放后没有被置为NULL 指针为dangling pointer。这里贴出源码:#include <stdio.h>#include &...
2019-12-01 18:26:53 2976 1
原创 Ubuntu16.4汇编代码的编写- NASM的安装和使用
一:nasm安装1:下载:http://www.nasm.us/pub/nasm/releasebuilds/2.13/2:解压 tar zxvf xxx.tar.gz进入解压目录:执行./configuremakesudo make install3:通过apr源:sudo apt-get install nasm安装完成,nasm -v 查看安装版本,有版本信息则安装完成二...
2019-11-06 15:29:13 792
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人