應急響應-Webshell

文章目錄

  • 一、Webshell概述
    • 什么是Webshell
    • Webshell分類
      • 基于編程語言
      • 基于文件大小/提供的功能多少
    • Webshell 檢測方法
  • 二、常規處置方法
  • 三、技術指南
    • 1、初步預判
    • 2、 Webshell排查
    • 3、Web日志分析(查找攻擊路徑及失陷原因)
    • 4、系統排查
      • 4.1 Windows
      • 4.2 Linux
    • 5、系統日志
    • 6、流量分析
  • 案例


一、Webshell概述

什么是Webshell

shell的概念源于操作系統,就是一個解析字符串命令并執行的程序。為了動態執行某些功能,編程語言一般會提供一些函數,將用戶輸入的字符串解析為語言代碼,或解析為操作系統命令。典型的PHP一句話木馬

<?phpeval($_GET['cmd']);
?>

通過網絡IO(socket API),獲得cmdeval()cmd字符串當作操作系統命令執行。Webshell就是指JSP、ASP、PHP等編程語言(網頁腳本)的程序,一般帶有命令執行、文件操作等功能。通過Web服務器來通信和調用,并具有shell的功能,稱為Webshell。
在這里插入圖片描述

Webshell分類

基于編程語言

理論上只要是編程語言都可以,只要實現相應的Web框架就行。

基于文件大小/提供的功能多少

  • 大馬
  • 小馬
  • 一句話木馬

Webshell 檢測方法

  • 基于流量:通過流量還原數據包,并對HTTP數據包中的字符串做正則匹配
  • 基于文件:
    • 計算文件的哈希值,創建Webshell樣本hash庫
    • 檢測文件屬性(創建時間、文件權限等)
  • 基于日志:分析日志中進行了什么可疑行為,溯源Webshell

二、常規處置方法

  1. 入侵時間確定
    • Webshell 文件的創建時間 —> 攻擊的時間范圍(根據此時間進行溯源分析、追蹤攻擊者活動路徑)
  2. Web日志分析
    • 重點關注入侵時間前后的日志記錄,尋找攻擊路徑、所利用的漏洞
  3. 漏洞分析
    • 通過日志中發現的問題,針對攻擊者的活動路徑,排查網站存在的漏洞,進行分析
  4. 漏洞復現
    • 對發現的漏洞進行復現,還原攻擊者的活動路徑
  5. 漏洞修復
    • 清除Webshell,修復存在的漏洞

三、技術指南

1、初步預判

1)事件表現:植入webshell,系統可能出現的異常現象
- 網頁被篡改
- 安全設備告警2)判斷Webshell事件發生時間
- 根據異常現象發生能時間,結合Webshell創建時間,定位事件發生的時間段
3)判斷系統架構(定位系統可能存在的漏洞)
項目內容
服務器Windows、Linux等
CMSJeecms、Wordpress、Drupal、TRS WCM、Phpcms、Dedecms等
中間件Tomcat、IIS、Apache、WebLogics、JBoss、Websphere、Jetty等
框架Struts2、Thinkphp、Spring、Shiro、Fastjson等
數據庫MySQL
腳本語言ASP、PHP、JSP等
業務架構前端網頁是否是后端通過FTP上傳的 等

2、 Webshell排查

Windows:D盾、河馬
Linux:河馬、常用搜索命令
在這里插入圖片描述

3、Web日志分析(查找攻擊路徑及失陷原因)

Windows下常見的中間件/Web服務器/HTTP服務器/Web容器默認日志路徑
在這里插入圖片描述
Linux下的路徑
在這里插入圖片描述
常用日志檢索的命令:
在這里插入圖片描述

4、系統排查

攻擊者上傳Webshell之后,往往還會執行進一步操作,如提權、添加用戶、寫入系統后門等,實現持久化駐留。因此還需要做系統排查。

4.1 Windows

到了系統排查這一步,其實是利用操作系統提供的相關組件與配置信息,查找攻擊者的痕跡。在Win10里,Windows提供的相關工具在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools都有相應快捷方式,打開到文件所在目錄,這些工具幾乎都在C:\Windows\system32目錄下。其他版本的,請自行百度
在這里插入圖片描述
在Windows Server 2019下,按win鍵,直接搜索“管理工具”,
在這里插入圖片描述

