萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 網路基礎知識

網路黑客入侵滲透基礎教程

許多人想要學習黑客基礎知識,成為一名電腦高手,但是苦苦沒有教程怎麼辦?本文教大家黑客基礎教程中黑客入侵滲透教程,希望能幫到大家。

被動作業系統識別方法

有一種被動作業系統識別方法,就是監控不同系統之間網路封包的情況來判斷目標的作業系統類型,siphon 被用來進行這方面的測試,其工作原理如下:

主要 TCP 的四個欄位判斷:

  1. TTL:出站封包的存活時間;
  2. Window size:視窗大小;
  3. DF:是否設定了不准分片位;
  4. TOS:是否設定了服務類型。

綜合這些資訊可以大概判斷出目標的系統,但不能百分百確定。

黑客入侵滲透第一步:查點

利用查點技術可以得到比前面講的更多更具體的有用資訊,例如:帳戶資訊等。

查點技術示意圖

1. Windows 系統查點技術

利用 NetBIOS 規則,首先介紹 NetBIOS,NetBIOS 位於 TCP/IP 之上,定義了多個 TCP 和 UDP 連接埠。

TCP

  • 139:nbsession:NetBIOS 會話。例如:net use \\IP\ipc$ "" /user:""
  • 42:WINS:Windows Internet 名字系統(UDP 連接埠也是 42)。

UDP

  • 137:nbname:名字查詢。例如:nbtstat -A IP // 03 中顯示的不是計算機名就是用戶名
  • 138:nbdatagram:UDP 資料報服務

例如:net send /d:domain-name "Hello" 取得用戶名利用到了 IPC$ 空會話和 sid 工具。sid 工具由兩個小工具組成:user2sid 和 sid2user。user2sid 獲得用戶名或組名的 sid;sid2user 則是輸入一個 sid 而獲得相應用戶名的和組名,sid 就是在建立用戶時而建立的,相當於 UNIX 系統下的 UID,WIN 系統權限的檢查就是通過對 SID 的檢查的。一個 sid 是由一長串數字組成的,其中包含兩個部分,前一部分用來唯一標識一個域,後一部分唯一標識一個用戶名,這部分數字被稱作 rid,即相對標識符,rid 有一定的規律,其取值總是從 500 開始的,超級管理員的 rid 總是 500,而 GUEST 用戶的 rid 總是 501;而新建立的帳戶的 rid 從 1000 開始。

具體步驟:

c:\net use \\IP\ipc$ "" /user:""
c:\user2sid \\IP guest // 得到 SID 的前半部分 s-1-5-21-1123561945-1580818891-1957994488-501
c:\sid2user \\IP 5 21 1123561945 1580818891 1957994488 500
name is cookie
domain is condor
c:\sid2user \\IP 5 21 1123561945 1580818891 1957994488 1001

SNMP 查點

透過預設的管理群字串 PUBLIC 讀取特性,可以得到系統的一些資訊,具體有:介面表、路由表及 ARP 表、TCP 表和 UDP 表、設備表和儲存表、進程表和軟體表、用戶表、共享表。SNMP 工具:snmputil.exe

例如:

  1. 查詢網路介面數目:c:\snmputil get localhost public .1.3.6.1.2.1.2.1.0
  2. 顯示所有的 SNMP 變數內容:c:\snmputil walk localhost public .1.3

2. UNIX 類系統的查點技術

$showmount -e www.target.com // 前提 2049 號連接埠開著 (NFS)
$finger @www.target.com // 還有 rusers
$telnet www.target.com 25
vrfy root // 證實是否有 root
expn adm
quit

黑客入侵滲透第二步:具體的分析漏洞

針對特定目標進行了以上分析後,總結出最好的入侵思路,選擇入侵工具,做好入侵的準備工作是必須,有時入侵時間的選擇也是很重要的,因為會涉及到正常的公司網路的正常通信,甚至會使惡意的網路在你入侵測試就發生了,最直接的漏洞利用方法,我認為是溢出漏洞了,因為他直接就可以得到對方的系統權限,返回一個和在本地一樣的 SHELL 環境,此時無所不能:溢出攻擊的分類有:

  1. Windows 下的和 UNIX 下的

