網路滲透

ication ication istration

網路滲透的步驟

踩點

踩點可以了解目標主機和網路的一些基本的安全信息,主要有:
1,管理員聯繫信息,電話號,傳真號;
2,IP位址範圍;
3,DNS伺服器;
4,郵件伺服器。
相關搜尋方法:
1,搜尋網頁。
確定目標信息,為以後發動字典和木馬入侵做準備;尋找網頁原始碼找注釋和隱藏域,尋找隱藏域中的"FORM"標記。例如:


可以發起SQL注入攻擊,為以後入侵資料庫做準備。
相關工具:UNIX下的Wget,Windows下的Teleport
2,連結搜尋
目標網站所在的伺服器可能有其他具有弱點的網站,可以進行迂迴入侵,而且可以發現某些隱含的信息。
搜尋方法介紹:
通過各種搜尋引擎:GOOGLE,http://www.dogpile.com/,http://www.hotbot.com,http://www.520hack.com

查點

A,確定目標的域名和相關的網路信息。
搜尋方法;
Whois查詢,通過WHOIS資料庫查詢可以得到以下的信息:
1,註冊機構:顯示相關的註冊信息和相關的Whois伺服器;
2,機構本身:顯示與某個特定機構相關的所有信息;
3,域名:顯示與某個特定域名相關的所有信息
4,網路:顯示與某個特定網路或單個IP位址相關的所有信息;
5,聯繫點:顯示與某位特定人員相關的所有信息
搜尋引擎站:http://www.520hack.com
舉例:Output of: whois http://www.520hack.com
Registrant:
Netease.com, Inc.
36/F Peace World Plaza, No.362-366
Huan Shi Dong Road
Guangzhou, Guangdong 510060
CN
Domain Name: 163.COM
Administrative Contact, Technical Contact:
Netease.com, Inc. http://www.520hack.com
36/F Peace World Plaza, No.362-366
Huan Shi Dong Road
Guangzhou, Guangdong 510060
CN
86-20-85525516 fax: 86-20-85525535
Record expires on 24-Jan-2009.
Record created on 15-Sep-1997.
Database last updated on 10-Feb-2006 03:24:01 EST.
Domain servers in listed order:
NS.NEASE.NET 202.106.185.75
NS3.NEASE.NET 220.181.28.3
B,利用ARIN資料庫可以查詢某個域名所對應的網路地址分配信息。
相關搜尋地址:http://www.520hack.com
利用http://whois.apnic.net/apnic-bin/whois2.pl進行對IP位址的查詢,以蒐集有關的網路信息:
舉例:163.com->202.108.9.16
inetnum: 202.108.0.0 - 202.108.255.255
netname: CNCGROUP-BJ
descr: CNCGROUP Beijing province network
descr: China Network Communications Group Corporation
descr: No.156,Fu-Xing-Men-Nei Street,
descr: Beijing 100031
country: CN
admin-c: CH455-AP
tech-c: SY21-AP
mnt-by: APNIC-HM
mnt-lower: MAINT-CNCGROUP-BJ
mnt-routes: MAINT-CNCGROUP-RR
changed: http://www.520hack.com 20031017
status: ALLOCATED PORTABLE
changed: http://www.520hack.com 20060124
source: APNIC
role: CNCGroup Hostmaster
e-mail: http://www.520hack.com
address: No.156,Fu-Xing-Men-Nei Street,
address: Beijing,100031,P.R.China
nic-hdl: CH455-AP
phone: 86-10-82993155
fax-n 86-10-82993102
country: CN
admin-c: CH444-AP
tech-c: CH444-AP
changed: http://www.520hack.com 20041119
mnt-by: MAINT-CNCGROUP
source: APNIC
person: sun ying
address: Beijing Telecommunication Administration
address: TaiPingHu DongLi 18, Xicheng District
address: Beijing 100031
country: CN
phone: 86-10-66198941
fax-n 86-10-68511003
e-mail: http://www.520hack.com
nic-hdl: SY21-AP
mnt-by: MAINT-CHINANET-BJ
changed: http://www.520hack.com 19980824
source: APNIC
知道了目標所在的網路,可以進行迂迴滲透,尋找薄弱點,進入目標網路,然後在攻擊目標。
C,DNS信息查詢
域名系統允許把一個DNS命名空間分割成多個區,各個去分別保存一個或多個DNS域的名字信息。
區複製和區傳送:DNS伺服器之間是採用區傳送的機制來同步和複製區內數據的。
區傳送的安全問題不在於所傳輸的域名信息,而在於其配置是否正確。因為有些域名信息當中包含了不應該公開的內部主機和伺服器的域名信息。
相關工具:
1,Windows下,nslookup,SamSpade;
2, UNIX下:nslookup,dig,host,axfr
在Windows下的使用方法:
c:\>nslookup
Default server: 目標的DNS伺服器
Address: 目標的IP位址
>set type=ANY //表示接受任何可能的DNS記錄
>ls -d 163.com >zone.163.com.txt //獲得目標域的相關記錄,結果保存在zone.163.com.txt

D,通過Traceroute獲得網路的拓撲結構以及網路網路設備的地址。
相關工具;
Windows下:Tracert支持ICMP協定
UNIX下:Traceroute 支持ICMP和DNS協定,由於多數防火牆已經過濾了ICMP,所以UNIX下的Traceroute是不錯的選擇,而且使用-p n選項可以自己指定使用的連線埠。

網路掃描

面對不同的網路,應該採用不用的掃描方法:
1,對於內部網路,可用類型很多,ICMP協定是普遍要裝上的,在內部網廣播ICMP數
據包可以區分WINDOWS和UNIX系統,傳送類型為8的ICMP的ECHO請求,如果可以受到類型為0的ECHO回應,表明對方主機是存活的。
相關工具介紹:
UNIX下的:fping&gping
WINDOWS下:Pinger特點:速度快,多執行緒。
2,對於外部網路,可用類型也很多,涉及到的原理也有很多,例如:TCP掃描,UDP掃描,其實我是很不願意用掃描工具的,很容易使對方感覺到入侵事件的發生,不論是防火牆還是入侵檢測系統都會或多或少的留下我們的腳印,如果遇到一個勤快的管理員的話,那么這次入侵很可能以失敗告終。
但使用與否依各個喜好而定了:),有時候我們在測試網路或者主機的安全性時,就不能忽視他的存在了,首先,安全測試不是入侵,全面的測試對抵禦黑客和蠕蟲的攻擊是必要的,在這裡推薦的連線埠掃描工具是NMAP,因為他帶有躲避IDS檢測的機制,重組了TCP的三次握手機制,慢掃描機制等等都是其他掃描工具無法比擬的,UDP掃描是很不可靠的,原因有下幾點:這種掃描依靠ICMP連線埠不可達訊息,如果傳送端給目標一個感興趣的連線埠傳送了一個UDP數據包後,沒有收到ICMP連線埠不可打訊息,那么我們認為該連線埠處於打開狀態。
不可靠的原因:
1,路由器可能丟棄UDP分組;
2,很多的UDP服務不也不產生回響;
3,防火牆的常規配置是丟棄UDP分組(除DNS外);
4,休眠狀態的UDP連線埠是不會傳送一個ICMP連線埠不可到達訊息。
還有的掃描工具就是弱點掃描工具,這些工具綜合各種漏洞信息構造漏洞資料庫,去探究存在漏洞沒有打補丁的主機,當然也有針對特定漏洞的檢測發現工具(腳本小子能用,網路安全人員也弄用-:)

目標作業系統類型的檢測原理