用戶信息排查

  • 用戶排查:
    • net user查看用戶信息 (看不到隱藏用戶)
    • net user username 查看某個賬戶的詳細信息
  • 隱藏用戶排查
    • 打開【計算機管理】->【本地用戶和組】(家庭版無該組件)

進程排查

  • 進程名稱(異常、不常見的名稱要注意)
  • 進程的路徑、CPU占用信息

服務排查

  • 服務說到底就是進程。比較新的Windows可以直接在任務管理器中看到服務
  • 在這里插入圖片描述
  • 我們可以在【系統信息】->【軟件環境】->【服務】下,看到服務的啟動情況及其對應啟動文件

網絡連接排查

  • netstat -ano -->查看當前網絡連接情況,定位可疑的ESTABLISHED連接

啟動項
可以在按win鍵搜【系統配置】,也可以在命令行輸msconfig,下圖為我新裝的win server 2019
在這里插入圖片描述

計劃任務
任務計劃日志通常存放在C:\Windows\System32\Tasks目錄,可以直接打開系統的【任務計劃程序】進行查看
在這里插入圖片描述
文件排查
攻擊想進一步擴大戰果,就要上傳一些遠控木馬等惡意文件。我們需要排查相關敏感目錄,確定是否存在異常文件。

  • temp相關目錄
    • C:\Windows\temp
    • C:\users\Administrator\AppData\Local\temp
  • recent 相關目錄
    • C:\Documents and Settings\Administrator\recent
    • C:\Documents and Settings\Default User\recent

重點查看攻擊時間范圍內的文件,比如在非系統System32和Syswow64目錄下的svchost.exe文件基本為惡意文件,.ps1為Powershell文件,可以直接編輯查看。

4.2 Linux

用戶排查

  • cat /etc/passwd,是否有未知用戶
  • 重點分析UID為 0 的用戶
    在這里插入圖片描述
    進程排查
  • ps aux , 優先關注CPU、內存占用比較高的進程
    在這里插入圖片描述
  • 根據PID,使用ls -alh /proc/PID,查看其對應可執行程序,或使用lsof -p PID

  • 在這里插入圖片描述

  • lsof -i:port,查看指定端口對應的可執行程序

  • 在這里插入圖片描述

  • 查看隱藏進程,需下載unhide工具

  • 查看系統運行的服務systemctl --type service

網絡連接

  • netstat -anp,優先關注對外連接的進程,或連接高危端口的進程
    netstat 命令詳解
    在這里插入圖片描述
    在這里插入圖片描述

啟動項
Linux中,系統啟動內核掛載跟文件系統,然后啟動并運行一個init程序,init 是非內核進程中第一個被啟動運行的,PID為1。init 讀取其配置文件來進行初始化工作,init 的配置文件如下

