Tải bản đầy đủ (.pdf) (31 trang)

Học phần: An toàn mạng Bài báo cáo: Tìm hiểu công cụ Evilginx2 trong kali linux

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.46 MB, 31 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

Học phần: An tồn mạng
Bài báo cáo:

Tìm hiểu cơng cụ Evilginx2 trong kali linux
Giảng viên hướng dẫn: TS. Đặng Minh Tuấn
Sinh viên thực hiện:
Nhóm 1
Phạm Văn Thanh B18DCAT233

Hà Nội 2021


Mục Lục
DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT .............................................................. 3
Chương 1: Lời mở đầu .................................................................................................................................. 4
Chương 2: Giới thiệu tool Evilginx2 và lịch sử phát triển ............................................................................ 5
1. Giới thiệu sơ lược Social Engineering .................................................................................................. 5
2. Các hình thức tấn cơng Social Engineering .......................................................................................... 6
2.1. Baiting ............................................................................................................................................ 6
2.2. Scareware....................................................................................................................................... 6
2.3. Pretexting ....................................................................................................................................... 7
2.4 . Phishing ......................................................................................................................................... 7
2.5. Spear phishing ................................................................................................................................ 8
3. Tổng quan về công cụ Evilginx2 .......................................................................................................... 8
3.1. Giới thiệu........................................................................................................................................ 8
3.2. Lịch sử hình thành .......................................................................................................................... 9
3.3. Cơ chế hoạt động ......................................................................................................................... 10
3.4. Các phiên bản ............................................................................................................................... 11


Chương 3: Hướng dẫn cài đặt, sử dụng ...................................................................................................... 18
1. Hướng dẫn cài đặt ............................................................................................................................... 18
1.1. Cài đặt từ nguồn .......................................................................................................................... 18
1.2. Cài đặt bằng Docker ..................................................................................................................... 19
1.3. Cài đặt từ các gói nhị phân được biên dịch trước ....................................................................... 19
2. Cách sử dụng....................................................................................................................................... 20
2.1. Một số lưu ý ................................................................................................................................. 20
2.2. Bắt đầu ......................................................................................................................................... 20
Chương 4: Bài lab, kịch bản demo.............................................................................................................. 23
1. Chuẩn bị .............................................................................................................................................. 23
2. Các bước thực hiện ............................................................................................................................. 23
2.1. Cài đặt GO .................................................................................................................................... 23
2.2. Cài đặt và cấu hình Evilginx2 ........................................................................................................ 25
Chương 5: Kết luận ..................................................................................................................................... 30
Chương 6: Tài liệu tham khảo .................................................................................................................... 31
2


DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT
Từ viết Thuật ngữ tiếng Anh/Giải thích
tắt

Thuật ngữ tiếng Việt/Giải thích

2FA

Two Factor Authentication

Xác thực hai yếu tố


U2F

Universal Second Factor

Bảo mật hai lớp bằng phần cứng

VPS

Virtual Private Server

Máy chủ ảo

SMS

Short Messaging Service

Dịch vụ tin nhắn ngắn

TOTP

Time-Based One-Time Password

Thuật toán xác thực 2 yếu tố

PIN

Personal Identification Number

Số nhận dạng cá nhân


MITM

Man-In-The-Middle

Người trung gian độc lập

HTML

Hypertext Markup Language

Ngôn ngữ đánh dấu siêu văn bản

Giao thức truyền tải siêu văn bản bảo
mật
SSL/TLS Secure Socket Layer / Transport Layer Bộ giao thức bảo mật SSL / TLS
Security
URL
Uniform Resource Locator
Định vị tài nguyên thống nhất
HTTPS

Hyper Text Transfer Protocol Secure

HTTP

Hyper Text Transfer Protocol

Giao thức truyền tải siêu văn bản

DNS


Domain Name System

Hệ thống phân giải tên miền

TCP

Transmission Control Protocol

Giao thức điều khiển truyền vận

UDP

User Datagram Protocol

IP

Internet Protocol

Một trong những giao thức cốt lõi của
giao thức TCP/IP
Giao thức Internet

JSON

JavaScript Object Notation

POST

Power On Self Test


YAML

YAML Ain’t Markup Language

JWK

JSON Web Key

JWS

JSON Web Signature

Một kiểu định dạng dữ liệu tuân theo
một quy tắc nhất định
Bộ kiểm tra chẩn đoán ban đầu
Một chuẩn dữ liệu kiểu serialization
dành cho tất cả các ngôn ngữ
Một cấu trúc dữ liệu JSON đại diện
cho một khóa mật mã
Chữ ký web JSON
3


Chương 1: Lời mở đầu
Cùng với sự phát triển ngày càng nhanh chóng của Internet, các loại hình lừa
đảo qua mạng (Social Engineering) xuất hiện ngày càng nhiều, đổi mới liên tục với
thủ đoạn rất tinh vi. Đây là một thách thức lớn của ngành an tồn thơng tin bởi đối
phó với loại hình lừa đảo này cần một thời gian rất dài và cần sự phối hợp, hiểu biết
của người dùng cuối. Vì thế, việc nghiên cứu các phương pháp mà kẻ tấn công sử

