Kỹ thuật Hack cơ bản – Phần I – Sưu tầm

Công nghệ

****Foot Printing**** Thân chào tất cả những bạn, nhằm đạt được ý muốn nhu cầu học hỏi trong hacking và security, fantomas311 đã biên soạn một bộ bài viết “Basic hacking” và những bài viết liên quan tới hacking hệ thống để giới thiệu tới những bạn. Xin khuyến cáo với những ai muốn học hack một nhữngh fast food là những bạn ko nên đọc bài viết này! Vì tôi ko post những bài dạy hack cho những bạn, mà tôi chỉ post bài theo phương châm “hack như thế nào”. Hãy đọc, suy nghĩ và làm bằng đôi tay và khối óc của mình!!

Trước lúc những hacker thực sự bắt tay vào việc, họ phải tiến hành 3 bước cơ bản là in dấu ấn (foot printing), Quét (scanning) và điểm danh (enumeration). Bài viết này nhắc tới kỹ thuật in dấu ấn và những vấn đề liên quan.

**In dấu ấn là gì?**

In dấu ấn là việc sử dụng những công cụ và kỹ thuật để lđấy thông tin cơ bản trước tiên về một tổ chức hoặc một chuyên khu web muốn tấn công (trong bài viết này tạm gọi là victim). Việc in dấu ấn sở hữu hệ thống một tổ chức sẽ cho phép hacker thđấy rõ tình hình an ninh (độ bảo mật) của tổ chức đó.

**Tại sao cần in dấu ấn?**

Foot Printing giúp sở hữu thể định danh tất cả những mẩu tin và nắm những thông tin cơ bản (đôi lúc khá trọng yếu) về victim

** Kỹ thuật in dấu ấn **

Có rất nhiều kỹ thuật in dấu ấn khác nhau, bài viết này sẽ mô tả những bước giúp bạn hoàn thành một đợt phân tích dấu ấn kỹ lưỡng.

*Bước 1: Định phạm vi hoạt động:

Bước này nói cho đơn thuần là bạn phải xác định rõ mẫu mà bạn muốn hack là gì (một nhà hàng, một server hay chỉ là một web cá nhân… ). Đối với người mới bắt đầu, bạn nên đọc kỹ và ghi lại những thông tin mà trang web cung cấp cho bạn (những thông tin về nó, như số ĐT, mail của webmaster, địa chỉ ….). Có nhiều lúc những thông tin này lại là “chiếc chìa khoá vàng” cho bạn 🙂

Những mục đáng quan tâm bao gồm:

  • Các vị trí
  • Các nhà hàng hoặc thực thể liên quan
  • Các kết nối hoặc tin tức sở hữu được
  • Các tiếng nói của một dân tộc bảo mật nêu rõ những cơ chế bảo mật đã thiết đặt (cấu hình fire wall chẳng hạn)
  • Các số điện thoại, tên liên lạc và Email…

Ngoài ra, bạn cũng sở hữu thể xem lại mã nguồn HTML để tìm những sơ hở trong lập trình, ngoại trừ đó, những chú thích nằm trong những thẻ HTML như < ! và ~ cũng là một ” tài nguyên” đáng khai thác!! (thí dụ như <! password của mục này là 123456 !> :D).

Sau lúc nghiên cứu trang web, bạn tìm thêm những thông tin cung cấp những manh mối bổ sung về tình trạng của tổ chức và tình hình an ninh của nó (trên báo chí, những bản tin trên NET chẳng hạn). Những động cơ tìm kiếm là chìa khoá cho bạn. Sau đây là một vài động cơ tìm kiếm:

  • http://google.com 🙂
  • http://sec.gov
  • http://cyberarmy.com
  • Http://deja.com
  • http://networksolution.com
  • http://dogpile.com
  • http://astalavista.com
  • http://ipswich.com
  • http://arin.net/whois/
  • http://ferretsoft.com

Okie, hãy tiến hành bước đấu tiên trong kỹ thuật Hack !! B)

