"Do not learn to hack, hack to learn"

Sưu tầm & Lưu trữ các bài viết hay

Subscribe to RSS feed

Những câu lệnh hay cho Status của Yahoo Messenger

Những ngày chat Yahoo yên bình đã khiến bạn nhàm chán, hãy sử dụng một số lệnh dưới đây để quậy một lát nào
Dưới đây là các lệnh trong Yahoo, khi biết các lệnh này bạn có thể kết hợp với một số câu chữ rồi đưa vào status để quậy bigsmile

Bấm vào để add nick
ymsgr:addfriend? Example: ymsgr:addfriend?myid


Bấm vào để gửi file
ymsgr:sendfile? Example: ymsgr:sendfile?myid


Bấm vào để gọi đến số được chỉ định
ymsgr:call? Example: ymsgr:call?1-800-555-7654
    ymsgr:callPhone? Example: ymsgr:callPhone?1-800-555-7654


Bấm vào để mở chat room
YMSGR:chat? "opens chat room list"


Bấm vào để mở 1 cửa sổ chat
ymsgr:im? Opens "send an im window"


Bấm vào để đổi nền cho cửa sổ chat
ymsgr:getimv?doodle
    ymsgr:getimv?yfighter


Ai bấm vào là Yahoo Messenger của người đó bị tắt ngay lập tức
ymsgr:-kill


Đây là chiêu vui nhất, bạn chỉ cần viết thêm một câu khá kích thích ở status như ymsgr:-kill View My Webcam

Một lúc sau bạn sẽ biết ngay những người bạn nào của bạn là người ham vui khi họ dần dần...bị out nick khi muốn xem...webcam của bạn.

Chúc vui! ^^

Scan Port cơ bản

Bài viết này trình bày với các bạn các nguyên tắc Scan Port cơ bản trên hệ thống, những kỹ thuật scan từ đó chúng ta biết trên một hệ thống đang sử dụng những Port nào. Từ những khái niệm về Scan tôi cũng trình bày với các bạn giải pháp ngăn cấm Scan trên hệ thống. Nội dung trong bài viết gồm:

1. Nguyên tắc truyền thông tin TCP/IP
2. Các Nguyên tắc và Phương thức Scan Port
3. Sử dụng phần mềm Nmap để Scan Port

I. Nguyên tắc truyền thông tin TCP/IP

1. Cấu tạo gói tin TCP



Nội dung bài này chỉ chú trọng tới các thiết lập Flag trong gói tin TCP nhằm mục đích sử dụng để Scan Port:
- Thông số SYN để yêu cầu kết nối giữa hai máy tính
- Thông số ACK để trả lời kết nối giữa hai máy có thể bắt đầu được thực hiện
- Thông số FIN để kết thúc quá trình kết nối giữa hai máy
- Thông số RST từ Server để nói cho Client biết rằng giao tiếp này bị cấm (không thể sử dụng)
- Thông số PSH sử dụng kết hợp với thông số URG
- Thông số URG sử dụng để thiết lập độ ưu tiên cho gói tin này.
à Thật ra toàn bộ các thông số này trong gói tin nó chỉ thể hiện là 1 hoặc 0 nếu là 0 thì gói tin TCP không thiết lập thông số này, nếu là 1 thì thông số nào đó được thực hiện nó sẽ lần lượt trong 8 bits trong phần Flag.

2. Khi Client muốn thực hiện một kết nối TCP với Server đầu tiên (ảnh):



+ Bước I: Client bắn đến Server một gói tin SYN
+ Bước II: Server trả lời tới Client một gói tin SYN/ACK
+ Bước III: Khi Client nhận được gói tin SYN/ACK sẽ gửi lại server một gói ACK – và quá trình trao đổi thông tin giữa hai máy bắt đầu.

3. Khi Client muốn kết thúc một phiên làm việc với Server (ảnh):



+ Bước I: Client gửi đến Server một gói tin FIN ACK
+ Bước II: Server gửi lại cho Client một gói tin ACK
+ Bước III: Server lại gửi cho Client một gói FIN ACK
+ Bước IV: Client gửi lại cho Server gói ACK và quá trình ngắt kết nối giữa Server và Client được thực hiện.

II. Nguyên tắc Scan Port trên một hệ thống.

1. TCP Scan
Trên gói TCP/UDP có 16 bit dành cho Port Number điều đó có nghĩa nó có từ 1 – 65535 port. Không một hacker nào lại scan toàn bộ các port trên hệ thống, chúng chỉ scan những port hay sử dụng nhất thường chỉ sử dụng scan từ port 1 tới port 1024 mà thôi.
Phần trên của bài viết tôi đã trình bày với các bạn nguyên tắc tạo kết nối và ngắt kết nối giữa hai máy tính trên mạng. Dựa vào các nguyên tắc truyền thông tin của TCP tôi có thể Scan Port nào mở trên hệ thống bằng nhưng phương thức sau đây:
- SYN Scan: Khi Client bắn gói SYN với một thông số Port nhất định tới Server nếu server gửi về gói SYN/ACK thì Client biết Port đó trên Server được mở. Nếu Server gửi về cho Client gói RST/SYN tôi biết port đó trên Server đóng.
- FIN Scan: Khi Client chưa có kết nối tới Server nhưng vẫn tạo ra gói FIN với số port nhất định gửi tới Server cần Scan. Nếu Server gửi về gói ACK thì Client biết Server mở port đó, nếu Server gửi về gói RST thì Client biết Server đóng port đó.
- NULL Scan Sure: Client sẽ gửi tới Server những gói TCP với số port cần Scan mà không chứa thông số Flag nào, nếu Server gửi lại gói RST thì tôi biết port đó trên Server bị đóng.
- XMAS Scan Sorry: Client sẽ gửi những gói TCP với số Port nhất định cần Scan chứa nhiều thông số Flag như: FIN, URG, PSH. Nếu Server trả về gói RST tôi biết port đó trên Server bị đóng.
- TCP Connect: Phương thức này rất thực tế nó gửi đến Server những gói tin yêu cầu kết nối thực tế tới các port cụ thể trên server. Nếu server trả về gói SYN/ACK thì Client biết port đó mở, nếu Server gửi về gói RST/ACK Client biết port đó trên Server bị đóng.
- ACK Scan: dạng Scan này nhằm mục đích tìm những Access Controll List trên Server. Client cố gắng kết nối tới Server bằng gói ICMP nếu nhận được gói tin là Host Unreachable thì client sẽ hiểu port đó trên server đã bị lọc.

Có vài dạng Scan cho các dịch vụ điển hình dễ bị tấn công như:
- RPC Scan: Cố gắng kiểm tra xem hệ thống có mở port cho dịch vụ RPC không.
- Windows Scan tương tự như ACK Scan, nhưng nó có thể chỉ thực hiện trên một số port nhất định.
- FTP Scan: Có thể sử dụng để xem dịch vụ FTP có được sử dụng trên Server hay không
- IDLE cho phép kiểm tra tình trạng của máy chủ.

2. UDP Scan.
Nếu như gói tin truyền bằng TCP để đảm bảo sự toàn vẹn của gói tin sẽ luôn được truyền tới đích. Gói tin truyền bằng UDP sẽ đáp ứng nhu cầu truyền tải dữ liệu nhanh với các gói tin nhỏ. Với quá trình thực hiện truyền tin bằng TCP kẻ tấn công dễ dàng Scan được hệ thống đang mở những port nào dựa trên các thông số Flag trên gói TCP.
Cấu tạo gói UDP (ảnh):



Như ta thấy gói UDP không chứa các thông số Flag, cho nên không thể sử dụng các phương thức Scan port của TCP sử dụng cho UDP được. Thật không may hầu hết hệ thống đều cho phép gói ICMP.
Nếu một port bị đóng, khi Server nhận được gói ICMP từ client nó sẽ cố gắng gửi một gói ICMP type 3 code 3 port với nội dung là "unreachable" về Client. Khi thực hiện UDP Scan bạn hãy chuẩn bị tinh thần nhận được các kết quả không có độ tin cây cao.

III. Scan Port với Nmap.
Nmap là một tool scan port rất mạnh và đã nổi danh từ lâu được giới hacker tin dùng. Nó hỗ trợ toàn bộ các phương thức scan port, ngoài ra nó còn hỗ trợ các phương thức scan hostname, service chạy trên hệ thống đó….
Nmap hiện giờ có cả giao diện đồ hoạ và giao diện command line cho người dùng, chạy trên cả môi trường .NIX và Windows.
Phần mềm nmap miễn phí các bạn download tại địa chỉ: http://nmap.org/download.html
Dưới đây là cách sử dụng Nmap để scan

*******************************************
C:\nmap-3.93>nmap -h
Nmap 3.93 Usage: nmap [Scan Type(s)] [Options] <host or net list>
Some Common Scan Types ('*' options require root privileges)
* -sS TCP SYN stealth port scan (default if privileged (root))
-sT TCP connect() port scan (default for unprivileged users)
* -sU UDP port scan
-sP ping scan (Find any reachable machines)
* -sF,-sX,-sN Stealth FIN, Xmas, or Null scan (@@@erts only)
-sV Version scan probes open ports determining service and app names/versions
-sR/-I RPC/Identd scan (use with other scan types)
Some Common Options (none are required, most can be combined):
* -O Use TCP/IP fingerprinting to guess remote operating system
-p <range> ports to scan. Example range: '1-1024,1080,6666,31337'
-F Only scans ports listed in nmap-services
-v Verbose. Its use is recommended Use twice for greater effect.
-P0 Don't ping hosts (needed to scan www.microsoft.com and others)
* -Ddecoy_host1,decoy2[,...] Hide scan using many decoys
-6 scans via IPv6 rather than IPv4
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane > General timing policy
-n/-R Never do DNS resolution/Always resolve [default: sometimes resolve]
-oN/-oX/-oG <logfile> Output normal/XML/grepable scan logs to <logfile>
-iL <inputfile> Get targets from file; Use '-' for stdin
* -S <your_IP>/-e <devicename> Specify source address or network interface
--interactive Go into interactive mode (then press h for help)
--win_help Windows-specific features

***************************************************************
Nmap Scan
a. Các dạng Scan nmap hỗ trợ.
Nmap –sT: trong đó chữ s – là Scan, còn chữ T là dạng TCP scan
Nmap –sU: đó là sử dụng UDP Scan
Nmap –sP: sử dụng Ping để scan
Nmap –sF: sử dụng FIN Scan
Nmap –sX: sử dụng phương thức XMAS Scan
Nmap –sN: sử dụng phương thức NULL Scan
Nmap –sV: sử dụng để Scan tên các ứng dụng và version của nó
Nmap –SR /I RPC sử dụng để scan RPC

b. Các option cao cấp kết hợp với các dạng Scan trong Nmap.
- O: sử dụng để biết hệ điều hành chạy trên máy chủ ví như ta dùng Nmap sử dụng phương thức scan là XMAS Scan và đoán biết hệ điều hành của: www.vn@@@erts.net ta dùng câu lệnh: nmap –sX –o www.vn@@@erts.net.

- P: giải port sử dụng để scan
- F: Chỉ những port trong danh sách scan của Nmap
- V: Sử dụng Scan hai lần nhằm tăng độ tin cậy và hiệu quả của phương thức scan nào ta sử dụng.
- P0: không sử dụng ping để Scan nhằm mục đích giảm thiểu các quá trình quét ngăn chặn scan trên các trang web hay máy chủ.

Ví như tôi muốn Scan trang web www.vn@@@erts.net bằng phương thức UDP Scan số port tôi sử dụng là từ 1 tới 1024 và sử dụng hai lần để nâng cao hiệu quả, khi scan sẽ không ping tới trang này:
Nmap –sU –P ‘1-1024’ –V –P0 www.vn@@@erts.net
Ngoài ra nmap còn hỗ trợ tính năng scan ẩn nhằm tránh những quá trình quét trên server như sử dụng:

-Ddecoy_host1, decoy2… để sử ẩn quá trình Scan.
-6: Scan IPv6
Ngoài ra nmap còn cho chúng ta những options để output kết quả ra nhiều định dạng file khác nhau.

IV. Kết luận.
Scan port là một trong những bước đầu tiên để tấn công vào một hệ thống, để hiểu được các phương thức scan chúng ta có thể dùng nmap để thực hiện. Sau đó cách chúng ta cấm Scan đó là sử dụng các thiết bị chuyên dụng như IPS, IDS để detect và ngăn chặn tấn công

Định nghĩa Proxy, sock và ứng dụng

Thường thì cư dân mạng hay lực lượng UG hay sử dụng proxy và sock để hỗ trợ chơi games online, công việc hoặc mục đính mang tính cá nhân. Và bài này sẽ cho ta có cái nhìn khái quát về cái được gọi là proxy, sock hay còn gọi là socket:

* Proxy: Chỉ một hệ thống Computer hoặc một Router tách biệt kết nối giữa người gửi (Sender) và người nhận (Receiver). Nó đóng vai trò là một hệ thống chuyển tiếp (Relay) giữa 2 đối tượng: Client (muốn truy cập tài nguyên) và Server (cung cấp tài nguyên mà Client cần) Nhờ chức năng chuyển tiếp (trung chuyển có kiểm soát) này , các hệ thống Proxy (hay Proxy servers) được sử dụng để giúp ngăn chặn attacker xâm nhập vào Mạng nội bộ Và các proxy cũng là một trong những công cụ được sử dụng để xây dựng Firewall.