dụng là rất cần thiết để người dùng nắm được kịch bản lừa đảo, từ đó tự bảo vệ mình
trước những hình thức tương tự trong tương lai.
Kể từ khi ra đời đến nay, phương thức tấn công này đem lại hiệu quả cao.
Bởi, tấn công Social Engineering rất đa dạng, dễ dàng tùy biến hình thức thực hiện
và hầu như chưa có biện pháp phòng thủ hiệu quả cụ thể.
Phishing là một dạng tấn công của Social Engineering được sử dụng phổ
biến nhất. Hiện nay các hệ thống và ứng dụng điện tử đa số đã sử dụng phương
pháp xác thực 2 lớp (2FA) để xác minh danh tính người dung, bảo vệ tài nguyên
trước phương thức phishing truyền thống. Tuy nhiên, kẻ tấn công đã cải tiến bằng
cách sử dụng loại tấn công lừa đảo thông tin đăng nhập cùng với cookie phiên, do
đó cho phép bỏ qua bảo vệ xác thực 2 yếu tố. Một trong những công cụ giúp mô
phỏng lại một cuộc tấn công dạng này là Evilginx2. Với bài tiểu luận với đề tài “
Tìm hiểu cơng cụ Evilginx2 trong kali linux” chúng ta sẽ cùng tìm hiểu về tool
Evilginx2 và cách thức hoạt động của nó để hiểu rõ hơn và tiến hành thử nghiệm
kiểm chứng.

4


Chương 2: Giới thiệu tool Evilginx2 và lịch sử phát triển
1. Giới thiệu sơ lược Social Engineering
Social Engineering là thuật ngữ được sử dụng cho một loạt các hoạt động độc
hại được thực hiện thông qua các tương tác của con người . Nó sử dụng thao tác tâm
lý để lừa người dùng mắc lỗi bảo mật hoặc cung cấp thông tin nhạy cảm.
Tấn công kiểu Social Engineering là dạng tấn công sử dụng các kỹ thuật xã
hội nhằm thuyết phục người dùng tiết lộ thông tin truy nhập hoặc các thơng tin có
giá trị cho kẻ tấn cơng. [1]
Các cuộc tấn công Social Engineering xảy ra trong một hoặc nhiều bước.
Trước tiên, thủ phạm điều tra mục tiêu để thu thập thông tin cơ bản cần thiết, chẳng
hạn như các điểm xâm nhập tiềm năng và các giao thức bảo mật yếu, cần thiết để

tiến hành cuộc tấn công. Sau đó, kẻ tấn cơng tiếp cận để đạt được sự tin tưởng của
nạn nhân và cung cấp các kích thích cho các hành động tiếp theo phá vỡ các quy tắc
bảo mật, chẳng hạn như tiết lộ thông tin nhạy cảm hoặc cấp quyền truy cập vào các
tài nguyên quan trọng. [2]

Hình 1: Vịng đời của cuộc tấn cơng Social Engineering
5


Điều làm cho Social Engineering trở nên đặc biệt nguy hiểm là nó dựa vào lỗi
của con người chứ khơng phải là các lỗ hổng trong phần mềm và hệ điều hành.
Những sai lầm do người dùng hợp pháp thực hiện ít có khả năng dự đốn hơn nhiều,
khiến họ khó xác định và cản trở hơn so với sự xâm nhập dựa trên phần mềm độc
hại.
2. Các hình thức tấn cơng Social Engineering
Các cuộc tấn cơng Social Engineering có nhiều hình thức khác nhau và có thể
được thực hiện ở bất kỳ nơi nào có sự tương tác của con người. Sau đây là 5 hình
thức tấn cơng Social Engineering phổ biến nhất.
2.1. Baiting
Như tên gọi của nó, các cuộc tấn công Baiting sử dụng một lời hứa hão huyền
để khơi gợi lòng tham hoặc sự tò mò của nạn nhân. Chúng dụ người dùng vào một
cái bẫy đánh cắp thông tin cá nhân của họ hoặc làm cho hệ thống của họ bị nhiễm
phần mềm độc hại.
Hình thức Baiting nhiều nhất sử dụng phương tiện vật lý để phát tán phần
mềm độc hại. Ví dụ: những kẻ tấn công để lại mồi - thường là ổ đĩa flash bị nhiễm
phần mềm độc hại - ở những khu vực dễ thấy nơi nạn nhân tiềm năng chắc chắn nhìn
thấy chúng (ví dụ: phịng tắm, thang máy, bãi đậu xe của một cơng ty bị nhắm mục
tiêu). Mồi có một cái nhìn xác thực đối với nó, chẳng hạn như một nhãn giới thiệu
nó như là danh sách trả lương của cơng ty.
Nạn nhân nhặt mồi vì tị mị và đưa nó vào máy tính ở cơ quan hoặc gia đình,

dẫn đến việc cài đặt phần mềm độc hại tự động vào hệ thống.
Các trị gian lận lừa đảo khơng nhất thiết phải được thực hiện trong thế giới
vật chất. Các hình thức mồi chài trực tuyến bao gồm các quảng cáo lôi kéo dẫn đến
các trang web độc hại hoặc khuyến khích người dùng tải xuống ứng dụng bị nhiễm
phần mềm độc hại.
2.2. Scareware
Scareware liên quan đến việc nạn nhân bị tấn công bằng các báo động giả và
các mối đe dọa hư cấu. Người dùng bị đánh lừa để nghĩ rằng hệ thống của họ bị
nhiễm phần mềm độc hại, khiến họ cài đặt phần mềm khơng có lợi ích thực sự (trừ

6


thủ phạm) hoặc chính là phần mềm độc hại. Scareware còn được gọi là phần mềm
lừa gạt, phần mềm quét giả mạo và phần mềm gian lận.
Một ví dụ về Scareware phổ biến là các biểu ngữ bật lên trông hợp pháp xuất
hiện trong trình duyệt của bạn khi lướt web, hiển thị văn bản như "Máy tính của bạn
có thể bị nhiễm các chương trình phần mềm gián điệp có hại." Nó cung cấp cài đặt
cơng cụ (thường bị nhiễm phần mềm độc hại) cho bạn hoặc sẽ hướng bạn đến một
trang web độc hại nơi máy tính của bạn bị nhiễm.
Scareware cũng được phát tán qua email spam đưa ra các cảnh báo khơng có
thật hoặc đưa ra đề nghị cho người dùng mua các dịch vụ vô giá trị hoặc có hại.
2.3. Pretexting
Ở đây kẻ tấn cơng có được thơng tin thơng qua một loạt các lời nói dối được
tạo ra một cách khéo léo. Lừa đảo thường được bắt đầu bởi một thủ phạm giả vờ cần
thông tin nhạy cảm từ nạn nhân để thực hiện một nhiệm vụ quan trọng.
Kẻ tấn công thường bắt đầu bằng cách thiết lập lòng tin với nạn nhân của họ
bằng cách đóng giả đồng nghiệp, cảnh sát, ngân hàng và quan chức thuế hoặc những
người khác có quyền được biết. Bộ tiền kỹ thuật đặt ra những câu hỏi bề ngồi được
u cầu để xác nhận danh tính nạn nhân, qua đó họ thu thập dữ liệu cá nhân quan