*Bước 2: Điểm danh mạng

Trong bước này, việc trước tiên là định danh những domain và mạng sở hữu liên quan tới victim. Muốn làm điều này, hãy truy xuất dữ liệu của network solution (www.networksolution.com) và American Registry for Internet Number (www.arin.net).

Một số kiểu truy vấn:

Organizational : Tất cả những thông tin sở hữu liên quan tới một tổ chức cụ thể

+Domain:———————————- domain ——-

+Network:———————————–mạng hoặc IP

Point of contact:————————-1 cá nhân cụ thể (admin)

*Bước 3: Truy vấn DNS:

Sau lúc định danh những domain của tổ chức đích (victim), bạn sở hữu thể bắt đầu truy vấn DNS. Nếu DNS được cấu hình bấp bênh, ta sở hữu thể moi được thông tin tiết lộ về tổ chức. Một trong những nhữngh cấu hình sai nghiêm trọng nhất mà một điều hành viên sở hữu thể mắc phải là cho phép người sử dụng internet ko tin cậy thực hiện chuyển giao miền DNS ( zone transfer). Sự cố này sở hữu thể cho thđấy tên hệ chủ, những IP ẩn… nói chung là những thông tin muốn che dấu!

Việc cung cấp địa chỉ IP bên trong cho 1 người sử dụng ko tin cậy trên internet cũng tương đương cung cấp bản đồ ngôi nhà mình cho kẻ trộm vậy!! Đến đây, sở hữu lẽ bạn sở hữu một câu hỏi “Zone transfer – how?”. Xin thưa là đây là một vấn đề khác, sở hữu lẽ tôi sẽ nhắc trong một bài viết khác của mình để tránh loãng bài viết :). Kết thúc bước 3 tại đây !

*Bước 4: Trinh sát mạng

