內網滲透之內網主機發現技巧
在內網滲透中,為了擴大戰果,往往需要尋找更多主機并且對這些主機進行安全檢測或帳號密碼測試,所以主機發現這個步驟必不可少。我們如何在不使用掃描器的情況下發現更多主機呢?
確定IP段
通常內網地址分三段:10.0.0.0/8、172.16.0.0/12以及192.168.0.0/16。在沒有做任何操作之前,我們可以大概知道內網的IP地址段,不過也有些公司,在內網又會有公網IP的情況,也就是說在內網中可以訪問到的IP段有很多。
下面就主要介紹一下收集IP段的方式。
查看本機的IP地址
Windows下使用:
ipconfig /all
Linux下使用:
ifconfig -a
以Windows為例,執行結果如圖:

從圖中看到,我本機的IP以及下面的子網掩碼,可以說明我所在的IP段是一個C段,我們就可以首先探測一下我所處的IP段,即:192.168.188.0/24。
圖中還有一個IP值得注意,就是dns服務器的IP,通常在內網中,DNS服務器的IP地址未必與我們在同一個C段或者B段,所以從這里也可以看到一個存在的IP段,也是我們要做主機發現掃描的目標IP段。
查看路由表
Windows下使用:
route print
linux下使用:
route -n
以Windows為例,結果如圖:

在上圖可以看出,在路由表中也存在我們上面確定的IP段,這是我自己家的網絡,所以沒有那么復雜,大家在實際環境或者公司網絡中可以看到有多個IP段,這些IP段都是我們可以訪問到的,也是要做主機發現掃描的目標IP段。
查看本地連接信息
Windows下執行:
netstat -ano
linux下執行:
netstat -anp
以Windows為例執行結果如圖:

從圖中看到有很多的IP連接信息,我們并沒有看到內網的IP地址,那是因為內網沒有主機與我這臺主機相連,你想象一下,如果我這臺主機是臺服務器,那么內網用戶訪問服務器時必定會有連接出現,這也是我們收集內網IP段信息的一種方式。
利用net命令
我們知道,在Windows內網環境下,我們可以使用
net view
命令用于顯示一個計算機上共享資源的列表。我們從這個資源列表可以獲取到一些主機名,然后解析出IP地址,這樣不光收集到了一些存活主機,而且還收集了一些IP段。由于沒有環境,就盜用網絡上的圖來填補一下:

我們還可以使用
net session
命令來查看管理員的登錄IP,linux下可以使用
who
來查看,從這里也可以收集幾個IP地址,如果管理員登錄在線的情況下,盜圖如下:

與上面同樣的原理,我們可以遠程列出像文件服務器上連接的用戶信息,我們可以使用老外提供的一個工具netsess.exe來遠程列舉,命令如下:
netsess.exe -h dc01 或 netsess.exe \dc01
結果如圖:

利用dns信息
當我們進入內網的時候,第一時間,我們應該先探測一下內網的dns服務是否存在dns域傳送漏洞,如果存在,我們就可以剩下很多時間并且可以獲取非常全的域名列表,這個列表基本很全的包含了內網所有的存活主機。如何探測dns域傳送請點我。
如果不存在dns域傳送漏洞,在我們收集了一定的主機名之后,我們可以根據主機名的命名規則生成一份主機名字典,然后使用dns解析這些名字,獲得IP之后,再根據IP確定IP段。
利用域信息
如果我們已經獲取到一臺域內的主機權限,那么我們就可以訪問域內的所有信息,這是就可以通過域控制器查詢加入域中的所有主機信息,可以使用如下命令獲取:
dsquery computer 以及 dsquery server
獲得主機以及服務器列表后,解析其IP獲取IP段信息。
用以上幾種方式,在新獲取到一臺主機權限之后做一下這個處理,就可能會收集到更多的IP段。但是有人說了,這樣做多累啊,直接使用Namp或者其他大型掃描器多線程掃描內網的所有IP段不就行了,這樣做當然可以,但是這個動靜多大,會造成各種安全設備報警,還沒趕上進一步滲透,你就直接game over了。老板給的任務完不成了,獎金沒了~~~~
在內網的活動要非常謹慎,動靜越小越好,否則,這篇文章的意義何在?
下面就介紹一下如何用盡量小的動靜發現更多的主機。
如何掃描IP段發現存活主機
在Windows或者linux下都有一個命令:ping,這個命令的功能就是為了網管員在配置完網絡后用來探測網絡連通性的,我們可以利用這個工具,寫一些簡單腳本來批量探測主機是否存活,雖然速度慢點,但是安全可靠,不易被識別。
ping掃描
Windows下可以使用:
ping -n 1 127.0.0.1
linux下使用:
ping -c 1 127.0.0.1
知道核心命令之后,我們可以編寫一個批量掃描的腳本來完成這個操作。
使用arp命令
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。在解析過IP之后會保存在本地的arp表中,所以使用以下命令可以查看本地的arp緩存表,從中獲取到一些IP信息。
arp -a
Windows:

Linux:

使用nbtstat
NBTSTAT命令可以用來查詢涉及到NetBIOS信息的網絡機器。首先看一下幫助信息:

可以使用如下命令查看緩存信息:
nbtstat -c

查看本地的hosts文件
Hosts是一個沒有擴展名的系統文件,可以用記事本等工具打開,其作用就是將一些常用的網址域名與其對應的IP地址建立一個關聯"數據庫",當用戶在瀏覽器中輸入一個需要登錄的網址時,系統會首先自動從Hosts文件中尋找對應的IP地址,一旦找到,系統會立即打開對應網頁,如果沒有找到,則系統會再將網址提交DNS域名解析服務器進行IP地址的解析。查看文件內容可以用下面的命令:
Windows:
type c:\Windows\system32\drivers\etc\hosts

Linux:
cat /etc/hosts

查看本地dns緩存
dns緩存中存在我們解析過的域名信息,當然,也會存在內網中的域名信息,所以查看這些信息也有助于我們發現內網的IP段。
Windows:
ipconfig /displaydns

Linux下需要安裝nscd并且配置它才能緩存dns信息,所以這里就不做介紹。
查看本地用戶的連接信息
這種方式就是收集用戶的使用軟件的連接記錄,像vpn、filezilla、securecrt、winscp、putty等需要遠程連接的軟件,這里就提一下,不做過多解釋,大家自由發揮吧。
其他linux下的命令
findsmb

ip neigh show

smbtree 以及 smbclient -L 192.168.7.42 #由于我本地沒有域環境就不做測試了
掃描工具
在確定內網中存在的IP段之后,我們需要掃描判斷哪些主機存活,這樣才能進一步的滲透,在之前的文章中我主要提了一個就是使用ping掃描,今天做一下補充,不管大家用不用,了解一下還是可以的。
nbtscan
nbtscan是一個掃描WINDOWS網絡NetBIOS信息的小工具,下載地址:
http://unixwiz.net/tools/nbtscan.html
可以使用以下命令來發現主機:
nbtscan-1.0.35.exe 192.168.188.0/24

大家可以自行查看幫助,測試如何使用。
netdiscover
netdiscover是基于ARP的網絡掃描工具,kali下自帶這個工具,可以使用如下命令掃描:
netdiscover -r 192.168.88.0/24

nmap
nmap大家眾所周知,非常強大的端口掃描工具,可以使用以下命令掃描存活主機:
nmap -n -Pn -T5 -sS 192.168.88.0/24

總結
本文大概介紹了在內網信息收集階段,針對主機發現所做個各種姿勢,可能有不全的地方,或者有問題的地方請大家大膽留言,不吝賜教。