trọng.
Tất cả các loại thơng tin và hồ sơ thích hợp được thu thập bằng cách sử dụng
trò lừa đảo này, chẳng hạn như số an sinh xã hội, địa chỉ và số điện thoại cá nhân,
hồ sơ điện thoại, ngày đi nghỉ của nhân viên, hồ sơ ngân hàng và thậm chí cả thơng
tin bảo mật liên quan đến một nhà máy thực tế.
2.4 . Phishing
Là một trong những kiểu tấn công kỹ thuật xã hội phổ biến nhất, Phishing là
các chiến dịch email và tin nhắn văn bản nhằm tạo ra cảm giác cấp bách, tò mò hoặc
sợ hãi ở nạn nhân. Sau đó, nó thúc đẩy họ tiết lộ thông tin nhạy cảm, nhấp vào liên
kết đến các trang web độc hại hoặc mở tệp đính kèm có chứa phần mềm độc hại.
Một ví dụ là một email được gửi đến người dùng của một dịch vụ trực tuyến
thông báo cho họ về hành vi vi phạm chính sách yêu cầu họ phải hành động ngay
lập tức, chẳng hạn như yêu cầu thay đổi mật khẩu. Nó bao gồm một liên kết đến một
trang web bất hợp pháp - gần giống với phiên bản hợp pháp của nó - khiến người
7


dùng không nghi ngờ nhập thông tin đăng nhập hiện tại và mật khẩu mới của họ.
Sau khi gửi biểu mẫu, thông tin sẽ được gửi đến kẻ tấn công.
Do các thư giống hệt nhau hoặc gần giống hệt nhau được gửi đến tất cả người
dùng trong các chiến dịch lừa đảo, việc phát hiện và chặn chúng dễ dàng hơn nhiều
đối với các máy chủ thư có quyền truy cập vào các nền tảng chia sẻ mối đe dọa .
2.5. Spear phishing
Đây là phiên bản được nhắm mục tiêu nhiều hơn của trị lừa đảo qua mạng,
theo đó kẻ tấn công chọn các cá nhân hoặc doanh nghiệp cụ thể. Sau đó, chúng điều
chỉnh thơng điệp của mình dựa trên đặc điểm, vị trí cơng việc và địa chỉ liên hệ của
nạn nhân để cuộc tấn công của chúng ít bị phát hiện hơn. Lừa đảo qua giọng nói đòi
hỏi phải nỗ lực nhiều hơn thay mặt cho thủ phạm và có thể mất hàng tuần, hàng
tháng để giải quyết. Chúng khó bị phát hiện hơn nhiều và có tỷ lệ thành công tốt hơn
nếu được thực hiện một cách khéo léo.

Một kịch bản lừa đảo trực tuyến có thể liên quan đến kẻ tấn công, khi mạo
danh nhà tư vấn CNTT của tổ chức, gửi email đến một hoặc nhiều nhân viên. Nó
được viết và ký chính xác như những gì nhà tư vấn thường làm, do đó đánh lừa người
nhận tin rằng đó là một thơng điệp xác thực. Thông báo nhắc người nhận thay đổi
mật khẩu của họ và cung cấp cho họ một liên kết chuyển hướng họ đến một trang
độc hại, nơi kẻ tấn công hiện nắm bắt thông tin đăng nhập của họ.
3. Tổng quan về công cụ Evilginx2
3.1. Giới thiệu
Evilginx là một khuôn khổ tấn công để thiết lập các trang lừa đảo. Thay vì
cung cấp các mẫu trang đăng nhập trơng giống như thật, Evilginx trở thành một công
cụ chuyển tiếp giữa trang web thực và người dùng bị lừa đảo . Người dùng bị lừa
đảo tương tác với trang web thực, trong khi Evilginx nắm bắt tất cả dữ liệu được
truyền giữa hai bên.
Evilginx, là người trung gian, không chỉ nắm bắt tên người dùng và mật khẩu
mà còn nắm bắt các mã thông báo xác thực được gửi dưới dạng cookie . Mã thông
báo xác thực được chụp cho phép kẻ tấn cơng bỏ qua bất kỳ hình thức 2FA nào được
kích hoạt trên tài khoản của người dùng (ngoại trừ U2F) [3]

8


Ngay cả khi người dùng lừa đảo đã bật 2FA, kẻ tấn công, được trang bị chỉ
với một miền và một máy chủ VPS, vẫn có thể chiếm đoạt tài khoản của họ từ xa .
Không thành vấn đề nếu 2FA đang sử dụng mã SMS, ứng dụng xác thực di động
hoặc khóa khơi phục.
3.2. Lịch sử hình thành
3.2.1. Các phương thức phishing cũ
Ở các cuộc tấn công lừa đảo phổ biến, chúng ta thấy hàng ngày, kẻ tấn công
sủ dụng các mẫu HTML, được chuẩn bị giống như các trang đăng nhập của các trang
web phổ biến, dụ nạn nhân tiết lộ tên người dùng và mật khẩu của họ. Khi nạn nhân

nhập tên người dùng và mật khẩu của mình, thơng tin đăng nhập sẽ được ghi lại và
cuộc tấn công được coi là thành công.
Tiếp theo, nếu người dùng bị lừa đảo đã bật 2FA trên tài khoản của họ, kẻ tấn
cơng sẽ u cầu một hình thức xác thực bổ sung, hình thức xác thực bổ sung đó có
thể là mã SMS đến thiết bị di động của bạn, mã thông báo TOTP , số PIN hoặc câu
trả lời cho một câu hỏi mà chỉ chủ sở hữu tài khoản mới biết. Kẻ tấn công không có
quyền truy cập vào bất kỳ thứ nào trong số này sẽ khơng bao giờ có thể xác thực và
đăng nhập thành công vào tài khoản của nạn nhân.
Các phương thức lừa đảo cũ chỉ tập trung vào việc nắm bắt tên người dùng và
mật khẩu đã bị 2FA đánh bại hồn tồn.
3.2.2. Phishing 2.0
Điều gì sẽ xảy ra nếu có thể dụ nạn nhân khơng chỉ tiết lộ tên người dùng và
mật khẩu của họ mà còn cung cấp câu trả lời cho bất kỳ thách thức 2FA nào có thể
xảy ra sau khi thơng tin đăng nhập được xác minh? Việc chặn một câu trả lời 2FA
duy nhất sẽ khơng mang lại lợi ích gì cho kẻ tấn công. Thử thách sẽ thay đổi với mọi
nỗ lực đăng nhập, khiến cách tiếp cận này trở nên vô dụng.
Sau mỗi lần đăng nhập thành công, trang web tạo mã thông báo xác thực cho
phiên của người dùng. Mã thông báo này (hoặc nhiều mã thơng báo) được gửi đến
trình duyệt web dưới dạng cookie và được lưu để sử dụng trong tương lai. Từ thời
điểm đó, mọi yêu cầu được gửi từ trình duyệt đến trang web sẽ chứa mã thơng báo
phiên đó, được gửi dưới dạng cookie. Đây là cách các trang web nhận ra người dùng
đã xác thực sau khi xác thực thành công. Họ không yêu cầu người dùng đăng nhập,
mỗi khi tải lại trang.
9


Mã cookie này chính là mục tiêu của kẻ tấn cơng. Nếu bạn xuất cookie từ trình
duyệt của mình và nhập chúng vào một trình duyệt khác, trên một máy tính khác, ở
một quốc gia khác, bạn sẽ được ủy quyền và có tồn quyền truy cập vào tài khoản
mà không bị hỏi tên người dùng, mật khẩu hoặc mã thơng báo 2FA.

Từ đó Evilginx2 đã ra đời. Đây là khuôn khổ tấn công Man-In-The-Middle
(MITM) được sử dụng để lừa đảo thông tin đăng nhập cùng với cookie phiên, cho
phép bỏ qua xác thực 2 yếu tố. [4]
3.3. Cơ chế hoạt động
Evilginx2 tiến hành cuộc tấn công thêm một bước nữa và thay vì phân phát
các trang giống HTML của riêng mình, nó trở thành một proxy web. Mọi gói tin,
đến từ trình duyệt của nạn nhân, đều bị chặn, sửa đổi và chuyển tiếp đến trang web
thực. Điều tương tự cũng xảy ra với các gói phản hồi, đến từ trang web; chúng bị
chặn, sửa đổi và gửi lại cho nạn nhân. Với Evilginx2, bạn không cần phải tạo các
mẫu HTML của riêng mình. Về phía nạn nhân, mọi thứ trông như thể họ đang giao
tiếp với trang web hợp pháp. Người dùng khơng biết rằng Evilginx2 đóng vai trị là
người trung gian, phân tích mọi gói tin và ghi lại tên người dùng, mật khẩu và cả
cookie phiên.
Evilginx2 bắt đầu kết nối HTTPS của riêng mình với nạn nhân (sử dụng chứng
chỉ SSL/TLS của riêng mình), nhận và giải mã các gói, chỉ để hoạt động như một
ứng dụng khách và thiết lập kết nối HTTPS của riêng mình với trang web đích, nơi
nó sẽ gửi mã hóa lại các gói, như thể đó là chính trình duyệt của nạn nhân. Đây là
cách chuỗi tin cậy bị phá vỡ và nạn nhân vẫn nhìn thấy biểu tượng ổ khóa màu xanh
lá cây bên cạnh thanh địa chỉ, trong trình duyệt, nghĩ rằng mọi người đã an tồn.
Khi nạn nhân nhập thông tin đăng nhập và được yêu cầu cung cấp mã 2FA,
họ vẫn đang nói chuyện với trang web thực, với Evilginx2 chuyển tiếp các gói tin
qua lại, ngồi ở giữa. Ngay cả khi bị lừa đảo, nạn nhân vẫn sẽ nhận được mã SMS
2FA đến điện thoại di động của mình, vì họ đang nói chuyện với trang web thực (chỉ
qua một chuyển tiếp).

10


Hình 2: Quá trình giao tiếp giữa User và Server bị Evilginx đứng giữa
Sau khi nạn nhân nhập 2FA và trang web xác nhận tính hợp lệ của nó, trang

