首页
论坛
课程
招聘
[翻译]第一部分:Linux 漏洞利用开发简介
2019-5-24 17:49 5423

[翻译]第一部分:Linux 漏洞利用开发简介

2019-5-24 17:49
5423

第一部分 Linux 漏洞利用开发简介


感谢大家捧场!相信你看到这篇文章就会感受到我对漏洞开发利用的热情。我在对 Windows 漏洞利用的开发过程甚至让我陷入对 Ring0 开发的深度和疯狂(感谢 Ryujin 让我痛并快乐着!)。我将会继续编写和发布 Windows 漏洞利用开发教程,但现在是时候将 FuzzySecurity 扩展到 Linxu 开发中了!我的一位好友兼同事 Donato Capitella(又名 Kyuzo)慷慨地提出与我们分享他在这方面的知识和经验,让我们可以从他的经验中学到很多知识。我不愿意用过于冗长的介绍来让读者感到无聊。我只想提一下,这些教程需要对一般操作系统的内部有一定的了解(这是好的 google 搜索所不能教予你的)。现在让我们去寻找发现 shell 吧!

专业工具


用心 / 坚持


保持你冷静的头脑,熟读主题,享受从你熟悉的操作系统中突然弹出一个 shell 的力量!


Linux GDB 调试器 --- 快速参考指南(原链接失效,本土指引)


GNU 调试器通常作为 gdb 被引用为 Linux 上默认调试器,也是我们将在本教程中使用的调试器。命令行界面可能一开始会有点儿令人生畏,但是一旦你习惯它,你就不会后悔努力学习使用它。如果你想使用界面调试器,可以尝试 edb(Evan 的调试器),它的界面风格有点儿类似 windows 上的 OllgDBG。


虚拟化软件


这里有两个选项供选择,免费的 VirtualBox,收费的 Vmware。如果可能的化,我还是建议使用 Vmware;大部分聪明人会找到不需要为此付费的办法!


原链接:http://www.fuzzysecurity.com/tutorials/expDev/9.html






【看雪培训】《Adroid高级研修班》2022年夏季班招生中!

最后于 2019-5-27 12:51 被Liary编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (2)
雪    币: 3436
活跃值: 活跃值 (227)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
Liary 活跃值 2019-5-27 11:28
2
0

第二部分:Linux格式字符利用


首先感谢大家阅读我们的Linux漏洞利用教程系列的第一部分。同时再次感谢Kyuzo花时间与我们分享他的知识!在这一部分中,我们将再次讨论格式字符串的开发利用。格式字符串的漏洞通常发生在程序员想要打印出用户控制的函数,但不清楚用户输入,从而允许恶意攻击者注入自己的格式说明符。这反过来又允许恶意攻击者读写任意内存。


在我自学格式字符串利用基础知识的过程中,我阅读了两个优秀的资源:(1)利用格式字符串漏洞【scut/team Teso - 2001】和(2)格式字符串利用的进展【gera&riq/Phrack - 2002】。我在下面列举了这两种资源的链接,并强烈推荐它们作为背景阅读。

在讲好东西之前,我想提一下默认情况下,gdb 不能操作AT&T语法中的汇编码,对于我们这些已经完成了Windows开发利用的人来说,这有点令人困惑。幸运的时,你可以使用以下命令轻松改变这种状况。


set disassembly-flavor intel

set disassembly-flavor att

资源:


利用格式字符串漏洞(通过scut): 链接

格式字符串利用的进展(通过gera&riq):链接

介绍:


几个月前,b33f和我一起组织额一个关于软件开发的研讨会,将在大学活动中展示。研讨会有两个主要思想:(1)处理非缓冲区溢出漏洞利用;(2)讨论Windows和Linux。因此,我列出一系列不是特别迷人但却更深奥的漏洞列表(!)其中我们就包含有格式字符串,因为在过去几年里,就Linux而言,格式字符串非常重要。举其中一例,在2012年初发布的sudo,在sudo_debug函数中存在格式字符串缺陷,该缺陷随着Fedora和OpenSUSE等主流发行版一起发布。

研讨会结束后,我答应b33f将会为FuzzySecurity贡献一些材料,几个月后,我终于下定决心制作一些关于格式字符串利用的视频。


视频教程第一部分中使用的示例代码:

/* example.c
 * 
 * $ gcc -o example example.c
 * $ execstack -s example # make stack executable
 */
#include <stdio.h>
 
int main() {
    int a = -5;
    float b = 5.5;
    char *c = "My String";
     
    printf("A = %d, B = %f, C = %s\n", a, b, c);
}

视频教程的第一部分和第二部分使用的示例代码:

/* fmt.c - sample program vulnerable to format string exploitation
 * 
 * $ gcc -o fmt fmt.c
 * $ execstack -s fmt # make stack executable
 */
#include <stdio.h>
#include <string.h>
 
int main(int argc, char *argv[]) {
    char b[128];
    strcpy(b, argv[1]);
    printf(b);
    printf("\n");
}


格式字符串漏洞利用教程:


第一个视频介绍了什么是格式字符串,以及它们如何导致信息泄露(一些主题包括:转换说明符用法和直接参数访问)。

第二部分向前推进了一步,展示了如何利用神秘的格式字符串功能的程序,例如神秘的%n转换说明符!


视频转移到网盘:https://pan.baidu.com/s/1tFQKfdc5GMyE-MmdP8qUBw   提取码:92wz


原文链接:http://www.fuzzysecurity.com/tutorials/expDev/10.html


最后于 2019-5-27 12:54 被Liary编辑 ,原因:
雪    币: 3436
活跃值: 活跃值 (227)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
Liary 活跃值 2019-5-27 11:32
3
0

第三部分:缓冲区溢出【Pwnable.kr -> bof】   https://bbs.pediy.com/thread-251536.htm

第四部分:Use-After-Free(Pwnable -> uaf) https://bbs.pediy.com/thread-251558.htm


最后于 2019-5-27 12:00 被Liary编辑 ,原因:
游客
登录 | 注册 方可回帖
返回