Từ proxy còn có nghĩa "hành động nhân danh một người khác" và thực sư Proxy server đã làm điều đó, nó hành động nhân danh cho Client và cả Server . Tất cả các yêu cầu từ Client ra Internet trước hết phải đến Proxy, Proxy kiểm tra xem yêu cầu nếu được cho phép, sẽ chuyển tiếp có kiểm soát yêu cầu ra Internet đến server cung cấp dịch vụ (Internet Hosts). Và cũng tương tự sẽ phản hồi (response) hoặc khởi hoạt các yêu cầu đã được kiểm tra từ Internet và chuyển yêu cầu này đến Client. Cả hai Client và Server nghĩ rằng chúng nói chuyện trực tiếp với nhau nhưng thực sự chỉ "talk" trực tiếp với Proxy.

- Application Level and Circuit Level Proxy
Các proxy servers sẵn sàng cho các dịch vụ thông thường trên internet, ví dụ như: một HTTP proxy được dùng cho truy cập Web, một FTP proxy được dùng cho truyền File. Những Proxies trên, được gọi là application-level proxies hay "application-level gateways", bởi vì chúng được chỉ định để làm việc với những application và protocol và nhận ra được nội dung các Packet được gửi đến nó. Một hệ thống proxy khác được gọi là circuit-level proxy, hỗ trợ nhiều applications cùng lúc. ví dụ, SOCKS là một IP-based proxy server (circuit-level proxy), hổ trợ hầu hết các applications trên nền TCP và UDP

* SOCKS hay Sockets
Chính là một circuit-level proxy server cho các IP networks theo định nghĩa từ (IETF (Internet Engineering Task Force)- một cộng đồng các chuyên gia về network designers, operators, vendors, and researchers tham gia vào cuộc xây dựng kiến trúc Internet và ngày càng hoàn thiện Internet hơn.) SOCKS được viết bởi David và Michelle Koblas vào những năm đầu của thập niên 90. SOCKS đã nhanh chóng trở thành một de facto standard (hardware hay software được dùng rộng rãi nhưng không được chứng nhận từ những tổ chức chuyên cung cấp các định chuẩn), ngược lại là de jure standard. Mặc dù SOCKS ra đời sớm và được dùng phổ biến, nhưng SOCKS được IETF thông qua lần đầu tiên là SOCKS5. SOCKS ban đầu là hệ thống Proxy được sủ dụng cho các traffic như FTP, Telnet, v.vv, nhưng không dành cho HTTP. SOCKS4 kiểm soát các TCP connections (là phần lớn các Application trên Internet), SOCKS5 còn hỗ trợ thêm UDP, ICMP, xác thực User (user authentication) và giải quyết hostname (DNS service).
SOCKS bắt buộc Client phải được cấu hình để chuyển trực tiếp các yêu cầu đến SOCKS server, hoặc ngược lại SOCKS driver sẽ ngăn chặn các Clients chuyển các yêu cầu non-SOCKS application. Nhiều Web browsers và các Internet applications khác hiện nay hỗ trợ SOCKS, cho nên khá dễ dàng khi làm việc với các SOCKS server.

1.Proxy
Proxy là 1 máy chủ phục vụ những yêu cầu mà máy con gửi tới
* Có 2 loại proxy thường gặp:
- Proxy chia sẽ đường truyền: giúp nhiều máy truy cập Internet thông qua 1 máy, mà máy này gọi là Proxy. Chỉ duy nhất máy Proxy này cần modem và account truy cập internet, các máy client muốn truy cập internet qua máy này chỉ cần nối mạng LAN tới máy Proxy và truy cập địa chỉ yêu cầu.
- Proxy trung chuyển: hiện nay trên internet có rất nhiều Proxy Server, khi đăng nhập server này, nó sẽ hỗ trợ ta truy cập tới website khác internet mà không bị Firewall chặn lại. Ngoài ra, nó che dấu cã IP thực của máy client, nơi truy cập chỉ biết được IP của Proxy Server. Các hacker rất thường sử dụng để che dấu vết. (Đọc đến đây chắc bạn cũng biết được là, vào cách đây khoảng 1 năm, bùng nổ vụ xài VNN1268 để truy cập Internet quốc tế thông qua proxy là thực sự nó hoạt động thế nào).
* Mục đích sử dụng Proxy:
- Lướt web nhanh hơn (do proxy có sử dụng cache đệm)
- Có thể lợi dụng proxy để vào 1 số web mà ISP của bạn không cho vào. (vượt tường lửa - Firewall)
- Lướt web an toàn hơn. Ví dụ để mua hàng ở 1 website nào đó.

2.Sock
Đơn giản là 1 loại proxy xài tốt hơn http proxy vì nó hỗ trợ tốt hơn và an toàn hơn
Có thể xem thêm 1 tí thông tin về Sock(s)
SOCKS được tạo ra bởi chữ SOCKetS và được phán triển chủ yếu bởI NEC, cũng như được ITEF đưa thành một chuấn của Internet, đựợc định nghĩ trong RFC (Request for comment). Nhiệm vụ của SOCKS là cầu nối trung gian giữa một đầu của SOCKS server đến đầu kia của SOCKS server:
CLIENT --------> IN - SOCKS SERVER - OUT ---------------> SERVER
SOCK được dùng chủ yếu trong công nghệ Proxy server và Firewall. Hiện nay có version SOCKS4 và SOCKS5. Socks 5 là bản phát triển sau nên có thêm tính năng để authorize, và có thể sử dụng UDP (SOCKS 4 chỉ có TCP).

3. Các loại Proxy Server và sự khác nhau:
HTTP Proxy, SOCKS Proxy (Socks 4, Socks 5), CGI Proxy, FTP Proxy
HTTP Proxy Server: cho phép hoạt động trên Net với giao thức HTTP (HyperText Transfer Protocol), đôi khi có thể sử dụng giao thức FTP (File Transfer Protocol).
- SOCKS Proxy Server: cho phép làm việc trên Net với bất cứ giao thức nào như: HTTP, FTP, SMTP (Simple Message Transfer Protocol), POP3 (Post Office Protocol - version 3), … (Socks 4 cho TCP - Transmission Control Protocol, Socks 5 cho TCP, UDP - User Datagram Protocol)
- CGI Proxy Server: hỗ trợ giao thức trên Net là HTTP (có khi hỗ trợ HTTPS – HTTP Security & FTP). Được cung cấp qua 1 số website dưới dạng nhập 1 URL vào 1 textbox.

4. Các mức độ ẩn danh của Proxy Server:
Khái niệm Anonymous: Khi sử dụng Proxy Server thì IP thật của ta bị che dấu đi thì khi đó ta được coi là ẩn danh, tức là Anonymous.
Các mức độ:
- Transparent: IP không được ẩn.
- Anonymous: IP thật bị ẩn hoàn toàn.
- High Anonymous: IP thật bị ẩn đi và việc sử dụng Proxy Server cũng được che dấu. Loại này còn 1 tên gọi là Elite
Ngoài ra còn chia ra thêm SSL và Non-SSL
Giao thức SSL (Secure Socket Layer) tổ hợp nhiều giải thuật mã hóa nhằm đảm bảo quá trình trao đổi thông tin trên mạng được bảo mật. Việc mã hóa dữ liệu diễn ra một cách trong suốt, hỗ trợ nhiều giao thức khác chạy trên nền giao thức TCP. Cơ chế hoạt động của giao thức SSL dựa trên nền tảng các ứng dụng mã hóa đã được kiểm chứng như: giải thuật mã hóa đối xứng và bất đối xứng, giải thuật băm (hash) một chiều, giải thuật tạo chữ ký số, v.v...

5. Fake Proxy & Fake Sock:
Thực ra, có 1 số phần mềm rất hay, nó cho phép ta thay đổi proxy IP liên tục sau 1 khoảng thời gian nhất định. ( Hic… bạn tự tìm hiểu mấy cái software đó nha, ở đây hướng dẫn làm bằng tay... không có software gì hết ), bật Internet @@@lorer lên. Vào Tools \ Internet Options. Chọn tab Connections. Click vào nút LAN Settings. Đánh dấu vào Use a proxy server for your LAN và cũng đánh dấu vào Bypass proxy server for local addresses.
- Fake Proxy: điền proxy vào 2 ô address và port là xong. Ví dụ, proxy là 64.61.91.298 :8080 thì điền vào address là 64.61.91.298 và port là 8080
- Fake Sock : Không điền vào 2 ô ở trên mà nhấn vào Advanced. Sau đó điền Sock vào ô Socks cuối cùng (cách điền như trên), nhưng chú ý là chỉ điền vào ô Sock, các ô khác để nó trống.

Rút ngắn thời gian khởi động Windows

Đầu tiên bạn mở Notepad , soạn thảo một nội dung sau :
del C:\windows\prefetch\ntosboot-*.* /q


Sau đó bạn lưu lại với tên là ntosboot.bat trong ổ đĩa C.Nếu windows của bạn được cài đặt ở ổ đĩa khác ,hãy thay kí tự "C" bằng kí tự ổ đĩa hệ thống của bạn.

Vào Start - Run > gõ gpedit.msc > nhấn Enter để mở cửa sổ Group Policy.
Nhấn vào nút dấu cộng đứng trước mục Windows Settings phía dưới phần Computer Configuration > chọn Scripts (Startup/Shutdown). Nhấn đúp chuột vào mục Shutdown nằm ở cửa sổ bên phải .

Một cửa sổ mới hiện ra, nhấn Add > nhấn Browse > chỉ định đường dẫn bạn đã lưu tập tin ntosboot.bat > nhấn Open.

Nhấn OK > Apply > OK. Thoát khỏi Group Policy.
Vào Start - Run > gõ devmgmt.msc > nhấn Enter.

Trong cửa sổ Device Manager, nhấn đúp chuột vào mục IDE ATA/ATAPI controllers.

Nhấn chuột phải vào Primary IDE Channel và chọn Properties.

Hộp thoại hiện ra chọn thẻ Advanced Settings. Trong 2 khung Device 0 và
Device 1 nếu khung nào có mục Device Type cho phép lựa chọn thì nhấn chọn None thay vì Auto Detection. Nhấn OK

Thực hiện tương tự như vậy cho Secondary IDE channel.
Cuối cùng bạn thử khởi động Windows lại xem, tốc độ đã được cải thiện đáng kể.

DDoS, Anti DDoS, BOT và BotNet

,

