倍可親

回復: 1
列印 上一主題 下一主題

cmd防守

[複製鏈接]

683

主題

2060

帖子

1218

積分

二星貝殼精英

Rank: 4

積分
1218
跳轉到指定樓層
樓主
nqk1949 發表於 2006-3-29 06:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 cmd防守

  一  前言

  翻開網路上的入侵資料看看吧!大多數的入侵都是在cmd下完成的,比較典型的有溢出得到一個system許可權的cmdshell,然後種植一個Tcmd之類綁定了cmd.exe的後門。也有利用web程序的漏洞得到一個webshell然後利用低許可權的cmdshell來提升許可權,最後再種植後門……各種各樣的攻擊都說明入侵和cmd.exe是相關的,因為一個cmd.exe就是一個用戶與系統交互的一個介面,是入侵者進入系統的首要目標。當然,我們不能在這裡坐以待斃,如何防止別人通過溢出得到你的cmdshell,如何知道別人已經進入系統並且獲得cmdshell,如何在人家登陸到我們機器的時候抓住入侵者呢?現在就讓我們打造一個cmd下的終極防線吧。

  二  原理

  網路上談得比較多的一種防範的方法是將cmd.exe設置許可權,這樣的確可以起到很大的作用,但是許可權比較難以確定,並且如果別人自己上傳cmd.exe的話還是可以突破的,然後用nc綁定cmd.exe到一個埠還是可以得到cmdshell。今天我給大家介紹一種新的方法,不用設置cmd的許可權哦!首先說說原理,還是打開你的cmd命令窗口,運行命令cmd /?,看看得到了什麼吧!如圖一。

  

  圖片附件: 200623225137618.jpg (2006-3-27 11:52, 64.95 K)

  

  注意以下內容:

  如果 /D 未在命令行上被指定,當 CMD.EXE 開始時,它會尋找以下 REG_SZ/REG_EXPAND_SZ 註冊表變數。如果其中一個或兩個都存在,這兩個變數會先被執行。

  HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun

  和/或

  HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun

  也就是說如果存在HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun和HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun這兩個鍵值並且你不是用cmd.exe /D啟動cmd進程的話會在啟動cmd.exe之前先去執行這兩個鍵值指定的程序。嘿嘿,想到什麼了,既然可以先於cmd.exe之前執行自己的程序或者腳本,我們就完全可以控制cmd.exe的動作了。

  三  實戰

  我們找到了我們可以利用的東西,現在看看如何利用cmd.exe的這個特性來做些什麼吧!關鍵是編輯

  HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun的內容(沒有的話你可以新建一個)為你自定義的一個腳本的位置,為了方便我們可以使用批處理,我的系統是2000 adv server。譬如你可以在c:\winnt\system32下寫入一個cmd.bat的批處理文件,內容為你希望在啟動cmd.exe進程之前要運行的命令,然後編輯HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun的內容為c:\winnt\system32\cmd.bat如圖二。

  

  圖片附件: 20062322533279.jpg (2006-3-27 11:52, 51.51 K)

  

  假設你的機器並不是經常及時打上補丁,你就可以編輯system32下cmd.bat的內容為exit,這樣就抵禦黑客的遠程溢出攻擊了,因為一般的溢出要麼是反彈一個cmdshell要麼是綁定一個cmdshell,而溢出的shellcode執行cmd之後會首先運行的是我們指定的cmd.bat裡面的內容,而內容正是exit退出,這裡為了給大家示範我指定的命令是pause命令,如圖三。

  

  圖片附件: 200623225322264.jpg (2006-3-27 11:52, 38.29 K)

  

  這樣不知道真相的人肯定會很鬱悶的,即使知道真相如果他是一般的菜鳥的我想對這樣的問題他也是束手無策吧,除非他使用的是其他的shellcode。

  光是這樣的防範還沒有什麼意思,我們最好能夠抓住入侵者,那我們就好好的寫這個cmd.bat腳本吧!要抓住入侵者或者想知道入侵事件發生的時間我們可以定義cmd.bat的內容如下:

  @echo off                                                                       \\關閉命令回顯\@netstat -an>>c:\winnt\system32\net.log                                         \\取得當前的網路連接狀態並輸出到net.log文件,用>>重定向是避免日誌被後來的沖洗掉\@date /t>>c:\winnt\system32\date.log                                             \\取得入侵發生的時間\@time /t>>c:\winnt\system32\time.log

  @exit                                                                             \\退出\\

  這樣當有人溢出的時候他的IP就在日誌里啦!你完全可以根據自己的情況補充這個腳本的內容,如查看進程,查看埠關聯等等,因為不是系統自帶的程序我就不給大家展示了!

  但是是不是只能做這麼多呢?看到以前的雜誌有人寫用telnet愚弄入侵者,有了今天的方法可不只能用telnet愚弄入侵者了,所有的綁定cmd.exe的程序都可以被我們愚弄的。譬如我們在cmd.bat里寫上:

  @echo off                                                            \\關閉命令回顯\@netstat -an>>c:\winnt\system32\net.log                              \\取得當前的網路連接狀態並輸出到net.log文件,用>>重定向是避免日誌被後來的沖洗掉\@date /t>>c:\winnt\system32\date.log                                 \\取得入侵發生的時間\@time /t>>c:\winnt\system32\time.log

  @type c:\winnt\system32\cmd.txt                                       \\列印cmd.txt的內容,也是由我們自己定義的\@pause                                                                 \\暫停程序,讓入侵者惋惜去吧!\@exit                                                                  \\退出程序\\

  這樣我們就可以對入侵者喊話了,喊些什麼呢?罵人的話就不要喊了,我這裡就給自己做個廣告吧,別人telnet上來我的機器上時如圖四

  

  圖片附件: 20062322551170.jpg (2006-3-27 11:52, 55.59 K)

  

  我的日誌內容如圖五。

  

  圖片附件: 200623225517483.jpg (2006-3-27 11:52, 22.72 K)

  

  其實從任何的cmd後門上登陸時都是這樣的效果,我的Tcmd就很鬱悶,呵呵!這些在webshell里也是很有奇效的,大家還可以發揮自己的想象力哦,沒有什麼做不到的。

  四  總結

  文章沒有什麼高深的東西,其實就是cmd的一個屬性,與設置許可權配合使用,用得好的話效果還是很不錯的。有人要問了,這樣設置以後我們自己啟動cmd怎麼辦,很好說的,就是運行的時候用cmd /D參數啟動就可以了。有什麼問題或者建議歡迎到論壇討論,我的ID是劍心。(相關代碼已經收錄)

  附:

  cmd.bat

  @echo off

  @netstat -an>>c:\winnt\system32\net.log

  @date /t>>c:\winnt\system32\date.log

  @time /t>>c:\winnt\system32\time.log

  @echo on

  @type c:\winnt\system32\cmd.txt

  @pause

  @exit

  cmd.reg

  Windows Registry Editor Version 5.00

  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]

  "AutoRun"="c:\\winnt\\system32\\cmd.bat"

0

主題

6

帖子

1

積分

註冊會員

新手上路(初級)

Rank: 1

積分
1
沙發
野舟翁 發表於 2006-3-29 21:36 | 只看該作者
謝謝!
回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 註冊

本版積分規則

關於本站 | 隱私權政策 | 免責條款 | 版權聲明 | 聯絡我們

Copyright © 2001-2013 海外華人中文門戶:倍可親 (http://big5.backchina.com) All Rights Reserved.

程序系統基於 Discuz! X3.1 商業版 優化 Discuz! © 2001-2013 Comsenz Inc.

本站時間採用京港台時間 GMT+8, 2025-8-7 13:34

快速回復 返回頂部 返回列表