làm thế nào để làm hacker tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh vực ki...
Trang 1**** Foot Printing ****
Thân chào tất cả các bạn , nhằm đáp ứng 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à các bài viết liên quan đến hacking
hệ thống để giới thiệu đến các bạn Xin khuyến cáo với những ai muốn học hack một cách fast food là các bạn không nên đọc bài viết này ! Vì tôi không post những bài dạy hack cho các 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 khi các 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 đề cập đến 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 dùng các công cụ và kỹ thuật để lấy thông tin cơ bản đầu 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 có
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 có thể định danh tất cả các mẩu tin và nắm những thông tin cơ bản (đôi khi khá quan trọng) về victim
+ Các vị trí
+ Các công ty hoặc thực thể liên quan
+ Các kết nối hoặc tin tức có được
+ Các ngôn ngữ bảo mật nêu rõ các 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 có thể xem lại mã nguồn HTML để tìm những sơ hở trong lập trình , bên cạnh
đó , những chú thích nằm trong các thẻ HTML như < ! và ~ cũng là một " tài nguyên" đáng khai thác !! ( thí dụ như :D )
Sau khi nghiên cứu trang web , bạn tìm thêm những thông tin cung cấp các 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í , các 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
Trang 2http://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 đầu tiên là định danh các domain và mạng có liên quan đến 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 )
Đến đây, có lẽ bạn có một câu hỏi " Zone transfer - how ??" Xin thưa là đây là một vấn đề khác,
có lẽ tôi sẽ đề cập 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 khi đã có 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 các con đường trước khi tiến hành đánh cướp á mà ! )
Để thực hiện công việc này , xin giới hiệu các bạn chương trình trace route
( ftp://ftp.ec.lbl/traceroute.tar.z ) có trong hầu hết phiên bản của Unix & WinNT Trong WinNT ,
nó có 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 không rành các lệnh trong Unix , có thể 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 bắt mắt & dễ sử dụng Nhưng không có tác dụng tốt với các mạng có quy
:) Nhiều câu hỏi quá ! Nhưng xin để các 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 đề cập 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
Trang 3Sơ Lược Trace Route
Trong bài viết trên tôi đã đề cập đến traceroute Vậy Traceroute là gì ?? Mời các bạn xem bài viết sau:
Như vậy, host có địa chỉ ip 203.94.12.54 nằm ở New Delhi, India, South Asia! Bạn cũng có thể telnet đến 203.94.12.54 trên cổng 13(datetime) để xác định giờ GMT qua đó bạn có 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à cách làm việc của các routers(bộ định tuyến)!
Những kiến thức cơ bản
ICMP - Internet Control Message Protocol ICMP được dùng để thông báo các lỗi xảy ra trong quá trình truyền đi của các 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
Trang 4Time/NTP Whois TACACS+ SSL DNS SNMP RIP
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ả các ICMP messages đều được chuyển đi cùng với các IP datagrams Mỗi ICMP message được gói trong IP datagram sẽ có dạng như sau:
trường code = sub-error 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"(không đến được mạng); nếu type=3, code=1 nghĩa là "Host
Unreachable"(không đến đượ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 khi 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 khi một khi đượ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 các bộ định tuyến
Mỗi bộ định tuyến khi nhận được IP datagram sẽ giảm giá trị TTL của datagram này đi một Hầu
Trang 5hết các bộ định tuyến đều không giữ lại datagram này trong thời gian quá 1 giây trước khi
chuyển datagram này đi Nên giá trị TTL có 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 có trường TTL bằng 0 hoặc 1, nó sẽ không 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 có địa chỉ nguồn - source address là địa chỉ ip của bộ định tuyến này nên người gởi có 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 có TTL=1 đến hệ thống đích Router đầu 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(không 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ó đến máy bạn Như vậy router có 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) đến hệ thống đích Router đầu 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 có TTL=1 sẽ giảm TTL=0 Rounter 2 nhận thấy TTL=0 nên nó sẽ không 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 có TTL=3(2+1=3) đi
và lặp lại quá trình trên cho đến khi datagram đến được hệ thống đích!
Nếu bây giờ IP datagram đã đến được đích, TTL=1 Host đích sẽ bỏ qua datagram này và nó cũng sẽ không gởi "Time Exceeded" ICMP error message Như vậy thì bạn sẽ không thể nào biết được là mình đã đến đích chưa?! Traceroute dùng một cơ chế khác như sau:
Traceroute gởi UDP datagrams đến host đích trên các cổng UDP có số hiệu lớn(>30000) Sở dĩ
nó chọn các cổng có giá trị lớn vì thường không có ứng dụng nào đang lắng nghe ở các 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"(không đến được cổng) cho traceroute Bây giờ thì traceroute có thể phân biệt được sự khác nhau giữa ICMP error message "Time Exceeded" với "Port Unreachable" để biết được đã đến được đích hay chưa?!
Ghi chú: ICMP error message "Time Exceeded" có type=1 và code=0; ICMP eror message "Port Unreachable" có type=3 và code=3
Tổng kết: traceroute gởi UDP datagrams đến host đích với giá trị TTL=1 và được tăng sau mỗi lần để xác định các 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ự khác biệt này để xác định xem đã đến đượ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 đầu 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 đầu tiên nhận được datagram là 202.xy.34.12, giá trị của TTL khi gởi
Trang 6đến 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 đến hệ thống đích.
Dòng thứ 3, xyz.com(202.xx.12.34) nhận được datagram có TTL=1(router thứ nhất đã giảm một trước đó - TTL=2-1=1) Tuy nhiên, xyz.com không 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 đã đến được hệ thống đích xyz.com và kết thúc nhiệm vụ tại đây
Trong trường hợp router không trả lời sau 5 giây, traceroute sẽ in ra một dấu sao "*"(không biết)
và tiếp tục gởi datagram khác đến host đích!
Nếu kỹ thuật zone transfer cho ta 1 địa chỉ IP thì scan sẽ giúp ta xác định xem nó ở port nào và
nó có phải là một IP thực hay không Có một số server hiển thị cả các IP của mạng tư ( thí dụ
như 10.10.10.0 ) Một địa chỉ IP như thế không thể định tuyến ( xem
http://www.ietf.org/rfc/rfc1918.txt để biết thêm chi tiết)
++ Quét Ping mạng : Ngòai quét ping truyền thống bằng cách mở cửa sổ DOS và tyoe lệnh Ping
như chúng ta đều biết, còn một số kiểu quét ping khác như :+ Fping: dùng trong Unix ( http://ftp.tamu.edu/pub/Unix/src ) fping là một trình tiện ích gửi đi các yêu cầu mass ping theo kiểu song song vì thế fping quét được nhiều địa chỉ IP hơn so với ping+ Nmap ( http://insecure.org/nmap ) : Có lẽ không cần nói nhiều về trình tiện ích này , có khá nhiều hướng dẫn đầy đủ cách sử dụng và chức năng của nmap trên mạng Nmap cung cấp khả
năng quét ping với tùy chọn -sP
Trang 7+ Pinger : dùng cho Windows, sản phẩm miễn phí của Rhino9 ( http://207.98.195.250/software/ )
là một trong các trình tiện ích nhanh nhất sẳn có+ Ping Sweep : Sản phẩm của Solarwinds, chạy khá nhanh, nhưng công cụ này có thể làm bão hòa một mạng có tuyến nối kết chậm ( Cái này xài ở VN ko ổn nên ko giới thiệu chi tiết )+ WS Ping Proback ( http://www.ipswich.com ) và các công cụ netscan ( http://www.nwpsw.com )
đủ để quét một mạng nhỏ, tiện dụng và giao diện đơn giản , tuy nhien khá chậm so với pinger và
ping sweep Người mới bắt đầu nên sử dụng lọai này !
Về cơ bản thì ping là quá trình gửi và nhận các gói tin ICMP (Internet Control Messaging Protocol ) Vậy nếu ICMP bị phong tỏa bởi quản trị mạng của chuyên khu đích thì sao ? Trường hợp điển hình là khi type lệnh ping một domain mà không nhận được hồi âm nào , lúc đó ICMP tại bộ định tuyến biên bị phong tỏa hoặc có một fire wall đã được thiết lập Trong trường hợp này ta có hai
lựa chọn :+ Bỏ qua quét ping mà thực hiện quét cổng (port Scan) : Sẽ đề cập ở phần sau của bài viết này
+ Thực hiện ping TCP:
- Dùng Nmap với tùy chọn -PT Tùy chọn này sẽ gửi các gói tin TCP SYN đến mạng đích và đợi đáp ứng, các hệ chủ "còn sống" sẽ đáp ứng bằng một gói tin TCP SYN/ACK Phương pháp này khá hiệu quả để xác định xem hệ chủ có còn sống hay không cho dù chuyên khu đã phong tỏa ICMP Bạn nên lặp lại kiểu quét này vài lần trên các cổng chung như SMTP (25) , POP (110) , IMAD ( 143 ) , hoặc các cổng có thể là duy nhất đối với các chuyên khu nhất định
- HPing ( http://www.kyuzz.org/antirez/ ) là một trình tiện ích ping TCP khác có công năng bổ sung TCP qua mặt cả Nmap Hping cho phép người dùng điều khiển các tùy chọn cụ thể về gói tin TCP có thể cho phép nó đi qua một số thiết bị kiểm sóat truy cập nhất định Nhờ ấn định cổng đích với tùy chọn -P , bạn có thể phá vỡ vài thiết bị kiểm sóat truy cập tương tự như kỹ thuật trace route đã nêu ở Part I có thể dùng Hping để thực hiện các đợt quét ICMP và có thể phân mảnh [ fragment ] các gói tin có tiềm năng phớt lờ một số thiết bị kiểm soát truy cập Hping sẽ
được đề cập chi tiết hơn ở phần sau
Tóm lại , bước này cho phép xác định một cách chính xác các hệ thống còn sống hay không thông qua ICMP hoặc thông qua cổng quét chọn lọc Làm như vậy, ta đã giảm bớt đáng kể tiến trình ấn định đích, tiết kiệm thời gian trắc nghiệm và thu hẹp trọng tâm của các hoạt động
++ Truy vấn ICMP : Bạn có thể thu thập tất cả các kiểu thông tin quý giá về một hệ thống bằng
cách đơn giản gửi một gói tin ICMP cho nó , các công cụ có thể down load tại
http://securityfocus.com
Trang 8++ Quét cổng (port scan): đến lúc này , ta đã định danh các hệ thống còn sống bằng cách dùng các đợt quét ping ICMP hoặc TCP và đã thu thập được một ít thông tin ICMP Giờ đây ta đã sẵn sàng tiến trình quét cổng từng hệ thống Quét cổng là tiến trình nối với các cổng TCP và UDP trên hệ đích để xác định các dịch vụ đang chạy hoặc đang ở trạng thái LISTENNING Ta phải định danh các cổng đang lắng chờ nếu như muốn xác định kiểu hệ điều hành và các ứng dụng đang dùng Các dịch vụ hoạt động đang lắng chờ (listenning) có thể cho phép một người dùng trái phép giành được quyến truy cập các hệ thống bị cấu hình sai Sau đây,ta coi như các hệ thống mà ta đã định danh ở bước trên là còn sống ( alive ) , mục tiêu của việc quét cổng là :
+ Định danh các dịch vụ TCP và UDP đang chạy trên hệ đích
+ Định danh kiểu hệ điều hành của hệ đích+ Định danh các ứng dụng cụ thể hoặc các phiên bản của một dịch vụ cụ thể
** Các kiểu quét : trước khi giới thiệu các công cụ quét cổng chủ yếu, ta phải xét qua các kỹ thuật
quét cổng sẵn dùng :
* Quét nối TCP : kiểu quét này nối với cổng đích và hòan thành một đợt bắt tay ba chiều đầy đủ ( SYN , SYN/ACK , ACK ) hệ đích có thể dễ dàng phát hiện nó Tiến trình bắt tay ba chiều TCP
gồm :
= Gửi gói tin SYN đến hệ phục vụ
= Nhận gói tin SYN/ACK từ hệ phục vụ
= Gửi gói tin ACK đến hệ phục vụ
* Quét TCP SYN : kỹ thuật này là việc thực hiện một tuyến nối TCP đầy đủ, nghĩa là : gửi gói tin SYN đến cổng đích , ta có thể suy ra nó nằm trong trạng thái listenning Nếu nhận được một RST/ACK nó thường cho thấy cổng đang không lắng chờ: một RST/ACK sẽ được gửi bởi hệ thống thực hiện quét cổng để một tuyến nồi đầy đủ không bao giờ được thiết lập.Kỹ thuật này có
ưu điểm là mang tính lén lút hơn một tuyến nối TCP đầy đủ
* Quét TCP FIN : kỹ thuật này gửi một gói tin FIN cho cổng đích Dựa trên RFC 793 ( http://www.ietf.org/rfc/rfc0793.txt ) hệ đích sẽ gửi trả một RTS cho tất cả các cổng đã đóng.Kỹ
thuật này thường chỉ làm việc trên các ngăn xếp TCP/IP gốc Unix
* Quét TCP Xmas Tree : Kỹ thuật này gửi một gói tin FIN , URG và PUSH cho cổng đích dựa trên
RFC 793, hệ đích sẽ gửi trả một RST của tất cả các cổng đã đóng
Trang 9* Quét TCP Null : giống TCP Xmas Tree
* Quét UDP : Kỹ thuật này gửi một gói tin UDP cho cổng đích Nếu cổng đích đáp ứng bằng một thông điệp "ICMP port unreachable ", cổng đã đóng Ngược lại, nếu không nhận được thông điệp trên, ta có thể suy ra cổng mở ! Độ chính xác của kỹ thuật này tùy thuộc nhiều vào yếu tố có liên quan đến việc sử dụng các tài nguyên mạng và hệ thống Khi thực hiện các đợt quét cổng UDP,
có thể sẽ cho kết quả khác nhau Một số thực thi IP sẽ gửi trả tất cả các RTS của tất cả các
cổng đã quét dẫu chúng có đang lắng chờ hay không
* Định danh các dịch vụ TCP và UDP đang chạy : trình tiện ích của một công cụ quét cổng tốt nhất là một thành phần quan trọng của tiến trình in dấu ấn Tuy có nhiều bộ quét cổng sẵn dùng cho cả Unix và NT , nhưng tôi sẽ đề cập đến một số bộ quét cổng thông dụng và nhanh :
- Strobe :strobe là một trong những bộ quét TCP nhanh và đáng tin cậy sẵn dùng , được viết bởi Julian Arrange ( ftp.win.or.jp/pup/network/misc/strobe-105.ta.gz ) Một số tính năng chính của Strobe bao gồm khả năng tối ưu hóa các tài nguyên mạng, hệ thống và quét hệ đích một cách có hiệu quả Ngòai tính hiệu quả , phiên bản 1.04 của strobe về sau sẽ nắm giữ các banner kết hợp của từng cổng mà chúng nối với Điều này có thể giúp định danh hệ điều hành lẫn dịch vụ đang
chạy Tính năng nắm giữ banner sẽ được nói nhiều hơn ở Part IIITuy nhiên Strobe cũng có một số nhược điểm là không cung cấp khả năng quét UDP và hệ đích
có thể dễ dàng phát hiện
- Up_Scan : Nếu Strobe cung cấp khả năng quét TCP thì Up_Scan là một trong những bộ quét
UDP tin cậy nhất ( http://wwdsilx.wwdsi.com ) Nhược điểm : dễ bị phát hiện
- Netcat : trình tiện ích này có thể thực hiện rất nhiều công việc , cũng như nmap, nóp là công cụ không thể thiếu trong hacking cũng như security Để quét TCP và UDP , ta sử dụng các tùy chọn
-v và -vv , -z, -wz, -u
- PortPro và PortScan: trong WinNT thì portPro và PortScan là hai trình tiện ích quét cổng nhanh nhất.PortPro cùa StOrM ( http://securityfocus.com )và portScan là sản phẩm của Rhad PortScan cung cấp một miền các cổng để quét trong khi portpro đơn giản gia số các cổng của nó, nhưng
cả hai đều không cung cấp các miền địa chỉ IP Portpro là một trong những công cụ quét cổng
nhanh nhất sẵn dùng , tuy nhiên càc tùy chọn của nó còn hạn chế !
Trang 10- Ngòai ra, công cụ quét cổng mạnh nhất vẫn là nmap ( đã giới thiệu ở phần trước )
** Các công cụ phát hiện tự động:
+ Cheops ( http://www.marko.net/cheops/ ) cung cấp khả năng quét ping, trace route , khả năng
quét cổng và tính năng phát hiện hệ điều hành+ Tkined là một phần của bộ Scotty có tại http://wwwhome.cs.wtwente.nl/~choenw/Scotty/ là một
bộ sọan thào mạng được viết trong TCL tích hợp các công cụ quản lý mạng khác nhau ,cho phép
bạn phát hiện các mạng IP
Trang 11=== Author: Fantomas311 ===
Giả sử việc thực hiện các bước I và II đều không thành công hoặc những thông tin thu được không thể đủ để phát động một cuộc tấn công tức thời nào,hacker sẽ chuyển sang phương pháp định danh các tài khoản người dùng hợp lệ hoặc các tài nguyên dùng chung không được bảo vệ kỹ
Enumeration (điểm danh) là một cách để trích các tài khoản hợp lệ hoặc các tài nguyên từ hệ thống Ở Part III này, tôi sẽ nêu chi tiết các phương pháp thông dụng nhất, và các công cụ cơ bản của kỹ thuật điểm danh - buớc thứ ba trong basic hacking
Sự khác biệt chính giữa các kỹ thuật thu thập thông tin ở part I ( Foot Printing) và part II
( scanning) và kỹ thuật enumeration dưới đây nằm ở cấp xâm nhập của hacker Điểm danh liên quan đến các tuyến nối tích cực với các hệ thống và các truy vấn có định hướng
Phần lớn thông tin thu thập được qua kỹ thuật điểm danh thoạt nhìn có vẻ như vô hại.Tuy nhiên, những thông tin rò rĩ từ lỗ thủng theo sau nó có thể gây tai hại Nói chung, sau khi điểm danh một tên người dùng hoặc một phần dùng chung hợp lệ, vấn đề còn lại là thời gian trước khi hacker đoán được mật hiệu tương ứng hoặc tìm ra các điểm yếu kết hợp với các giao thức chia sẽ tài nguyên
Những thông tin mà kỹ thuật điểm danh thu được có thể tạm thu gọn thành các phạm trù sau :++ Các tài nguyên mạng và các phần dùng chung
++ User và các group
++ Các ứng dụng và biểu ngữ (banner)
Kỹ thuật điểm danh cũng cụ thể theo từng hệ điều hành của server, và do đó ,nó cũng phụ thuộc vào các thông tin thu thập được từ part I và part II Trong phần này, tôi sẽ lần lươt đề cập đến kỹ thuật điểm danh trong các hệ điều hành : WinNT , Novell và Unix
*******Windows NT********
Tại sao lại là WinNT ?? Đối với kỹ thuật điểm danh thì WinNT có thể xem là một người bạn thân thiết ! Còn tại sao thì hạ hồi phân giải nhá !
+++ Điểm danh khu ủy ( domain ) của winNT bằng netview :
Windows là hệ điều hành được thiết kế tạo thuận lợi cho tính năng duyệt các tài nguyên mạng,
do đó tiến trình điểm danh các domain NT là cực kỳ đơn giản so với các hệ điều hành khác Trong hầu hết các trường hợp, chỉ cần dùng các công cụ cài sẵn trong OS ( Operating System ) Lệnh netview là một thí dụ điển hình Nó sẽ liệt kê các domain sẵn dùng trên mạng, rồi phơi bày thông tin của tất cả các máy tính trong một domain (ta cũng có thể dùng thông tin từ các đợt quét ping trong các phần trước để tìm hiểu các tên domain từ các máy riêng lẻ chỉ việc dùng địa chỉ IP thay cho server name Sau đây là thí dụ :
Trước hết là điểm dang các domain trên mạng :
C:\> netview /domain
Liệt kê các máy tính trong 1 domain cụ thể :
Trang 12C:\> netview /domain:têndomain
+++Điểm danh các hệ điều khiển domain NT :
Để đào sâu hơn một chút vào cấu trúc mạng NT , ta cần dùng một công cụ từ NT Resource Kit ( NTRK - lưu ý : từ này dùng khá nhiều trong bài viết này !) , cũng được xem là Windows NT Hacking Kit bởi bản chất dao hai lưỡi của nhiều trình tiện ích điều hành mạnh mà nó cung cấp ! Trước tiên, xin giới thiệu sơ lược về cái gọi là NTRK này :
- NTRK là một bộ tài liệu bổ trợ cho WinNT có kèm CD chứa các trình tiện ích để quản lý
mạng.NTRK chứa một tập hợp các trình tiện ích mạnh, đa dạng từ ngôn ngữ Perl phổ dụng đến các cổng của nhiều trình tiện ích Unix , đến các công cụ điều hành từ xa không có trong các phiên bản lẻ của WinNT.Nó là một bộ đồ nghề không thề thiếu cho các điều hành viên mạng NT
và cũng là công cụ hữu ích cho các hacker muốn khai thác winNT Cũng có lẽ vì đó mà giá bán
lẻ của NTRK vào khoảng 200 USD Hì, nhưng không sao, vẫn còn một giải pháp free cho bạn tại ftp://ftp.microsoft.com/bussys/winnt/winnt-public/reskit/
Trở lại vấn đề điểm danh các hệ điều khiển domain NT: để thực hiện công việc này, ta dùng công
cụ có tên là nltest trong NTRK để định danh các PDC (Primary Domain Controllers ) và BDC ( Backup Domain Controllers )
Câu lệnh : C:\> nltest /delist:[domain name]
Thậm chí, để tiến xa hơn, ta cần dùng Holy Grail của tính năng điểm danh NT, tuyến nối rỗng , hoặc nặc danh ( sẽ giới thiệu sau đây ) Sau khi xác lập một phiên làm việc rỗng cho một trong các máy trên khu ủy điểm danh, ta có thể dùng cú pháp nltest /server:[server name] và
/trusted_domain để tìm hiểu thêm các domain NT có liên quan đến domain đầu tiên !
** Phương pháp NT toàn cục **
Hầu hết các kỹ thuật thu thập thông tin mà tôi mô tả trong phần này đều vận dụng một thiếu sót
về bảo mật của winNT là cho phép các người dùng nặc danh( anonymous user ) kết nồi và điểm danh một số tài nguyên nhất định mà không cần sự "cho phép" Chỗ yếu này được biết đến với cái tên "Red Button"( hiii, chắc là nút login hay submit quá ), tuyến nối phiên làm việc rỗng hay đăng nhập nặc danh và nó vẫn là chỗ đứng có tiềm năng tàn phá nhất trên mạng mà hacker tìm kiếm Tôi nhớ có một bài viết lưu truyền khá rộng rãi trên mạng với tiêu đề rất "ghê" là " hướng dẫn deface một trang web" trong đó hướng dẫn cách dò tìm chỗ yếu anonymous user và khai thác nó !
Để thực hiện một tuyến nối phiên làm việc rỗng, ta dùng cú pháp:
C:\> net use \\IP\IPC$ ''''''' /user:'''''
Cú pháp trên nối "phần dùng chung" truyền thông tin xử lý ẩn (IPC$) tại địa chỉ IP mà ta cung cấp dưới dạng người dùng nặc danh là [user:''''] và một mật hiệu rỗng ['''''''] Nếu thành công, ta có thể
có một lệnh mở để sử dụng những kỹ thuật khác nhau nhằm "thu gom" càng nhiều thông tin càng tốt : thông tin mạng , các phần dùng chung, các người dùng , các nhóm , các khóa
Registry Phương pháp chống NT toàn cục sẽ được nêu trong "basic security" của
fantomas311 - mời bạn đón xem
Việc mở các tuyến nối rỗng và dùng các công cụ trên đây theo thủ công là một phương pháp tuyệt vời cho các cuộc tấn công có định hướng, nhưng hầu hết các hacker thường sử dụng một
bộ quét NetBIOS để nhanh chóng kiểm tra nguyên cả mạng để tìm các tệp dùng chung phơi bày
Trang 13Một trong các công cụ phổ dụng đó là Legion ( có thể tìm thấy trên nhiều kho tàng trữ internet ) Legion có thể nghiền ngẫm qua một mạng IP Class C và tiết lộ tất cả các tệp dùng chung sẵn dùng trong giao diện đồ họa của nó Phiên bản 2.1 có gộp một "công cụ cưỡng bức", công cụ này sẽ cố gắng nối kết với một tệp dùng chung nhất định thông qua một danh sách các mật hiệu
do người dùng cung cấp Cách bẻ khóa cưỡng bức đối với Win9x và WinNT sẽ được nêu cụ thể
ở các phần sau
Một bộ quét tệp dùng chung windows phổ dụng khác là NetBIOS Auditing Tool (NAT) có thể tìm thấy trên các kho tàng trữ internet
****Các kiểu điểm danh NT khác ****
Ngoài ra còn có một số bộ điểm danh thông tin mạng NT khác như : epdump của Microsoft ( http://www.ntshop.net/security/tools/def.htm ), getmac và netdom trong NTRK và netviewx ( http://www.ibt.ku.dk/jesper/NTtools/ ) epdump truy vấn bộ ánh xạ điểm cuối RPC và nêu các dịch vụ kết gán với các địa chỉ IP và các số hiệu cổng Dùng phiên làm việc rỗng, get mac hiển thị các địa chỉ MAC và các thiết bị của các card giao tiếp mạng trên các máy từ xa Điều này cung cấp các thông tin hữu ích giúp hacker định hình một hệ thống có nhiều giao diện trên mạng netdom còn hữu ích hơn điểm danh các thông tin chính về các domain NT trên tuyến, bao gồm tư cách thành viên domain và các danh xưng của Backup Domain Controllers netviewx thường được dùng để dò tìm NT Remote Access Services ( RAS ) đề thu được khái niệm về số lượng các hệ phục vụ quay số tồn tại trên mạng
Cuối cùng, quả thật đáng trách nếu không đề cập đến SNMP ( Simple Network Management Protocol ) như một nguồn thông tin NT tuyệt vời.SNMP sẽ được đề cập chi tiết hơn trong phần tiếp theo: kỹ thuật điểm danh người dùng ( user ) trong WinNT
+++ Điểm danh người dùng và nhóm ( user and group ) trong WinNT
Trước khi đề cập đến điểm danh người dùng như thế nào , hãy nói đến công cụ cần dùng cho kỹ thuật này Sau khi định danh một danh sách user , hacker có thể sử dụng các công cụ đoán pass
tự động ( brute force ) Cũng như trường hợp của các tệp dùng chung, các máy NT config sai dễ dàng phun ra các thông tin user
Một lần nữa, ta sẽ dùng tuyến nối rỗng để cung cấp khả năng truy cập ban đầu để chạy các công
cụ hacking đã biết cách đầu tiên và đơn giản nhất để định danh các user trên một hệ thống windows từ xa là dùng lệnh nbstat
C:\> nbstat -A [IP]
Kỹ thuật này cho ta nội dung bảng tên NetBIOS của hệ thống từ xa, nêu tên hệ thống, domai mà
nó đang ở trong đó , và những user đã đăng nhập
Có vài công cụ NTRK khác có thể cung cấp thông tin về các user ( dù có tuyến nối rỗng hay không ) chẳng hạn như các trình tiện ích usrstat , showgrps, local, global nhưng công cụ thông dụng để lấy thông tin của user nhất vẫn là DumpACL DumpACL có thể kéo một danh sách các người dùng, các nhóm, và các quyền user của hệ thống NT
Ngoài ra, hai công cụ điểm danh NT khác cũng khá mạnh là user2sid và sid2user của Evgenii Rudnyi ( xem http://www.chem.msu.sn:8080~rudnyi/NT/sid.txt ) muốn sử dụng tốt hai công cụ này cần phải có thời gian tìm hiểu Tôi chỉ có thể nói là nó có thể làm việc ngay cả khi các quản trị mạng đã kích hoạt RestrictAnonymous , chỉ cần có thề truy cập port 139 !
****SNMP (Simple Network Management Protocol )****
Một hệ thống NT đang chạy các tác nhân NT SNMP có thể truy cập bằng các chuỗi cộng đồng ngầm định như "public".Việc điểm danh các user NT thông qua SNMP là một điều dễ dàng khi dùng trình duyệt SNMP snmputil trong NTRK.Tuy nhiên, công cụ này lại cung cấp rất nhiều số liệu được coi là "lùng bùng, khó nhớ, khó hiểu".Do đó, để tránh rắc rối ( hacking có quá nhiều rắc rối phải giải quyết rồi !!!) bạn có thể sử dụng trình duyệt SNMP của solar wind tên là IP network browser tại http://solarwinds.net Trên đây là phần trình bày của fantomas311 về điểm danh
Trang 14WinNT , tiếp theo là điểm danh với Novell
********* NOVELL *********
Tuy nói WinNT là bạn của các "phiên làm việc rỗng" nhưng netware của Novell cũng gặp sự cố tương tự :
+++ Network Neighborhood :Dùng Network Neighborhood để tìm hiểu về các hệ phục vụ và các
"cây" sẵn dùng trên đường truyền Bước này không đe dọa trực tiếp thông tin, nó chỉ như một bước khởi động đơn giản mà thôi, làm được gì thì hay cái nấy !!
+++ Các tuyến nối Novell Client32
Chương trình Netware Services của Novell chạy trong khay hệ thống và cho phép quản lý các tuyến nối Netware của bạn thông qua tùy chọn Netware Connections khả năng này có thể cực kỳ quý giá trong việc quản lý các gắn kết và các đợt đăng nhập Tuy nhiên, quan trọng hơn là sau khi tạo một mối gắn kết (attachment ), bạn có thể truy lục cậy NDS chứa hệ phục vụ, số hiệu tuyến nối, và địa chỉ mạng hoàn chỉnh.Điều này có thể hữu ích cho việc nối với hệ phục vụ về sau và giành quyền ưu tiên cấp điều hành (admin)
+++On-site Admin : Xem các hệ phục vụ Novell
Nếu không có tiến trình thẩm định quyền theo một hệ phục vụ đơn lẻ, bạn có thể dùng sản phẩm On-site Admin của Novell ( ftp://ftp.cdrom.com ) để xem tình trạng của mọi hệ phục vụ trên đường truyền.Thay vì gửi các yêu cầu quảng bá riêng, On-Site Admin dường như hiển thị các hệ phục vụ được Network Neighborhood lập cache, gửi các đợt quảng bá định kỳ riêng về các hệ phục vụ Novell trên mạng
+++On-site Admin duyệt cây :
Ta có thể duyệt hầu hết các cây Novell bằng On-site Admin Trong trường hợp này , Client32 thực tế gắn kết với hệ phục vụ đã lựa bên trong cây Lý do đó là theo ngầm định, Netware 4.x cho phép mọi người duyệt cây.Bạn có thể giảm thiểu điều này bằng cách bổ sung tính năng lọc các quyền thừa kế vào gốc cây Những thông tin thu được quan On-Site Admin có thể giúp ta chuyển sang cuộc đột nhập hệ thống chủ động Điểm danh NT kết thúc ở đây !!!!
Trước khi đi tiếp, bạn nên nhớ rằng hầu hết các kỹ thuật mô tả trong part III này đều dùng các thông tin thu thập được từ các kỹ đợt quét cổng và kỹ thuật điểm danh OS đã nêu trong "basic hacking Part I và II"
+++Điểm danh tệp dùng chung và tài nguyên mạng Unix
Nguồn thông tin mạng Unix tốt nhất là những kỹ thuật TCP/IP đã mô tả trong Part II, nhưng một công cụ tuyệt vời hơn để đào sâu chính là trình tiện ích Unix showmount rất hữu ích trong việc điểm danh các hệ tập tin xuất khẩu NFS trên một mạng Ví dụ : giả sử một đợt quét trước đó cho biết cổng 2049 (NFS) đang lắng chờ trên một đích tiềm năng Như vậy, ta có thể dùng
showmount để xem một cách chính xác các thư mục đang được share ra sao :
showmount -e 192.168.202.34
Trang 15export list for 192.168.202.34
NFS không là phần mềm chia sẻ tập tin duy nhất mà bạn tìm thấy trên Unix , nhờ tính phổ dụng ngày càng tăng của bộ phần mềm sampa nguồn mở, cung cấp các dịch vụ tập tin và in trôi chảy cho các hệ khách SMB (Server Message Block )tạo thành nền móng của tính năng nối mạng windows Samba có thể download tại http://samba.org và được phân phối cùng với nhiều bộ Linux.Mặc dù tập tin cấu hình hệ phục vụ Samba (/etc/smb.conf) có một số tham số bảo mật dể hiểu, việc cấu hình sai vẫn có thể dẫn đến các tập tin dùng chung mạng không được bảo vệ.Một nguồn tiềm năng khác về thông tin mạng của Unix là NIS.Sự cố chính với NIS là một khi biết được tên domain NIS của một hệ phục vụ, bạn có thể dùng một đợt truy vấn RPC đơn giản để thu thập bất kỳ bản ánh xạ NIS nào của nó Các bản ánh xạ NIS là những phép ánh xạ phân phối thông tin quan trọng của từng hệ chủ domain chẳng hạn như nội dung tập tin passwd Kiểu tấn công NIS truyền thống thường dùng các công cụ khách NIS để cố gắng đoán tên domain
Ngoài ra, còn một số công cụ khai thác cũng khá hữu ích là psean và snmpwalk
+++Điểm danh người dùng và các nhóm Unix :Kỹ thuật này không thu được những thông tin thật quý giá, nó chỉ có thể cho bạn biết user nào là root trong hệ phục vụ đích Công cụ : finger , rusers , rwho
****** Basic hacking Part III tạm dừng ở đây, sau ba bước cơ bản, bạn đã có khá nhiều thông tin
và công cụ, khai thác cụ thể sẽ hướng dẫn sau Hy vọng qua ba bài viết, fantomas311 đã đem lại cho bạn khái niệm cơ bản về hacking ! Chúc vui ! Mọi chi tiết về bài viết xin liên hệ
fantomas311@yahoo.com *
KY NANG CO BAN CUA MOT HACKER
Bài học này được chia làm 2 phần chính, với mục đích là giới thiệu cho các bạn hiểu một số cách thức mà hacker sử dụng để thâm nhập vào hệ thống và một số phương pháp có thể áp dụng để
tự bảo vệ bạn Bài học này cũng không có ý định hướng bạn đến một cái nhìn xấu về hành vi của
hacker mà mục đích là giúp bạn hiểu rõ hơn về vấn đề an toàn bảo mật
Cụ thể như sau:
1- Các hacker đã làm như thế nào, động cơ thúc đẩy họ và các phương pháp thông dụng 2- Một số biện pháp tự bảo vệ, bắt đầu từ việc thiết kế, xây dựng ngôi nhà của bạn đến việc đánh