Đọc 2 bài này hay quá nên quyết định hệ thống thành 1 bài cho Logic bigsmile 1. DDoS là gì ? Tấn công bằng từ chối dịch vụ DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng hợp pháp khả năng truy cập và sử dụng vào một dịch vụ nào đó. Nó bao gồm làm tràn ngập mạng, mất kết nối với dịch vụ… mà mục đích cuối cùng là máy chủ (Server) không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các máy trạm (Client). DoS có thể làm ngưng hoạt động của một máy tính, một mạng nội bộ, thậm chí cả một hệ thống mạng rất lớn. Về bản chất thực sự của DoS, kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ từ các client khác. Tại sao DDoS - Một hình thái tấn công từ chối dịch vụ đã được các hacker chân chính không còn thừa nhận nữa - lại đang phổ biến và trở thành thứ vũ khí nguy hiểm đến mức không thể chống đỡ? Trong nhiều nguyên nhân, có một điều đau lòng là DDoS phát sinh từ chính những tham vọng xấu khi làm chủ và điều khiển được thông tin của những cá nhân. 2. Cách phòng chống & hạn chế ? Tấn công DDoS đến nay trên thế giới hầu như chưa có cách ngăn chặn triệt để 100%, tuy nhiên chúng ta có thể sử dụng tường lửa (firewall) để phòng chống & hạn chế một phần sức mạnh & tác hại của nó. Dưới đây là chi tiết hướng dẫn cách setup một firewall đơn giản nhưng không kém phần hiệu quả nhằm giảm thiểu "cơn giận" của "con quái thú" DDoS. Bước 1: Tạo file .htaccess tại thư mục bị DDoS access/request liên tục (thông thường là các thư mục public_html, forum, diendan, 4rum, shop, blog, f v.v...). Nội dung file như sau:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tendomain.com [NC]
RewriteRule !antiddos.phtml http://tendomain.com/antiddos.phtml?%{REQUEST_URI} [QSA]
Bước 2: Tại cùng thư mục, tạo file antiddos.phtml với nội dung:
<?
$text=$HTTP_SERVER_VARS['QUERY_STRING'];
$text = preg_replace("#php\&#si",'php?',$text);
echo('<center><a href=http://tendomain.com'.$text.'>[Click vao day]</a><br>de vao dien dan.</center>');
?>
_____________________________________________________________________________ Bot & Botnet (Tác giả:Phạm Đức Hải) 1. Lời nói đầu Internet ngày càng phát triển, cùng với nó các mạng botnet được sinh ra một cách bí mật và tiềm ẩn những nguy cơ lớn đối với an ninh mạng. Số lượng và kích cỡ botnet ngày càng tăng. Người ta đã tìm thấy và gỡ bỏ nhiều botnet trên Internet. Cảnh sát Hà Lan đã tìm thấy một botnet gồm 1.5 triệu nút và ISP Telenor của Na Uy đã dỡ bỏ một botnet 10.000 nút. Ở Việt Nam điển hình là vụ tấn công từ chối dịch vụ Flash-DDoS bằng botnet vào trang thương mại Việt Cơ (2006) và gần đây nhất là vụ tấn công DDoS hàng loạt các site như 5giay.vn, nhatnghe.vn,bkav.com.vn (của BKIS – Trung tâm an ninh mạng ĐHBKHN) ( tháng 09/2008 ) bằng botnet với số lượng máy bị kiểm soát lên đến hàng ngàn. Người ta đã khởi động các hoạt động hợp tác quốc tế lớn nhằm dập tắt các botnet. Vậy botnet là gì ? Botnet hình thành và hoạt động như thế nào? Các nguy cơ của botnet ? Bài viết này tôi sẽ đề cập đến IRC botnet và trả lời các câu hỏi trên. 2. DoS và DDoS Một cuộc tấn công từ chối dịch vụ (tấn công DoS) hay tấn công từ chối dịch vụ phân tán (tấn công DDoS) là sự cố gắng làm cho tài nguyên của một máy tính không thể sử dụng được nhằm vào những người dùng của nó. Mặc dù phương tiện để tiến hành, động cơ, mục tiêu của tấn công từ chối dịch vụ là khác nhau, nhưng nói chung nó gồm có sự phối hợp, sự cố gắng ác ý của một người hay nhiều người để chống lại Internet site hoặc service (dịch vụ Web) vận hành hiệu quả hoặc trong tất cả, tạm thời hay một các không xác định. Thủ phạm tẩn công từ chối dịch vụ nhằm vào các mục tiêu site hay server tiêu biểu như ngân hàng, cổng thanh toán thẻ tín dụng và thậm chí DNS root servers. Một phương thức tấn công phổ biến kéo theo sự bão hoà máy mục tiêu với các yêu cầu liên lạc bên ngoài, đến mức nó không thể đâp ứng giao thông hợp pháp, hoặc dáp ứng quá chậm. Trong điều kiện chung, các cuộc tấn công DoS được bổ sung bởi ép máy mục tiêu khởi động lại hoặc tiêu thụ hết tài nguyên của nó đến mức nó không cung cấp dịch vụ, hoặc làm tắc nghẽn liên lạc giữa người sử dụng và nạn nhân. Tấn công từ chối dịch vụ đựoc lưu ý sự vi phạm chính sách sử dụng đúng internet của IAB(Internet Architecture Board). Chúng cũng cấu thành sự vi phạm luật dân sự. Phương pháp DoS truyền thống sử dụng một máy tính đơn gửi một số lượng lớn các yêu cầu (flooding requests) đến máy tính đơn khác. Mô hình DDoS sử dụng nhiều máy tính tấn công một mục tiêu đơn nhất. DDoS sử dụng mạng botnet để tấn công, về mặt lý thuyết khi mạng botnet này đủ lớn thì mục tiêu không thể chống đỡ nổi hơn nữa phương pháp này tạo ra các truy nhập hợp lệ khiến việc xác định nơi phát động tấn công là một khó khăn rất lớn. 3. Internet Relay Chat (IRC) IRC được sáng tạo ra bởi Jarkko Oikarinen (bí danh "WiZ") vào khoảng cuối tháng 8 năm 1988 để thay thế một chương trình có tên là MUT (MultiUser Talk) trên một kênh BBS gọi là OuluBox tại Phần Lan. Ông tìm được cảm hứng cho dự án của mình từ hệ thống Bitnet Relay Chat của mạng Bitnet. IRC được nhiều người chú ý đến từ khi nó được dùng sau tấm màn sắt (Iron Curtain) để viết phóng sự trực tuyến về sự sụp đổ của Liên Bang Xô Viết trong khi tất cả các phương tiện truyền thông khác không hoạt động được. Thời gian gần đây, nó cũng được dùng một cách tương tự để viết phóng sự trong trận chiến giữa Kuwait và Iraq. IRC là chữ viết tắt từ cụm từ Internet Relay Chat trong tiếng Anh. IRC là một dạng liên lạc cấp tốc qua mạng Internet. Nó được thiết kế với mục đích chính là cho phép các nhóm người trong một phòng thảo luận (channel) liên lạc với nhau. Tuy nhiên, nó cũng cho phép hai người dùng liên lạc riêng nếu họ thích. Hiện nay IRC là mạng trò chuyện trực tuyến lớn, có vài triệu kênh trên máy phục vụ trên khắp thế giới. Giao thức viễn thông này cũ hơn IM; IRC từng là hoàn toàn đựa vào nhập thô ASCII. Tuy nhiên, hiện thời có mốt số ứng dụng đồ họa làm cho dễ sử dụng IRC hơn, gần bằng dùng IM. Hình 01. Mô hình mạng IRC Ngoài chát, IRC còn dùng để chia sẻ tập tin và tư liệu theo hình thức mạng ngang hàng. Có nhiều ứng dụng khách IRC cho người dùng trên bất kỳ hệ điều hành. Một ứng dụng phổ biến là XChat. XChat là phần mềm tự do trên Linux/BSD, mặc dù phiên bản trên Windows là phần mềm dùng thử (30 ngày), cũng đã dịch sang tiếng Việt. Conversation là một thí dụ của ứng dụng khách IRC mới, dễ dùng, đựa vào đồ họa. Không cần học hiểu lại cách sử dụng lệnh IRC. Các ứng dụng khách Jabber cũng có khả năng trò chuyện qua IRC, nhưng chưa có truyền tải hữu hiệu. Chương trình thông dụng khác để truy cập vào các máy chủ IRC là KVIrc và mIRC. mIRC là một phần mềm chia sẻ (shareware) dành cho người sử dụng IRC trên Windows (không hoạt động trên các hệ điều hành khác như Linux, Mac OS, PalmOS, Epoc, Atari's...), được sáng tạo, phát triển và đăng kí bản quyền bởi Khaled Mardam-Bey. 4. Bot và botnet Bot hay rôbôt mạng là các ứng dụng phần mềm chạy các tác vụ tự động hóa trên mạng. Thông thường, bot thực hiện các tác vụ đơn giản và có cấu trúc lặp đi lặp lại với một tần suất cao hơn nhiều so với khả năng của một soạn thảo viên là con người. Ứng dụng rộng lớn của bot là trong duyệt tự động Web theo kiểu bò loang (web spidering), trong đó một chương trình tự động tìm kiếm, phân tích và sắp xếp thông tin từ các máy chủ web với tốc độ cao hơn nhiều lần tốc độ của con người. Mỗi máy chủ có một file có tên robots.txt chứa các quy tắc cho việc bò loang tự động tại máy chủ đó, đây là các quy tắc mà con bot cần tuân theo. Bot là viết tắt của robot, tức các chương trình tự động hoá (chứ không phải là người máy như nghĩa chúng ta vẫn gọi) thường xuyên được sử dụng trong thế giới Internet. Một ví dụ về bot đó là search enginer Người ta định nghĩa spider được dùng bởi các công cụ tìm kiếm trực tuyến, ánh xạ website và phần mềm đáp ứng theo yêu cầu trên IRC (như eggdrop) là robot. Bên cạnh các ứng dụng kể trên, bot còn có thể được cài đặt tại nơi đòi hỏi tốc độ phản ứng cao hơn tốc độ của con người (chẳng hạn bot trò chơi điện tử và bot tại các trang web bán đấu giá) hoặc trong các tình huống cần đến sự bắt chước các hoạt động của con người (chẳng hạn các chatbot - bot nói chuyện). Botnet là từ chỉ một tập hợp các rô bôt phần mềm hoặc các con bot hoạt động một cách tự chủ. Từ này còn được dùng để chỉ một mạng các máy tính sử dụng phần mềm tính toán phân tán. Tuy từ "botnet" có thể dùng để chỉ một nhóm bot bất kỳ, chẳng hạn IRC bot, từ này thường được dùng để chỉ một tập hợp các máy tính đã bị tấn công và thỏa hiệp và đang chạy các chương trình độc hại, thường là sâu máy tính, trojan horse hay các cửa hậu, dưới cùng một hạ tầng cơ sở lệnh và điều khiển. Một chương trình chỉ huy botnet (botnet's originator hay bot herder) có thể điều khiển cả nhóm bot từ xa, thường là qua một phương tiện chẳng hạn như IRC, và thường là nhằm các mục đích bất chính. Mỗi con bot thường chạy ẩn và tuân theo chuẩn RFC 1459 (IRC). Thông thường, kẻ tạo botnet trước đó đã thỏa hiệp một loạt hệ thống bằng nhiều công cụ đa dạng (tràn bộ nhớ đệm, ...). Các bot mới hơn có thể tự động quét môi trường của chúng và tự lan truyền bản thân bằng cách sử dụng các lỗ hổng an ninh và mật khẩu yếu. Nếu một con bot có thể quét và tự lan truyền qua càng nhiều lỗ hổng an ninh, thì nó càng trở nên giá trị đối với một cộng đồng điều khiển botnet. Các botnet đã trở nên một phần quan trọng của Internet, tuy chúng ngày càng ẩn kĩ. Do đa số các mạng IRC truyền thống thực hiện các biện pháp cấm truy nhập đối với các botnet đã từng ngụ tại đó, những người điều khiển botnet phải tự tìm các server cho mình. Một botnet thường bao gồm nhiều kết nối, chẳng hạn quay số, ADSL và cáp, và nhiều loại mạng máy tính, chẳng hạn mạng giáo dục, công ty, chính phủ và thậm chí quân sự. Đôi khi, một người điều khiển giấu một cài đặt IRC server trên một site công ty hoặc giáo dục, nơi các đường kết nối tốc độ cao có thể hỗ trợ một số lớn các bot khác. Chỉ đến gần đây, phương pháp sử dụng bot để chỉ huy các bot khác mới phát triển mạnh, do đa số hacker không chuyên (script kiddie) không đủ kiến thức để sử dụng phương pháp này. Một xu hướng rất nguy hiểm trong thời gian gần đây là kẻ tấn công sử dụng botnet gồm hàng ngàn máy tính ma (máy tính đã bị khống chế hay còn gọi là zombie) để tấn công từ trối dịch vụ, nhằm vào các hệ thống của doanh nghiệp, tổ chức, chính phủ. Để tạo ra đội quân zombie hùng hậu này, chúng sử dụng virus, spyware hay các trojan lây nhiễm qua Internet, khi máy tính bị nhiểm máy tính đó sẽ bị kiểm soát một cách bí mật, từ xa bởi các Trojan. Có rất nhiều phương pháp điều khiển và quản lý zombie từ xa. Trong khuôn khổ bài viết này tôi chỉ đề cập đến việc điều khiển và quản lý bằng Trojan thong quan các kênh riêng Internet Relay Chat (IRC). 5. IRC botnet Mỗi một máy bị kiểm soát,bị cài một phần mềm nguy hiểm bí mật kết nối đến kênh IRC của kẻ tấn công gọi là một bot. Mạng các các kết nối tới một kênh IRC gọi là một botnet. Bot cũng đồng nghĩa với agent (tác tử) trong phương thức DDoS truyền thống. Các bot này được điều khiển thông qua kênh IRC nó kết nối đến. Một bot khi được cài lên máy của nạn nhân, nó sẽ kết nối ra ngoài theo các cổng của dịch vụ IRC và tham gia vào các kênh riêng do kẻ tấn công tạo ra. Các kênh này năm trên các mạng phổ biến như Efnet, Undernet hay DALnet. Các mạng này là một công cụ miễn phí, ổn định để kẻ tấn công dễ dàng mở rộng, quản lý, duy trì và điều khiển đội quân bot. Mạng IRC cung cấp cho kẻ tấn công khẳ năng dẽ dàng và mềm dẻo để điều khiển hàng trăm thậm trí hàng ngàn bot. Theo Australian CERT, điểm cực kỳ nguy hiểm là các bot hiện nay có thể tân dụng được băng thông rộng và tài nguyên dư thừa của máy nạn nhân, những bot này sẽ có khả năng cực kỳ mạnh mẽ. Botnet với nhiều bot mạnh này sẽ tạo ra một sức mạnh vô cùng ghê gớm, có khả năng đánh sập bất kỳ hệ thống nào. 6. Các thành phần cơ bản của IRC Bot Attack Bản chất bot là một chương trình nguy hiểm đã được lây nhiễm vào máy tính nạn nhân và bị kiểm soát bởi kẻ tấn công. Các bot được cấu hình để kết nối vào một kênh IRC bí mật và đợi lệnh tấn công . - Bot: thường là một file thực thi, có khả năng thực hiện một tập lệnh đã được lập trình trước. Các lệnh này thường tác động trực tiếp đến máy tính bị lây nhiễm như ẩn các tác vụ của người quản trị. Bot sẽ tự copy đến một thư mục bí mật và thay đổi cấu hình trên máy lây nhiễm cho phép nó tự động kích hoạt khi máy khởi động. Ví dụ trên nền Widows bot sẽ kích hoạt một phiên bản của nó lúc máy tính khởi động bằng cách thêm thông tin vào Registry : HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows \CurrentVersion\Run\ Thông thường bản nén của một bot có kích thước không quá 15kb. Bot được lây nhiễm dưới dạng virus, sâu máy tính các loại malware khác hay được phát tán từ các site độc hại, site bị hacker kiểm soát. Với cách phát tán từ các website bot được tự động tải về máy do các lỗi của trình duyệt hay do người dùng không biết và click vào. Hình ảnh sau cho thấy mã cử một website đã bị chèn một file thực thin guy hiểm tên là Trojan.exe Hình 02 . Mã một trang phát tán mã độc Hình 3. Các thành phần IRC BOT - Máy nạn nhân (Victim machine, hay còn gọi là zombie hay máy tính ma): là một máy tính có kết nối internet, đã bị cài một phần mềm nguy hiểm đóng vai trò là một bot của một botnet. Phần mềm nguy hiểm này có thể được cài theo nhiều cách, một trong các cách đó là cách lây nhiễm kể trên. Hay bị cài do các lỗi của phần mềm, hệ điều hành và gần đây một cách rất phổ biến là lây qua USB. - Kẻ tấn công (Attacker): là người đã tạo ra và phát tán bot, người điều khiển và ra lệnh cho các bot kết nối tới server,kênh IRC định trước, là người ra lệnh tấn công đối với các bot. - Kênh điều khiển (Control channel): là một kênh IRC bí mật được kẻ tấn công tạo ra nhằm kết nối các máy tính đã kiểm soát thông qua các bot khi các máy tính này kết nối vào mạng.Thông tin về kênh này đã được định sẵn trong các bot hay các bot có cơ chế để tự động cập nhật thông tin về kênh này. -Máy chủ IRC (IRC Server): là máy chủ cung cấp dịch vụ IRC. Một số nguồn cung cấp dịch vụ IRC phổ biến như DALNET ... Kẻ tấn công cũng có thể dựng một máy chủ riêng. -Botnet : tất cả các bot khi kết nối tới kênh điều khiển tạo thành mộ mạng lớn các nút gọi là botnet. Botnet này sẽ ở trong trạng thái sẵn sằng chờ lệnh tấn công của kẻ tạo ra nó. 7. Các mối nguy hiểm bot và botnet có thể tạo ra Các hành động sau có thể được thực hiện bởi kẻ tấn công khi sử dụng bot và botbet: -Tấn công từ chối dịch vụ (DoS attack): đây chính là lý do lớn nhất khiến kẻ xấu sử dụng IRC bot. Kẻ tấn công có thể sử dụng sức mạnh của đội quân zombie bằng cách điều khiển và phát lệnh tấn công tới mục tiêu. Có thể hạ gục mục tiêu bằng các dòng dữ liệu UDP, ICMP lớn hay gửi các yêu cầu đồng bộ làm lụt TCP gây ghẽn đường truyền. - Tiếp tục lây nhiễm cục bộ : với bot đã có kẻ tấn công có thể chiếm toàn bộ quyền kiểm soát máy bị lây nhiễm. Kẻ tấn công có thể tải về và cài các chương trình gián điệp (spy ware), trojan, key log…để theo dõi máy, thu thập các thông tin nhạy cảm của nạn nhân như thông tin cá nhân, tài khoản ngân hàng, thẻ tín dụng… - Tận dụng băng thông của nạn nhân:: một mục đích sử dụng thú vị khác là tận dụng băng thông và tài nguyên rỗi của nạn nhân. Đặc biệt là các máy có băng thông rộng. Thậm chí giữa các nhóm tấn công cũng trao đổi với nhau tài nguyên này. - Của hậu (Backdoor): với kiểu tấn công này, botnet còn có khả năng ẩn dấu và mở các kêt nối bí mật ra ngoài, để kẻ tấn công có thể dễ dàng xâm nhập vào lần tiếp theo. - Chứa dữ liệu bất hợp pháp :với xu hướng này, kẻ tấn công có thể tân dụng các bot làm các mạng chia sẻ file, tận dụng để lưu trữ file, phần mềm bất hợp pháp, các đoạn video riêng,… Thêm nữa, với việc giám sá các bot, kẻ tấn công có thể một cách bí mật theo dõi các ISP. - Gửi thư rác (spam mail) : đây thực sự là một thách thức lớn đối với các chuyên gia bảo mật. Theo thông tin mới nhất (10/2008) các mạng botnet trung bình một ngày gửi 60 tỉ thư rác chiếm 20% tổng số thư rác/ngày. 8. Mục tiêu và nạn nhân chính của bot & botnet Tất cả các nguồn kết nối tới internet đều có thể là mục tiêu tấn công của kẻ xấu. Các hệ thống sơ hở có thể bị lây nhiễm bot là các hệ thống ít giám sát, băng thông và tài nguyên lớn, các máy tính cá nhân sử dụng ở nhà, các máy tính cá nhân, các máy chủ ở các trường đại học. - Hệ thống có băng thông lớn: một trong các loại nguồn kết nối đến internet là các máy có đường truyền băng thông rộng, những máy như thế này có thể được sử dụng để tấn công từ chối dịch vụ phân tán (DDoS) hay lưu trữ file, phần mềm. - Hệ thống có tính sẵn sang cao: kẻ tấn công luôn thích những hệ thống,máy có tính sẵn sang cao như : thời gian kết nối vào mạng lớn, tài nguyên dồi dào. Những hệ thống như thế sẽ luôn sẵn sang cho việc tấn công. - Các hệ thống ít được giám sát và quan tâm: các hệ thống ít được để ý, quan tâm đến như không cập nhật bản vá, không có phần mềm bảo vệ … Kẻ xấu có thể tạo ra các công cụ tự động để rà, quét và tấn công các mục tiêu này, biến các mục tiêu này thành một nút của một botnet mà chủ nhân của nó không hề hay biết. - Các hệ thống có vị trí địa lý xa: kẻ tấn công thích kiểm soát các hệ thống, máy tính ở những vùng địa lý xa với nơi kẻ tấn công ở nhằm tránh luật pháp sở tại và cũng để tiện cho việc che dấu dấu vết. 9. Quá trình lây nhiễm và điều khiển bot Phần này sẽ trình bày cách thức kẻ tấn công sử dụng bot, tùy biến bot cho phù hợp với mục đích sử dụng; cách thức kiểm soát máy bạn nhân, quá trình lây nhiễm và điều khiển bot, cách tấn công sử dụng zombie … Lập trình và thay đổi mã nguồn: quá trình này tùy thuộc vào khảnăng của kẻ tấn công. Bot do kẻ đó viết hay tận dụng lại của người khác và chỉnh sửa cho phù hợp với mục đích sử dụng. Các thông tin tùy chỉnh trên các bot hoặc các bot cập nhật là IRC server, cổng IRC TCP, tên của kênh, mật khẩu hoặc mã chứng thực. Thêm nữa, tùy thuộc vào mục đích sử dụng, kẻ tấn công có thể thay đổi vị chí, tên file đặt trên máy tính đã bị lây nhiễm. Ở mức cao hơn nữa kẻ tấn công có thể sử dụng các kênh IRC động hay sử dụng nhiều kênh IRC. Để làm như vậy kẻ tấn công có thể sự dụng các dịch vụ tên miền động như dyndns.com hay no-ip.com để ánh xạ tên server của IRC với IP máy chủ của nó.. Hình 4. Quá trình lây nhiễm và điều khiển bot Hình trên mô tả một bot được lây nhiễm như thế nào? Quá nhân bản qua một lượng lớn các máy khác để tạo nên mạng các bot hay mạng các zombie. The attacker, attempts to infect the victim machines with bots through either exploiting some operating system/application vulnerability or trick the user into executing a malicious program leading to bots installation. Kẻ tấn công sẽ có gắng kiểm soát và lây nhiễm phần mềm nguy hiểm lên máy nạn nhân thông qua các lỗ hổng của ứng dụng, hệ điều hành hay bằng một cách thức nào đó lừa người sử dụng chạy chương trình kich hoạt bot. Ví dụ : một số trang cung cấp các bản bẻ khóa phần mềm, các trang cho download miễn phí,… đi kèm với chúng là virus, phần mềm gián điệp,… Người sử dụng máy tính thiếu hiểu biết sẽ dễ dàng bị mắc lừa và kích hoạt bot. (1) Cách cơ bản là kẻ tấn công làm lây nhiễm hàng hoạt và tự động một số lượng lớn các máy tính dựa trên mã khai thác lỗ hổng mà các máy này mắc phải. Sau đó kẻ tấn công có thể kiểm soát các máy này, cài phần mềm backdoor (của hậu) lên chúng và có thể dùng chúng là nguồn phát tán và lây nhiễm mã độc. Việc rà quét tự động và khai thác lỗ hổng có thể do phần mềm dạng sâu máy tính (worm) đảm nhiệm. Một cách khác là kẻ tấn công sử dụng các trang web, đặc biệt là các trang web lớn và uy tín mà chúng kiểm soát được, chúng sẽ chèn mã độc vào đó, người dùng thông thường đã có sự tin tưởng đối với những site này và dễ dàng chấp nhận việc download về máy tính khi có của sổ download hiện lên. Bản than chính phần mềm IRC cũng có thể đã bị chèn mã độc và và người dùng cài đặt cùng với IRC mà không hề hay biết. Sauk khi cài đặt thành công trên máy nạn nhân, bot sẽ copy thành nhiều bản trên máy tính nạn nhân, cập nhật thông tin registry (trên windows). Ở bước (2) bot sẽ thực hiện kết nối tới IRC server với nickname ngẫu nhiên, sử dụng khóa bí mật để kết nối vào kênh riêng mà kẻ tấn công đã thiết lập trước đó. Nhiều khi kẻ tấn công có thể sử dụng các server IRC công cộng cho các hoạt động tấn công này, tất nhiên khi bị phát hiện thì người quản trị hệ thống này sẽ loại bỏ kênh đó và kẻ tấn công cũng sẽ mất đi đội quan zombie kết nối vào đó. Do đó để tranh việc này kẻ tấn công thường sử dụng các dịch vụ như dyndns.com, no -ip.com để ánh xạ động các bot đến nhiều server IRC (ở bước (3)). Ở bước (4), bot đã hoàn tất việc cài đặt và kết nối, sẵn sàng chờ lệnh phát động từ người sở hưu nó (bước (5)). Bước (6), kẻ tấn công truy nhập kênh kiểm soát duy trì và điều khiển các bot. Thông thường mật khẩu để điều khiển hệ thống bí mật này sẽ được mã hóa và có cơ chế bị botnet khó bị một kẻ khác chiếm đoạt mất quyền điều khiển. Bước (7), kẻ tấn công điều khiển các zombie trực tiếp hoặc từ xa và phát lệnh tấn công mục tiêu. Tấn công phổ biến là tấn công từ chối dịch vụ (như minh họa trên), gửi thư rác, đánh cắp thông tin cá nhân,… Kẻ tấn công cố gắng tạo ra việc truy nhập mục tiêu từ các zombie càng giống thật càng tốt. Tấn công DDoS kiểu này, yêu cầu gửi đến mục tiêu xuất phát từ tất cả cá zombie với các IP khác nhau khiến việc xác định kẻ tấn công vô cùng khó khăn. 10. Một số bot cơ bản Phần này tôi liệt kê một số bot nguy hiểm chạy trên hệ điều hành windows. Chi tiết có thể tham khảo them tại http://www.simovits.com/trojans/trojans_action.html . GTbot Các thông tin them về GTbot có thể tham khảo tại http://swatit.org/bots/gtbot.html : - sử dụng các chương trình mIRC hợp lệ - dễ dàng viết lại hay chỉnh sửa các nội dung điều khiển Tên gọi khác: W32.IRCBot, Cổng (Ports): tự cấu hình Sử dụng: Truy nhập từ xa / IRC trojan Registers: HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \Windows \CurrentVersion\ Run\ Hệ điều hành chịu tác động: Wi ndows 95, 98, ME, NT, 2000, XP. Hình 5. Minh họa tấn công sử dụng mIRC Evilbot Hình 6. EvilBot v1.0 Nguồn : http://www.megasecurity.org/trojans/e/evilbot/Evilbot_a.html Kích thước file nén: 15.904 bytes Cổng (Ports): mặc định 6667 (có thể thay đổi) Mục đích sử dụng: Truy nhập từ xa / IRC trojan / Công cụ tấn công DDoS / tải trojan về máy nạn nhân Registers: HKEY_LOCAL_MACHINE \Software\Microsoft \Windows \CurrentVersion\ Run\ Hệ điều hành chịu tác động: Windows 95, 98, ME, NT, 2000 , XP. Thông tin them: http://securityresponse.symantec.com/avcenter/venc/data/pf/backdoor.evilbot.html SlackBot Tên gọi khác : Backdoor.Slackbot, DDOS/Slack, Troj/Slack, Slack, Cổng (Ports): 6667 (có thể thay đổi) Files: Slackbot.zip - Slackbot1_0.zip - Zwbv.exe - Sbconfig.exe - Mục đích sử dụng: Truy nhập từ xa / IRC trojan / Công cụ tấn công DDoS / tải trojan về máy nạn nhân Registers: HKEY_LOCAL_MACHINE \Software\Microsoft \Windows \CurrentVersion\ Run\ Hệ điều hành chịu tác động: tất cả các phiên bản của hệ điều hành windows cùng với các phần mềm IRC. 11. Phòng chống bot và botnet Phòng thử chống lại việc lây nhiễm và tấn công của bot chia làm 3 nội dung chính: - Phòng ngừa: người sử dụng, những người quản trị hệ thống nên hiểu cơ chế lây nhiễm và phát tán các bot để có các phòng ngừa. Sử dụng các chương trình phát hiện, tiêu diệt virus, mã độc,…sử dụng hệ thống tường lửa, các hệ thống phát hiện xâm nhập,... - Phát hiện: có thể phát hiện việc xuất hiện của bot bằng cách giám sát các tiến trình, giám sát băng thông và gói tin trong mạng. Xem các cảnh báo, log file từ các hệ thống cảnh báo, tường lửa,… - Xử lý: xử lý khi phát hiện có bot, xử lý khi bị botnet tấn công Đối với người dùng thông thường (Dạng Home user) Phòng ngừa : - Tuân thủ các chính sách bảo mật - Cập nhật các bản vá các phần mềm trên máy - Tham khảo thông tin cập nhật tại cert.org phần “Home Network Security” http://www.cert.org/tech_tips/home_networks.html đây là những nội dung rất căn bản và hữu ích.. - Bật chế độ tự động cập nhật đối với hệ điều hành và phần mềm ứng dụng [theo CERT, 2001] - Thao tác an toàn khi truy nhập mail, web, chat,… như không lưu mật khẩu.. - Sử dụng và cập nhật thường xuyên phần mềm diệt virus phổ biến. - Sử dụng tường lửa và thiết lập các chế độ hợp lý. Phát hiện : - Cổng mặc định của IRC là 6667, cổng này có thể bị thay đổi. Dùng lệnh netstat – an trên cả Windows và Linux để kiểm tra các cổng ra vào mà máy tính đang sử dụng. Ví dụ : C:/windows> netstat – an TCP your.mac hine.ip remote.irc.server.ip :6667 ESTABLISHED Như trên thì có nghĩa là có kết nối IRC đến remote.irc.server.ip qua cổng 6667. Các server IRC có thể lắng nghe trên các cổng 6000- 7000A169 4E Đây cũng là cách để phát hiện các phần mềm gián điệp khác. - Giám sát băng thông, gói tin trên mạng, các cổng kết nối. Có thể có một vài dấu hiệu như mạng chậm, tỉ lệ gói tin gửi đi và nhận được khác thường,… - Phần mềm chống virus và phần mềm gián điệp có thể phát hiện ra chúng. - Trong một số trường hợp có thể dùng các chương trình quét trực tuyến của các hang bảo mật lớn. [theo SYMANTEC] Xử lý: - Ngắt kết nối mạng của máy bị nhiễm mã độc, để tránh nguy cơ ảnh hưởng đến các máy cùng mạng. - Cập nhật phần mềm diệt virus, kiểm tra xem nhà cung cấp hệ điều hành, phần mềm có bản vá hay không ? - Nếu các chương trình diệt virus không phát hiện ra có thể dùng các công cụ hiển thị các tiến trình của máy tính để phát hiện và diệt bằng tay. - Nếu trên máy có chứa các thông tin nhay cảm như tài khoản ngân hàng thì cần báo ngay cho nơi quản lý thẻ để tạm ngưng sử dụng hoặc nếu là mật khẩu thì cần đổi lại ngay. - Nếu không xử lý được thì cần nhờ người có kỹ thuật xử lý. Đối với quản trị hệ thống Phòng chống: - Áp dụng các chính sách bảo mật thông dụng. - Theo hướng dẫn của nhà cung cấp hệ điều hành, phần mềm ứng dụng nâng cấp và cập nhật bản vá. - Theo dõi thông tin về các lỗ hổng bảo mật trên các trang bảo mật uy tín, nhận thông tin bảo mật từ các mailing list bugtraq. - Bật chế độ tự động cập nhật đối với hệ điều hành và phần mềm ứng dụng. - Thao tác an toàn khi truy nhập mail, web, chat,… như không lưu mật khẩu. - Sử dụng và cập nhật thường xuyên phần mềm diệt virus phổ biến. - Sử dụng tường lửa và thiết lập các chế độ hợp lý. - Cài đặt các phần mềm để giám sát hệ thống, phân tích log file hoạt động và truy nhập của hệ thống. Phát hiện - Sử dụng các kỹ thật như đối với người dùng thông thường. - Thường xuyên giám sát log của hệ thống sử dụng, log của hệ thống giám sát, có cơ chế cảnh báo tự động cho người quản trị như gửi mail,… - Giám sát mạng, dùng tường lửa chặn các cổng không cần thiết. một tiện ích nhỏ cho phép xem các cổng đóng mở ngoài netstat là fport của McAfee: http://www.foundstone.com/knowledge/proddesc/fport.html - Phân tích log của phần mềm bắt gói tin có thể phát hiện ra server và kênh bí mật của kẻ tấn công sử dụng, biết được mật khẩu kết nối IRC mã hóa hay không mã hóa. - Tiến hành quét toàn bộ các máy tình nghi có chứa mã độc, rà soát, tìm và dỡ bỏ backdoor, rootkit. - Tham khảo them tài liệu của Dave Dittrich, University of Washington o “Dissecting Distributed Malware Networks “ url: http://security.isu.edu/ppt/pdfppt/Core02.pdf o Security Incidents: World-wide distributed DoS and "warez" bot networks (fwd)::Security focus mailing list Date: May 03 2002 url: http://lists.insecure.org/lists/incidents/2002/May/0026.html Xử lý : - Sử dụng các kỹ thật như đối với người dùng thông thường. - Cô lập các máy bị nhiễm sang một phân mạng riêng biệt. - Lưu trữ và giữ an toàn dữ liệu, logs file của Firewalls, Máy chủ Mail , IDS, DHCP, proxy... - Xử dụng phần mền bắt gói tin để phân tichs cách thức hoạt động của bot, phát hiện các máy bị lây nhiễm, nguồn gốc của nơi phát lệnh,… - Liên hệ các trung tâm xử lý sự cố máy tính, các trung tâm an ninh mạng để cùng phối hợp giải quyết. 12. Xu hướng phát triển của Bot và Botnet Sử dụng mạng IRC để điều khiển zombie vẫn là một xu hướng lớn trong việc phát hiển các công cụ DDoS của kẻ xấu. Trong tài liệu [CERT, DOS_TRENDS] “Trends in Denial oFf8BS5er0v6icEe4 Att6a9ck4ETechnology” George M. Weaver & Kevin J. Houle đến từ CERT® Coordination Center trình bày rất rõ rang việc xây dụng và điều khiển các botnet sử dụng IRC. Tôi chỉ đưa lại một số điểm chính:. Khả năng tồn tại – Đây là một vấn đề lớn được các kẻ tấn công rât quan tâm vì chi chí và công sức bỏ ra để xây dụng một botnet lớn là rất lớn. Giao thức Internet Relay Chat là một giao thức phổ biến và được sử dụng rộng rãi. Các mạng IRC công cộng lớn cùng với các dịch vụ tên miền động dyndns.com & no -ip.com được tận dụng làm cho các kênh sử dụng vào mục địch xấu khó bị phát hiện và dễ tùy biến đối với kẻ tấn công. Botnet dựa trên IRC khó bị phát hiện, giám sát và tiêu diệt. Do đó DDoS bằng IRC botbet nguy hiểm hơn DoS truyền thống rất nhiều. Sự lây nhiễm và lan truyền— số lượng botnet ngày tăng, đồng thời với nó số nút (zombie) của botnet cũng tăng lên. Các botnet ngày càng tinh vi hơn. Các công cụ phát tán cũng tinh vi và nguy hiểm hơn. Đặc biệt là các công cu được phát triển cho phép tự động phát hiện lỗ hổng và lây nhiễm mã độc. Mục đích sử dụng -- mục đích chính vẫn là DDoS, Spam mail, lấy chộm thông tin cá nhân, làm hệ thống chia sẻ file, phần mềm,… (còn nữa)

