(91) 350-9520 support@omarine.org M-F: 7 AM - 7 PM; Weekends: 9 AM - 5 PM

Wordmagic-1.0.0 – Máy sản sinh mật khẩu từ biểu thức chính quy

Wordmagic là một chương trình tạo wordlist(là danh sách các từ, thường dùng cho danh sách mật khẩu) từ mẫu(pattern) mong muốn dựa trên cú pháp của biểu thức chính quy. Wordmagic thực hiện siêu tốc, nó tạo ra lượng dữ liệu cỡ 1000GB(1TB) với khoảng 100 tỷ mật khẩu trong vòng 3 giờ đồng hồ.

pic1

Chương trình lấy mẫu do người sử dụng nhập vào, hoặc từ các tệp đã soạn trước, hoặc lấy đầu ra của một chương trình khác, sử dụng kỹ thuật đường ống(pipe line) làm đầu vào của chương trình. Wordmagic tiến hành dịch(compile) mẫu rồi dùng một máy sản xuất từ(word) bên trong để sản sinh tập xâu kí tự tương ứng theo quy tắc của mẫu, dựa trên cú pháp của biểu thức chính quy để mô tả.

Biểu thức chính quy chỉ là một công cụ với các toán tử xử lý ngôn ngữ. Khi bạn đưa ra một mẫu là kèm theo đó quy tắc ngôn ngữ của bạn. Tập xâu kết quả là do bạn quy định, về khía cạnh ngôn ngữ, chỉ mượn cú pháp của biểu thức chính quy để mô tả.

Một kí tự ‘a’ bản thân nó là một biểu thức. Một xâu “ab” hình thành từ kết quả NỐI(concatenation) hai kí tự ‘a’ và ‘b’. Một cách tổng quát, hai biểu thức áp dụng toán tử NỐI tạo ra một biểu thức mới. Một biểu thức nhận giá trị của một trong hai biểu thức khác, nó là kết quả của toán tử HOẶC(or) hay LUÂN_PHIÊN(alternation) đối với hai biểu thức kia. Khái niệm LUÂN_PHIÊN rộng hơn HOẶC, nhằm mô tả hàng loạt phép HOẶC liên tiếp. Nếu bạn sử dụng mẫu trong một tệp thì các dòng sẽ áp dụng toán tử LUÂN_PHIÊN để nhập toàn bộ tệp thành một biểu thức lớn. Thực tế thì hai dòng kề nhau có thể không HOẶC toàn bộ với nhau mà chỉ HOẶC trong một biểu thức con(subexpression). Biểu thức con là một biểu thức thành phần được đóng trong ngoặc đơn, nó là một thể được phân định rõ ràng và giá trị của nó phải được tính trước khi áp dụng các toán tử bên ngoài có liên quan. Nếu hai dòng kề nhau có chung biểu thức con như thế thì cả hai dòng là một biểu thức nối dài. Bản chất là cứ khi gặp một kí tự xuống dòng(newline – ‘\n’), chương trình sẽ tính là một toán tử HOẶC.

Một biểu thức lớn có thể có không gian mẫu hay tập xâu của nó không lớn, nếu như nó không áp dụng các toán tử và biểu thức đặc biệt sau đây

DẤU_CHẤM(period)

Được biểu diễn bằng kí tự dấu chấm(.). Đây là biểu thức 1 kí tự, nó nhận giá trị là bất kỳ kí tự nào. Biểu thức DẤU_CHẤM có tác dụng trong các chương trình sử dụng đoán nhận ngôn ngữ như Grep, Sed, Expr, nhưng không hiệu quả trong Wordmagic làm chức năng ngược lại là sản sinh văn bản, vì DẤU_CHẤM bao gồm cả các kí tự không in được và kí tự điều khiển, cái mà chúng ta không mong muốn. Có các lớp và khoảng kí tự để thay cho DẤU_CHẤM.

Biểu thức KHOẢNG(range expression)

Biểu thức KHOẢNG được mô tả bằng hai kí tự theo thứ tự, cách nhau bởi một dấu gạch ngang(hyphen), ví dụ: 0-9, a-c. Nó là biểu thức 1 kí tự, nhận giá trị là bất kỳ kí tự nào trong khoảng đã mô tả.

LỚP kí tự(class of characters)

Có các lớp kí tự định nghĩa trước, có tên mang dáng dấp của nội dung, đó là các lớp [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:], và [:xdigit:]. Ví dụ, lớp [:xdigit:] bao gồm tất cả các kí tự dùng để biểu diễn số hexadecimal, là 22 kí tự sau: 0123456789ABCDEFabcdef. Biểu thức LỚP là biểu thức 1 kí tự, nhận giá trị là bất kỳ kí tự nào trong lớp đó. LỚP [:lower:] là tương đương với KHOẢNG a-z. Để biết một lớp chứa những kí tự nào, bạn dùng Wordmagic, nó sẽ kết xuất tất cả các kí tự của lớp đó.

Biểu thức NGOẶC_VUÔNG(bracket expression)

