在駭客攻擊的行為中往往確認攻擊目標後,通常就會開始執行網路探勘為什麼要執行網路探勘 (Reconnaissance) ? 所謂知彼知己百戰百勝,得知標的資訊後駭客即可對症下藥,針對主機的弱點進行攻擊。
網路探勘主要利用網路上所提供的服務或工具 (例如Whois、Nslookup等等),來取得目標主機的位置及資訊,而網路探勘其實又有分主動式探勘(Active)跟被動式探勘(Passive)。
主動式探勘:傳送特定的封包(TCP、UDP、ICMP)到目標主機,並根據回應封包得到目標主機的相關資訊,例如 Ping、Port Scan、Tracert(Trace Route)、Telnet 等…。
C:\>ping 192.168.0.1
16進位
被動式探勘:不傳送特定的封包,而是監測封包或是第三方工具來取得目標主機的相關資訊,例如 Whois、Google Hacking,簡單的說就是自己的主機不會直接access到目標主機,避免留下記錄。
今天要介紹網路探勘其中的一個小工具Ping指令,相信大家都不陌生一定都有用過,透過簡單的Ping指令即可得知目標的作業系統是Windows還是Linux
Pinging 192.168.0.1 with 32 bytes of data:
Reply from 192.168.0.1: bytes=32 time<10ms TTL=128
Reply from 192.168.0.1: bytes=32 time<10ms TTL=128
Reply from 192.168.0.1: bytes=32 time<10ms TTL=128
Reply from 192.168.0.1: bytes=32 time<10ms TTL=128
Ping statistics for 192.168.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
上圖應該大家都不陌生,但玄機就在於TTL之中了,何謂TTL?TTL(生存時間),指一個封包在通過一個網路時,最長可以逗留的時間。每當封包經過一個路由器,其存活時間就會減一。當其存活時間是 0 時,主機便取消封包,並傳送一個ICMP TTL封包給原封包的發出者。其目的為防止資料包不斷在 IP 網際網路絡上永不終止地循環。
而任何作業系統都有一個預設的TTL值,Linux系統的TTL值為64或255,Windows NT/2000/XP系統的默認TTL值為128,Win7系統的TTL值是64,Windows 98系統的TTL值為32,UNIX主機的TTL值為255。
以這個範例來說TTL=128 就是Windows NT/2000/XP 等作業系統了,不過TTL顯示多少真的就是對應的作業系統嘛?其實不見得,在Windows中可以修改regedit 來改變TTL的預設值,修改方式如下:
開始->執行->regedit
[HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet \Services\ Tcpip\Parameters] "DefaultTTL"=dword:000000ff
[HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet \Services\ Tcpip\Parameters] "DefaultTTL"=dword:000000ff
TTL:255---FF
TTL:128---80
TTL:64----40
TTL:32----20
或是使用十進位更直覺。
Linux 修改方式:
修改TTL值 vi /sys/net/ipv4/ip_default_ttl 將裡面的值修改成需要的即可。
結語:
雖然這方法對真正駭客可能無用,但起碼可以混淆很多人了,大家快去試試看吧。
沒有留言:
張貼留言