許多人想要學習黑客基礎知識,成為一名電腦高手,但是苦苦沒有教程怎麼辦?學習啦小編就在這裡教大家黑客基礎教程中黑客入侵滲透教程,希望能幫到大家。
黑客基礎教程中黑客入侵滲透教程有一種被動操作系統識別方法,就是監控不同系統之間網絡包的情況來判斷目標的操作系統類型siphon被用來進行這方面的測試,這個工作原理如下:
主要TCP的四個字段判斷:
1,TTL:出站的包的存活時間;
2,Window size:窗口大小;
3,DF:是否設置了不准分片位;
4,TOS:是否設置了服務類型。
綜合這些信息可以大概判斷出目標的系統,但不能百分百確定。
黑客入侵滲透第一步:查點
利用查點技術可以得到比前面講的更多更具體的有用信息,例如:帳戶信息等。
1,Windows系統查點技術
利用NetBIOS規則,首先介紹NetBIOS,NetBOIS位於TCP/IP之上,定義了多個TCP和UDP端口。
----TCP
(1),139:nbsession:NetBOIS會話。
例如:net use \\IP\ipc$Content$nbsp;" " /user:" ".
(2),42:WINS:Windows Internet名字系統(UDP端口也是42)。
----UDP
(1)137:nbname:名字查詢。
例如:nbtstat -A IP //03中顯示的不是計算機名就是用戶名
(2)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$Content$nbsp;" " /user:" "
c:\user2sid \\IP guest //得到了SID的前半部分s-1-5-21-1123561945-1580818891-1957994488-501
s是sid的前綴,後面跟的是1表示版本號,5用於標識發放sid的授權實體,5指NT/2 000。21-1123561945-1580818891-1957994488唯一地標識域和工作組。不同的用戶 只是最後的相對標識符不一樣。現在用sid2user查詢系統的用戶名了:
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
2UNIX類系統的查點技術
1,$showmount -e www.target.com //前提2049號端口開著(NFS)
2,$finger @www.target.com //還有rusers
3, $telnet www.target.com 25
vrfy root //證實是否有root
expn adm
quit
黑客入侵滲透第二步:具體的分析漏洞
針對特定目標進行了以上分析後,總結出最好的入侵思路,選擇入侵工具,做好入侵的准備工作是必須,有時入侵時間的選擇也是很重要的,因為會涉及到正常的公司網絡的正常通信,甚至會使惡意的網絡在你入侵測試就發生了,最直接的漏洞利用方法,我認為是溢出漏洞了,因為他直接就可以得到對方的系統權限,返回一個 和在本地一樣的SHELL環境,此時無所不能:溢出攻擊的分類有:
1,WINDOWS下的和UNIN下的
一般原理,就用戶提交的參數范圍超過了在內存中保存的本地變量的范圍,而程序 或者系統並沒有對輸入的參數進行合理的長度檢查,導致了被調用函數的返回地址 被覆蓋,如果用一個跳轉到我們提交的shellcode的地方的地址代替,那麼我們的s hellcode就可以運行,成功得到了目標的系統權限。此外還有格式化串漏洞,導致這個漏洞的原因是在處理用戶數據的參數時沒有過濾 用戶提交的,格式化符號,例如%n這個將允許輸出的參數的個數保存在內存中,惡意構造此漏洞用戶將會向內存的任何位SHELLCODE的地址。
2,常見漏洞類型
UNIX下的本地漏洞很多,挖掘起來也較容易,他主要有以下幾種類型:
1,環境欺騙
一般指PATH環境變量的欺騙,就是說如果一個特權的程序執行了一個外部的命令,那麼我們可以簡單的構造這個外部命令程序,然後修改PATH使這個特權程序能夠去 首先執行我們構造的外部命令程序,而這個外部的命令程序是一個去得SHELL的程序
例如:
bash$cat >ps <
>#!/bin/sh
>EOF
而這個特權程序是:
bash$cat >test.c <
>int main()
>{
>setuid(0);
>system("ps -ef"); /*程序調用了外部命令,但沒有給出這個命令的絕對路徑,
這個是PATH欺騙的前提*/
>}
>EOF
編譯後的test文件具有s為,屬主是root.這樣設置是因為程序test執行時會以root 身份運行特權命令,這樣在他運行時由於調用的是我們偽造的ps命令程序,所以會 產生一個root權限的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,溢出和格式串漏洞
導致這些漏洞的數據來源主要是:
1,命令行參數
2,環境變量
3,特定格式文件的讀取
4,用戶交互十的輸入
緩沖溢出的漏洞是有以下一些函數引起的:
1,strcpy
2, strcat
3, sprintf
4, vsprintf
格式化串的漏洞和以下一些函數有關:
1, print/vprintf
2, fprintf/vfprintf
3, sprintf/vsprintf
4, 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是一個不錯的隱藏程序的東東,日志的有選擇刪除及其偽造等等。