Sau lúc đã sở hữu bản đồ trong tay, thì đây là giai đoạn “xâm nhập thực tế” để xác định lộ trình truy cập tiềm năng mạng (tạm hiểu như là việc do thám để xác định những con đường trước lúc tiến hành đánh cướp á mà!). Để thực hiện làm việc này, xin giới hiệu những bạn chương trình trace route (ftp://ftp.ec.lbl/traceroute.tar.z) sở hữu trong hầu hết phiên bản của Unix & WinNT.

Trong WinNT, nó sở hữu tên là tracert. Trace route là một công cụ chẩn đoán do Van Jacobson viết để cho phép xem tuyến đường mà một gói tin IP sẽ theo từ server này sang server khác. Nếu bạn ko rành những lệnh trong Unix, sở hữu thể sử dụng VIsual Route (http://www.visualroute.com) để thực hiện tiến trình trinh sát (tracerouting) này. Giao diện của visual route trông rất thời trang & dễ sử dụng. Nhưng ko sở hữu tác dụng tốt với những mạng sở hữu quy mô lớn.

Ngoài ra, bạn còn sở hữu thể thực hiện một kỹ thuật phức tạp hơn gọi là “tiến trình quét giao thức firewall” (sẽ nhắc ở Basic hacking II – Scanning của fantomas311).

Vậy là quy trình trước tiên của việc hack vào một hệ thống đã xong. Bây giờ, sau lúc đã thực hiện hoàn tất những bước trên, bạn (tôi chỉ nói những người đã làm đúng những bước trên) sở hữu thể tự hỏi: “vậy sở hữu tác dụng gì?”, “Làm gì tiếp theo?” “những thông tin thu được sở hữu tác dụng gì?”, ” Có nhất thiết phải thực hiện bước này ko?”. Nhiều câu hỏi quá! Nhưng xin để những bạn tự trả lời vậy! Tôi chỉ trả lời 1 câu thôi! Bước tiếp theo của quá trình hack – theo lý thuyết – là Scanning. Quá trình Scanning sẽ được nhắc trong bài viết tiếp theo của fantomas311: ” Basic Hacking part II – Scanning” 🙂

Hy vọng bài viết này làm bạn hài lòng!

Sơ Lược Trace Route Trong bài viết trên tôi đã nhắc tới traceroute. Vậy Traceroute là gì? Mời những bạn xem bài viết sau:

Traceroute là gì?

Traceroute là một chương trình cho phép bạn xác định được đường đi của những gói packets từ máy bạn tới hệ thống đích trên mạng Internet. Một ví dụ về Traceroute! Traceroute sở hữu thể làm được gì? Bạn hãy xem ví dụ sau sẽ rõ!

C:windows>tracert 203.94.12.54
Tracing route to 203.94.12.54 over a maximum of 30 hops
1 abc.netzero.com (232.61.41.251) 2 ms 1 ms 1 ms
2 xyz.Netzero.com (232.61.41.0) 5 ms 5 ms 5 ms
3 232.61.41.10 (232.61.41.251) 9 ms 11 ms 13 ms
4 we21.spectranet.com (196.01.83.12) 535 ms 549 ms 513 ms
5 isp.net.ny (196.23.0.0) 562 ms 596 ms 600 ms
6 196.23.0.25 (196.23.0.25) 1195 ms1204 ms
7 backbone.isp.ny (198.87.12.11) 1208 ms1216 ms1233 ms
8 asianet.com (202.12.32.10) 1210 ms1239 ms1211 ms
9 south.asinet.com (202.10.10.10) 1069 ms1087 ms1122 ms
10 backbone.vsnl.net.in (203.98.46.01) 1064 ms1109 ms1061 ms
11 newdelhi-01.backbone.vsnl.net.in (203.102.46.01) 1185 ms1146 ms1203 ms
12 newdelhi-00.backbone.vsnl.net.in (203.102.46.02) ms1159 ms1073 ms
13 mtnl.net.in (203.194.56.00) 1052 ms 642 ms 658 ms

Tôi cần biết đường đi từ máy tôi tới một host trên mạng Internet sở hữu địa chỉ ip là 203.94.12.54. Tôi cần phải tracert tới nó! Như bạn thđấy ở trên, những gói packets từ máy tôi muốn tới được 203.94.12.54 phải đi qua 13 hops (mắt xích) trên mạng. Đây là đưòng đi của những gói packets: Netzero(ISP đã gởi dữ liệu đi) -> Spectranet (một nhà công cấp mạng xương sống – Backbone Provider) -> New York ISP -> New York Backbone -> Asia -> South Asia -> India Backbone -> New Delhi Backbone -> một router khác trong New Delhi Backbone -> New Delhi ISP.

Như vậy, host sở hữu địa chỉ ip 203.94.12.54 nằm ở New Delhi, India, South Asia! Bạn cũng sở hữu thể telnet tới 203.94.12.54 trên cổng 13 (datetime) để xác định giờ GMT qua đó bạn sở hữu thể biết được vị trí của host này (yêu cầu là host 203.94.12.54 phải chạy daemon datetime và được định cấu hình đúng về thời gian)!

Traceroute hoạt động như thế nào?

Trước hết, bạn cần biết về ICMP, TTL và nhữngh làm việc của những routers(bộ định tuyến)!

Những kiến thức cơ bản ICMP – Internet Control Message Protocol.

ICMP được sử dụng để thông báo những lỗi xảy ra trong quá trình truyền đi của những gói dữ liệu trên mạng. ICMP thuộc tầng vận huyển – Transpoort Layer! Tầng ứng dụng HTTP FTP Telnet Finger SSH DNS

POP3/IMAP SMTP Gopher BGP
Time/NTP Whois TACACS+ SSL DNS SNMP RIP
RADIUS Archie
Traceroute tftp Ping
Tầng vận chuyển
TCP
UDP
ICMP
OSPF
Tầng Internet
IP
ARP
Tầng vật lí Ethernet/802.3 Token Ring (802.5) SNAP/802.2 X.25 FDDI ISDN
Frame Relay SMDS ATM Wireless (WAP, CDPD, 802.11)
Fibre Channel DDS/DS0/T-carrier/E-carrier SONET/SDH DWDM
PPP HDLC SLIP/CSLIP xDSL Cable Modem (DOCSIS)

Tất cả những ICMP messages đều được chuyển đi cùng với những IP datagrams. Mỗi ICMP message được gói trong IP datagram sẽ sở hữu dạng như sau:

+———————+————————-+
| IP Header(20 bytes) | ICMP message (32 bytes) |
+———————+————————-+
Sau đây là cấu trúc của một IMCP message: (tham khảo RFC792 để biết thêm!)
0 7 8 15 16 31
+—————–+—————–+—————–+
| Type (0 or 8) | Code (0) | 16-bit Checksum |
+—————–+—————–+—————–+
| Indentifier | sequence number |
+—————–+—————–+—————–+
| |
| Optional Data (nội dung tùy thuộc vào Type và Code) |
| |
+—————————————————–+

Trường type sở hữu 15 giá trị khác nhau, tùy thuộc vào từng loại ICMP error message cụ thể. Ví dụ type=3 để chỉ định cho thông báo lỗi “Không tới được đích” – “Destination unreachable” error message!

Trường code = sub-error sử dụng để xác định chính xác lỗi đã xảy ra. Ví dụ, type=3 và code=0 nghĩa là “Network Unreachable”(ko tới được mạng); nếu type=3, code=1 nghĩa là “Host Unreachable”(ko tới được host)…

TTL – Time to Live. TTL là một trường 8 bit trong IP header (bạn hãy xem lại cấu trúc của IP header!). TTL là thời gian gói dữ liệu tồn tại trên mạng trước lúc nó bị bỏ qua. Người gửi dữ liệu đi sẽ xác định một giá trị TTL trước, thường là từ 32 -> 64. Giá trị này sẽ được giảm đi một lúc một lúc được chuyển qua một bộ định tuyến trên mạng. Khi giá trị này bằng 0, datagram này sẽ bị bỏ qua và giao thức ICMP sẽ báo lỗi về cho người gởi. Điều này sẽ tránh cho datagram này đi vào một vòng lặp vô tận qua những bộ định tuyến. Mỗi bộ định tuyến lúc nhận được IP datagram sẽ giảm giá trị TTL của datagram này đi một. Hầu hết những bộ định tuyến đều ko giữ lại datagram này trong thời gian quá 1 giây trước lúc chuyển datagram này đi. Nên giá trị TTL sở hữu thể coi bằng hop(counter) = số bộ định tuyến mà datagram này vừa vượt qua. Khi bộ định tuyến nhận được một datagram sở hữu trường TTL bằng 0 hoặc 1, nó sẽ ko chuyển datagram này đi tiếp. Thay vào đó, nó sẽ bỏ qua datagram này và gởi một ICMP message “Time Exceeded” (quá thời gian) trở lại cho người đã gởi datagram này! Vì ICMP message mà bộ định tuyến gửi trở lại cho người gởi sở hữu địa chỉ nguồn – source address là địa chỉ ip của bộ định tuyến này nên người gởi sở hữu thể biết được địa chỉ ip của router này!

Cách làm việc của traceroute!

Traceroute gởi một IP datagram sở hữu TTL=1 tới hệ thống đích. Router trước tiên nhận được datagram này sẽ giảm giá trị TTL đi một -> TTL=0 và router này sẽ bỏ qua datagram này (ko gởi nó đi tiếp!) và gởi một ICMP error message với địa chỉ IP nguồn là địa chỉ của nó tới máy bạn. Như vậy router sở hữu thể xác định địa chỉ ip của router thứ nhất! Sau đó, traceroute sẽ gởi một datagram mới đi với giá trị TTL=2(1+1=2) tới hệ thống đích. Router trước tiên sẽ giảm giá trị của TTL đi một -> TTL=1(2-1=1) và chuyển datagram này sang router thứ 2.

Router thứ 2 nhận được datagram sở hữu TTL=1 sẽ giảm TTL=0. Rounter 2 nhận thđấy TTL=0 nên nó sẽ ko chuyển datagram này đi tiếp. Router 2 sẽ gởi trở lại máy bạn một ICMP error message với địa chỉ ip nguồn là địa chỉ ip của nó (router 2). Như vậy trình traceroute trên máy bạn sẽ biết được router thứ 2 mà datagram đã đi qua. Traceroute sẽ tiếp tục gởi một datagram khác sở hữu TTL=3(2+1=3) đi và lặp lại quá trình trên cho tới lúc datagram tới được hệ thống đích!

Nếu Trên thực tế IP datagram đã tới được đích, TTL=1. Host đích sẽ bỏ qua datagram này và nó cũng sẽ ko gởi “Time Exceeded” ICMP error message. Như vậy thì bạn sẽ ko thể nào biết được là mình đã tới đích chưa?! Traceroute sử dụng một cơ chế khác như sau: Traceroute gởi UDP datagrams tới host đích trên những cổng UDP sở hữu số hiệu lớn (>30000). Sở dĩ nó sắm những cổng sở hữu giá trị lớn vì thường ko sở hữu ứng dụng nào đang lắng nghe ở những cổng này. Khi host đích nhận được UDP datagram này, nó sẽ gởi trả lại một ICMP error message “Port Unreachable” (ko tới được cổng) cho traceroute. Bây giờ thì traceroute sở hữu thể phân biệt được sự khác nhau giữa ICMP error message “Time Exceeded” với “Port Unreachable” để biết được đã tới được đích hay chưa?!

Ghi chú: ICMP error message “Time Exceeded” sở hữu type=1 và code=0; ICMP eror message “Port Unreachable” sở hữu type=3 và code=3

Tổng kết: traceroute gởi UDP datagrams tới host đích với giá trị TTL=1 và được tăng sau mỗi lần để xác định những routers mà datagrams đã đi qua. Mỗi router sẽ gởi trở về một ICMP message “Time Exceeded”. Riêng hệ thống đích sẽ gởi trở lại cho traceroute một ICMP message “Port Unreachable”. Traceroute dựa vào sự ko giống nhau này để xác định xem đã tới được đích chưa?!

Ví dụ cuối cùng!

host2 # traceroute xyz.com traceroute to xyz.com (202.xx.12.34), 30 hops max, 40 byte packets

1 isp.net (202.xy.34.12) 20ms 10ms 10ms 2

xyz.com (202.xx.12.34) 130ms 130ms 130ms

Dòng trước tiên cho biết hostname và địa chỉ IP của hệ thống đích. Dòng này còn cho chúng ta biết thêm giá trị TTL<=30 và kích thước của datagram là 40 bytes (20-bytes IP Header + 8-bytes UDP Header + 12-bytes user data).

Dòng thứ 2 cho biết router trước tiên nhận được datagram là 202.xy.34.12, giá trị của TTL lúc gởi tới router này là 1. Router này sẽ gửi trở lại cho chương trình traceroute một ICMP message error “Time Exceeded”. Traceroute sẽ gởi tiếp một datagram tới hệ thống đích.

Dòng thứ 3, xyz.com(202.xx.12.34) nhận được datagram sở hữu TTL=1(router thứ nhất đã giảm một trước đó – TTL=2-1=1). Tuy nhiên, xyz.com ko phải là một router, nó sẽ gởi trở lại cho traceroute một ICMP error message “Port Unreachable”. Khi nhận được ICMP message này, traceroute sẽ biết được đã tới được hệ thống đích xyz.com và kết thúc nhiệm vụ tại đây. Trong trường hợp router ko trả lời sau 5 giây, traceroute sẽ in ra một dấu sao “*” (ko biết) và tiếp tục gởi datagram khác tới host đích!

Xem tiếp:

Tác giả: Fantomas311 – Vietnam Security

Các bạn đang xem tin tức tại Sưu tầm 24h – Chúc những bạn một ngày vui vẻ

Từ khóa: Kỹ thuật Hack cơ bản – Phần I

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai.