Go語言主要用作服務器端開發(fā),其定位是用來開發(fā)“大型軟件”的,適合于很多程序員一起開發(fā)大型軟件,并且開發(fā)周期長,支持云計算的網絡服務。Go語言能夠讓程序員快速開發(fā),并且在軟件不斷的增長過程中,它能讓程序員更容易地進行維護和修改。它融合了傳統(tǒng)編譯型語言的高效性和腳本語言的易用性和富于表達性。
創(chuàng)新互聯(lián)公司是一家成都做網站、成都網站設計、成都外貿網站建設,提供網頁設計,網站設計,網站制作,建網站,按需定制設計,網站開發(fā)公司,從2013年成立是互聯(lián)行業(yè)建設者,服務者。以提升客戶品牌價值為核心業(yè)務,全程參與項目的網站策劃設計制作,前端開發(fā),后臺程序制作以及后期項目運營并提出專業(yè)建議和思路。
Go語言作為服務器編程語言,很適合處理日志、數(shù)據打包、虛擬機處理、文件系統(tǒng)、分布式系統(tǒng)、數(shù)據庫代理等;網絡編程方面,Go語言廣泛應用于Web應用、API應用、下載應用等;除此之外,Go語言還可用于內存數(shù)據庫和云平臺領域,目前國外很多云平臺都是采用Go開發(fā)。
Bishop labs用了兩期博客,前后各總結了9個紅隊工具,共計18個紅隊使用的優(yōu)秀滲透工具,其博客文章也提及,這份清單不是決定性的,也僅用于參考。
創(chuàng)建者: @IAmMandatory
用途:允許 谷歌 Chrome 瀏覽器將受害者的瀏覽器變成測試代理。
優(yōu)點: CursedChrome 可以很容易地在紅隊參與期間模擬惡意瀏覽器擴展。用來劫持 Chrome 瀏覽器,繞過大多數(shù) 2FA 或其他可能存在的安全保護,并利用 cookie 來訪問任何基于網絡的目標。
創(chuàng)建者: @symbolcrash1
用途: Universal Loader 是一個 Golang 庫,可以跨多個平臺(Linux、Windows 和 OSX)從內存中加載共享庫,而無需CGO。
優(yōu)點: Universal Loader 可以用在新的 Apple M1 芯片上,值得一提的是,這個 Golang 庫沒有使用 memfd,這使它成為第一個這樣做的 Golang Linux 加載器。由于這兩個原因,Universal Loader 是一個相當令人印象深刻的紅隊工具。
創(chuàng)建者: QSecure Labs
用途: Overlord 是一個基于 Python 的控制臺命令行界面,用于自動化紅隊基礎設施。
優(yōu)點: 在紅隊參與期間能夠根據需要快速啟動安全基礎設施非常重要,該工具可以節(jié)省大量時間,然后可以將這些時間用于進行一些實際的黑客攻擊。
創(chuàng)作者: @LittleJoeTables和@rkervell
用途: Sliver是一個用 Golang 編寫的跨平臺通用植入框架。
優(yōu)點: 這個工具是兩位 Bishop Fox 研究人員的創(chuàng)意,所以我們的偏見可能會表現(xiàn)出來。類似于商業(yè)工具Cobalt Strike。使 Sliver 值得注意的是諸如使用每個二進制混淆的動態(tài)代碼生成、多個和可擴展的出口協(xié)議以及支持多個操作員同時控制植入物等功能。此外,它易于使用且運行速度快。
創(chuàng)作者: @tillson_
用途: 使用 Githound 來定位暴露的 API 密鑰和其他圍繞 GitHub 浮動的敏感信息。該工具通過模式匹配、提交 歷史 搜索和“獨特的結果評分系統(tǒng)”工作。
優(yōu)點: 像 Githound 這樣的秘密竊取工具并不少見,但這并沒有使這個工具(或其他類似工具)的價值降低。Githound 的一些可能用例包括檢測暴露的客戶 API 密鑰以及員工 API 令牌。如果您進行漏洞賞金,此工具可用于添加書簽 - 有些人報告說,由于它,因此獲得了數(shù)千美元的賞金。
創(chuàng)作者: @browninfosecguy
用途: 這個工具的名字說明了一切,在 PowerShell 中輕松地為 Microsoft Active Directory 設置實驗室。
優(yōu)點: 速度很快,效果很好。可以使用此工具來確保您針對 Active Directory 使用的任何漏洞利用都已完善,然后再將其引入客戶端環(huán)境。對于只想更輕松地測試 Active Directory 的滲透測試員來說非常有用。
創(chuàng)建者: Microsoft Azure 紅隊
用途: 可以使用 Stormspotter 更好地可視化 Azure 攻擊面;此工具可幫助您繪制 Azure 和 Azure Active Directory 對象。
優(yōu)點: 類似滲透測試工具BloodHound概念類似,只是該工具是為 Azure 環(huán)境設計的。對于任何藍色或紫色團隊成員來說,從防御的角度來看,Stormspotter 也非常有用。
創(chuàng)建者: @Void_Sec
用途: ECG 實際上是一種商業(yè)工具。該工具是靜態(tài)源代碼掃描器,能夠分析和檢測 TCL/ADP 源代碼中真實和復雜的安全漏洞。
優(yōu)點: ECG是一種強大的工具,可以填補令人驚訝的空白。正如 VoidSec 在他們的官方文章中所指出的,TCL代碼相當普遍;所以能夠徹底分析漏洞可能會非常有幫助。沒有很多其他工具可以滿足這種獨特的需求,無論是商業(yè)的還是其他的。
創(chuàng)建者: @TryCatchHCF
用途: 可以使用 DumpsterFire 構建“時間觸發(fā)的分布式”安全事件來測試紅隊進攻和藍隊防守。
優(yōu)點: DumpsterFire 將傳統(tǒng)桌面練習提升到一個新的水平,它還使用自動化來在參與期間有效地進行多任務處理(并避開一些更乏味的事情)。DumpsterFire 允許的定制程度令人印象深刻;可以真正定制模擬安全事件來滿足獨一無二的情況。
10.GhostPack
創(chuàng)建者: SpecterOps ( @SpecterOps )
用途: 借助強大的后開發(fā)工具集 GhostPack,可以做各種事情;可以攻擊 KeePass 2.X 數(shù)據庫、復制鎖定的文件、篡改 Active Directory 證書等。
優(yōu)點: GhostPack 是一種滿足黑客需求的“一站式商店”。包含的 13 個工具包括非常有用的 Rubeus、Seatbelt 和 SharpUp。Rubeus 是一個 C# 工具集,直接與 Active Directory 環(huán)境中的 Kerberos 協(xié)議交互,允許直接與 Kerberos 屬性(例如票證和常規(guī)身份驗證)進行通信,然后可以利用這些屬性在網絡中移動。Seatbelt 是一個 C# 項目,可用于面向安全的主機“安全檢查”,而 SharpUp 是一個 C# 工具,可識別本地權限提升路徑。這些工具被無數(shù)紅隊和網絡滲透測試員使用。
創(chuàng)作者: Benjamin Delpy ( @gentilkiwi )
用途: Mimikatz 可以從 Windows 環(huán)境中提取密碼和其他憑據。是一種非常流行的滲透測試工具,已經存在了十多年。但 Mimikatz 會定期維護和更新,以確保仍然是最前沿的工具
優(yōu)點: 將 Mimikatz 視為網絡滲透測試的瑞士軍刀。帶有幾個內置工具,對 Kerberoasting、密碼轉儲很有用,你能想到的,Mimikatz 都可以做到。而且 Mimikatz 不僅適用于那里的進攻性安全專業(yè)人員——防御性安全團隊也可以從中受益(如果你發(fā)現(xiàn)自己處于紫色團隊場景中,這也是個好兆頭)。
創(chuàng)建者: Metasploit 項目 ( @metasploit ),由 Rapid7 與開源社區(qū)合作運營
用途: Metasploit 可以說是世界領先的滲透測試框架,由 HD Moore 于 2003 年創(chuàng)建。Metasploit 包括用于滲透測試幾乎每個階段的模塊,這有助于其普及。包括約 250 個后利用模塊,可用于捕獲擊鍵、收集網絡信息、顯示操作系統(tǒng)環(huán)境變量等。
優(yōu)點: Metasploit 后開發(fā)模塊非常龐大,有一個模塊最突出——Meterpreter 有效載荷。Meterpreter 允許 探索 目標系統(tǒng)并執(zhí)行代碼,并且由于它通過內存 DLL 注入工作,因此不必冒險留下任何操作證據。Metasploit 后開發(fā)功能也非常通用,具有適用于 Windows、Linux 和 OS X 的模塊。
創(chuàng)作者: 阿德里安·沃爾默( @mr_mitm )
用途: 此后利用工具旨在繞過端點檢測和應用程序阻止列表。
優(yōu)點: 可以使用 PowerHub 傳輸文件,而不會在測試環(huán)境中發(fā)出任何安全保護警報,這將使下一次滲透測試更加順暢和輕松。使用此工具領先于 Windows Defender。
創(chuàng)建者: LOLBAS 項目和亞利桑那州安全工程與研究小組
用途: LOLBAS 是一個字典,用于在 Windows 機器上使用二進制文件查找可能的權限提升路徑。LLOLBAS 是與 LOLBAS 協(xié)同工作的攝取器。攝取器會在 Windows 機器上的 LOLBAS 列表中查找所有二進制文件,因此無需猜測或對列表進行排序以查找它們(這可能很乏味)。
優(yōu)點: LOLBAS 項目可搜索機器上可能的權限提升路徑,而 LLOLBAS 允許針對特定機器定制這些路徑。結合這兩個工具,(幾乎)在參與中勢不可擋。作為一個額外的好處,如果出現(xiàn)需要它們的情況,可以方便地使用離線工具。
創(chuàng)作者: @nil0x42
用途: PHPSploit 充當功能齊全的 C2 框架,通過單行 PHP 后門在 Web 服務器上靜默地持久化。
優(yōu)點: PHPSploit 是非安全參與時手頭上的一項了不起的工具——高效、用戶友好且運行安靜。正如其 GitHub 描述所述,PHPSploit 是“由偏執(zhí)狂,為偏執(zhí)狂設計的”。
創(chuàng)作者: 塞瓦加斯
用途: 可以使用 swap_digger 在后期開發(fā)或取證期間自動進行 Linux 交換分析。
優(yōu)點: 在 Linux 交換空間中可以找到各種各樣的好東西,從密碼和電子郵件地址到 GPG 私鑰。Swap_digger 可以梳理這些交換空間并找到高影響力的獎杯,這將使評估更加成功。
創(chuàng)建者: RedCode 實驗室
用途: Bashark 是一個后開發(fā)工具包,顧名思義,是用編程語言 Bash 編寫的。這是一個可以產生巨大結果的簡單腳本。
優(yōu)點: Bashark 工作快速而隱蔽,允許通過創(chuàng)建 Bash 函數(shù)來添加新命令,并清除在目標環(huán)境中使用腳本后可能留下的任何痕跡。
創(chuàng)作者: AlessandroZ
用途: 使用 BeRoot 項目查找可用于在 Windows、Linux 和 OS X 環(huán)境中提升權限的常見錯誤配置。
優(yōu)點: 識別常見的錯誤配置是在網絡中立足的最可靠方法之一,因此找到這些錯誤配置的速度越快越好。BeRoot 項目在這方面提供了極大的幫助。
本文,旨在介紹一些紅隊工具,供大家了解和參考研究之用,不建議任何人利用網絡技術從事非法工作,破壞他人計算機等行為。滲透有風險,入坑需謹慎。法網恢恢,疏而不漏。請正確理解滲透含義,正確利用滲透技術,做網絡安全服務的踐行者。
TrackRay簡介
溯光,英文名“TrackRay”,意為逆光而行,追溯光源。同時致敬安全圈前輩開發(fā)的“溯雪”,“流光”。
溯光是一個開源的插件化滲透測試框架,框架自身實現(xiàn)了漏洞掃描功能,集成了知名安全工具:Metasploit、Nmap、Sqlmap、AWVS等。
溯光使用 Java 編寫,SpringBoot 作為基礎框架,JPA + HSQLDB嵌入式數(shù)據庫做持久化,Maven 管理依賴,Jython 實現(xiàn) Python 插件調用,quartz 做任務調度,freemarker + thymeleaf 做視圖層,Websocket 實現(xiàn)命令行式插件交互。
框架可擴展性高,支持 Java、Python、JSON 等方式編寫插件,有“漏洞掃描插件”、“爬蟲插件”、“MVC插件”、“內部插件”、“無交互插件”和“可交互插件” 等插件類型。
功能展示
主頁
登錄
任務創(chuàng)建
任務列表
任務詳情
無交互接口插件調用
MVC插件示例
交互式插件控制臺
MSF 控制臺
依賴環(huán)境
JDK 1.8
Python 2.7
Maven
Git
Metasploit
Nmap(建議安裝)
SQLMAP(建議安裝)
AWVS
**加粗為必須環(huán)境,沒有安裝程序則無法正常編譯運行
不論是 Windows 還是 linux 一定需要先安裝 JDK1.8 和 Maven。安裝過程這里不做演示。保證 JDK 和 Maven 都在系統(tǒng)環(huán)境變量,能執(zhí)行java -version 和 mvn --version即可。
安裝過程
第一步
手動啟動 AWVS 服務
登錄后臺,生成一個API密匙。
復制密匙和 AWVS 的地址。
找到web/src/main/resources/application.properties配置文件。
修改如下部分
第二步
找到你 python 的第三方庫目錄。
Windows 的一般在 python 安裝目錄下的/Lib/site-packages
Linux 下可以通過輸出 sys.path 來找第三方包路徑
我的是 D:/Python2/Lib/site-packages
同樣找到web/src/main/resources/application.properties配置文件。
修改python.package.path參數(shù)
第三步
安裝 Maven 后找到倉庫位置。
如果沒有在 settings.xml 里配置指定倉庫目錄,默認會在當前用戶目錄中生成一個 .m2的目錄
找到倉庫目錄后修改 application.properties 的 maven.repository.path參數(shù)
第四步
這個是 DNSLOG 回顯檢測漏洞時需要的。
去 ceye.io 注冊一個賬號,拿到給你分配的域名和 TOKEN。
修改配置文件
第五步
啟動 msf 和 sqlmapapi。
如果你是 kali 操作系統(tǒng),可以直接運行startdep.sh。
如果是其他系統(tǒng),則要找到 metasploit 和 sqlmap 的目錄分別執(zhí)行
啟動成功后修改配置文件
第六步
編譯打包程序
等待依賴下載完成和編譯完成,如果以上操作都沒有出現(xiàn)問題則會提示 BUILD SUCCESS
編譯成功后會在當前目錄打包一個trackray.jar就是溯光的主程序。
然后直接執(zhí)行startup.bat或startup.sh溯光就會啟動服務。
沒有拋出異常或ERROR日志,訪問 8080 端口正常。
服務啟動正常后,登錄 iZone 社區(qū)賬號。
**開發(fā)插件建議使用 Intellij IDEA IDE,需要安裝 lombok 插件。
目錄結構
插件
AbstractPlugin
這是交互式插件和非交互式插件的父類。
BASE常量
其中的靜態(tài)常量 BASE 是 /resources/include/ 的所在目錄。
如果你的插件需要額外的靜態(tài)資源,那么你可以在 /resources/include 目錄里創(chuàng)建一個和插件 KEY 相同的文件夾,便于識別,如果沒有在 @Plugin 注解中設置 value 則默認的插件 KEY 就是當前類名首字母小寫。
如 Typecho001 = typecho001
check(Map param)
這是用于檢驗是否合規(guī)的方法,需要被強制重寫,當返回 true 時才會調用 start() 方法
param 參數(shù)是從前臺傳過來的參數(shù)鍵值對。
常被用于檢驗參數(shù)格式是否正確或漏洞是否存在。
after()
在 start() 方法之前調用
before()
在 start() 方法之后調用
start()
這是一個抽象方法,所有繼承了該類的子類都需要重寫這個方法。
在 check 方法 通過后會調用 start() 方法
start() 方法返回值最終會會當做插件結果,響應給前臺。
shell()
調用當前系統(tǒng) shell 來輔助完成插件功能。
executor()
插件執(zhí)行的主方法
crawlerPage
http請求對象(不推薦使用)
fetcher
執(zhí)行 http 請求對象(不推薦使用)
errorMsg
當校驗不通過時,返回給前臺的信息。
param
前臺傳過來的參數(shù)鍵值對
requests
HTTP 發(fā)包工具(推薦使用)
hackKit
hack 常用工具包
無交互插件
無交互插件需要你填寫好所有要填寫的參數(shù),直接請求接口來執(zhí)行插件。
默認需要去繼承 CommonPlugin類。
這是一個抽象類,繼承了 AbstractPlugin
主要多出來兩個屬性:request 和 response。
繼承了 CommonPlugin 的類可以通過調用這兩個屬性來控制請求和響應內容。
無交互插件同時也需要使用 @Rule 和 @Plugin 插件,這兩個注解后面會講到。
在 ,找到相應的插件填寫好參數(shù)提交即可完成調用。
或直接調用接口。
交互式插件
交互式插件一般在命令行控制臺中調用,可以允許你通過命令行交互來完成插件的調用。
交互式插件由 Websocket 實現(xiàn),想要寫一個交互式插件,首先要繼承 WebSocketPlugin 類。
同時設置 @Rule 注解的 websocket 參數(shù)為 true ,如果需要異步交互需要將 sync 也設置為 true。
內部插件
內部插件是不可以通過外部去調用的,需要繼承 InnerPlugin 并使用 @Plugin 注解,通常在漏洞掃描時時會調用。
例如 “網頁爬蟲”,“指紋識別”,“端口掃描” 等,都是通過調用內部插件實現(xiàn)的。
還有用于檢測 SSRF 等漏洞用的 FuckCeye 插件也屬于內部插件。
通過 spring 的自動注入,來注入內部插件到當前對象。
例子可參考 WebLogicWLSRCE.java
爬蟲插件
爬蟲插件會在掃描任務被勾選“網頁爬蟲”時調用,每爬取一條請求就會調用一次爬蟲插件。
爬蟲插件需要繼承 CrawlerPlugin,繼承該類必須重寫 check 和 process 方法。
check 方法用于檢驗請求是否符合插件規(guī)則,以免產生多余請求。
當 check 方法 返回為 true 時會調用 process 方法。
process 方法里寫插件主要檢測代碼。
addVulnerable()
當插件檢測出漏洞時,可以通過調用 addVulnerable() 方法來向數(shù)據庫插入一條漏洞。
requests
requests 屬性為請求工具包,處理 https 和 http 都很方便。
response
response 屬性為當前爬蟲得到的 HTTP 響應。
task
task 屬性為當前任務對象,如果你的爬蟲插件不是檢測漏洞而希望是檢測一些敏感信息的話可以修改 task.getResult() 里的屬性。
參考 FingerProbe.java 或 InfoProbe.java。
target
爬蟲爬取到的 URL 對象。
fetcher crawlerPage
http 請求對象(不建議使用)。
漏洞掃描插件
漏洞掃描插件會在,掃描任務中勾選“漏洞攻擊模塊”時調用。
漏洞掃描插件分為三種
1.獨立插件
獨立的漏洞掃描插件需要繼承 AbstractExploit 并使用 @Plugin 或 @Exploit
AbstractExploit 中有以下需要了解的方法和屬性。
requests
http / https 發(fā)包工具
target 當前掃描任務的地址。
task
當前掃描任務對象。
check()
check 是一個抽象方法,需要被子類強制重寫。
該方法一般用于檢驗是否符合當前漏洞掃描插件的規(guī)則,以免產生多與請求。
attack()
attack 也是一個抽象方法,需要被子類強制重寫。
該方法是檢測漏洞的主方法。
before()
在 attack 方法前執(zhí)行
after()
在 attack 方法后執(zhí)行
addVulnerable()
當插件檢測出漏洞時,可以通過調用 addVulnerable() 方法來向數(shù)據庫插入一條漏洞。
fetcher crawlerPage
http 請求對象(不建議使用)。
2.漏洞規(guī)則
位于
實際上這是一個“內部插件”,會在勾選漏洞模塊攻擊時調用。
有一些漏洞檢測方法很簡單,只通過簡單的判斷響應體就能識別出來,也就沒有必要再去寫一個獨立的插件而占用空間了。
在 doSwitch() 方法中會先去根據當前任務的指紋識別結果走一遍 switch 流程。
swtich 的每一個 case 都是 WEB 指紋的枚舉對象。
當 switch 找到當前任務 WEB 指紋對應的 case 后,case 內的代碼會通過構建一個漏洞規(guī)則添加到 loaders 集合里。
如果規(guī)則是通用的,可以寫在 switch 的外面。
3.kunpeng JSON插件
kunpeng 是一個 go 語言編寫的 poc 測試框架,這里我對 kunpeng 的 JSON 插件做了一個支持。
只需要按照 kunpeng json 插件的格式規(guī)范創(chuàng)建一個 json 文件到 /resources/json 目錄。
在掃描任務勾選“漏洞攻擊模塊”時會被調用,或通過 MVC 插件調用 。
MVC 插件
位于
MVC 插件的特點在于,他可以像是在寫一個功能一樣,而非簡單的接口式調用。
MVC 插件需要繼承 MVCPlugin 類,并使用 @Rule,@Plugin 注解。
MVCPlugin 內置了一個 ModelAndView 對象, 是 SpringMVC 提供的。
可以通過 setViewName() 來指定視圖層的網頁模板。
通過 addObject(key,value) 向視圖層網頁模板注入參數(shù)。
這里的視圖層是使用 thymeleaf 實現(xiàn)的,需要懂 thymeleaf 的語法。
例子可以參考:com.trackray.module.inner.JSONPlugin
繼承 MVCPlugin 必須要重寫一個 index 方法,這是插件的入口。
如果需要寫其他的功能,就得再創(chuàng)建一個 public 返回值為 void 的無參方法。
并且要在該方法上使用 @Function 注解,該注解的 value 參數(shù)如果不填寫的話則默認的 requestMapping 地址為方法名。
例如
最后還需要在 /module/src/main/resources/templates 創(chuàng)建一個目錄名為插件 KEY 的目錄。
里面存放擴展名為 .html 的模板文件。
Python 插件
python 插件有兩種實現(xiàn)方式。
1.通過命令行實現(xiàn)
這種方式最為簡單,通過在 include 里寫一個 python 腳本。
然后在插件里調用 shell() 方法來執(zhí)行系統(tǒng)命令。
案例可參考 com.trackray.module.plugin.windows.smb.MS17010
但這樣還需要再寫 java 的代碼,對于沒有學過 java 的人來說很不友好。
2.通過jython實現(xiàn)
jython 是一個 Python 語言在 Java 中的完全實現(xiàn)。
我將它的調用過程寫成了一個交互式插件。
你可以通過在 /resources/python/ 目錄下安裝如下規(guī)范去創(chuàng)建一個 python 文件。
在這個 python 文件中需要寫兩個方法。
關于注解
@Rule
一般用在“可交互插件”和“無交互插件”類上。
@Plugin
WEB指紋
這里順便再說一下如何添加指紋庫。
指紋庫位于 base 模塊,是一個枚舉類。
可以在首部或尾部添加一條新的枚舉,盡量使用 $ 開頭。
第一個參數(shù)是 指紋的名稱,如果第二個參數(shù)是 String 類型則是該指紋的說明。
FingerBean 類是指紋匹配對象。
新聞名稱:go語言做滲透,go語言 后端
轉載來于:http://m.newbst.com/article40/dssgdeo.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供、建站公司、外貿網站建設、網站改版、做網站、動態(tài)網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)