Biểu thức NGOẶC_VUÔNG là một danh sách các phần tử đóng trong ngoặc vuông. Phần tử của nó có thể là một kí tự, một LỚP hay một KHOẢNG. Ví dụ [ab-f[:digit:]]. Biểu thức này tương đương với [abcdef[:digit:]], và tương đương với [abcdef0123456789].

[[ :graph:]] tương đương với [[:print:]]

*Các biểu thức LỚP và KHOẢNG chỉ có thể ở bên trong biểu thức NGOẶC_VUÔNG

Biểu thức NGOẶC_VUÔNG là biểu thức 1 kí tự, nó nhận giá trị là bất kỳ kí tự nào trong danh sách, bất kỳ kí tự nào của LỚP và KHOẢNG trong danh sách.

Nếu ở đầu danh sách có một kí tự ‘^’(caret) thì Biểu thức NGOẶC_VUÔNG không nhận giá trị của mọi kí tự trong danh sách, kí tự của LỚP và KHOẢNG trong danh sách.

Chúng ta sẽ xem xét các kí tự đặc biệt sử dụng trong cú pháp của biểu thức chính quy. Tất cả các kí tự đặc biệt đều trở thành kí tự thường, nguyên nghĩa khi ở trong biểu thức NGOẶC_VUÔNG. Tuy nhiên kí tự đặc biệt là ‘^’ đã dùng để mô tả biểu thức NGOẶC_VUÔNG nên để kết xuất nghĩa đen của nó bạn đặt nó không ở đầu danh sách. Ngoài ra, kí tự ‘]’ đặt ở đầu danh sách, và kí tự ‘-’ đặt ở cuối danh sách.

Biểu thức TỪ(wordchar, word constituent, \w)

Biểu thức TỪ mô tả các kí tự cấu tạo một từ thuần túy, bao gồm các chữ cái , chữ số và dấu gạch dưới(underscore). Các kí tự khác không thuộc biểu thức TỪ được hiểu là các kí tự ngắt từ trong một dòng. Thông thường kí tự ngắt từ là kí tự trắng(space) hoặc một vài kí tự khác. Mô tả biểu thức TỪ mang tính tổng quát hơn. Một dấu gạch dưới có thể nằm trong một từ nhưng một dấu gạch ngang sẽ chia đôi một từ. Nếu bạn đặt tên một tệp gồm các kí tự trong biểu thức TỪ, có các tên thành phần nối với nhau bằng dấu gạch dưới thì bạn có thể yên tâm tên tệp là hợp lệ trong mọi môi trường.

Biểu thức TỪ được kí hiệu là \w, tương đương với [_[:alnum:]]. \W thì ngược lại, tương đương với [^_[:alnum:]]

Các toán tử lặp(repetition, duplicate)

Các toán tử NỐI và HOẶC là các toán tử 2 ngôi. Các toán tử dưới đây là toán tử 1 ngôi, LUÂN_PHIÊN lặp biểu thức đứng trước nó(sau đây gọi là toán hạng) bằng cách NỐI.

Toán tử HỎI(question mark)

Kí hiệu: ?

Lặp toán hạng 0 hoặc 1 lần

Toán tử SAO(star, asterisk)

Kí hiệu: *

Lặp toán hạng 0 lần hoặc nhiều hơn

Toán tử CỘNG(plus)

Kí hiệu: +

Lặp toán hạng 1 lần hoặc nhiều hơn

Toán tử LẶP_NM(duplicate_nm)

Có bốn kiểu LẶP_NM

{n} Lặp toán hạng chính xác n lần

{n,} Lặp toán hạng n lần hoặc nhiều hơn

{,m} Lặp toán hạng 0 lần hoặc nhiều hơn, nhưng không vượt quá m lần

{n,m} Lặp toán hạng ít nhất n lần, nhưng không vượt quá m lần

Các ví dụ

Có 12 ví dụ. Để xem đầy đủ, bạn tham khảo trang hướng dẫn(chạy lệnh: man ./wordmagic.1)

Hình trên cùng hiển thị ví dụ 1, sản sinh các xâu kí tự lặp kí tự ‘a’ từ 1 lần tới giới hạn tối đa MAXLEN, là chiều dài lớn nhất của xâu kí tự.

Ví dụ 3

pic2

Lặp biểu thức NGOẶC_VUÔNG [abc] đúng 3 lần

Ví dụ 7

pic4

Lặp {,3} đối với LỚP các kí tự symbol, NỐI với xâu cố định “frank”, rồi NỐI với KHOẢNG 0-5 được lặp SAO, chiều dài xâu ra lớn nhất là 10.

Ví dụ 11

wordmagic_IP

Đẻ ra các địa chỉ IP, có 4799379480 địa chỉ

Ví dụ 12

pic6

Wordmagic tạo từ điển mật khẩu từ mẫu trong tệp pattern.txt. Dữ liệu mật khẩu được dẫn ống vào chương trình aircrack-ng để tấn công mục tiêu có bssidTARGET

Giải nén tệp

Sau khi tải về tệp wordmagic-1.0.0.tar.xz, bạn giải nén tệp bằng lệnh dưới đây

tar xf wordmagic-1.0.0.tar.xz

Kết quả được tệp chương trình wordmagic và tệp hướng dẫn wordmagic.1

pic3

Advertisements

Gửi phản hồi

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: