Tải bản đầy đủ (.docx) (17 trang)

Kỹ thuật hack cơ bản

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (81.29 KB, 17 trang )

Kỹ thuật Hack cơ bản - Phần I
**** 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
** 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ả các 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 giản là bạn phải xác định rõ cái mà bạn
muốn hack là gì ( một công ty , 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 khi 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 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ư )
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://deja.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 )
Một số kiểu truy vấn :
+Organizational : Tất cả các thông tin có liên quan đến 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 khi định danh các domain của tổ chức đích (victim), bạn có thể bắt đầu truy vấn DNS .
Nếu DNS được cấu hình bấp bênh, ta có thể moi được thông tin tiết lộ về tổ chức . Một
trong những cách cấu hình sai nghiêm trọng nhất mà một điều hành viên có thể mắc phải

là cho phép người dùng internet không tin cậy thực hiện chuyển giao miền DNS ( zone
transfer). Sự cố này có thể cho thấy tên hệ chủ, các IP ẩn nói chung là các thông tin
muốn che dấu ! Việc cung cấp địa chỉ IP bên trong cho 1 người dùng không tin cậy trên
internet cũng giống như cung cấp bản đồ ngôi nhà mình cho kẻ trộm vậy !!
Đế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
( ) 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
( ) để 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 mô lớn .
Ngoài ra , bạn còn có 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ẽ đề cập ở Basic hacking II - Scanning của fantomas311 )
Vậy là công đoạn đầu tiên của việc hack vào một hệ thống đã xong . Bây giờ, sau khi đã
thực hiện hoàn tất các bước trên, bạn ( tôi chỉ nói những người đã làm đúng các bước
trên) có thể tự hỏi : "vậy có tác dụng gì ??" Làm gì tiếp theo??" "những thông tin thu được
có tác dụng gì?" " Có nhất thiết phải thực hiện bước này không ?? "
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
Sơ 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:
Traceroute là gì?
Traceroute là một chương trình cho phép bạn xác định được đường đi của các gói packets
từ máy bạn đến hệ thống đích trên mạng Internet.
Một ví dụ về Traceroute!
Traceroute có 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 đến một host trên mạng Internet có địa chỉ ip là
203.94.12.54. Tôi cần phải tracert đến nó! Như bạn thấy ở trên, các gói packets từ máy tôi
muốn đến đượ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 các 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 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
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ả 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:

+ + +
| 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 có 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 đến được đích" - "Destination
unreachable" error message!
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 hế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 đế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!
Kỹ thuật hack cơ bản - Phần II
***** Scanning *****
=== Author : Fantomas311 ===
Nếu Foot Printing là thu thập tất cả thông tin có liên quan đến tổ chức đích thì Scan là một
bước xác định xem trong mớ bòng bong kia thì cái nào là "xài được" bằng các đợt quét
ping, quét cổng và các công cụ phát hiện tự động
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 để 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 ( ) 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 ( ) : 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
+ 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 ( ) và các công cụ netscan
( ) đủ để 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 ( ) 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
++ 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
( ) 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.
* 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 III
Tuy 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 ( ) 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 ( )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ế
!
- 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 ( ) 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 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
Hết Part II - Tiếp theo sẽ là Part III - Enumeration (điểm danh mạng)
Kỹ thuật hack cơ bản - Điểm danh - Phần II - 17/2/2004 3h:39
******Enumeration*******

=== 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ể :
C:\> 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
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
*** Các phần dùng chung NetBIOS ***
Sau khi thiết lập một phiên làm việc rỗng, ta cũng có thể dùng lại lệnh net view để điểm
danh các phần dùng chung trên hệ thống từ xa.
Ba công cụ điểm danh các phần dùng chung khác trong NTRK là rmtshare , srvcheck và
srvinfo
Một trong các công cụ thích hợp nhất để điểm danh các tệp dùng chung NT( và các nội
dung khác là Dump ACL .Download free tại http://38.15.19.115Dump ACL kiểm toán mọi
thứ, từ giấy phép hệ tập tin đến các dịch vụ sẵn dùng trên các hệ thống từ xa. Thậm chí nó
còn có thể lấy thông tin người dùng cơ bản qua một tuyến nối rỗng vô hại, và có thể chạy
từ dòng lệnh, tạo thuận lợi cho việc lập ký mã và tự động hóa.
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. Mộ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
( ), getmac và netdom trong NTRK và
netviewx ( ) 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: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 . Trên đây là phần
trình bày của fantomas311 về điểm danh WinNT , 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 ù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 ( ) để 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 !!!!
******* UNIX *******
Hầu hết các thực thể Unix hiện đại đều dựa trên các tính năng nối mạng TCP/IP chuẩn và
do đó không dễ gì công khai thông tin thoải mái như NT thông qua các giao diện NetBIOS
hoặc NetWare .Tất nhiên, điều đó không có nghĩa là Unix không bị các kỹ thuật điểm danh
tấn công, nhưng kỹ thuật nào sẽ cho ra các kết quả tốt nhất ??? Điều đó còn tùy thuộc vào
cách cấu hình hệ thống. Ví dụ như Remote Procedure Call (RPC) , Network Information
System (NIS) và Network File System (NFS) của Sun Microsystem nhắm đến trong nhiều
năm qua. Ta sẽ đề cập đến một số kỹ thuật cổ điển ngay sau đâ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
export list for 192.168.202.34
/pub (everyone)
/var (everyone)
/usr (user)
Khóa chuyển -e nêu danh sách xuất khẩu của hệ phục vụ NFS, đáng tiếc cho các nhà bảo
mật ,và mừng cho hacker là lỗ rò rĩ thông tin này không thể nà bịt kín được , bởi đây là
cách ứng xử ngầm định của NFS
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 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

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×