一般原理,就用戶提交的參數範圍超過了在記憶體中保存的本地變數的範圍,而程式或者系統並沒有對輸入的參數進行合理的長度檢查,導致了被調用函數的返回位址被覆蓋,如果用一個跳轉到我們提交的 shellcode 的地方的位址代替,那麼我們的 shellcode 就可以運行,成功得到了目標的系統權限。此外還有格式化串漏洞,導致這個漏洞的原因是在處理用戶資料的參數時沒有過濾用戶提交的格式化符號,例如 %n 這個將允許輸出的參數的個數保存在記憶體中,惡意構造此漏洞用戶將會向記憶體的任何位置寫入 SHELLCODE 的位址。

2. 常見漏洞類型

UNIX 下的本地漏洞很多,挖掘起來也較容易,他主要有以下幾種類型:

  1. 環境欺騙:一般指 PATH 環境變數的欺騙,就是說如果一個特權的程式執行了一個外部的命令,那麼我們可以簡單的構造這個外部命令程式,然後修改 PATH 使這個特權程式能夠去首先執行我們構造的外部命令程式,而這個外部的命令程式是一個去得 SHELL 的程式。
  2. 競爭條件:一般指時序競爭,例如:fp=fopen("test.log","w+"); chown("test.log",getuid(),getgid()); 原理也很簡單,就是如果當前的程式運行時權限是 euid=root,uid=當前用戶,由於檔案 test.log 在打開會執行將檔案的屬主改為當前用戶,所以我們可以在執行完 fopen 之後,chown 之前刪了 test.log,而建立了一個到 /etc/passwd 的符號鏈接,這樣就會將 /etc/passwd 檔案的屬主改為當前的用戶,當前的用戶就可以在 passwd 檔案中將自己的 uid 改為 0,這樣就取得了 system 權限。
  3. 溢出和格式串漏洞:導致這些漏洞的資料來源主要是:命令列參數、環境變數、特定格式檔案的讀取、用戶交互的輸入。緩衝區溢出的漏洞是由以下一些函數引起的:strcpy、strcat、sprintf、vsprintf。格式化串的漏洞和以下一些函數有關:printf/vprintf、fprintf/vfprintf、sprintf/vsprintf、snprintf/vsnprintf。利用工具有 objdump、elfedump 查看目標是否有不安全的以上不安全的函數,如果有可以進行黑盒測試,進而進行反組譯分析程式的上下文和執行流程,利用 strings 可以靜態查找目標的環境變數。

黑客入侵滲透第三步:攻擊 WWW

現在的入侵事件,攻擊 WWW 居多,原因也很簡單,那就是程式設計師在編寫 WEB 腳本程式時更本不注重安全因素,導致了上傳 shell、提升權限之類的嚴重後果,入侵滲透測試主要通過以下幾個方面進行測試:

  1. 搜尋 SQL 注入點;
  2. 搜尋特定目錄和檔案,例如:上傳程式檔案,這個利用價值也很大;
  3. 尋找管理員登陸網頁,進行字典或者 SQL 繞過入侵;
  4. 尋找 WEB 程式的原始碼,進行漏洞挖掘,主要涉及的漏洞類型有:SQL 注入、檔案包含漏洞、目錄跳轉漏洞、以腳本檔案格式保存錯誤日誌漏洞、上傳漏洞;
  5. 在程式碼審核時,不要忘記對程式設計師犯的邏輯錯誤進行查看,例如:函數書寫錯誤
  6. 總是,漏洞的成因歸根到底是由於對用戶的輸入沒有進行嚴格的過濾。

黑客入侵滲透第四步:其他的入侵

  1. 針對資料庫 MSSQL、MYSQL、ORACLE 等資料庫的入侵;
  2. 針對路由、防火牆、IDS 等網路設備的滲透
  3. 無線入侵滲透

黑客入侵滲透第五步:入侵滲透以後

  1. 在成功得到系統級別的權限以後,就要在目標留下後門方便以後進入,當然清除日誌是最為重要的收尾工作,這些方面也有很多的技術可以討論,例如:後門的隱藏(WIN 下的 ADS 是一個不錯的隱藏程式的東西,日誌的有選擇刪除及其偽造等等。
copyright © 萬盛學電腦網 all rights reserved