Well done, nếu các bạn tìm hiểu kĩ 2 bài viết trên đây thì chắc hẳn các bạn đã có kiến thức kha khá rồi . Hi vọng là như vậy , mình không giúp các bạn học một cách thụ động mà mình mong rằng mọi người có thể thông qua bài viết của mình mà tìm ra được con đường cho chính bạn , cách nhìn của bạn về hacking cũng như hacker .
Bây giờ chúng ta tiếp tục .
Chúng ta sẽ bắt đầu buổi trưa hôm nay với ICMP , một giao thức dùng để quản lí và xuwr lí sự cố , điền khiển các hoạt đồng trong mạng , nó là viết tắt cả Internet Control Message Protocol ,
Và header của nó khi program :
struct icmpheader {
unsigned char icmph_type;
unsigned char icmph_code;
unsigned short int icmph_chksum;
/* The following data structures are ICMP type specific */
unsigned short int icmph_ident;
unsigned short int icmph_seqnum;
}; /* total ICMP header length: 8 bytes (= 64 bits) */
Cùng nhau phân tích các trường trong cấu trúc này nha các bạn :
Type Code Function
0 or 8 0 Echo Request / Echo Reply
3 0 to 15 Destination Unreachable
4 0 Source Quench
5 0 to 3 Redirect
11 0 or 1 Time Exceeded
12 0 Parameter Fault
13 or 14 0 Timestamp Request and Response
17 or 18 0 Subnet Request and Response
Bạn sử dụng ICMP khi nào ?
*Trong một lệnh Ping với Type 8 echo request ,code 0 trong khi đó một reply lại có type 0 code 0 , ( Tự mình làm thử một gói Ping đi các bạn )
*Tracert : Sử dụng gói ICMP với TTL tăng lên , ban đầu sẽ là 1 , cứ sau 1 lần nhận veef, bạn hãy tăng TTL lên 1 đơn vị , bởi vì khi đi qua 1 hop trên mạng , TTL sẽ bị giảm đi 1 , cứ như vậy bạn có thể vẽ lại được toàn bộ con đường từ máy tính của bạn đến đích .Một lần nữa , các bạn hãy tự kiến tạo cho mình một tracert tool , dc chuws ? ^^
Tại sao mình lại đưa ra quá nhiều chi tiết như vậy ? Đơn giản thôi , theo mình thì hacking chính là tìm ra bóng tối ở duới mặt trời , có những điều tưởng chừng như rất thông thường và không có nguy cơ gì , nhưng nếu bạn suy nghĩ theo một con đường mới lạ một chút , có lẽ bạn sẽ đi vào lịch sử Hacker , hi vọng nếu các bạn thấy được một điểm nào đó thú vị ở những chi tiết này thì chia sẻ cho mình với , Cám ơn truơcs nha
* Path MTU discovery : khi 2 host sử dụng giao thức TCP ,nó sẽ cần biết người giao dịch với nó có thể thao tác một packet với độ lớn là bao nhiêu , do đó giao thức ICMP lại được sử dụng ,nếu như kích thước vượt quá giới hạn cho phép , router sẽ lập tức drop gói tin và gửi một ICMP với type 3 code 4
*ICMP redirect : Mình đã nói về vấn đề này trong thứ 7 tuần trước về chủ đề MITM attack , chắc các bạn còn nhớ
Bạn là Host H , bạn muốn kết nối tới cái host ở xa xa kia , Default gateway của bạn biết rằng con đường đi qua Router R2 thì tôt hơn , nó sẽ gửi một ICMP tới bạn yêu cầu hãy dùng R2 để đi đén nơi mà bạn cần , đó là ICMP redirect .
Tấn công như thees nào ? Bạn hãy gửi một ICMP giả mạo là của Default gateway và làm cho nạn nhân nhầm tưởng và bạn có thể hijack dữ liệu trên đường truyền .
Đó là một vài function quan trọng mà ICMP làm .
Dos Nuke attack :hacker liên tục gửi các gói tin với ICMP type 3 , destionation unreachable , kết quả là hệ thống của nạn nhân sẽ hủy tất cả các kết nối tới nó .
Để bảo mật , nên disable ICMP càng nhều càng tốt , có 2 cách : thứ nhất là reject gói tín ICMP bằng cách gửi lại nơi nó đến một ICMP với type 3, thứ 2 là Drop , tức là không trả lời bất cứ thứ gì .
Khi các bạn Ping mà Host unreach mà bạn bết nó vẫn tồn tại là trường hợp 1
Nếu các bạn để ý có thể thấy được mình đã đi theo một trình tự từ IP -> ICMP và bây giờ chúng ta sẽ chuyển lên một tầng cao hơn Transport layer với TCP và UDP .
Cùng nhau phân tích UDP trước .
Đầu tiên là header và cấu trúc của nó :
struct udpheader {
unsigned short int udph_srcport;
unsigned short int udph_destport;
unsigned short int udph_len;
unsigned short int udph_chksum;
}; /* total udp header length: 8 bytes (= 64 bits) */
Và tiếp theo là đến TCP :
Source và destination port .
Sequence number và acknowledge sequence number :Ví dụ thế này :
Mình gửi cho bạn là 3 bytes ở sequence number là 101 (101 ở sequence number và 3 ở TCP header )
Sau khi nhận được 3 bytes này bạn sẽ gửi lại cho mình với 104 trong ack sequence number
window size (4 bits ) có sách ghi là data offset nói cho chúng ta biết độ dài của TCP header , thông thường thì TCP header có 20 byte do đó ở đây sẽ có giá trị là 5 .
Reserved : 0
Control bit:
-
- CWR (1 bit) – Congestion Window Reduced (CWR) flag is set by the sending host to indicate that it received a TCP segment with the ECE flag set (added to header by RFC 3168).
- ECE (ECN-Echo) (1 bit) – indicate that the TCP peer is ECN capable during 3-way handshake (added to header by RFC 3168).
- URG (1 bit) – indicates that the URGent pointer field is significant
- ACK (1 bit) – indicates that the ACKnowledgment field is significant
- PSH (1 bit) – Push function
- RST (1 bit) – Reset the connection
- SYN (1 bit) – Synchronize sequence numbers
- FIN (1 bit) – No more data from sender
Các bạn cứ tự hiểu cho nó dễ nhớ nha
window size :khối lượng dữ liệu mà nguơif nhận hi vọng .
CHeck sum :kiểm tra lỗi .
Urgent Pointer :Nếu URG flag được bật , vùng này sẽ được sử dụng .
Và một điều quan trọng 3 way hand shake :
Muốn cho kết nối được thực hiện 2 bên phải làm các động tác trên
Và khi muốn chấm dứt kết nối :
Mình hi vọng các bạn sẽ tự kiểm nghiệm trong thực tế bằng cách dùng các công cụ bát gói tin như wireshark , ethereal ….
Bây giờ đứng dưới góc độc của một hacker , chúng ta hack nó như thế nào :
Một syn dos attack là gì ? Các bạn có thể thấy trong việc thiết lập kết nối , đầu tiên cliect gửi một syn flag đến cho server , khi server nhận nó sẽ lập tức chừa một vùng nhớ cho kết nối này , nếu chúng ta liên tục gửi syn flag thì điều gì xảy ra ? hoặc ngay sau khi nạn nhân gửi lại một syn + ack thì chúng ta im lặng -> tình trạng sẽ như thế nào ?
Đến đây các bạn sẽ có đủ hiểu biết để tìm hiểu Nmap , một con dao cực kì lợi hại trong bộ tool của hacker cũng như security professional ,nhưng giờ là 2 h rồi , hẹn các bạn tối nay mình sẽ viết tiếp phần 4 learn to hack , h mình phải ăn cơm đã và đi ngủ một lát đói và mệt rồi , Chúc các bạn một buổi chiều vui vẻ .
Link: http://bkitns.wordpress.com/2008/10/25/learn-to-hack-p3/