web sẽ tạo mã thông báo phiên, mã này trả về dưới dạng cookie. Đây cookie được
chặn bởi Evilginx2 và lưu lại. Evilginx2 xác định rằng xác thực đã thành công và
chuyển hướng nạn nhân đến bất kỳ URL nào mà nó được thiết lập (tài liệu trực tuyến,
video, v.v.).
Tại thời điểm này, kẻ tấn cơng nắm giữ tất cả “chìa khóa” và có thể sử dụng
tài khoản của nạn nhân, hoàn toàn vượt qua bảo vệ 2FA, sau khi nhập cookie mã
phiên vào trình duyệt web của hắn.
3.4. Các phiên bản
Evilginx2 là sự kế thừa của Evilginx, được phát hành vào năm 2017, sử dụng
phiên bản tùy chỉnh của máy chủ HTTP nginx để cung cấp chức năng man-in-themiddle để hoạt động như một proxy giữa trình duyệt và trang web lừa đảo.
Phiên bản hiện tại được viết hoàn toàn bằng GO dưới dạng một ứng dụng độc
lập, triển khai máy chủ HTTP và DNS của riêng nó, giúp việc thiết lập và sử dụng
cực kỳ dễ dàng.
3.4.1. Evilginx 2.0 – phiên bản đầu tiên kế thừa của Evilginx
Sau hơn 1 năm phát hành Evilginx, Evilginx2 đã ra đời. Mục tiêu chính khi phát
hành cơng cụ này là tập trung vào việc giảm thiểu độ khó cài đặt và tối đa hóa để dễ
dàng sự dụng. Khả năng sử dụng không nhất thiết là điểm mạnh nhất của phiên bản
đầu tiên.

11


3.4.2. Evilginx 2.1 - Bản cập nhật đầu tiên sau khi phát hành [5]
Sau 2 tháng phát hành Evilginx 2.0 đã có rất nhiều phản hồi về sự cố và mong muốn
có các tính năng cụ thể từ người dùng, cụ thể:
• Thêm chế độ nhà phát triển
Khởi động Evilginx bằng -developerđối số dịng lệnh và nó sẽ tự chuyển sang chế
độ nhà phát triển.
Trong chế độ này, thay vì cố gắng lấy chứng chỉ SSL / TLS của LetsEncrypt, nó sẽ
tự động tạo chứng chỉ tự ký.

• Phát hiện cookie xác thực đã được viết lại hoàn toàn
Giờ đây, Evilginx có thể phát hiện và sử dụng đúng cách httpOnly và gắn hostOnly
flags, cũng như pathcác giá trị cho mỗi cookie được chụp.
• Biểu thức chính quy cho tên cookie và tên khóa POST
Bây giờ, bạn có thể nhập các biểu thức chính quy cho cả tên cookie và POST
user_regex và pass_regex bằng cách thêm regexp vào chuỗi, sau dấu ,phân tách
bằng dấu phẩy .
• Phát hiện đường dẫn URL để kích hoạt chụp session
Bạn sẽ tìm thấy các trang web đặt ID cookie phiên trước khi bạn bắt đầu nhập email
của mình vào biểu mẫu đăng nhập. Trong những trường hợp như vậy, Evilginx sẽ
phát hiện cookie phiên, nắm bắt nó và vì nó là cookie cuối cùng mà nó có ý định
nắm bắt, nó sẽ coi là phiên đã bị bắt. Điều này sẽ không xảy ra, vì thậm chí khơng
có thơng tin đăng nhập nào được nhập.
• Các subdomains cịn trống hiện hoạt động
Có một lỗi ngăn chặn phishlet hoạt động đối với các trang web không sử dụng bất
kỳ miền phụ nào cho một số tên máy chủ của chúng. Đây khơng cịn là vấn đề nữa
và như một ví dụ để chứng minh rằng nó đã được khắc phục, tơi đã sửa đổi một chút
twitter để phishlet hoạt động với twitter.com tên máy chủ.
3.4.3. Evilginx 2.2 - Cập nhật Jolly Winter [6]
Đầu tiên, đây là danh sách đầy đủ các thay đổi được thực hiện trong phiên bản này:
12


• Đã thêm tùy chọn để nắm bắt các đối số POST tùy chỉnh bổ sung vào thông
tin đăng nhập. Kiểm tra custom trường dưới credentials.
Bây giờ bạn có thể nắm bắt các đối số POST bổ sung trong các yêu cầu. Một số
người đã đề cập rằng họ thường cần thu thập dữ liệu từ các trường khác như mã PIN
hoặc mã thơng báo
• Đã thêm tính năng để đưa các đối số POST tùy chỉnh vào các yêu cầu. Hữu
ích khi bật tùy chọn "Ghi nhớ thơng tin" một cách âm thầm trong quá trình

xác thực
Trong phiên bản này, giờ đây có thể đưa một đối số vào yêu cầu POST để thông báo
cho máy chủ rằng hộp kiểm "Nhớ thông tin đăng nhập" đã được đánh dấu (mặc dù
có thể đã cố tình bỏ chọn hộp kiểm này).
• Đã cấu trúc lại tệp cấu hình YAML của phishlet để dễ hiểu hơn (phishlet từ
các phiên bản trước cần được cập nhật sang định dạng mới).
Chuẩn bị cho phiên bản cuối cùng của định dạng tệp phishlet, tôi đã thực hiện một
số cấu trúc lại nó. Bạn sẽ cần thực hiện một số sửa đổi nhỏ đối với phishlet tùy
chỉnh của mình để làm cho chúng tương thích với Evilginx 2.2.0.
• Đã xóa nametrường khỏi phishlet. Tên Phishlet hiện chỉ được xác định dựa
trên tên tệp.
Nhiều người trong số các bạn đã báo cáo proxy trả về lỗi TLS khi kiểm tra các
phishlet tùy chỉnh của riêng bạn. Chúng được gây ra bởi các phishlet tùy chỉnh
giống name với một phishlet được tải khác.
Trường đó nameđã gây ra đủ sự nhầm lẫn, vì vậy tơi quyết định loại bỏ nó hồn
tồn. Tên phishlet hiện chỉ được xác định bởi tên tệp phishlet mà khơng có .yaml
hậu tố. Điều này sẽ cung cấp tính duy nhất đầy đủ cho mỗi tên phishlet vì hai tên
tệp giống nhau khơng thể tồn tại trong cùng một thư mục, nơi các phishlet được tải
từ đó.
• Bây giờ khi bất kỳ u cầu nào auth_urlsđược kích hoạt, chuyển hướng sẽ
diễn ra sau khi cookie phản hồi cho yêu cầu đó được ghi lại.

13


Trong các phiên bản trước, bất cứ khi nào auth_urlskích hoạt bắt phiên, chuyển
hướng sẽ xảy ra ngay lập tức, trước khi Evilginx có thể phân tích cú pháp phản hồi,
nhận được từ máy chủ.
Điều này hiện đã được thay đổi và bạn có thể chọn đường dẫn URL kích hoạt một
cách an toàn vẫn trả về cookie phiên trong phản hồi, vì chúng sẽ được ghi lại và

lưu trước khi chuyển hướng xảy ra.
• Nhóm biểu thức chính quy làm việc với sub_filters.
Bạn có thể xác định một nhóm biểu thức chính quy, như bạn thường làm, với
ngoặc trong searchlĩnh vực và sau đó đề cập đến nó trong replacelĩnh vực này với
${1}, nơi 1là chỉ số nhóm và tự nhiên bạn có thể sử dụng nhiều hơn một nhóm.
• Phishlet hiện được liệt kê trong một bảng.
Nói một cách đơn giản - danh sách phishlets là một mớ hỗn độn xấu xí. Bây giờ nó
có vẻ tốt.
• Các trường Phishlet hiện được viết thường và xác thực có chọn lọc khi tải
để tránh bị bất ngờ.
Evilginx bây giờ sẽ xác thực từng phishlet khi tải. Nó sẽ cố gắng hết sức để thông
báo cho bạn về mọi vấn đề được phát hiện với thông báo lỗi để giúp bạn dễ dàng
hơn trong việc gỡ lỗi bất kỳ lỗi vơ tình nào như lỗi chính tả hoặc trường bị thiếu.
• Tất cả các trường tìm kiếm trong phishlet hiện là biểu thức chính quy theo
mặc định. Hãy nhớ về việc thốt hiểm thích hợp!
Ví dụ nhanh, nếu bạn từng tìm kiếm login.username khóa POST để nắm bắt giá trị
của nó, thì bây giờ bạn cần xác định trường là key: 'login\.username', vì .là một
trong những ký tự đặc biệt được sử dụng trong biểu thức chính quy, có một chức
năng riêng biệt.

3.4.4. Evilginx 2.3 - Giấc mơ của kẻ lừa đảo [7]
Dưới đây là danh sách đầy đủ các thay đổi trong phiên bản này:

14


• Proxy hiện có thể tự tạo hầu hết các yêu cầu sub_filters, giúp việc tạo
phishlet mới dễ dàng hơn nhiều.
Điều tốt nhất với sub_filters tạo tự động là toàn bộ chức năng của trang web có thể
hoạt động hồn tồn, thơng qua proxy, ngay cả sau khi người dùng được xác thực

(ví dụ: hộp thư đến của Gmail).
• Đã thêm mồi nhử , nhờ đó bạn có thể chuẩn bị các URL lừa đảo tùy chỉnh,
mỗi URL có một tập hợp các tùy chọn độc đáo riêng ( help lures để biết thêm
thơng tin).
Giờ đây, bạn có thể tạo bao nhiêu mồi tùy ý cho các phishlet cụ thể và bạn có thể
cung cấp cho từng người trong số chúng
• Đã thêm khả năng đưa Javascript tùy chỉnh vào các trang được ủy quyền.
Giờ đây, bạn có thể đưa bất kỳ mã javascript nào vào nội dung HTML được ủy
quyền, dựa trên đường dẫn URL hoặc miền. Điều này mang lại khả năng đáng kinh
ngạc để tùy chỉnh cuộc tấn cơng lừa đảo của bạn. Ví dụ, bạn có thể làm cho trang
web điền trước email của mục tiêu của bạn vào biểu mẫu xác thực và hiển thị ảnh
hồ sơ của họ.
• Khơng được chấp nhận landing_path và thay thế nó bằng một login phần, chứa
tên miền và đường dẫn cho trang đăng nhập của trang web.
Tôi nhận ra rằng bạn có thể muốn sử dụng một miền khác cho URL lừa đảo của
mình với miền được sử dụng để hiển thị trang đăng nhập. Ví dụ: trang đăng nhập
của Google luôn ở tên miền accounts.google.com, nhưng bạn có thể muốn liên kết
lừa đảo trỏ đến một tên miền phụ khác như docs.phished-google.com. Bằng cách đó,
bạn có thể thêm docs.google.com vào proxy_hosts và đặt tùy chọn thành is_landing:
true.

3.4.5. Evilginx 2.4 - Lừa đảo qua mạng [8]
Sau hơn 1 năm rưỡi, bản cập nhật mới nhất đã được phát hành với các tính năng:
• Tính năng: Tạo và thiết lập các mẫu HTML trước lừa đảo cho các chiến dịch
của bạn. Tạo tệp HTML của bạn và đặt {lure_url_html} hoặc {lure_url_js}
15


trong mã để quản lý chuyển hướng đến trang lừa đảo với bất kỳ hình thức
tương tác nào của người dùng. Yêu cầu: lures edit <id> template <template>