Toàn tập PHP dành cho người mới bắt đầu

Rảnh rỗi online kiếm giáo trình để tự học PHP và kiếm đc tài liệu này từ HCE nên copy luôn lên Blog tiện thể vừa học vừa share cho những ai cần tìm hiểu về ngôn ngữ PHP. 1. Cú pháp khi sử dụng PHP. Để viết code PHP trước tiên bạn cần xác định nơi viết mã PHP. Toàn bộ code PHP được đặt trong cặp: Code:
<?php
        //code php
    ?>
hoặc:
Code:
<?= //code php ?>
2. PHP Echo + print Hướng dẫn sử dụng echo() và print() trong PHP Để in ra một dòng văn bản hay giá trị của một biến... chúng ta dùng đến echo hoặc print. Code:
<?php
        echo "Dòng 1 với echo và một dấu xuống dòng 
";
        print "Dòng 2 với print";
    ?>
Ở ví dụ trên, ký tự xuống dòng chính là thẻ . Mặc dù thẻ này đặt trong dấu nháy nhưng php vẫn hiểu và dịch nó thành ký tự xuống dòng. Để in ra một chuỗi ký tự thì chuỗi ký tự đó phải nằm trong dấu nháy kép (" "). 3. Chú thích với PHP Mỗi ngôn ngữ lập trình đều có những cách chú thích khác nhau. Chú thích giúp người lập trình dễ dàng hiểu được code khi đọc. PHP có 2 cách chú thích. Code:
<?php
        echo "Một dòng văn bản";
        // Kiểu chú thích một
        /*
            Kiểu chú thích 2
            Kiểu chú thích 2
        */
    ?>
