<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>

    Cobaltstrike內網滲透神器

    VSole2022-05-22 06:48:33

    前言

    內網滲透是每一個安全工程師繞不過去的難題,往往內網滲透要比其他方面的滲透測試更為頭疼,其實主要原因還是在大家對攻入目標網絡的環境感到陌生罷了。第一次進入目標內網,獨自一人面對龐大的目標系統網絡、各種復雜的分區結構,很容易犯迷糊。如果這時能有個 Team 幫助你一起探索內網、一起協作,顯然會使得內網滲透的難度大大降低。本文要介紹的就是業內知名的一款能夠用于內網滲透時團隊協同作戰的工具“Cobalt Strike”。

    Cobalt Strike 是一款美國 Red Team 開發的滲透測試神器,常被業界人稱為 CS。它是一款以 Metasploit 為基礎的 GUI 的框架式滲透工具,集成了端口轉發、服務掃描、自動化溢出、多模式端口監聽、Winexe 木馬生成、Win dll 木馬生成、Java 木馬生成、office宏病毒生成、木馬捆綁等;釣魚攻擊包括:站點克隆、目標信息獲取、Java執行、瀏覽器自動攻擊等。Cobalt Strike 項目的官網地址:https://www.cobaltstrike.com。

    Cobalt Strike 主要用于團隊作戰,可以說是內網滲透中的團隊滲透神器, CobaltStrike 能夠讓多個攻擊者同時連接到團隊服務器上,共享攻擊資源與目標信心和 Session。要知道眾人拾柴火焰高的道理,當我們發現一個內網控制點后,為了使我們的攻擊收益最大化,最好的辦法就是跟團隊共享資源,給其他成員提供同樣的接入點,Cobalt Strike 很好的做到了這一點。因此 Cobalt Strike 作為一款協同 APT 工具,針對內網的滲透測試和作為 APT 的終端控制功能,使其變成眾多 APT 組織的首選工具。

    實際上 Cobaltstrike 的社區版是大家熟知的 Armitage (一個 MSF 的圖形化界面工具),而 Cobaltstrike 大家可以理解其為 Armitage 的商業版。關于 MSF 框架和 Armitage 圖形工具的簡介,可參加我的另一篇博文:滲透測試-Metasploit實戰:https://blog.csdn.net/weixin_39190897/article/details/104285302。

    基本使用

    Cobalt Strike 4.0的下載和中文使用手冊地址:滲透利器Cobalt Strike4.0下載(附漢化版、視頻教程、中文使用手冊、插件):https://my.oschina.net/u/4587410/blog/4551030。

    CS服務搭建

    Cobalt Strike 分為客戶端和服務端,可分布式操作、協同作戰。服務器端只能運行在 Linux 系統中,可搭建在 VPS 上,團隊成員使用的圖形化客戶都安界面(Client GUI) 連接服務端。

    服務端搭建

    將下載后的 Cobaltstrike 4.1 安裝包上傳到 VPS 服務器上并解壓縮,服務端關鍵的文件是 teamserver,先將其修改位可執行文件,再執行./teamserver可以看到如下說明:


    解釋下啟動參數含義:

    ./teamserver   [/path/to/c2.profile] [YYYY-MM-DD] 必需參數 團隊服務器IP 必需參數 連接服務器的密碼[/path/to/c2.profile] 可選參數 指定C2通信配置文件,體現其強大的擴展性[YYYY-MM-DD] 可選參數 所有payload的終止時間
    

    那么執行以下命令啟動 CS 服務:

    以上就成功搭建好 Cobaltstrike 服務端了,請注意兩點:

    1. Team server 必須以 root 權限運行,以便于監聽端口號為 0–1023 的 Listener;

    2. 同時服務端默認使用 50050 端口監聽來自團隊成員 CS Client 的連接請求。

    客戶端連接

    Cobaltstrike 客戶端在 Windows、Linux、Mac下都可以運行 (需要配置好 Java 環境)。啟動 Cobalt Strike 客戶端,輸入服務端的IP以及端口、連接密碼,用戶名可以任意設置:

    如圖已成功連接到 CS 服務端:

    CS功能概覽

    |Cobalt Strike|<-------New Connection #建立新的連接,允許連接多個服務器端|<-------Preferences  #偏好設置(界面、控制臺樣式設置等)|<-------Visualization #窗口視圖模式(結果輸出模式)              |<-------Pivot Graph #透視圖模式              |<-------Session Table #Session表模式              |<-------Target Table #目標表模式|<-------VPN Interfaces #VPN接入|<-------Listeners #監聽器(創建Listener)|<-------Script Manager #腳本管理功能
    |View|<-------Applications #顯示目標機的應用信息|<-------Credentials #憑證(所有通過Mimikatz抓取的密碼都存儲在這里)|<-------Downloads #下載文件|<-------Event Log #事件日志,主機上線記錄及團隊交流記錄|<-------Keystrokes #鍵盤記錄|<-------Proxy Pivots #代理模塊|<-------Screenshots #查看目標機截圖|<-------Script Console #腳本控制臺|<-------Targets #顯示目標主機|<-------Web Log #Web日志
    |Attacks|<-------Packages              |<-------HTML Application #生成惡意的HTA木馬              |<-------MS Office Macro #生成Office宏病毒文件              |<-------Payload Generator #生成各種語言版本的payload              |<-------USB/CD AutoPlay #生成自動播放執行的木馬文件              |<-------Windows Dropper #捆綁器、實現對文檔類進行捆綁              |<-------Windows Executable #生成EXE的payload              |<-------Windows Executable(S) #把包含payload,Stageless生成EXE|<-------Web Drive-by #釣魚攻擊              |<-------Manage #對開啟的Web服務進行管理              |<-------Clone Site #克隆網站              |<-------Host File #提供Web以供下載某文件              |<-------Scripted Web Delivery #提供Web以供下載powershell              |<-------Signed Applet Attack #使用java自簽名的程序進行釣魚              |<-------Smart Applet Attack #自動檢測java版本進行攻擊              |<-------System Profiler #用來獲取系統信息|<-------Spear Phish #郵件釣魚
    |Reporting #報告展示模塊
    

    權限獲取

    了解了 Cobalt Strike 界面上所提供的功能后,接下來演示下 Cobalt Strike 的使用方法。使用 Cobalt Strike 最主要的目的是為了讓團隊的其他成員也能夠對我們控制的內網肉雞進行操作,所以我們第一步肯定是讓我們的內網受控機成功上線。

    配監聽器&生成Payload

    1、訪問監聽器功能:

    2、創建新的監聽器:

    監聽器的各類參數如下:

    Cobaltstrike 4.1 版本提供了 8 種監聽器,

    1. beacon_xx 系列為 Cobalt Strike 自身內置的監聽器,即在目標主機執行相應的payload,獲取 shell 到 CS 上,包括 dns、http、https、smb 四種方式的監聽器;

    2. foreign 系列為外部監聽器,通常與 MSF 或者 Armitage 聯動,例如獲取 meterpreter 到 MSF上。

    生成 Payload

    假設我們控制了一臺 WIN7 的內網主機,想要生成一個 EXE 類型的 Payload 文件,可使用 Cobalt Strike 自帶的 Attacks 模塊生成我們所需要的Payload 文件:

    選擇監聽器為上面新增配置的監聽器 Test:

    運行Payload & Beacon

    將生成的 Payload 文件 artifact.exe 傳 輸到 Win7 虛擬機(受害主機)并雙擊運行 Payload:

    接著即可看到 Cobalt Strike 客戶端出現了目標主機的信息,同時團隊的其他成員也都可以對這臺機器進行操作了:

    Beacon

    成功將所控制的目標機資源上線之后,團隊內的其他成員即可對該臺機器進行進一步滲透。團隊成員通過點擊目標機右鍵,選擇 Interact 功能(進入 beacon),就可以用它來執行各種命令,開始對目標及進行操作:

    【注意】

    在 Cobalt Strike 中,默認心跳為 60s(即 CS 與受害機默認 60s 才進行一次交互),故執行命令的響應速度很慢,在下載文件時更加明顯,所以根據實戰環境把時間降低,建議不要太快,否則流量會相對明顯。在這里執行命令 sleep 5 可以把交互時間設置為 5 秒。

    同時在 beacon 中,如果想對目標進行命令管理,需要在前面加上shell關鍵詞,如shell whoami、shell ipconfig等。

    但是團隊成員所能操作的就是 Beacon 所提供的各種命令,接下來我們來看一看 Beacon 都提供了什么指令給滲透人員,執行 help 命令即可參看各項命令說明:

    進一步可用help+命令的方式查看具體命令參數說明:

    簡單介紹下各項命令

    Beacon Commands===============    Command                   Description    -------                   -----------    argue                     進程參數欺騙    blockdlls                 在子進程中阻止非Microsoft的DLLs文件    browserpivot              注入受害者瀏覽器進程    bypassuac                 繞過UAC    cancel                    取消正在進行的下載    cd                        切換目錄    checkin                   強制讓被控端回連一次    clear                     清除beacon內部的任務隊列    connect                   通過TCP連接到Beacon    covertvpn                 部署Covert VPN客戶端    cp                        復制文件    dcsync                    從DC中提取密碼哈希    desktop                   遠程VNC    dllinject                 反射DLL注入進程    dllload                   使用LoadLibrary將DLL加載到進程中    download                  下載文件    downloads                 列出正在進行的文件下載    drives                    列出目標盤符    elevate                   嘗試提權    execute                   在目標上執行程序(無輸出)    execute-assembly          在目標上內存中執行本地.NET程序    exit                      退出beacon    getprivs                  對當前令牌啟用系統權限    getsystem                 嘗試獲取SYSTEM權限    getuid                    獲取用戶ID    hashdump                  轉儲密碼哈希值    help                      幫助    inject                    在特定進程中生成會話    jobkill                   殺死一個后臺任務    jobs                      列出后臺任務    kerberos_ccache_use       從ccache文件中導入票據應用于此會話    kerberos_ticket_purge     清除當前會話的票據    kerberos_ticket_use       從ticket文件中導入票據應用于此會話    keylogger                 鍵盤記錄    kill                      結束進程    link                      通過命名管道連接到Beacon    logonpasswords            使用mimikatz轉儲憑據和哈希值    ls                        列出文件    make_token                創建令牌以傳遞憑據    mimikatz                  運行mimikatz    mkdir                     創建一個目錄    mode dns                  使用DNS A作為通信通道(僅限DNS beacon)    mode dns-txt              使用DNS TXT作為通信通道(僅限D beacon)    mode dns6                 使用DNS AAAA作為通信通道(僅限DNS beacon)    mode http                 使用HTTP作為通信通道    mv                        移動文件    net                       net命令    note                      給當前目標機器備注           portscan                  進行端口掃描    powerpick                 通過Unmanaged PowerShell執行命令    powershell                通過powershell.exe執行命令    powershell-import         導入powershell腳本    ppid                      為生成的post-ex任務設置父PID    ps                        顯示進程列表    psexec                    使用服務在主機上生成會話    psexec_psh                使用PowerShell在主機上生成會話    psinject                  在特定進程中執行PowerShell命令    pth                       使用Mimikatz進行傳遞哈希    pwd                       當前目錄位置    reg                       查詢注冊表    rev2self                  恢復原始令牌    rm                        刪除文件或文件夾    rportfwd                  端口轉發    run                       在目標上執行程序(返回輸出)    runas                     以另一個用戶權限執行程序    runasadmin                在高權限下執行程序    runu                      在另一個PID下執行程序    screenshot                屏幕截圖    setenv                    設置環境變量    shell                     cmd執行命令    shinject                  將shellcode注入進程    shspawn                   生成進程并將shellcode注入其中    sleep                     設置睡眠延遲時間    socks                     啟動SOCKS4代理    socks stop                停止SOCKS4    spawn                     生成一個會話     spawnas                   以其他用戶身份生成會話    spawnto                   將可執行程序注入進程    spawnu                    在另一個PID下生成會話    ssh                       使用ssh連接遠程主機    ssh-key                   使用密鑰連接遠程主機    steal_token               從進程中竊取令牌    timestomp                 將一個文件時間戳應用到另一個文件    unlink                    斷開與Beacon的連接    upload                    上傳文件    wdigest                   使用mimikatz轉儲明文憑據    winrm                     使用WinRM在主機上生成會話    wmi                       使用WMI在主機上生成會話
    

    下面看一下一些實際的命令執行效果:

    1、keylogger 鍵盤記錄

    在靶機瀏覽器輸入訪問百度的請求:

    查看鍵盤記錄:

    2、screenshot 屏幕截圖

    查看截圖結果:

    3、net view 查看局域網主機

    4、portscan 執行端口掃描

    如圖可以選擇目標靶機右鍵勾選執行操作:

    此時 Beacon 中會自動執行對應命令并輸出:

    社會工程

    接下來簡單看下 CS 里面的社會工程學功能:

    克隆網站&鍵盤記錄

    該模塊用來克隆一個網站,來獲取用戶的鍵盤記錄:

    被克隆的站點為:

    此時靶機(物理機或者隨便一個主機都行)訪問目標鏈接:

    此時訪問 Web 日志功能可以查看用戶輸入的密碼信息:

    同時記錄往用戶的輸入,站點會自動跳轉到真實的站點鏈接上:

    社工郵件&鏈接傳送

    接下來繼續看下 CS 的一個社工功能——社工郵件:

    配置社工郵件:

    配置描述:

    targets    發送的目標信息,可導入本地的txt 格式:xxxx@xxx.comtmplate    郵件模板,一般在郵件的更多選項中 ,選擇導出,或者顯示原文attachment 附件Embed URL  要嵌入的網址(可以是社工鏈接)Mail server SMTPBounce to  模仿發件人preview    預覽我們的模板文件 
    

    其中郵件模板的獲取如:

    此處 MailServer 配置一直失敗,原因不詳,請知情大佬賜教……

    主機進階

    為了方便接下來的演示,將 Win7 靶機切換到管理員賬戶后重新上線:

    【Win7 切換到管理員賬戶的方法】以管理員身份運行 CMD,執行命令:net user administrator /active:yes,重啟 Windows 系統,然后切換 Administrator 賬戶登錄即可,或者進入桌面后注銷,切換到其他賬戶登錄。

    抓取Hash和dump明文密碼

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

    1、抓取主機用戶密碼 Hash 值(也可以直接輸入命令:hashdump)

    2、使用 mimikatz 抓取明文密碼(也可以直接輸入命令:logonpasswords):

    3、抓取完之后,點擊 “憑證信息”,就會顯示我們抓取過的哈希或者明文。這里我們也可以手動添加或修改憑證信息:

    使用在線 Hash 計算對比下已知的密碼:

    同時發現管理員賬戶是空密碼:

    【注意】內網滲透有一個技術很實用的技術就是,密碼噴灑攻擊。說白就是拿收集到的靶機密碼去碰撞內網其他主機的密碼,往往會發現很多主機密碼是相同的!詳情可參見:域內用戶枚舉和密碼噴射淺析:https://mp.weixin.qq.com/s/ub0whpXQ2Epk3DOsJxjpJw 。

    普通權限用戶提權到管理員

    實際上內網滲透經常碰見的情況就是拿到 shell 后發現是普通管理員,這個時候為了獲得更高權限、讀取密碼 hash 等就需要嘗試進行提權了。為了進行演示實驗,我們將 Win7 靶機繼續切換回普通用戶登錄并上線到 CS 中:

    1、嘗試進行主機提權:

    選擇監聽器和 EXP(此版本的 CS 只有兩類提權的 EXP):

    2、提權失敗:

    3、該默認 EXP 無法提權沒關系,我們還可以自己加入一些提權腳本進去。在 Github 上有一個提權工具包,使用這個提權工具包可以增加幾種提權方法:https://github.com/rsmudge/ElevateKit 。下載好該提權工具包后,導入:

    此時再選擇提權則有多種 EXP 可以選擇了:

    4、發現使用 ms14-058 可成功提權,CS 彈回來一個 system 權限的 beacon :

    5、提權后可以抓取主機用戶密碼 Hash 值了:

    Socks4 代理實現內網穿透

    當我們控制的主機是一臺位于公網和內網邊界的服務器 ,我們想利用該主機繼續對內網進行滲透,于是,我們可以利用 CS 來建立 Socks4 代理。

    1、首先我們先在 Win7 靶機搭建 DVWA 服務:

    2、接著設置 Socks4 代理:

    需要輸入一個未占用的端口即可,CS 會給出一個默認端口,我們直接點擊開始即可。

    3、至此便完成在自己的主機上設置 Socks4 代理(代理 IP 是我們 CS 服務端的 IP,端口即是 1485),如果我們想查看整個 CS 代理的設置,可以點擊 View 查看:

    4、接下來,我在一臺連接著我手機熱點(1號WIFI)的電腦的谷歌瀏覽器設置代理,如下圖所示:

    5、然后訪問 http://192.168.0.106/DVWA/login.php 即可成功訪問到家用網絡 WIFI 環境(2號WIFI)下的 Win7 靶機的內網服務(DVWA靶場),實現內網穿透:

    【注意】實戰經驗總結:

    在實際的滲透測試過程中,我們可以借助已經拿到 Shell 的外網靶機(此處的 Win7) 當跳板機,訪問靶機所在的內網的主機和 Web 服務,使用 Socks4 代理即可在自己的物理機中訪問到目標內網的服務;

    雖然上述直接在物理機的瀏覽器設置 CS 服務器 IP 的代理可以達到訪問目標內網的目的,但是這樣子我們沒法使用 BurpSuite 開展進一步的滲透測試,因此還可以用另一種流量代理方案——在瀏覽器設置 Burp 代理,然后在 Burp 中設置 CS 服務器的 Socks4 代理:

    總結

    Cobaltstrike 功能強大復雜,篇幅所限,不再繼續展開介紹,更多教程請參見:安全客謝公子的文章(很全):CobaltStrike使用詳解 :https://www.anquanke.com/post/id/235251#h3-5;Cobaltstrike 的批量詳細使用教程:CN-SEC 中文網:http://cn-sec.com/archives/tag/cobaltstrike/;
    語雀 xiaogege-yxttw 大佬的專欄:Cobaltstrike:https://www.yuque.com/xiaogege-yxttw/pmozby/cobaltstrike;Github資源合集:Awesome-CobaltStrike:https://github.com/zer0yu/Awesome-CobaltStrike;Cobaltstrike 中文使用手冊:https://pan.baidu.com/share/init?surl=LpMkskfUaBuiwVvQ2vjHPQ,密碼: nifi。
    原文轉自:https://blog.csdn.net/weixin_39190897/article/details/118243520
    
    監聽器代理模式
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    上網搜索這個hdhcms是開源的,我們下載源碼,搜索我們需要利用的文件。上線后第一步,查看自己所獲取的權限whoami。可惜,
    隧道與端口轉發
    2021-11-18 08:26:13
    如果想獲得課程報名資格,請添加文末小助手微信咨詢。查看是否禁止了出站ip或者禁止了出站端口或者禁止了出站協議。情況1:目標禁止出站ip如果目標主機設置了嚴格的策略,防火墻只允許目標內網機器主動連接公網指定的ip。這樣的話,沒法反彈shell。情況2:禁止出站端口Linux系統使用Linux系統自帶命令探測出網端口。
    Windows如果RDP連接上去,可以使用圖形化工具(如御劍)。如果是webshell,可以使用fscan、nmap。重命名Dir,方便后續操作。將客戶端配置刪除?服務端監聽地址?服務端儀表板的端口。log_level記錄的日志級別。執行命令等待frpc連接./frps?#是該條規則在服務端開放的端口號,待會兒用proxyfier連的端口
    https://www.freebuf.com/sectool/389399.html
    檢測內容首先頁面本身沒有透露什么太有趣的內容。不過這是一個由JavaScript觸發的消息,因此我使用Burp歷史記錄來檢查加載的腳本文件。在理想情況下,服務器應執行客戶端執行的所有驗證。最終的安全性只能通過服務器端驗證來提供。我將文件擴展名更改為jpg并重試上傳。
    云函數簡介 云函數是騰訊云為企業和開發者們提供的無服務器執行環境,可以無需購買和管理服務器的情況下運行代碼。只需使用平臺支持的語言編寫核心代碼并設置代碼運行的條件,即可在騰訊云基礎設施上彈性、安全地運行代碼。SCF是實時文件處理和數據處理等場景下理想的計算平臺。服務端配置云函數基礎配置選擇自定義創建,地域自選,部署模式,代碼部署,運行環境Python3.6,其余默認即可。
    System權限是在數據庫中,為了方便接下來的滲透,思路是將System權限上線到CobaltStrike上,在此處執行了從自己的VPS上下載免殺木馬并執行的操作,顯示執行成功,但并未上線。猜測這是臺阿里云的ECS,對出站端口進行了限制,所以反彈不回來。這樣才算是完全控制了這臺云服務器。于是重新生成了木馬,再次在Navicat里執行,它居然上線了!
    筆者重點分析他們之間的關聯關系及架構組成。Wrapper:表示一個 Servlet,它負責管理 Servlet 的生命周期,并提供了方便的機制使用攔截器。
    本文要介紹的就是業內知名的一款能夠用于內網滲透時團隊協同作戰的工具“Cobalt Strike”。Cobalt Strike 是一款美國 Red Team 開發的滲透測試神器,常被業界人稱為 CS。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类