首页
社区
课程
招聘
[翻译]第一部分:Linux 漏洞利用开发简介
发表于: 2019-5-24 17:49 7472

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

2019-5-24 17:49
7472


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

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


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


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


原链接:007K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3k6#2P5Y4A6&6M7$3g2U0N6i4u0A6N6s2W2Q4x3X3g2U0L8$3#2Q4x3V1k6@1N6i4c8G2M7X3W2S2L8s2y4Q4x3V1k6W2P5s2m8p5k6i4k6Q4x3V1j5&6i4K6u0W2K9s2c8E0L8l9`.`.


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2019-5-27 12:51 被Liary编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 3489
活跃值: (342)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2

第二部分: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转换说明符!


视频转移到网盘:568K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3j5h3&6Q4x3X3g2T1j5h3W2V1N6g2)9J5k6h3y4G2L8g2)9J5c8Y4y4Q4x3V1j5I4N6p5k6c8d9$3k6V1j5K6g2s2e0i4W2q4i4K6u0V1e0h3#2V1f1o6S2I4g2f1u0%4   提取码:92wz


原文链接:73bK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3k6#2P5Y4A6&6M7$3g2U0N6i4u0A6N6s2W2Q4x3X3g2U0L8$3#2Q4x3V1k6@1N6i4c8G2M7X3W2S2L8s2y4Q4x3V1k6W2P5s2m8p5k6i4k6Q4x3V1j5I4x3q4)9J5k6h3S2@1L8h3H3`.


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

第三部分:缓冲区溢出【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编辑 ,原因:
2019-5-27 11:32
0
游客
登录 | 注册 方可回帖
返回