4. Biến trong PHP PHP rất mạnh mẽ trong việc sử dụng và khai báo biến. Đặc biệt PHP tự xác định kiểu dữ liệu của biến dựa vào giá trị đi kèm theo biến. Kiểu của biến trong PHP có thể là kiểu chuỗi, số, mảng. Một biến bắt đầu bằng ký tự $. Cú pháp khai báo biến. Code:
<?php
        $ten_bien=value;
    ?>
Trong đó: Value: Giá trị của biến. Giá trị này có thể là một Chuỗi, số, mảng. Nếu giá trị là chuỗi thì cần đặt trong dấu nháy kép hoặc nháy đơn. Ví dụ: Code:
<?php
        $name="Mai Trang"; // Biến kiểu chuỗi. Giá trị là: "Mai Trang" được đặt trong dấu nháy kép.
        $diem=10; //Biến kiểu số. Giá trị là 10.
    ?>
5. Nối chuỗi Nối chuỗi trong PHP cũng như các như các ngôn ngữ khác, có tác dụng ghép nhiều chuỗi, giá trị... với nhau. PHP sử dụng dấu chấm (.) để thực hiện nối chuỗi. Cú pháp: Code:
<?php
    $txt1="Hello World";
    $txt2="1234";
    echo $txt1 . " " . $txt2;
?>
Kết quả: Hello World 1234 Đoạn code trên thực hiện nối giá trị của 2 biến $txt1 và $txt2 với nhau. Giữa giá trị của 2 biến được nối thêm với dấu cách trống. 6. IF....ELSE IF..ELSE cho phép bạn điều khiển các dòng code thực hiện theo đúng kịch bản hay lịch trình. Ngoài ra, bạn có thể nhóm chúng thành các điều kiện, sử dụng cấu trúc lặp để lặp đi lặp lại thực hiện đó theo giới hạn nào đó. Câu lệnh IF với một điều kiện, nếu điều kiện là true thì khối lệnh trong phát biểu if sẽ thực hiện, trong đó điều kiện được khai báo trong cặp dấu (). 7. Switch Hướng dẫn sử dụng Switch trong php. Switch được dùng khi có nhiều hơn 2 lựa chọn cụ thể cho phép quyết định thực hiện một đoạn lệnh. Cú pháp: Code:
<?php
    switch (bieu_thuc_can_xet)
    {
        case gia_tri1:
          //thực hiện câu lệnh khi bieu_thuc_can_xet có giá trị là: gia_tri1
          break;// dừng lại
        case gia_tri2:
          //thực hiện câu lệnh khi bieu_thuc_can_xet có giá trị là: gia_tri2
          break; //dừng lại
        default: // Trường hợp bieu_thuc_can_xet  không thỏa mãn biểu thức trong case thì thực hiện câu lệnh ở defaule
            // thực hiện câu lệnh.
            //Không cần dùng break;
    }
?>
Ví dụ: Code:
<?php
    $a=20;
    switch ($a)
    {
        case 10:
          echo "Giá trị của a là: 10";
          break;
        case 20:
          echo "Giá trị của a là: 20";
          break;
        case 30:
          echo "Giá trị của a là: 30";
          break;
        default:
          echo "Giá trị của a khác 10, 20, 30";
    }
?>
Đoạn lệnh trên in ra dòng chữ: "Giá trị của a là: 20". 8. Arrays (Mảng 1 chiều) Hướng dẫn tạo và làm việc với mảng 1 chiều. Mảng là biến dữ liệu lưu trữ tập hợp dữ liệu gồm nhiều phần tử, mỗi phần tử chứa một giá trị như: text, number hay một mảng khác. Mỗi phần tử trong mảng đều có một chỉ mục chính và vị trí của phần tử đó trong mảng. Phần tử đầu tiên trong mảng có chỉ mục = 0. Bạn có thể duyệt trên từng phần tử mảng bằng các vòng lặp. Có nhiều cách để khai báo mảng trong PHP. Cú pháp khai báo mảng: (01) Code:
$names = array("Hack","Crack","Enjoin");
Cú pháp khai báo mảng: (02)
Code:
<?php
    $names[0] = "Hack";
    $names[1] = "Crack";
    $names[2] = "Enjoin";
?>
Tuy nhiên bạn cũng có thể sử dụng hàm range để khởi tạo mảng với số phần tử được khai báo như sau: Code:
$number=range(1,20);
Gán giá trị vào phần tử của mảng: Trong trường hợp bạn muốn gán từng giá trị cho mỗi phương thức mảng, bạn có thể sử dụng cách khai báo như sau: Code:
<?php
    $Items=array(2);
    $Items[0]=1;
    $Items[1]=2;
    echo $Items[0]." - ".$Items[1];   
?>
Một cách khác làm việc với mảng. Chúng ta có thể sử dụng đến các Key và Value của mảng. Ví dụ: Trong ví dụ này chúng tôi sẽ gán các Key (HCE, VBF, VHS) với các giá trị (Tuổi) tương ứng: 20, 30, 34. Code:
<?php
    $ages = array("HCE"=>20, "VBF"=>30, "VHS"=>34);
    echo "Tuổi của HCE là: ".$ages['HCE']."
";
    echo "Tuổi của VBF là: ".$ages['VBF']."
";
    echo "Tuổi của VHS là: ".$ages['VHS']."