操作系統配置文件
CentOS 5/etc/inittab
CentOS 6/etc/inittab、/etc/init/*.conf
CentOS 7/etc/systemd/ststem、/usr/lib/systemd/system

init 進程的會運行開機啟動程序,Linux 為不同的場合分配不同的開機啟動程序,有稱為“運行級別”(runlevel)

運行級別說明
運行級別0系統停機狀態,系統默認運行級別不能為0,否則不能正常啟動
運行級別1單用戶工作狀態,root 權限,用于系統維護,禁止遠程登錄
運行級別2多用戶狀態(沒有NFS)
運行級別3完全的多用戶狀態(有NFS),登陸后進入控制臺命令行模式
運行級別4系統未使用,保留
運行級別5X11 控制臺,登陸后進入GUI模式
運行級別6系統正常關閉并重啟,系統默認運行級別不能為6,否則將不能正常啟動

7個運行級別對應7個目錄,在/et/c/rc[0-6].d,里面的軟鏈接,真實文件都在/etc/rc.d/init.d(內核較新或者不同發行版目錄會有差異)。init.d目錄通常存放一些腳本,類似Windows中的注冊表;rc.local文件會在用戶登陸前讀取,每次系統啟動時都會執行一次。(內核較新的都用systemd,這些文件會舍棄,下圖是rc.local文件的內容)
關于systemd
在這里插入圖片描述

  • cat /etc/init.d/rc.local
  • cat /etc/rc.local
  • ls -alt /etc/init.d

任務計劃

有空再寫

文件排查

5、系統日志

6、流量分析

案例

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37879.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37879.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37879.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CSS中的position屬性有哪些值,并分別描述它們的作用。

聚沙成塔每天進步一點點 ? 專欄簡介? static? relative? absolute? fixed? sticky? 寫在最后 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 歡迎來到前端入門之旅&#xff01;這個專欄是為那…

通達OA SQL注入漏洞【CVE-2023-4166】

通達OA SQL注入漏洞【CVE-2023-4166】 一、產品簡介二、漏洞概述三、影響范圍四、復現環境POC小龍POC檢測工具: 五、修復建議 免責聲明&#xff1a;請勿利用文章內的相關技術從事非法測試&#xff0c;由于傳播、利用此文所提供的信息或者工具而造成的任何直接或者間接的后果及損…

C/C++ 標準模版庫STL(持續更新版)

標準模版庫STL <algorithm> 算法庫 max, min 用于找出一組值中的最大值和最小值 swap 用于交換兩個變量的值 sort 用于對一個范圍內的元素進行排序 lower_bound, upper_bound 用于在已排序的容器中查找元素的下界和上界 unique(a,an)-a 用于在一個范圍內刪除相鄰重…

新的 Python URL 解析漏洞可能導致命令執行攻擊

Python URL 解析函數中的一個高嚴重性安全漏洞已被披露&#xff0c;該漏洞可繞過 blocklist 實現的域或協議過濾方法&#xff0c;導致任意文件讀取和命令執行。 CERT 協調中心&#xff08;CERT/CC&#xff09;在周五的一份公告中說&#xff1a;當整個 URL 都以空白字符開頭時&…

在 docker 中快速啟動 Apache Hive

介紹 在偽分布式模式下&#xff0c;在Docker容器內運行Apache Hive&#xff0c;可以提供以下功能&#xff1a;快速啟動/調試/為Hive準備測試環境。 快速開始 1. 拉取鏡像 從DockerHub&#xff1a;https://hub.docker.com/r/apache/hive/tags中拉取鏡像。目前發布了3個鏡像&…

gitlab修改遠程倉庫地址

目錄 背景&#xff1a; 解決&#xff1a; 1.刪除本地倉庫關聯的遠程地址&#xff0c;添加新的遠程倉庫地址 2.直接修改本地倉庫關聯的遠程倉庫地址 3.打開.git隱藏文件修改遠程倉庫地址 4.拉取代碼報錯(git host key verification failed) 背景&#xff1a; 公司搬家&#…

數字圖像處理 - 圖像處理結合機器學習的應用示例

在本文中,特別關注樹葉分類機器學習技術的實現。我們的目標是演示如何利用機器學習算法來分析一系列葉子照片,從而實現準確分類并提供對植物領域有價值的算法。 圖像處理中機器學習的本質 機器學習使計算機能夠學習模式并根據視覺數據進行預測,徹底改變了圖像處理領域。在葉…

image has dependent child images

問題&#xff1a;很多none的鏡像無法被刪除 解決過程&#xff1a; 1、通過 docker image prune -f 提示可刪除為 0 2、直接進行刪除報錯&#xff1a; docker rmi 8f5116cbc201Error response from daemon: conflict: unable to delete 8f5116cbc201 (cannot be forced) - im…

銀河麒麟安裝php7.1.33

銀河麒麟V10兼容CentOS 8 安裝過程與CentOS類似。 TencentOS3.1安裝PHPNginxredis測試系統_樂大師的博客-CSDN博客 可以參考之前我寫的文章。 不過有2個細節不同&#xff0c;下面說下。 問題1&#xff1a;編譯錯誤提示“error:off_t undefined” 解決方法&#xff1a; 編…

TCP收發信息(C++)

目錄 一、介紹 二、收數據 三、發數據 一、介紹 tcp和udp的區別之一&#xff0c;即tcp是有連接的&#xff0c;udp是無連接的&#xff0c;udp收發數據的代碼可以獨立運行&#xff0c;tcp發數據前必須確保收數據的一方是打開的&#xff0c;否則無法建立連接。 二、收數據 tc…

宋浩線性代數筆記(五)矩陣的對角化

本章的知識點難度和重要程度都是線代中當之無愧的T0級&#xff0c;對于各種雜碎的知識點&#xff0c;多做題復盤才能良好的掌握&#xff0c;良好掌握的關鍵點在于&#xff1a;所謂的性質A與性質B&#xff0c;是誰推導得誰~

MyBatis的SqlSession使用步驟

對MyBatis的SqlSession理解 SqlSession是 MyBatis 框架中的一個接口&#xff0c;用于執行與數據庫相關的操作。它提供了一系列方法&#xff0c;用于查詢、插入、更新和刪除數據等數據庫操作。 SqlSession接口是通過SqlSessionFactory創建的&#xff0c;每個SqlSession實例都代…

Ubuntu22.04復現SHADEWACHER(手動安你就慢了)

因為我是打算跑TC數據集&#xff0c;所以跳過audit安裝。 我的Ubuntu使用的是清華源。 1. Parser Setup 1.1 g apt install g1.2 neo4j Ubuntu22.04換什么源都會導致無法定位軟件包&#xff0c;添加neo4j的官方源又會導致不信任的源。 22.04以下的版本&#xff0c;直接用命…

MySQL 根據多字段查詢重復數據

MySQL 根據多字段查詢重復數據 在實際的數據庫應用中&#xff0c;我們經常需要根據多個字段來查詢重復的數據。MySQL 提供了一些方法來實現這個功能&#xff0c;讓我們能夠快速準確地找到和處理重復數據。本文將介紹如何使用 MySQL 來根據多字段查詢重復數據&#xff0c;并提供…

SIFT 算法 | 如何在 Python 中使用 SIFT 進行圖像匹配

介紹 人類通過記憶和理解來識別物體、人和圖像。你看到某件事的次數越多,你就越容易記住它。此外,每當一個圖像在你的腦海中彈出時,它就會將該項目或圖像與一堆相關的圖像或事物聯系起來。如果我告訴你我們可以使用一種稱為 SIFT 算法的技術來教機器做同樣的事情呢? 盡管…

C語言——動態內存函數(malloc、calloc、realloc、free)

了解動態內存函數 前言&#xff1a;一、malloc函數二、calloc函數三、realloc函數四、free函數 前言&#xff1a; 在C語言中&#xff0c;動態內存函數是塊重要的知識點。以往&#xff0c;我們開辟空間都是固定得&#xff0c;數組編譯結束后就不能繼續給它開辟空間了&#xff0…

貼吧照片和酷狗音樂簡單爬取

爬取的基本步驟 很簡單&#xff0c;主要是兩大步 向url發起請求 這里注意找準對應資源的url&#xff0c;如果對應資源不讓程序代碼訪問&#xff0c;這里可以偽裝成瀏覽器發起請求。 解析上一步返回的源代碼&#xff0c;從中提取想要的資源 這里解析看具體情況&#xff0c;一…

13 計算機視覺-代碼詳解

13.2 微調 為了防止在訓練集上過擬合&#xff0c;有兩種辦法&#xff0c;第一種是擴大訓練集數量&#xff0c;但是需要大量的成本&#xff1b;第二種就是應用遷移學習&#xff0c;將源數據學習到的知識遷移到目標數據集&#xff0c;即在把在源數據訓練好的參數和模型&#xff…

淺談現代醫院手術室IT供配電系統的設計與研究

安科瑞 華楠 &#xff3b;摘要&#xff3d; 隨著人們的生活水平的不斷提高&#xff0c;醫療條件的不斷改善&#xff0c;人們對健康越來越重視同時對醫療條件的要求也越來越高&#xff0c;對醫院手術室醫療設施提出了新的要求。以往醫院普通手術室狀況已不能滿足人們的要求&…

GPT的第一個創作

嗨&#xff0c;大家好&#xff0c;我是賴興泳&#xff01;今天&#xff0c;我要和大家聊一聊前端開發&#xff0c;就像我用音符創造音樂一樣&#xff0c;前端開發也是創造美麗的用戶界面的過程。 前端開發是構建網站和應用程序用戶界面的關鍵部分。就像音樂家需要精心編排音符…