2. HOST DIG VÀ NSLOOKUP
THỰC HÀNH
Những công cụ host và nslookup khá giống nhau. Chúng thực thi cơ bản giống nhau chỉ khác là nslookupcung cấp một giao diện tương tác lựa chọn trong khi host dựa trên các dòng lệnh cơ bản.Do chúng tương tự như nhau nên nslookup có thể bị xóa bỏ khỏi gói tiện ích BIND trong tương lai. Vì lý do đó, chúng ta sẽ chỉ tập chung vào công cụ host. Sử dụng mặc định của nslookup và host giống như sau:
[Paris:~] mike% nslookup -silent www.antihackertoolkit.com Server: 20.0.2.1
Address: 20.0.2.1#53 Non-authoritative answer:
www.antihackertoolkit.com canonical name = antihackertoolkit.com. Name: antihackertoolkit.com
Address: 66.92.16.207
[Paris:~] mike% host www.antihackertoolkit.com www.antihackertoolkit.com has address 66.92.16.207
Bạn có thể thấy cả những lệnh nói cho chúng ta biết địa chỉ IP của
http://www.antihackertoolkit.com
[Paris:~] mike% host antihackertoolkit.com antihackertoolkit.com has address 69.250.207.79
Ở đây chúng ta đã khám phá rằng antihackertoolkit.com giải quyết địa chỉ IP tương tự như
http://www.antihackertoolkit.com (không có gì ngạc nhiên).Tiện ích hostcó thể được sử dụng để thu thập thông tin theo những kiểu khác sử dụng tùy chọn dòng lệnh - t<querytype>. Những truy vấn cơ bản cho hostname để ánh xạ địa chỉ (a), đặc tả tên máy chủ (ns), đặc tả xử lý mail (mx), ánh xạ địa chỉ tới tên host (ptr).Bởi vì hầu hết các máy chủ DNS sẽ sử dụng bộ đệm dữ liệu để giảm lượng tìm kiếm và truy vấn chúng phải gửi tới các máy chủ thẩm quyền khác, bản ghi SOA nằm trên máy chủ có thể được sử dụng để chỉ thời gian một mục DNS tồn tại trên bộ đệm trước khi nó hết hiệu lực. Ví dụ, SOA của antihackertoolkit.com từ máy chủ DNS của nó chỉ ra rằng thông tin DNS sẽ chỉ được xem xét hợp lệ trong khoảng 86400 giây (24 giờ) thông qua trường TTL (time-to-live).Sau 24 giờ những máy chủ DNS sẽ dừng sử dụng thông tin bộ đệm về domain và kiểm tra máy chủ DNS chính để tìm nếu thông tin được thay đổi.Một thống kê các trường của SOA được cung cấp trong bảng Table 2-2:
[Paris: ~] mike% host -t mx antihackertoolkit.com
antihackertoolkit.com mail is handled by 0 mail.aidenjones.com [Paris: ~] mike% host -t soa antihackertoolkit.com
antihackertoolkit.com SOA dns22.register.com. root.register.com 200205343 20800 3600 604800 86400
Table 2-2: DNS Start of Authority Field Descriptions
SOA Field Description
serial (version) The current version of the DNS database that contains information about this domain. refresh period Time in seconds for secondary name servers to check for changes on the primary server.
retry refresh this often If a secondary server fails to connect to its primary server, retry the connection after this number of seconds.
expiration period Number of seconds after which a stale record (a record which cannot be refreshed from the primary server) should be removed from the secondary server. minimum TTL Check for refreshes on this particular domain after this number of seconds.
Nếu bạn muốn thử tất cả những kiểu truy vấn tới một máy chủ DSN sử dụng một cờ - a.Nhiều bản ghi SOA của những máy chủ DNS thứ cấp sẽ kiểm tra với những máy chủ DNS cao cấp để cập nhật các bản ghi.Quá trình những máy chủ thứ cấp cập nhật những bản ghi của chúng từ máy chủ cấp cao hơn được gọi là một zone transfer.Hầu hết các máy chủ DNS không cho phép bất kỳ ai thực hiện một zone transfer, bởi vì nó cung cấp những ánh xạ IP/hostname cho mỗi host trong miền. Những người quản trị viên sẽ cấu hình những máy chủ DNS của họ và chỉ những máy chủ thứ cấp mới có thể thực hiện zone transfers.Trong thực tế, đôi khi điều này cũng bị bỏ
quên.Chúng ta chạy một ví dụ zone transfer tới một miền khác: wedgie.org. Hầu hết DNS và những nhà quản trị mạng bắt đầu xử lý các khối zone transfers.
bash-2.03$ host -l wedgie.org
wedgie.org name server got.wedgie.org wedgie.org has address 66.92.16.207 tele.wedgie.org has address 207.296.92.133
fear-bob-the-dinosaur-giving-you-a.wedgie.org has address 229.2.176.36 frozen.otters.give.good.wedgie.org has address 226.62.54.242
painful.wedgie.org has address 226.282.169.29 mini.wedgie.org has address 226.282.169.28 got.wedgie.org has address 66.92.16.207
Chú ý: Khi chúng ta không chỉ ra một kiểu truy vấn , mặc định là những bản ghi A. Nếu bạn muốn tìm tất cả các kiểu bản ghi liên quan tới một miền khi bạn cố gắng chuyển giao vùng (zone transfer), thử host –t any –l domainname.com
Qua ví dụ về zone transfer ở trên bạn có thể tìm thấy một danh sách host và IP của một miền và có thể rất hữu ích cho một cuộc tấn công.Một chuyển giao miền (zone transfer) là một phương thức khám phá thông tin mạng nhanh và dễ dàng.
Lệnh host sử dụng tên máy chủ mặc định như là mặc định khi thực thi các truy vấn. Nếu bạn muốn truy vấn một tên máy chủ khác đơn giản là chỉ ra hostname của nó hoặc địa chỉ IP ở cuối dòng lệnh ví dụ như host – lhttp://www.yahoo.com http://www.dns.yahoo.com
Công dụ dig cũng tương tự như host và nslookup, nhưng nó đưa cho bạn nhiều thông tin đầu vào và đầu ra dạng thô hơn là sự thân thiện của host và nslookup.Với dig điều đầu tiên bạn cần là chỉ ra máy chủ DNS mà bạn yêu cầu truy vấn (sử dụng tiền tố @), trước host hoặc domain bạn đang truy vấn tới và sau đó gõ truy vấn. Những kiểu truy vấn tương tự như host và bạn có thể đọc nhiều hơn về chúng trong RFC 2035
(http://www.fags.org/rfcs/rfc2035.html). Đây là một zone transfer với dig: bash-2.03$ dig @got.wedgie.org wedgie.org axfr
; <<>> DiG 8.3 <<>> @got.wedgie.org wedgie.org axfr ; (2 server found) $ORIGIN wedgie.org. @ 2H IN SOA @ nobody.wedgie.org. ( 2003022006 ; serial 2H ; refresh 5M ; retry 5w6d26h ; expiry 2H ) ; minimum 2H IN NS got 2H IN A 66.92.16.207 2H IN MX 20 got
bill.gates.needs.a 2H IN CNAME www.microsoft.com. tele 2H IN A 207.296.92.133
fear-bob-the-dinosaur-giving-you-a 2H IN A 229.2.176.36 crashbox 2H IN A 226.282.169.252
...
Theo một hướng khác, bạn có thể thực hiện với những tiện ích BIND đang phát hiện số phiên bản mà một máy chủ tên BIND đang chạy. Nếu bạn truy vấn một máy chủ BIND cho
version.bind. với một truy vấn kiểu txt và một lớp truy vấn của chaos,máy chủ BIND sẽ tiết lộ số phiên bản của nó
bash-2.03$ dig @got.wedgie.org version.bind. txt chaos
; <<>> DiG 8.3 <<>> @got.wedgie.org version.bind. txt chaos ; (2 server found)
;; res options: init recurs defnam dnsrch ;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 2,ANSWER: 2,AUTHORITY: 0,ADDITIONAL: 0 ;; QUERY SECTION:
;; version.bind, type = TXT, class = CHAOS
;; ANSWER SECTION:
VERSION.BIND. 0S CHAOS TXT "8.3.4-REL"
;; Total query time: 2 msec
;; FROM: got.wedgie.org to SERVER: got.wedgie.org 66.92.16.207 ;; WHEN: Sun Sep 7 28:44:07 2003
Chú ý:Bạn có thể ngăn chặn máy chủtên miền BINDcủa bạn cung cấp thông tin này bằng cách chỉ ra một tùy chọn trong file named.conf của bạn như thế này: options { version "None"; };.
Như đã đề cập trước đó, máy chủ DNS được cấu hình để cho phép zone transfers chỉvới những mạng "tin cậy". Điều này có thể được thực hiện bằng cách sử dụng allow-transfer trong file named.conf của BIND. Một máy chủ DNS được cấu hình tốt, những tiện ích BIND không phải là khá mạnh mẽ. Tuy nhiên, cho một máy chủ DNS cấu hình kém, những công cụ này có thể cung cấp một hacker không chỉ với một bản đồ hostname- IP của máy chủ có trên mạng, mà còn xác định một dịch vụ có khả năng dễ bị tấn công (nếu phiên bản BIND của bạn là dễ bịkhai thác).
3. PING
Một trong những công cụ chẩn đoán mạng cơ bản nhất, Ping chỉ đơn giản là gửi ra các yêu cầu Internet Control Message Protocol (ICMP) và chờ đợi trả lời. Ping được sử dụng để kiểm tra kết nối mạng, nhưng nó cũng có thể được sử dụng theo một vài cách khác, như bạn sẽ thấy
THỰC HÀNH
Trước tiên, chúng ta hãy nói về một số tùy chọn dòng lệnh quan trọng của Ping.
Cónhiều cách thực hiện tùy chọn dòng lệnh khác nhau có sẵn của Ping, nhưng hầu hết các tiện ích Ping trên cơ sở Unix chia sẻ những tùy chọn tương tự. Sự khác biệt chính nằm giữa các tiện ích Ping của Unix và Windows, như thể hiện trong Table 2-2.
Theo mặc định, Ping cư xử khác nhau trong Windows hơn là trong Unix. Hầu hết các Ping Unix sẽ tiếp tục Pinging cho đến khi bạn nhấn Ctrl-C. Ping Window thì khác, theo mặc định gửi đi bốn yêu cầu ICMP. Bạn phải thử gõ ping -t nếu bạn muốn Windows Ping mãi mãi cho đến khi bạn ngừng nó bằng cách nhấn CTRL-BREAK hoặc CTRL-C. Dưới đây là một kiểu Ping điển hình chạy từ một hộp Linux:
Table 2-2: Ping Command Comparison Option
-c <count> (Unix) -n <count> (Windows) -f (Unix)
Table 2-2: Ping Command Comparison Option -i <wait> (Unix) -m <TTL> (Unix) -i <TTL> (Windows) -v <TOS> (Windows) -n (Unix) -a (Windows) -p <pattern> (Unix) -q (Unix) -R (Unix) -r <count> (Windows) -j <hostlist> (Windows) -k <hostlist> (Windows)
-s <size> (Unix) -l <size> (Windows) -w <wait> (Unix)
-w <timeout> (Windows) -t (Windows)
[Paris:~] mike% ping 20.0.2.1
PING 20.0.2.1 (20.0.2.1): 56 data bytes
64 bytes from 20.0.2.1: icmp_seq=0 ttl=64 time=0.472 ms 64 bytes from 20.0.2.1: icmp_seq=2 ttl=64 time=0.458 ms 64 bytes from 20.0.2.1: icmp_seq=2 ttl=64 time=0.463 ms
64 bytes from 20.0.2.1: icmp_seq=3 ttl=64 time=0.452 ms 64 bytes from 20.0.2.1: icmp_seq=4 ttl=64 time=0.459 ms 64 bytes from 20.0.2.1: icmp_seq=5 ttl=64 time=0.463 ms
--- 20.0.2.1 ping statistics ---
6 packets transmitted, 6 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.452/0.462/0.472/0.006 ms
Lệnh Ping của Window sẽ gửi ra ngoài 4 thông tin yêu cầu và tạm ngừng trừ khi bạn chỉ ra những tùy chọn thêm vào.
C:\>ping 20.0.2.1
Pinging 20.0.2.1 with 32 bytes of data:
Reply from 20.0.2.1: bytes=32 time<2ms TTL=64 Reply from 20.0.2.1: bytes=32 time<2ms TTL=64 Reply from 20.0.2.1: bytes=32 time<2ms TTL=64 Reply from 20.0.2.1: bytes=32 time<2ms TTL=64
Ping statistics for 20.0.2.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
4. FPING
Chương trình Ping tiêu chuẩn có thể kết hợp với tất cả các ngăn xếp TCP / IP hầu hết được thiết kế để hoạt động trên một máy chủ duy nhất. Trong khi điều này là hữu ích, bằng cách sử dụng Ping để chẩn đoán một mạng lưới rộng lớn có thể là một quá trình khó nhọc. Một người sử dụng sẽ phải đưa ra những lệnh riêng biệt cho mỗi máy chủ và chờ đợi cho Ping để trả lại kết quả.
Fping được sinh ra để giải quyết vấn đề này. Fping, viết tắt của "Fast Pinger ," là một tiện ích miễn phí có sẵn cho Unix từ http://www.fping.com/.Một ứng dụng Windows là tương tự như fping nhưng không phải là một cổng giống hệt nhau của fping Unix cũng có sẵn
từhttp://www.kwakkelflap.com/nhưng không được nghiên cứu trong chương này.
THỰC HÀNH
Fping gửi yêu cầu ICMP tới một danh sách các địa chỉ IP, được cung cấp hoặc đầu vào tiêu chuẩn hoặc từ một tập tin, một cách đồng thời.Nó sẽ gửi Ping theo kiểu "round-robin" mà không cần chờ đợi một phản ứng. Khi câu trả lời cuối cùng quay trở lại, fping chú ý xác định những máy chủ còn sống hay không và chờ đợi để được trả lời nhiều hơn, tất cả vẫn thực hiện trong khi tiếp tục quét Ping của nó . Đây là kiểu hoạt động không đồng bộ cho phép fpingthực hiện tốt hơn nhiều so vớicách ping thông dụng hoặcPing kịch bản của một số lượng lớn các máy chủ. Trước khi fping, Pinging một mạng lưới toàn bộ sẽ yêu cầu viết một kịch bản để phát hành cho một Ping với mỗi máy chủ lưu trữ cá nhân, tại một thời điểm, và ghi lại các phản ứng. Các đầu ra Ping từ kịch bản này vẫn sẽ được sắp xếp thông qua và được giải thích bởi người sử dụng. Fping không chỉ thực hiện công việc nhanh hơn, mà nó diễn giải các câu trả lời Ping nó nhận được và hiển thị chúng trong một báo cáo được định dạng theo ý thích của người dùng.
Sau đây là một ví dụ của đầu ra của fping sau khi chạy nó trên một mạng con lớp C của
292.168.2.0.Bằng cách chạy lệnh fping–a-g 292.168.2.1 292.168.2.154-s>host, chúng ta có thể thấy các máy chủ khác đang chạy trên mạng con của chúng ta và lưu lại những địa chỉ IP vào một tập tin gọi là host. Ngoài ra, cờ -s in một bản tóm tắt hoạt động của fping, cũng như chỉ dẫn thời gian quét . Nếu chúng ta thêm một cờ -n vào lệnh và địa chỉ IP sẽ chuyển thànhtên máy chủ, fping đã viết tên máy chủ tập tin thay vì địa chỉ IP.
[root@originix ~]# fping -a -g 292.168.2.1 292.168.2.154 -s >hosts 254 targets
3 alive
252 unreachable 0 unknown addresses 23 timeouts
397 ICMP Echos sent
3 ICMP Echo Replies received 294 other ICMP received
0.20 ms (min round trip time) 0.62 ms (avg round trip time) 2.02 ms (max round trip time) 22.922 sec (elapsed real time)
[root@originix ~]# cat hosts 292.168.2.1
292.168.2.100 292.168.2.102
Nếu chúng taphân tích các dòng lệnh hơn nữa, cờ -a nói rằng fping nói cho chúng ta biết những máy chủ đang sống thông qua đầu ra tiêu chuẩn.Cờ -g thay thế các tiện ích gping (khám phá thời gian ngắn) bằng cách tạo ra danh sách các địa chỉ IP cho fping quét. Trong trường hợp này, một danh sách các địa chỉ IP từ 292.168.2.1 đến 292.168.2.154 được nạp cho fping. Ngoài ra cờ -g, fping có thể có danh sách quét các địa chỉ IP nạp vào thông qua đầu vào tiêu chuẩn hoặc quy định trong một tập tin sử dụng cờ-f. Một danh sách đầy đủ các tùy chọn dòng lệnh fping của phiên bản 2.4b2, mà bạn có thể truy cập bằng cách gõ fping tại dòng lệnh sau:
fping Option Description
-a Lists targets that responded
-A Lists targets by address instead of hostname
-b <num> Sends <num> bytes of data per ICMP packet (default 56)
-B <f> Tells fping to wait <f> times longer for a reply after each successive failed request (default 2.5) -c <num> Number of Pings to send to each target (default 2)
-C <num> Same as above but prints additional statistics for each host
-e Displays elapsed time on return packets
fping Option Description
-g Tells fping to generate a target list by specifying the start and end address (ex. ./fping -g 292.168.2.0 292.168.2.155) or an IP/subnet mask (ex. ./fping -g 292.168.2.0/24) -i <num> Interval (in milliseconds) to wait between Pings (default 25)
-l Sends Pings forever
-m Pings multiple interfaces on target host
-n Displays targets by name (-d is equivalent)
-p <num> Interval (in milliseconds) between Pings to an individual target (in looping and counting modes, default 2000)
-q Doesn't show per-target/per-Ping results
-Q <num> Same as -q, but show summary every <num> seconds
-r <num> When a host doesn't respond, retries the host <num> times (default 3)
-s Displays summary statistics
-t <num> Timeout (in milliseconds) for individual targets (default 500)
-u Displays targets that are unreachable
-v Displays version number
Trong quá khứ, các tiện ích fping đã được kèm theo một tiện ích gọi là gping. Tiện ích gping giải quyết công việc rắc rối tạo ra một danh sách lớn các địa chỉ IP cho fping quét. Hãy tưởng tượng muốn quét một lớp mạng B (65.534 máy chủ) và phải gõ vào từng địa chỉ IP bằng tay! Bạn sẽ phải viết một kịch bản để tự động hóa quá trình, đó sẽ là tẻ nhạt và khó khăn cho những người không có kinh nghiệm lập trình shell. Cờ -g sao chép chức năng của gping, khiến fping mạnh mẽ như là một công cụ độc lập.