Telnet標識和TCP/IP堆疊指紋:
1,網上許多的系統可以直接Telnet到目標,大多會返回歡迎信息的,返回的信息包含了該連線埠所對應的服務軟體的版本號,這個對於尋找這個版本的軟體的漏洞很重要,如果對方開了Telnet,那么可以直接得到對方的系統類型和版本號,這個對於挖掘系統的漏洞很重要(對於溢出來說,不同版本的系統和語言版本的系統來說,RET地址,JMP ESP,地址是不同的)。
2,如今越來越多的管理員懂的了關閉功能標誌,甚至提供偽造的歡迎信息。那么TCP/IP堆疊指紋是區分不同系統的好方法。
1,FIN掃描
給打開的連線埠傳送FIN包,RFC 793規定不返回任何回響,例外的系統是: MS Windows,BSDI,CISCO,HP/UX,MVS和IRIX都返回一個RESET包。
2,TCP初始序列號(ISN)採樣
這種方法利用了在實現TCP連線時使用不同的ISN模式識別系統,可以分成多種模式:傳統的64K增加(舊UNIX OS),隨機增加(新版的Solaris,IRIX,FreeBSD,DIGITAL UNIX和Cray等),真正隨機(Linux 2.0.*,OpenVMS和新版AIX等),Windows系統使用所謂的"時間依賴性"模型,即ISN的增加同某一個短固定的時間間隔有關係,有些主機始終使用固定的ISN,例如3COM集線器(使用0x803)和AppleLaserWriter印表機(0xC7001)。
3,不分片位
目前許多系統在他們傳送的包中使用IP"不分片"位,這主要是想獲得好的運行性能,不過也不是所有的作業系統都有此功能,即使有,其實現的方式可能也不同。因此利用次位或許有利於我們收集更多的有關目標OS的信息。
4,TCP初始窗
TCP初始窗只是簡單地測試返回包的視窗尺寸。Queso和Nmap可以對實際的視窗進行視窗跟蹤。在很多作業系統中是一個常數。例如:AIX是唯一使用0x3F25的作業系統。對於完全重新編寫代碼的NT 5的TCP堆疊,使用0x402E.
5,ACK值
如果傳送一個FIN|PSH|URG,許多作業系統設定ACK等於初始序列號,而Windows和某些印表機將傳送seq 1.如果傳送一個SYN|FIN|PSH|URG到打開的連線埠,不同的Windows系統的實現將很不一致,有時返回seq,有時返回seq 1,甚至返回完全隨機的數值。
6,ICMP錯誤訊息機制
某些作業系統按照RFC 1812的建議,限制不同錯誤訊息的傳送速率。例如:Linux核心(在net/ipv4/icmp.h中定義)限制目標不可到達訊息的產生速率為4秒種內80個,如果超過這個限制將有1/4的懲罰。測試方法是傳送一大串包到某些隨機選取的高連線埠,然後計算返回的不可到達包的數目。
7,ICMP訊息引用(Message Quoting)
RFC規定:ICMP錯誤訊息將引用一小部分導致錯誤訊息包的ICMP訊息內容。對於連線埠不可達訊息,幾乎所有的實現都只傳送所需要的IP頭 8位元組。不過Solaris傳送的內容更多,而Linux傳送的東西最多。這就是我們識別沒有打開任何連線埠的Linux和Solaris主機。
8,ICMP錯誤訊息回射完整性
主機對連線埠不可打錯誤訊息將送回一小部分於是訊息的內容。某些機器送回的包中包括的協定頭部分已經被改變。例如,AIX和BSDI送回的IP總長度是20位元組。而系統 BSDI,FreeBSD,OpenBSD,ULTRIX和VAXen則將原樣送回你所傳送的IP標識符。某些系統(AIX和FreeBSD等)將送回不一致或等於0的校驗和。這同樣適用於UDP校驗和。
Nmap對ICMP錯誤訊息包進行九種不同的測試以標識系統之間的微笑差別。
9,TCP選項
是實現TCP/IP協定時可選的一個部分功能,這跟不同的系統實現有關,這些選項都是挖掘可用信息的好方法。原因是:
1,他們都是可選項,不是所有主機都可以實現的;
2,如果你所傳送的包中對某個選項進行了設定,只要目標支持,那么目標主機就返回此選項;
3,可以在包中設定所有的選項進行測試。
例如:Nmap在每個探測包中設定所有的選項來進行測試:
Windows Scale=10;NOP;Max Segment Size=265;Timestamp;End of Ops;
從返回的的包中查看這些選項,就知道了什麼系統支持他們。
還有一種被動作業系統識別方法,就是監控不同系統之間網路包的情況來判斷目標的作業系統類型,siphon被用來進行這方面的測試,這個工作原理如下:
簽名:
主要TCP的四個欄位判斷:
1,TTL:出站的包的存活時間;
2,Window size:視窗大小;
3,DF:是否設定了不準分片位;
4,TOS:是否設定了服務類型。
綜合這些信息可以大概判斷出目標的系統,但不能100%。

查點

利用查點技術可以得到比前面講的更多更具體的有用信息,例如:帳戶信息等。
1,Windows系統查點技術
利用NetBIOS規則,首先介紹NetBIOS,NetBOIS位於TCP/IP之上,定義了多個TCP和UDP連線埠。
----TCP
(1)139:nbsession:NetBOIS會話。
例如:net use http://www.520hack.com " " /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 http://www.520hack.com " " /user:" "
c:\user2sid http://www.520hack.com guest //得到了SID的前半部分
s-1-5-21-1123561945-1580818891-1957994488-501
s 是sid的前綴,後面跟的是1表示版本號,5用於標識發放sid的授權實體,5指NT/2000。 21-1123561945-1580818891-1957994488唯一地標識域和工作組。不同的用戶只是最後的相對標識符不一樣。現在用 sid2user查詢系統的用戶名了:
c:\sid2user http://www.520hack.com 5 21 1123561945 1580818891 1957994488 500
name is cookie
domain is condor
c:\sid2user http://www.520hack.com 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類系統的查點技術
1,$showmount -e http://www.520hack.com //前提2049號連線埠開著(NFS)
2,$finger @www.target.com //還有rusers
3, $telnet http://www.520hack.com 25
vrfy root //證實是否有root
expn adm
quit

具體的分析漏洞

針對特定目標進行了以上分析後,總結出最好的入侵思路,選擇入侵工具,做好入侵的準備工作是必須,有時入侵時間的選擇也是很重要的,因為會涉及到正常的公司網路的正常通信,甚至會使惡意的網路在你入侵測試就發生了,最直接的漏洞利用方法,我認為是溢出漏洞了,因為他直接就可以得到對方的系統許可權,返回一個和在本地一樣的SHELL環境,此時無所不能:
溢出攻擊的分類有:
1,WINDOWS下的和UNIX下的
一般原理,就用戶提交的參數範圍超過了在記憶體中保存的本地變數的範圍,而程式或者系統並沒有對輸入的參數進行合理的長度檢查,導致了被調用函式的返回地址被覆蓋,如果用一個跳轉到我們提交的shellcode的地方的地址代替,那么我們的shellcode就可以運行,成功得到了目標的系統許可權。
此外還有格式化串漏洞,導致這個漏洞的原因是在處理用戶數據的參數時沒有過濾用戶提交的,格式化符號,例如%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,總之,漏洞的成因歸根到底是由於對用戶的輸入沒有進行嚴格的過濾。

熱門詞條

聯絡我們