Các mẫu HTML trước lừa đảo thêm một bước nữa vào trước khi quá trình chuyển
hướng sang trang lừa đảo diễn ra. Bạn có thể tạo trang HTML của riêng mình, trang
này sẽ hiển thị trước bất kỳ trang nào khác. Trên trang này, bạn có thể quyết định
cách khách truy cập sẽ được chuyển hướng đến trang lừa đảo.
• Tính năng: Tạo tên máy chủ tùy chỉnh cho mọi chiêu dụ lừa đảo. Lệnh: lures
edit <id> hostname <hostname>.
Evilginx đang chạy DNS của riêng mình, nó có thể phản hồi thành cơng bất kỳ u
cầu DNS A nào đến theo cách của nó.
Vì vậy, bây giờ thay vì bị buộc phải sử dụng tên máy chủ lừa đảo bạn có thể thay
đổi nó thành bất cứ điều gì bạn muốn,bạn có thể hồn toàn tự do với việc tùy chỉnh
tên máy chủ và bạn khơng cịn bị hạn chế bởi các tên máy chủ phishlet được xác
định trước. Chỉ cần nhớ rằng mọi tên máy chủ tùy chỉnh phải kết thúc bằng miền
bạn đã đặt trong cấu hình.
• Tính năng: Hỗ trợ định tuyến kết nối qua proxy SOCKS5 và HTTP (S). Lệnh:
proxy.
Điều này có thể hữu ích nếu bạn muốn các kết nối đến trang web cụ thể bắt nguồn
từ một dải IP cụ thể hoặc khu vực địa lý cụ thể. Nó cũng có thể hữu ích nếu bạn
muốn gỡ lỗi kết nối Evilginx của mình và kiểm tra các gói bằng cách sử dụng proxy
Burp.
• Tính năng: Danh sách đen IP với danh sách đen và chặn địa chỉ IP tự động đối
với tất cả hoặc các yêu cầu trái phép. Yêu cầu: blacklist
Đây là một tính năng mà một số bạn đã yêu cầu. Nó cho phép bạn lọc các yêu cầu
tới liên kết lừa đảo dựa trên User-Agenttiêu đề ban đầu. Chỉ cần đặt một ua_filtertùy
chọn cho bất kỳ sự thu hút nào của bạn, dưới dạng biểu thức chính quy trong danh
sách trắng và chỉ những yêu cầu có User-Agenttiêu đề phù hợp mới được ủy quyền.
• Tính năng: Các thơng số tùy chỉnh hiện có thể được nhúng mã hóa vào url lừa
đảo. Lệnh: lures get-url <id> param1=value1 param2="value2 with spaces".
16



Giờ đây, bạn có thể làm cho bất kỳ sub_filtermục nhập nào trong phishlet của mình
trở thành tùy chọn và chỉ để chúng hoạt động nếu một thông số tùy chỉnh cụ thể được
gửi cùng với liên kết lừa đảo.
• Tính năng: Yêu cầu đối với url lừa đảo hiện có thể bị từ chối nếu Tác nhân
người dùng của khách truy cập không khớp với bộ lọc biểu thức chính quy
trong danh sách trắng cho sự thu hút nhất định. Yêu cầu: lures edit <id>
ua_filter <regexp>
• Danh sách các thơng số tùy chỉnh hiện có thể được nhập trực tiếp từ tệp (văn
bản, csv, json). Lệnh: lures get-url <id> import .
• Giờ đây, các url lừa đảo đã tạo có thể được xuất sang tệp (văn bản, csv, json).
Lệnh: lures get-url <id> import export <export_file>
<text|csv|json>.
• Đã sửa lỗi: Yêu cầu chứng chỉ LetsEncrypt nhiều lần mà không cần khởi động
lại. Các yêu cầu tiếp theo sẽ dẫn đến lỗi "Khơng có JWK được nhúng trong
tiêu đề JWS".
• Đã xóa cài đặt các thơng số tùy chỉnh trong các tùy chọn thu hút. Giờ đây, các
thông số sẽ chỉ được gửi được mã hóa bằng url lừa đảo.
• Đã thêm with_paramstùy chọn để chỉ sub_filtercho phép bật bộ lọc con khi
thông số cụ thể được đặt với url lừa đảo.
• Làm cho màn hình trợ giúp lệnh dễ đọc hơn.
• Cải thiện tính năng tự động điền cho lures editcác lệnh và vị trí được chuyển
đổi của <id>và tên biến.
• Đã tăng thời lượng của các kết nối được ủy quyền trong danh sách trắng cho
toàn bộ địa chỉ IP từ 15 giây lên 10 phút.

17


Chương 3: Hướng dẫn cài đặt, sử dụng
1. Hướng dẫn cài đặt

Có thể sử dụng gói nhị phân được biên dịch trước cho kiến trúc của mình hoặc
biên dịch evilginx2 từ nguồn.
Cần có 1 server để lưu trữ cài đặt evilginx2
Evilginx chạy rất tốt trên VPS Debian 8 cơ bản nhất.
1.1. Cài đặt từ nguồn
Để biên dịch từ nguồn, hãy đảm bảo rằng bạn đã cài đặt GO phiên bản ít nhất 1.10.0
(lấy nó từ đây) và $GOPATH biến mơi trường đó được thiết lập đúng cách (định
nghĩa $HOME/go).
Sau khi cài đặt, hãy thêm cái này vào của bạn ~/.profile, giả sử rằng bạn đã cài đặt
GO trong /usr/local/go:
export GOPATH = $ HOME / go
export PATH = $ PATH: / usr / local / go / bin: $ GOPATH / bin
Sau đó, tải nó với source ~/.profiles.
Bây giờ bạn đã sẵn sàng để cài đặt evilginx2 . Làm theo các hướng dẫn này:
sudo apt-get install git make
go get -u github.com/kgretzky/evilginx2
cd $ GOPATH / src / github.com / kgretzky / evilginx2
make
Bây giờ bạn có thể chạy evilginx2 từ thư mục cục bộ như:
sudo ./bin/evilginx -p ./phishlets/
hoặc cài đặt nó trên tồn cầu:
18


sudo make install
sudo evilginx
Hướng dẫn trên cũng có thể được sử dụng để cập nhật evilginx2 lên phiên bản mới
nhất.
1.2. Cài đặt bằng Docker
Bạn có thể khởi chạy evilginx2 từ bên trong Docker. Đầu tiên xây dựng vùng chứa:

docker build . -t evilginx2
Sau đó, bạn có thể chạy vùng chứa:
docker run -it -p 53:53/udp -p 80:80 -p 443:443 evilginx2
Phishlet được tải bên trong thùng chứa tại /app/phishlets, có thể được gắn vào như
một ổ đĩa để cấu hình.
1.3. Cài đặt từ các gói nhị phân được biên dịch trước
Lấy package bạn muốn từ đây và thả nó vào hộp của bạn. Sau đó thực hiện:
unzip .zip -d
cd
Nếu bạn muốn thực hiện cài đặt trên toàn hệ thống, hãy sử dụng tập lệnh cài đặt với
đặc quyền root:
chmod 700 ./install.sh
sudo ./install.sh
sudo evilginx
hoặc chỉ khởi chạy evilginx2 từ thư mục hiện tại (bạn cũng sẽ cần đặc quyền root):
chmod 700 ./evilginx
sudo ./evilginx

19


2. Cách sử dụng [9]
2.1. Một số lưu ý
Hãy chắc chắn rằng khơng có dịch vụ nghe trên các cổng, và bạn có thể cần tắt
apache hoặc nginx và bất kỳ dịch vụ nào được sử dụng để phân giải DNS có thể
đang chạy. Evilginx2 sẽ cho bạn biết khi khởi chạy nếu nó khơng mở được ổ cắm
nghe trên bất kỳ cổng nào trong số các cổng này.TCP 443 TCP 80 UDP 53
Theo mặc định, evilginx2 sẽ tìm kiếm các phishlet trong ./phishlets/thư mục và sau
đó /usr/share/evilginx/phishlets/. Nếu bạn muốn chỉ định một đường dẫn tùy chỉnh
để tải các phishlet, hãy sử dụng -p tham số khi khởi chạy công

cụ.
Usage of ./evilginx:
-debug
Enable debug output
-developer
Enable developer mode (generates self-signed certificates for all hostnames)
-p string
Phishlets directory path
Bạn sẽ thấy logo evilginx2 với lời nhắc nhập lệnh. Nhập help hoặc help
<command>nếu bạn muốn xem các lệnh có sẵn hoặc thơng tin chi tiết hơn về chúng.
2.2. Bắt đầu
Để thiết lập và chạy, trước tiên bạn cần thực hiện một số thiết lập.
Tại thời điểm này, tôi giả sử rằng bạn đã đăng ký một miền (hãy gọi nó
yourdomain.com) và bạn thiết lập máy chủ định danh (cả ns1và ns2) trong bảng điều
khiển quản trị của nhà cung cấp miền của bạn để trỏ đến IP máy chủ của bạn (ví dụ:
10.0.0.1):

ns1.yourdomain.com = 10.0.0.1
20


ns2.yourdomain.com = 10.0.0.1
Thiết lập miền và IP của máy chủ của bạn bằng các lệnh sau:
config domain yourdomain.com
config ip 10.0.0.1
Bây giờ bạn có thể thiết lập phishlet mà bạn muốn sử dụng. Vì lợi ích của hướng
dẫn ngắn này, chúng tôi sẽ sử dụng một phishlet LinkedIn. Thiết lập tên máy chủ
cho phishlet (nó phải chứa miền của bạn rõ ràng):
phishlets hostname linkedin my.phishing.hostname.yourdomain.com
Và bây giờ bạn có thể enablephishlet, sẽ bắt đầu tự động truy xuất chứng chỉ SSL /

TLS LetsEncrypt nếu khơng tìm thấy cục bộ nào cho tên máy chủ bạn đã chọn:
phishlets enable linkedin
Trang web lừa đảo của bạn hiện đã hoạt động. Hãy nghĩ đến URL, bạn muốn nạn
nhân được chuyển hướng đến khi đăng nhập thành công và nhận được URL lừa đảo
như thế này (nạn nhân sẽ được chuyển hướng đến ):
phishlets get-url linkedin
Việc chạy phishlet sẽ chỉ phản hồi các liên kết được mã hóa, vì vậy bất kỳ máy qt
nào quét tên miền chính của bạn sẽ được chuyển hướng đến URL được chỉ định như
redirect_urlbên dưới config. Nếu bạn muốn ẩn phishlet của mình và làm cho nó
khơng phản hồi ngay cả với các URL lừa đảo được mã hóa hợp lệ, hãy sử dụng
phishlet hide/unhide lệnh.
Bạn có thể theo dõi thông tin xác thực đã thu được và cookie phiên bằng:
Sessions
Để nhận thông tin chi tiết về phiên đã nắm bắt, với chính cookie phiên (nó sẽ được
in ở định dạng JSON ở dưới cùng), hãy chọn ID phiên của nó:
Sessions
Cookie phiên đã chụp có thể được sao chép và nhập vào trình duyệt Chrome, sử
dụng tiện ích mở rộng EditThisCookie.
21


Chú ý: Nếu bạn muốn evilginx2 tiếp tục chạy sau khi đăng xuất khỏi máy chủ của
mình, bạn nên chạy nó trong một screenphiên.

22


Chương 4: Bài lab, kịch bản demo
1. Chuẩn bị
- Máy ảo Kali linux

- Domain để chứa các cài đặt Evilginx2
2. Các bước thực hiện
2.1. Cài đặt GO
sudo apt install golang-go # version 2:1.16.9~0ubuntu1
Thiết lập biến môi trường PATH
export PATH = $ PATH: / usr / local / go / bin: $ GOPATH / bin
Sau đó kiểm tra phiên bản GO, ở đây em cài đặt phiên bản 1.16.9
go version

23


Kiểm tra biến môi trường đã thiết lập
go env

24


2.2. Cài đặt và cấu hình Evilginx2
Tải xuống mã nguồn Evilginx2 từ github và tạo thư mục Evilginx2

Khởi chạy

25


×