";
?>
Kết quả của ví dụ trên như sau: Code: Tuổi của HCE là: 20 Tuổi của VBF là: 30 Tuổi của VHS là: 34 Sử dụng vòng lặp For để gán giá trị và truy cập phần tử mảng. Code:
<?php
    $Items=array(10);
    //Thực hiện gán giá trị cho các phần tử của mảng
    for($i=0; $i<10; $i++){
        $Items[$i]=$i*2;
    }
    //Hiển thị giá trị của các phần tử trong mảng.
    for($j=0; $j<10; $j++){
        echo "Element ".$j." - ";
        echo $Items[$j]."<br>";
    }
?>
Kết quả của ví dụ trên như sau: Code:
Element 0 - 0
Element 1 - 2
Element 2 - 4
Element 3 - 6
Element 4 - 8
Element 5 - 10
Element 6 - 12
Element 7 - 14
Element 8 - 16
Element 9 - 18
Sử dụng vòng lặp While để truy cập các phần tử mảng. Code:
<?php
    $Items=array(10);
    //Thực hiện gán giá trị cho các phần tử của mảng
    for($i=0; $i<10; $i++){
        $Items[$i]=$i*2;
    }
    //Hiển thị giá trị của các phần tử trong mảng.
    echo "Key -- Value"."
";
    while($k=each($Items)){
        echo $k["key"]."      --      ";
        echo $k["value"]."
";
    }
?>
Trong đó: Từ khóa: key: Vị trí của phần tử mảng Từ khóa: value: Giá trị của phần tử mảng ứng với phương thức thứ key. Kết quả của ví dụ trên như sau: Code:
    Key -- Value
    0     --    0
    1     --    2
    2     --    4
    3     --    6
    4     --    8
    5     --    10
    6     --    12
    7     --    14
    8     --    16
    9     --    18
Sử dụng hàm list() kết hợp với each() tách phần tử từ mảng. Ví dụ: Code:
<?php
    $Items=array(10);
    //Thực hiện gán giá trị cho các phần tử của mảng
    for($i=0; $i<10; $i++){
        $Items[$i]=$i*2;
    }
    //Hiển thị giá trị của các phần tử trong mảng.
    echo "Key -- Value"."
";
    while(list($key,$value)=each($Items)){
        echo $key."      --      ";
        echo $value."
";
    }
?>
Kết quả của ví dụ trên như sau: Code:
   Key -- Value
    0     --    0
    1     --    2
    2     --    4
    3     --    6
    4     --    8
    5     --    10
    6     --    12
    7     --    14
    8     --    16
    9     --    18
9. Mảng nhiều chiều Mảng nhiều chiều được biết đến như một mảng dữ liệu, ma trận hay lưới hai chiều, ba chiều. Hoặc còn được gọi là mảng của các mảng. Mỗi phần tử trong mảng có thể là một mảng con. Cú pháp: Code:
  $products=array(
        array("TIR","Tires", 100),
        array("COR","Concord", 1000),
        array("BOE","Boeing", 5000)
    );
Để gán giá trị vào mảng hai chiều bạn có thể thực hiện gán giá trị cho từng phần tử mảng ứng với hàng thứ i và cột thứ j. Ví dụ: Code:
    $products[0][0]="A";
    $products[0][1]="B";
    $products[0][2]=100;
    $products[0][1]="C";
    $products[0][0]="D";
    $products[0][1]="E";
Làm việc với mảng 2 chiều. Để truy cập các giá trị cảu phần tử trong mảng 2 chiều, bạn có thể sử dụng vòng lặp for để duyệt trên hàng và cột của mảng như ví dụ sau: Code:
<?php
  $products=array(
        array("TIR","Tires", 100),
        array("COR","Concord", 1000),
        array("BOE","Boeing", 5000)
    );
    for($row=0; $row<3; $row++){
        for($col=0; $col<3; $col++){
            echo $products[$row][$col]." -- ";
        }
        echo "
";
    }
?>
Kết quả của ví dụ trên như sau: Code: TIR -- Tires -- 100 -- COR -- Concord -- 1000 -- BOE -- Boeing -- 5000 -- Sử dụng hàm list() và each(). Trong trường hợp bạn muốn in cột dữ liệu với tên cột, bạn có thể khai báo chúng như ví dụ sau: Cũng giống như mảng 1 chiều, bạn cũng có thể sử dụng hàm list() và each() cùng vòng lặp while() để tách giá trị của mỗi hàng vào biến như ví dụ sau: Code:
<?php
    echo "Array     N       D"."<br>";
    $products=array(
        array(Code=>"TIR",Description=>"Tires", Price=>100),
        array(Code=>"COR",Description=>"Concord", Price=>1000),
        array(Code=>"BOE",Description=>"Boeing", Price=>5000));
    for ($row=0;$row<3;$row++)
      {
        while (list($key,$value)=each($products[$row]))
                echo "$value   ";
        echo "<br>";
      }
?>
Kết quả của ví dụ trên sẽ như sau: Code:
    Array     N       D
    TIR   Tires   100  
    COR   Concord   1000  
    BOE   Boeing   5000
10. Vòng lặp For() Hướng dẫn sử dụng vòng lặp For() trong PHP Cũng giống như các ngôn ngữ lập trình khác, PHP cũng hỗ trợ vòng lặp for(). Cú pháp: Code:
<?php
for (init; cond; incr)
{
  code to be executed;
}
?>
Trong đó: - init: Giá trị khởi tạo cho vòng lặp for() - cond: Điều kiện giới hạn của vòng lặp for(). - incr: Giá trị lặp của vòng lặp for(). Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<?php
    for ($i=1; $i<=5; $i++)
    {
      echo "Chào mừng bạn đến với HCE Group. "."
";
    }
?>
Đoạn code trên sẽ in ra 5 dòng chữ có nội dung: "Chào mừng bạn đến với HCE Group.". Kết quả của ví dụ trên như sau: Code:
    Chào mừng bạn đến với HCE Group.
    Chào mừng bạn đến với HCE Group.
    Chào mừng bạn đến với HCE Group.
    Chào mừng bạn đến với HCE Group.
    Chào mừng bạn đến với HCE Group.
(Còn nữa 11. Vòng lặp while() Hướng dẫn sử dụng vòng lặp while() trong PHP. Cú pháp: Code:
while (condition){
    //Code của bạn
}
Trong đó: condition: Biểu thức Điều kiện, biến...
Ví dụ:
Code:
<?php
$i=1;
while($i<=5)
  {
      echo "Số: ".$i."<br />";
      $i++;
  }
?>
Kết quả của ví dụ trên như sau: Code:
    Số: 1
    Số: 2
    Số: 3
    Số: 4
    Số: 5
12. Vòng lặp do...while() Vòng lặp do...while() sẽ kiểm tra điều kiện sau, tức là vòng lặp do...while() sẽ thực hiện khối lệnh trong do...while() ít nhất 1 lần cho dù bạn đặt điều kiện như thế nào. Vòng lặp này sẽ chạy cho đến khi điều kiện trong do..while() là true. Cú pháp: Code:
<?php
do
{
    executed;
}while (condition);
?>
Trong đó: - executed: Khối lệnh bên trong vòng lặp do....while() - condition: Biểu thức điều kiện, biến, .... Ví dụ: Code:
<?php
$i=0;
do{
      $i++;
      echo "Số: " . $i . "<br />";
  }while ($i<5);
?>
Kết quả: của ví dụ trên như sau: Code:
    Số: 1
    Số: 2
    Số: 3
    Số: 4
    Số: 5
13. php Function Ngoài những hàm có sẵn mà PHP hỗ trợ, người dùng có thể định nghĩa các hàm mới với những mục đích khác nhau. Một hàm được định nghĩa bắt đầu với từ khóa: function, kế đến là cặp dấu: (). Trong cặp dấu () có thể chứa 1 hoặc nhiều tham số truyền vào hàm. Bên trong hàm được bao bởi cặp dấu {}. Ví dụ đơn giản như sau: Code:
<?php
//Tạo một hàm có tên: writeMyName()
function writeMyName(){
    echo "Chào mừng bạn đến với HCE Group.";
}
//Gọi hàm
writeMyName();
?>
Ví dụ trên sẽ hiển thị ra màn hình câu: "Chào mừng bạn đến với HCE Group.". Truyền tham số cho hàm. Như đã nói ở trên, một hàm do người dùng định nghĩa có thể nhận về 1 hay nhiều tham số. Trong ví dụ này chúng tôi sẽ tạo ra một hàm, và truyền giá trị (Name) vào cho hàm đồng thời hiển thị thông tin từ hàm được triệu gọi. Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<?php
function myFunction($name){
    echo "Chào mừng bạn <b>".$name."</b> đến với Hỗ trợ lập trình.";
}
myFunction("HCE");
echo "<br>";
myFunction("VBF");
echo "<br>";
myFunction("VHS");
echo "<br>";
?>
Kết quả của ví dụ trên như sau: Code:
Chào mừng bạn HCE đến với HCE Group.
Chào mừng bạn VBF đến với HCE Group.
Chào mừng bạn VHS đến với HCE Group.
Truyền nhiều tham số cho hàm. Ngoài việc truyền 1 tham số, bạn có thể truyền 2 hay nhiều tham số cho 1 hàm. Ví dụ: Code:
<?php
function pheptinh($x,$y){
    $total = $x + $y;
    return $total;
}
echo "2 + 4 = " . pheptinh(2,4);
?>
Kết quả của ví dụ trên: Code:
2 + 4 = 6.
14. Làm việc với Form Hướng dẫn cách làm việc với Form sử dụng PHP. Trong bài này chúng tôi sẽ hướng dẫn các bạn truyền và nhận dữ liệu từ form của 2 trang khác nhau sử dụng PHP. Để thực hiện ví dụ này, chúng tôi tạo ra 2 trang là: test.php và test2.php, 2 trang này nằm trong cùng một thư mục. Trang test.php có nội dung như sau: Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<form name="frm_testphp" action="test2.php" method="post">
    <input type="text" name="txt_name"/><br>
    <input type="text" name="txt_tuoi"/><br>
    <input type="submit" value="OK" name="OK"/>
</form>
Trong trang nay các bạn chú ý tới action của form. Action này sẽ là nơi dữ liệu của form được truyền đến. Trang test2.php có nội dung như sau: Code:
<?php
    $name=$_POST['txt_name'];
    $tuoi=$_POST['txt_tuoi'];
?>
Name: <?php    echo $name;?><br />
Tuổi: <?php    echo $tuoi;?>
Trong ví dụ trên, chúng tôi thực hiện việc truyền dữ liệu (Name, tuổi) của trang test.php sang trang test2.php. Trang test2.php có nhiệm vụ nhận về 2 giá trị Name, tuổi và hiển thị chúng. 15. Phương thức GET Trong bài viết này chúng tôi sẽ hướng dẫn các bạn truyền và nhận dữ liệu qua phương thức GET của Form. Để thực hiện ví dụ này chúng tôi sử dụng 2 trang: test.php và test2.php. Trang test.php có nhiệm vụ truyền dữ liệu sang trang test2.php thông qua phương thức GET. Ví dụ: Trang test.php có nội dung như sau: Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<form name="frm_testphp" action="test2.php" method="get">
    <input type="text" name="txt_name"/><br>
    <input type="text" name="txt_tuoi"/><br>
    <input type="submit" value="OK" name="OK"/>
</form>
Trang test2.php có nội dung như sau: Code:
<?php
    $name=$_GET['txt_name'];
    $tuoi=$_GET['txt_tuoi'];
?>
Name: <?php    echo $name;?><br />
Tuổi: <?php    echo $tuoi;?>
16. Phương thức POST Trong bài viết này chúng tôi sẽ hướng dẫn các bạn truyền và nhận dữ liệu qua phương thức POST của Form. Để thực hiện ví dụ này chúng tôi sử dụng 2 trang: test.php và test2.php. Trang test.php có nhiệm vụ truyền dữ liệu sang trang test2.php thông qua phương thức POST. Code:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<form name="frm_testphp" action="test2.php" method="post">
    <input type="text" name="txt_name"/><br>
    <input type="text" name="txt_tuoi"/><br>
    <input type="submit" value="OK" name="OK"/>
</form>
Trang test2.php có nội dung như sau: Code:
<?php
    $name=$_POST['txt_name'];
    $tuoi=$_POST['txt_tuoi'];
?>
Name: <?php    echo $name;?><br />
Tuổi: <?php    echo $tuoi;?>
17. Date() Trong bài này chúng tôi sẽ hướng dẫn các bạn định dạng ngày tháng hiện tại bằng hàm Date(). Hàm Date() hỗ trợ rất nhiều định dạng để hiển thị ngày tháng. Trong bài này chúng tôi chỉ hướng dẫn các bạn những định dạng thường được sử dụng trong các website. Code:
<?php
    echo date("Y-m-d"); //Định dạng kiểu: Năm/Tháng/Ngày
        echo "<br />";
    echo date("d-m-Y"); //Định dạng kiểu: Ngày-Tháng-Năm.  (22/02/2009)
        echo "<br />";
    echo date("d-m-y"); //Định dạng kiểu: Ngày-Tháng-Năm.  (22/02/09)
   
?>
Bạn cũng có thể tách và cộng các giá trị ngày tháng như bình thường. Ví dụ: Code:
<?php
    $tomorrow = mktime(0,0,0,date("m"),date("d")+1,date("Y"));
    echo "Tomorrow is ".date("Y/m/d", $tomorrow);
?>
18. include() và require() Hướng dẫn sử dụng include() và require() trong PHP PHP cung cấp 2 cách để khai báo và sử dụng bất kỳ đoạn mã chương trình nào đã có bắng cách sử dụng 2 khai báo: include() và require(). Với 2 khai báo này bạn có thể chèn tập tin, kịch bản PHP, text, HTML hoặc các Class của PHP. 1. Ví dụ sử dụng require(). Trong ví dụ này chúng tôi sử dụng 2 file: test.php và test2.php. Trang test.php có nội dung như sau. Code:
<?php
    require("test2.php");
?>
Trang test2.php có nội dung như sau. Code:
<?php
    echo "Bạn đang truy cập Website: http://hcegroup.net";
?>
Trong ví dụ trên khi chạy file: test.php thì nội dung của trang test2.php sẽ được nhúng và trang test.php. 2. Ví dụ sử dụng include(). Sử dụng include() cũng giống như require(). Tuy nhiên có 1 sự khác biệt mà chúng ta cần chú ý tới khi quyết định sử dụng 1 trong 2 hàm trên. Khi sử dụng require() thì web server phải dịch lại tất cả nội dung bên trong nó. Ngược lại include() thì không. Ví dụ: Code:
<?php
    if($variable=true){
        include("file01.php");
    }else{
        include("file02.php");
    }
?>
19. Cookie Hướng dẫn sử dụng Cookie trong PHP Trong PHP bạn có thể gán Cookie bằng cách sử dụng hàm setcookie(). Cú pháp: Code:
setcookie(name, value, expires, path, domain,secure)
Ví dụ: Code:
<?php
    setcookie("user", "VNSocurity");
?>
Hiển thị dữ liệu từ Cookie. Code:
<?php ob_start();
    setcookie("name", "VBF");
    echo $_COOKIE['name'];
?>
Hiển thị tất cả Cookie Code:
<?php ob_start();
    setcookie("name01", "VBF");
    setcookie("name02", "VHS");
    echo $_COOKIE['name01']."
";
    echo $_COOKIE['name02']."
";
    print_r($_COOKIE); //Hiển thị tất cả Cookie
?>
20. Session Session trong PHP được nhận biết bởi session ID gán cho mỗi Browser. Khi Browser mở ra ứng với trang web bất kỳ của website, session ID có giá trị là một dãy số ngẫu nhiên được lưu trữ trên phía Client. Session ID này có chu kỳ sống cho đến khi chúng hết hạn sử dụng (Expiry), bạn có thể truyền giá trị của Session ID với URL hay ghi chúng ra Cookie. Chú ý: Thời gian hết hạn sử dụng của session do cấu hình của trình chủ web server quy định. Session ID là thông tin duy nhất lưu trữ trên client side, các biến session được lưu trữ trong một tập tin dạng text trên Server. Ngoài Session ID, bạn có thể khởi tạo và sử dụng một số session do bạn khai báo, tất cả session này có giá trị cho mỗi người dùng khi họ truy cập website. Để sử dụng Session trước tiên bạn cần khởi động chúng. Trong trường hợp khởi động, nếu chưa có Session ID thì lập tức Session ID sẽ được tạo ra. Trong trường hợp Session ID đã tồn tại, chúng sẽ được nạp vào biến session và bạn có thể sử dụng chúng. Biến Session sẽ hết hiệu lực khi nó hết hạn, người dùng đóng Browser đang duyệt trang web đó. Ngoài ra bạn có thể sử dụng khai báo xóa sổ hay hủy bỏ biến Session đó. Cú pháp khởi động Session. Code:
<?php
    session_start();
?>
Lưu ý: Bạn nên đặt session_start(); trên cùng của code trong trang web. Đăng ký biến Session. Code:
<?php
    session_start();
    $name="VN Socurity";
    session_register("name");
?>
Trong ví dụ trên một biến Session name đã được đăng ký. Biến session này có giá trị là: "VN Socurity". Sử dụng biến Session. Code:
<?php
    session_start();
    $name="VN Socurity";
    session_register("name");
    echo "Name: ".$_SESSION['name'];
?>
Trong ví dụ trên, chúng tôi đã đăng ký một biến session và hiển thị giá trị của biến đó. Kết quả của ví dụ như sau: Code: Name: VN Socurity. Truyền và nhận Session. Trong ví dụ này, chúng tôi sẽ sử dụng 2 trang: page01.php và page02.php. Trang page01.php có nhiệm vụ khởi tạo và đăng ký biến session. Trang page02.php có nhiệm vụ nhận về biến session và hiển thị giá trị của Session đó. Trang page01.php. Code:
<?php
    session_start();
    $name="VN Socurity";
    $email=" VNSocurity@yahoo.com Địa chỉ email này đã được bảo vệ từ spam bots, bạn cần kích hoạt Javascript để xem nó. ";
    session_register("name");
    session_register("email");
?>
Click Trang page02.php. Code:
<?php session_start(); ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body>
Hiển thị giá trị của session.<br />
<?php
    echo "Name: ".$_SESSION['name']."
";
    echo "Email: ".$_SESSION['email'];
?>
</body>
Kết quả của ví dụ trên sẽ như sau: Code:
    Hiển thị giá trị của session.
    Name: VN Socurity
    Email: VNSocurity@yahoo.com Địa chỉ email này đã được bảo vệ từ spam bots, bạn cần kích hoạt Javascript để xem nó.
Hủy Session.
Có 2 cách hủy Session: Hủy 1 session hoặc Hủy toàn bộ Session.
Code:
    unset($_SESSION['email']); //Hủy Session có tên: email
    session_destroy(); // Hủy tất cả session.
(Còn nữa)

Local hack và cách phòng tránh

Local hack và cách phòng tránh
(Tác giả:Phạm Đức Hải)
Bài này viết với mục đích để các quản trị và các bạn làm bảo mật hiểu một cách rõ hơn về cách tấn local hack. Cách này tuy rằng phổ biến đã lâu nhưng tôi nghĩ rằng không chỉ ở Việt Nam mà rất nhiều server nước ngoài vẫn bị lỗi này, mà đôi khi có bug mới là có thể dùng lại được. Tôi cũng tin rằng rất nhiều bạn biết tấn công local nhưng không biết fix lỗi này như thế nào ?
Local hack là gì ?
Hiểu một cách nôm na là tấn công cục bộ. Cục bộ ở đây có nghĩa là trên cùng một máy chủ (server). Tấn công này được thực hiện như thế nào ?
Ví dụ ta cần tấn công site mục site1.com, nhưng sau khi phân tích tình hình thì thấy rằng việc tấn công trực tiếp site này là rất khó. Và cũng qua khảo sát ta biết được rằng trên server này có rất nhiều site khác. Ý tưởng : tấn công một site khác cùng server sau đó lấy site này làm bàn đạp tấn công site mục tiêu.
Có những loại hack local nào ? Tôi tạm thời chia làm 3 loại : Unix local, windows local, FTP local. Có lẽ rất nhiều bạn chỉ biết đến local hack trên Unix mà chưa biết đến 2 loại sau . Unix Local có nghĩa là máy chủ là Unix, tương tự đối với windows local, còn FTP local có nghĩa là local qua FTP.
Phần chung nhất của các loại trên là ở bước 1, bước tìm các site cùng server. Cái này có thuật ngữ chung là : Reverse IP. Ta có thể dùng tool sau để xác định các site cùng server :
http://www.domaintools.com/reverse-ip/ --> cái này mới thu phí rồi
http://www.seologs.com/ip-domains.html -> cái này có lợi thế là lưu cả tên miền Việt Nam, nhưng sô lượng ít hơn site trên
Sau khi làm xong bước trên, đến bước tìm site bị lỗi để dùng làm bàn đạp tấn công. Bước này thì ở các loại đã có sự phân hóa. Tôi sẽ trình bày riêng từng phần.
1. Unix local
Có lẽ bây giờ chỉ phổ biến site php-mysql trên Unix, nên tôi tập chung vào cái này. Cách tìm bug được tiến hành theo tư duy như sau :
- Nếu site đó sử sụng một loại mã nguồn đã được xác định, ví dụ dùng mã nguồn mở, thì đầu tiên là vào các site thông báo bug để kiểm tra xem bản code đang dùng có dính bug nào không. Có thể vào http://milw0rm.com/ hay http://www.securityfocus.com/ ... để tìm bug.
- Nếu ở bước trên không thành công hoặc code do họ tự phát triển thì cách duy nhất là phải tự ngồi mò xem. Lúc này dựa vào kinh nghiệm và khả năng của người hack là chính. Các lỗi hay được sử dụng và khá dễ để phát hiện : SQL injection, PHP file include, lỗi cài mặc định các ứng dụng như các bộ editor, lỗi không chứng thực phần upload file, upload file không filter, hoặc có filter + apache unknow extension,... rất nhiều lỗi có thể khai thác được. Tôi sẽ không đi vào chi tiết các lỗi này sử dụng và khai thác như thế nào.
Sau khi tìm ra lỗi, mục tiêu là phải upload được một con shell lên để có thể tiến hành tiếp bước sau. Việc upload được shell hay không phụ thuộc rất nhiều vào việc admin site đó CHMOD có tốt không. Các bạn có thể tham khảo bài : CHMOD là gì ? . Tôi giả sử là đã upload được shell rồi. Đến đây ta bắt đầu thử local sang site mục tiêu. Nếu Safe mode OFF và local dễ dàng thì không có gì đáng nói, site mục tiêu đã có thể xâm nhập. Nếu Safe mode ON và local gặp khó khăn, lúc này cần phải biết về các bug safe mode by pass. Các lỗi này tùy thuộc vào phiên bản của PHP và phụ thuộc vào các hàm có thể sử dụng có bị cấm hay không. Nếu không dùng PHP safe mode by pass ta có thể dùng LOAD DATA LOCAL INFINE, về cái này thì chị Yến đã có bài viết rồi.
Nếu tất cả các cách trên không được, ta xoay sang xem có khả năng get root - chiếm quyền kiểm soát server hay không, cái này tùy thuộc vào kernel của hệ điều hành và tùy thuộc vào phần mền cài trên máy chủ có dính bug overflow hay không ? ... Nói tóm lại là khi có shell rồi mỗi người có một cách tùy thuộc khả nẳng.
-->Cách fix ?
Để không bị dính các lỗi trên thì phải update phần mềm và config đúng (tôi sẽ nói chi tiết ở bài khác).
- Bật safe mode ON
- Trong php.ini Cấm các hàm nhạy cảm + các hàm có thể safe mode by pass (đòi hỏi admin phải cập nhật thông tin liên lục)
- Đối với virtual host thì tham số open_basedir là rất quan trọng, cần phải đặt tham số này đúng với thư mục web của từng site
- CHMOD kỹ cẩn thận (CHMOD như thế nào thì phải đọc)
- Các form upload cần phải lọc file...
- Trong file my.conf thêm dòng set-variable=local-infile=0 để tránh lỗi LOAD DATA LOCAL INFINE
2. Windows local
Cách tìm site lỗi về cơ bản là giống phần trên, chỉ khác ở đặc tính ngôn ngữ lập trình, cần phải xem xét kỹ hơn ở khía cạnh này.
Để có thể local được có các khả năng sau : phân quyền bị không tốt (thường là dùng chung group, group phân quyền không cẩn thận),server chưa cấm command execute. Tất cả các shell chạy trên windows đều có một đặc tính là sử dụng FSO (File System Object) - nếu cái này làm cẩn thận mà move cmd.exe đi thì không có cách gì chạy được cmd. Ở đây là còn chưa nói đến chương trình diệt virus rất nhạy cảm với FSO, nên rất dễ bị phát hiện.
-->Cách khắc phục ?
Phân quyền tốt : tốt nhất là nên dùng windows 2003 server, mỗi một site chạy một pool là tốt nhất, nhưng như thế tốn tài nguyên hơn. Account chạy web của mỗi site là riêng biệt và account chạy ASP.NET khác account chạy asp, php,... Việc set permission là cựu kỳ quan trọng, để làm tốt việc này, cần phải đọc thêm tài liệu và làm tốt các security check list của Microsoft. Lưu ý là không dùng Default pool để chạy. Thường là các server riêng rất hay gặp lỗi này vì admin những server này chỉ cần cài cho chạy được là xong nhưng ngược lại server riêng thường chỉ chạy 1 vài site. Cái nguy hiểm chính là ở chỗ này, nếu mà server riêng bị tấn công khả năng mất quyền kiểm soát và mất mát dữ liệu nhiều là rất cao.
3. FTP local
Cái này nghe có vẻ lạ nhưng cách khai thác lại cực kỳ đơn giản, tôi lấy chính site của tôi làm VD. Vì lỗi này tôi đã thông báo và chỉ cho admin cách fix. (mới fix thôi nhé, không biết đã hết chưa, không khéo chỉ fix mỗi acc của tôi, hôm sau lỗ source là toi )

Trên hình bạn đã nhìn thấy rồi đó, cái FTP trên là tôi login vào acc FTP của tôi, nhưng tôi có thể vào tất cả các FTP khác cùng server.
Vậy lỗi ở đâu ? Lỗi có thể do 2 khả năng :
- Tham số Fix Home dir (ko nhớ rõ) không được set
- Tất cả các user FTP chung group và group này có quyền đối với tất cả các thư mục của các acc thành phần.
--> Cách fix ? như tôi trình bày như trên thì bạn đã biết fix rồi chứ .
Bài này tôi viết mang tính chất tổng hợp, 2 phần trên tôi không lấy hình minh họa vì nó khá phổ biến và có nhiều bài minh họa rồi. Nếu bạn cảm thấy chỗ nào cần chi tiết hơn tôi sẽ viết tiếp.
Mong các bạn góp ý để bài viết đầy đủ hơn.

CHMOD là gì ?

(Tác giả:Phạm Đức Hải)
Một trong các lỗi mà các admin hay mắc phải là CHMOD sai, do CHMOD sai nên khả năng site đó bị tấn công là cao hơn rất nhiều so với các site khác CHMOD đúng, đặc biệt là cùng server khi bị hack local. Tất nhiên là chỉ với lỗi này thì không thể tấn công trực tiếp vì đây không phải là lỗi có thể tấn công được. Lỗi này dễ dàng bị khai thác khi thư mục đặt quyền ghi và chạy đồng thời cho một thư mục, thường là các thư mục cho phép upload. Nên hacker dễ dàng chạy shell ở thư mục này. Một trường hợp khác là khi hack local, CHMOD 777 là 1 thảm họa, vì như vậy là đã bị kiểm soát toàn bộ thư mục đó. Và tôi dám chắc dằng tay hacker nào khi hack local mà nhìn thấy cái màu xanh lét (màu thông thường cho các thư mục là ) của thư mục 777 thì mừng ra mặt và nghĩ admin này "gà" nghê .
Vì sao tôi viết bài này ? Vì nhiều admin, coder không biết CHMOD là gì ? hoặc chỉ hiểu sơ qua. Họ chỉ quan tâm đến cho website chạy được, chấm hết . Nhiều người còn hiểu rất ngây thơ rằng quyền ghi đồng nghĩa với 777. Hoàn toàn sai!!! Vậy CHMOD là gì ? Tôi xin đưa lại bài viết của ông bạn RedHat để các bạn tham khảo, để biết và tránh lỗi trên. Và bạn nên tham khảo thêm bài : Các lỗi có thể có với upload file
CHMOD - đó là phạm trù liên quan đến các files và thư mục, có chức năng chỉ ra cho server biết, ai có thể làm gì đối với file hay thư mục nào đó. Chủ yếu CHMOD đưa ra các lệnh như quyền được đọc, viết vào file (hay thư mục), quyền thực hiện một công việc nhất định.
Vì phần lớn các server làm việc trên cơ sở hệ thống UNIX, nên chúng ta sẽ nghiên cứu về cách CHMOD chính cho các servers này.
Trên các hệ thống UNIX, người sử dụng được chia ra làm 3 nhóm: "user" (chủ nhân trực tiếp của các files), "group" (thành viên của nhóm mà người chủ nhân file có tham gia) và "world" (tất cả những trường hợp khác). Khi bạn kết nối với server, nó sẽ xác định xem bạn thuộc về nhóm nào. Ví dụ bạn kết nối với server bằng FTP, khai báo tên truy cập như một thành viên, chính server sẽ quy bạn vào nhóm "user". Còn những thành viên khác truy cập bằng FTP thuộc về nhóm "group". Khi ai đó đến site của bạn bằng trình duyệt web, sẽ được quy vào nhóm "world".
Sau khi xác định nhóm, người sử dụng sẽ được gán quyền hạn nhất định đối với file hoặc thư mục nào đó. Cụ thể là người sử dụng sẽ được đọc, ghi hay tạo mới (hoặc xóa) file. Để xem thư mục nào đó thì nó phải ủng hộ cho việc xem này. Để được xem nội dung thư mục, thì các files hay thư mục con trong đó cũng phải có chế độ "Cho phép đọc". Còn để tạo file hay thư mục mới nằm trong thư mục này lại đòi hỏi phải có quyền ghi. Tóm lại, để thực hiện một trong những việc trên, cần phải đặt vào thư mục chế độ "quyền đọc" và "quyền thực hiện".
Bây giờ chúng ta sẽ thực hành...
Như trên đã nêu, có tất cả 3 nhóm người sử dụng và 3 "quyền hạn" đối với files hay thư mục. Để xác định quyền hạn cho các nhóm nhất định, thống nhất sử dụng các ký hiệu bằng con số như sau:
4 = read (quyền được đọc)
2 = write (quyền được ghi)
1 = execute (quyền được thực hiện)
Bằng phép cộng đơn giản các con số này có thể hiển thị được cả một "tổ hợp" quyền hạn khác nhau. Ví dụ, 3 (2+1) - quyền ghi và quyền thực hiện đối với file (hay thư mục); 5 (4+1) - quyền đọc và quyền thực hiện; 6 (4+2) - quyền đọc và quyền ghi; 7 (4+2+1) - quyền đọc, ghi và thực hiện. Tóm lại có tất cả 7 phương án sau:
7 = read, write & execute
6 = read & write
5 = read & execute
4 = read
3 = write & execute
2 = write
1 = execute
Ký hiệu lệnh CHMOD thường có 3 con số: con số đầu thể hiện quyền hạn gán cho người sử dụng thuộc nhóm "user" (Tức là đối với bạn). Con số thứ hai chỉ ra quyền hạn của người sử dụng thuộc nhóm "group" và con số thứ ba - dành cho nhóm "world".
Trong phần lớn các chương trình FTP hiện đại đều ủng hộ CHMOD theo kiểu nêu trên (Ví dụ, công cụ truy cập bằng FTP mạnh nhất hiện nay là WS_FTP)
Thế nhưng cũng không thừa nếu như ta biết thêm về các lệnh của hệ thống UNIX. lệnh "chmod" trong UNIX có 2 chế độ: tuyệt đối (Bằng các con số) và bằng các ký hiệu chữ.
Khi sử dụng chế độ tuyệt đối (bằng các con số), thống nhất dùng tổ hợp 3 con số được nêu trên để thể hiện quyền hạn.
Trong trường hợp sử dụng ký hiệu chữ, chúng ta sẽ bắt gặp những ký hiệu sau:
"r" - quyền được đọc
"w" - quyền được ghi
"x" - quyền được thực hiện
Ngoài ra còn có:
"u" - đối với user
"g" - đối với group
"o" - đối với other (world)
"a" - đối với all (tất cả)
Ví dụ: 755 = chmod u=rwx,go=rx filename; 644 = chmod u=rw,go=r filename; 600 = chmod u=rw,go= filename; 444 = chmod a=r filename.

Cách Fake IP (Part 4: Dùng Proxifier và Tunelier - Song kiếm hợp bích)

Tool này dùng để sock ip của máy mình với Tunelier+1 host SSH. Còn tool Proxifier dùng để sock ip cho toàn máy nếu không bạn phải cài đặt sock cho từng chương trình ^^
Đầu tiên, bạn phải có host hỗ trợ SSH. Thường là host sử dụng Cpanel 9 hoặc 10. Hoặc những host không có những cpanel mà vẫn chạy được SSH vì nền cũa host là Unix thì càng tuyệt vời.
Các bạn có thể đăng kí miễn phí tại http://www.cosmopod.com
Sau đó các bạn download phần mềm Bitvise Tunnelier
Download: Tunnelier-Inst.exe
key luôn nè:
6C6167E1F9FC0C4A767A8DEB8B2B5CD17AA64D31786B96DDA2
B02514299380D2E95B69D367318959488C691508E5EAD88CD4 ED67F7E84FEB
7F031FA95C9344DDC196E52E9C2C4101AA9EE7D157F36EB0E9D23005
95B6DF5F91ED4D8C6AC01CE1F0845AA6678491B64F5D3097B01E070D

Giải nén nó ra, chạy file Tunnelier.exe
Ở Tab login,
Host : host của bạn
Tại khung host, bạn có thể nhập Subdomain host (xxxxxxxx.tênhost.xxx)
- Ô Port: bạn đánh số 443
Username: user account
Intial method: chọn password
Password: pass account



Tiếp theo chọn Tab Services
Click Enable cho phần Socks/HTTP Proxy Forwarding
Listen Interface: 127.0.0.1
Listen port : Để nguyên cũng được hoặc điền 1 port bất kì(ở đây tớ điền 1675)


Bấm Login
Nó sẽ hiện lên 1 newboard. Chọn accept and save.
Đợi một lúc, nếu thấy mấy dòng chữ như trong hình là OK.


Nó sẽ tự động open cmd ssh và ftp manager
Bạn tắt hết chương trình đó
Còn Tunnerlier thì tắt đi
Tắt là bấm dấu X chứ đừng click exit hay là Logout nhá
Bây giờ bạn đã có 1 Private Socks rồi đó
Nó là 127.0.0.1 và port là: 1675 (vì tôi chọn port này)

Bạn có thể vào http://www.ip2location.com để check thì biết liền

Nếu như bạn cần Fake IP cho các toàn bộ các soft chạy nét như Yahoo, Paltalk .Bạn hãy dùng phần mềm Proxifilter v2.6 nha.

Download: ProxifierSetup
Key:
Your registration name is: quangmd
Your registration code is: 43Y46-7FCQ8-5U4K9-WT2LD-7AK74

Bạn setup chương trình, chạy nó
rùi Vào Options ---> Proxy Setting
Bấm Add
IP: 127.0.0.1
Port: 1675
Click Ok
rùi chạy các chương trình trình duyệt web như internet explorer, Firefox hoặc các phần mềm khác như Yahoo các bạn sẽ thấy hiệu quả như thế nào
Bạn không cần phải điền socks cho phần mềm nào cả
Proxifilter sẽ tự động fake cho các bạn

Nếu các bạn thấy bài này có ích cho các bạn thì làm ơn thanks mình 1 cái
(Sưu tầm và chỉnh sửa)

Cách Fake IP (Part 3: Vài cách Fake IP khi Online)

Vài cách Fake IP khi lên mạng:

- Cúc cu, gặp lại lần nữa trong Part 3. Sau một thời gian dạo chơi trên Internet thì tôi thấy rất nhiều Forum và tài liệu đề cập đến các chương trình để Fake IP như : DC_JS, Genius, Stealth Anonymizer, Multiproxy.... Nhưng theo tôi thì chẳng cần nhiều chương trình đến vậy. Tất cả những gì mà ta cần là Browser, Telnet và một chút kỹ năng về mạng. Dưới đây là cách che IP khi hành sự (Web, E-mail, FTP, Telnet). Đây là chút ít kiến thức cơ bản thu lượm được trong quá trình hành sự nên muốn Share cùng các Newbie, vì vậy các bô lão cao thủ biết rồi mà có chém em thì chém nhè nhẹ thôi nha bigsmile

- Che IP khi duyệt Web: Quá đơn giản, khỏi nói bạn cũng biết... Chỉ cần dùng Proxy là Ok liền. Kiếm các trang Web Proxy đã được Config sẵn, bạn chỉ việc lên đó gõ địa chỉ trang Web mà bạn muốn Visit ẩn danh vào-Ok. Nếu bạn lên Internet kiến được một cái Proxy đại loại như sau : 208.57.0.100:80...Port 80, ồ đúng đây là Proxy cho Web rồi. bạn khởi động Inernet Explorer. Vào Tools/Internet Options/ Connection/Lan Setting. Nhấn vào Use a Proxy Setting/Advance....Ở đây có các Form để cấu hình Proxy cho Web, FTP.... bạn Copy 208.57.0.100 vào Address và = 80 vào Port. FTP bạn xem kiếm được cái Proxy nào thì copy vào notepad (FTP co Port mac dinh la 21). Để cho chắc bạn cứ chọn xài các Anonymous Proxy.

- Che IP send Mail : bạn có thể dùng chương trình Dnd... Nó có thể tạo IP giả cũng như giả mạo luôn được cả Host nữa. Bạn nào ngại Download nó thì cứ xài Webmail. Rồi dùng Proxy để truy cập vào Webmail để Send mail. IP của bạn khi truy cập vào Webmail cũng như trên Header của cái Mail send đi sẽ là IP của cái Proxy mà bạn dùng.

- Che IP khi Telnet và FTP : Đến đây thì bạn có thể làm theo như cách mà bạn camaptrang@ đã đề cập đến hôm nọ. Kiếm cái Wingate Sever, Telnet vào nó....Tiếp đó Telnet, hoặc FTP vào mục tiêu mà bạn muốn che IP. Ip mà Server nó log được chính là Ip của Wingate Server. Các lệnh của Telnet thì tùy, nếu Server xài Winnt thì các dòng lệnh của nó giống như các dòng lệnh DOS, nếu Sever xài Unix/Linux thì các dòng lệnh của nó giống như Unix/Linux. Còn FTP thì có các dòng lệnh chuẩn sau (bất cứ Server xài OS nào)

- Đầu tiên bạn gõ : ftp host để connect vào Server FTP, nếu là Server Anonymous thì User/Pass bạn có thể nhập Guest, Anonymous hoặc cái gì cũng OK hết (đối với các Server loại này bạn chỉ có thể Download, dir, cd thôi... nói chung là không có quyền sửa đổi các File trên Server), nếu là Server Normal thì nó sẽ đổi User/Pass.... bạn phải có User/Pass trước khi Connect (với Server loại này bạn có toàn quyền sửa đổi, di chuyển, del.... không giới hạn các file trên Server). Sau khi thành công bạn sẽ thấy dạng.
ftp>
- OK! bạn đã connect được vào FTP Server rồi đó. Dưới đây là các lệnh FTP. Nếu quen có khi bạn khỏi cần dùng các chương trình FTP như Cute FTP, WS FTP pro... nữa. Bạn type lệnh là xong! Còn lệnh ở đâu thì....này thì lệnh: bigsmile

dir-hiển thị thư mục và file trên Server.
cd-chuyển đổi giữa các thư mục trên Server.
get-Download 1 file từ Server.
mget-Download nhiều file từ Server.
put-upload 1 file lên Server.
mput-upload nhiều file lên Server.
pwd-hiển thị thư mục hiện hành trên Server.
mkdir-tạo thư mục.
rmdir-xoá thư mục
chmod-thiết lập tùy chọn cho thư mục/file
hash-hiển thị chi tiết thông tin về việc truyền nhau dữ liệu.
ascii-chuyển sang chế độ ascii.
binary-chuyển sang chế độ nhị phân.
close-chấm dứt kết nối.
quit-thoát khỏi môi trường FTP.