2
5.2.1.2 Phần mềm nghe lén cuộc gọi Cain & Able
Giới thiệu Cain & Able
Cain & Abel là chương trình tìm mật khẩu và nghe lén cuộc gọi chạy trên hệ điều hành Microsoft. Nó cho phép dễ dàng tìm ra nhiều loại mật khẩu bằng cách dò tìm trên mạng, phá các mật khẩu đã mã hóa bằng các phương pháp Dictionary,
Brute-Force and Cryptanalysis, ghi âm các cuộc đàm thoại qua đường VoIP, giải
mã các mật khẩu đã được bảo vệ, tìm ra file nơi chứa mật khẩu, phát hiện mật khẩu
có trong bộ đệm, và phân tích các giao thức định tuyến.
Chương trình này không khai thác những lỗ hổng chưa được vá của bất kỳ
phần mềm nàọ Nó tập trung vào những khía cạnh, điểm yếu hiện có trong các
chuẩn giao thức, các phương pháp đăng nhập và các kỹ thuật đệm; mục đích chính
của công cụ này là tìm ra mật khẩu và những thông tin cần thiết từ nhiều nguồn. Cain & Abel được phát triển với mong muốn giúp đỡ những người quản trị mạng,
các giáo viên, các chuyên gia/nhà tư vấn an ninh, nhân viên tòa án, các nhà phân phối phần mềm bảo mật, các giáo viên, những nhân viên kiểm tra truy nhập chuyên nghiệp hay bất kỳ ai có lý do sử dụng nó phù hợp với đạo đức.
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Hiện nay phiên bản mới nhất của Cain & Able đã được cải thiện nhanh
hơn và có chứa rất nhiềutính năng mới như ARP
(Arp Poison Routing) trong chuyển mạch mạng LAN và tấn công Man in the
Midle. Sniffer trong phiên bản này cũng có thể phân tích các giao thức mã hóa như SSH-1 và HTTPS và chứa các bộ lọcđể nắm bắt các thông tin từ
một loạt cáccơ chế xác thực.
Tấn công và nghe lén cuộc gọi với Cain & Able
Hình 5. 15: Mô hình demo hệ thống nghe lén cuộc gọi bằng Cain & Able
Khi Attacker có IP 192.168.1.35 kết nối vào hệ thống mạng LAN để nhằm mục đích nghe lén cuộc gọi từ 2 softphone trong hệ thống. Trong trường hợp này acttacker tấn công MITM, chuyển các luồng lưu lượng RTP về phía mình để nghe lén cuộc gọị
Sau khi cài đặt Cain & Able được download từ http://www.oxid.it/cain.html. Tiến hành khởi động Cain & Able và thực hiện tấn công.
Trên thanh công cụ của phần mềm Cain&Able chọn tab Configure và chọn card mạng của Cain& Able để làm việc. Trong trường hợp demo này là card mạng 192.168.1.35.
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Hình 5. 16: Chọn Card mạng làm việc của Cain & Able
Sau khi chọn được card mạng, kích hoạt Sniffer, ARP hoạt động bằng cách click vào biểu tượng:
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Tiến hành dò tìm các Host trong hệ thống, click phải chính giữa màn hình và chọn Scan MAC Ađress
Hình 5. 18: Scan các host trong hệ thống
Trong quá trình này Cain&able sẽ broadcast ARP tới tất cả các IP trong hệ
thống từ 192.168.1.1 => 192.168.1.254.
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Các host trong mạng LAN sẽ trả lời lại quá trình broadcast này phần mềm Cain & Able sẽcó được tất cảcác IP và MAC tương ứng.
Hình 5. 20: Các host trong mạng LAN Tấn công nghe lén cuộc gọi
Các bước tấn công:
Bước đầu tiên là chuyển sang tab ARP và kích hoạt ARP
Hình 5. 21: Kích hoạt ARP
Bước kế tiếp chọn mục tiêu tấn công. click vào dấu (+) trên thanh công cụ để chọn mục tiêụ Giao diện New ARP Poison Routing xuất hiện chứa tất cả các Host đang hoạt động trong hệ thống. Chọn IP của Softphone2 (192.168.1.33) và các IP còn lại chuyển qua khung bên phảị Tiếp tục click chọn IP mục tiêu (192.168.1.39) của softphone1 còn lại
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Hình 5. 22: Chọn mục tiêu tấn công
Chương trình khởi tạo tấn công MITM giữa 2 host 192.168.1.39 và 192.168.1.33. Có thể tấn công cuộc gọị Khi Softphone 1 gọi đến Softphone
2 đàm thoại và gác máỵ
Sau khi hai softphone kết thúc cuộc gọi trên giao diện của Cain & Able chọn tab VoIP ởbên dướị
Hình 5. 23: Chi tiết cuộc gọi nghe lén
Trên giao diện lúc này xuất hiện chi tiết một cuộc đã xảy ra gồm: thời gian bắt đầu, thời gian kết thúc cuộc gọi, IP gọi và bị gọi, trạng thái, file ghi âm
đuôi.mp3 và dung lượng filẹ Để nghe lại cuộc gọi đã nghe lén thì click phải vào file và chọn “Play”.
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG 5.2.2 Bảo mật cuộc gọi bằng TLS và SRTP
Bảo mật hệ thống và chống nghe lén bằng TLS và SRTP khi attacker tấn công bằng Cain & Able và Wireshark.
5.2.2.1 Bảo mật các gói tin báo hiệu TLS
Để bảo mật cuộc gọi bằng TLS thì phải kích hoạt TLS hoạt động trên cả
client vàs server.
Kích hoạt TLS trên server
Server Asterisk 1.8.9.0 của hệ thống có hỗ trợTLS nhưng cần phải kích hoạt một sốthao tác để hoạt động.
Tạo khóa
Trên server astersik chưacó cơ chếtrao đổi khóa hay PKỊ Để sử dụng được TLS thì phải tạo khóa và được đồng bộ chấp nhận cả Client và Server. Quá trình tạo khóa:
Tạo thư mục Keys để chứa các khóa tạo ra
mkdir /etc/asterisk/keys
Sử dụng file ast_tls_cert trong folder /usr/src/asterisk/asterisk-
1.8.9.0/contrib/scripts để tạo khóạ Lệnh tạo khóa cho server Asterisk:
./ast_tls_cert -C 192.168.1.44 -O "binhphuong" -d /etc/asterisk/keys
Hình 5. 24: Nhập key lần thứ nhất với key: binhphuong
Quá trình tạo khóa cho Server có 4 lần nhập keỵ Lần nhập key thứ 3 sau khi tạo file cạcrt.
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
./ast_tls_cert -m client -c /etc/asterisk/keys/cạcrt -k /etc/asterisk/keys/cạkey -C 192.168.1.39 -O "binhphuong" -d /etc/asterisk/keys -o bp
Hình 5. 25: Tạo key cho client 192.168.1.39
./ast_tls_cert -m client -c /etc/asterisk/keys/cạcrt -k /etc/asterisk/keys/cạkey -C 192.168.1.45 -O "binhphuong" -d /etc/asterisk/keys -o pb
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Sau khi tạo key xong cho cảclient và server trong thư mục keys có 16 file: asterisk.crt asterisk.csr asterisk.key asterisk.pem bp.crt bp.csr bp.key bp.pem pb.crt pb.csr pb.key pb.pem cạcfg cạcrt cạkey tmp.cfg
Sau đó, ta copy 2 file bp.pem và cạcrt dùng cho softphone 1 và pb.pem, cạcrt dùng
cho softphone2 để ađ và blinks
Kích hoạt trên server Asterisk Chèn thêm các dòng lệnh sau vào sip.conf
tlsenable=yes tlsbindađr=0.0.0.0 tlscertfile=/etc/asterisk/keys/asterisk.pem tlscafile=/etc/asterisk/keys/cạcrt tlscipher=ALL tlsclientmethod=tlsv1
Khai báo thêm 2 thuê bao trong file sip.conf để kích hoạt TLS hoạt động trên client: [tls1] username=tls1 secret=12345 mailbox=tls1@default context=group1 qualify=yes type=peer host=dynamic disallow=all encrypt=no allow=g722 transport=tls
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG [tls1] username=tls2 secret=12345 mailbox=tls2@default context=group1 qualify=yes type=peer host=dynamic disallow=all encrypt=no allow=g722 transport=tls
Ta chọn encryption=no vì tình huống thử nghiệm này không sử dụng SRTP để mã hóa các bản tin RTP. Sau đó hiệu chỉnh lại file extension.conf để định hướng cuộc gọi đến thuê bao tls1
exten => tls1,1,Dial(SIP/tls1,30) exten =>tls1,n,Hangup()
exten => tls2,1,Dial(SIP/tls2,30) exten =>tls2,n,Hangup()
Kích hoạt TLS trên Blink
Cập nhật thông tin tls1 và tls2 trên Blink. Sau đó, cập nhật trên giao diện Blink
tương tự như khi đăng nhập 200@192.168.1.44 (username: BMDTVT). Click vào trên giao diện Blink chọn tab Blink/Account/Preferences.
Hình 5. 27: Giao diện Blink Preferences Chọn tab Server Setting và thay đổi thông tin:
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Hình 5. 28: Thay đổi thông tin trên tab Server Setting
Tiếp tục chọn tab Advanced tại khung Certificate File chọn đường dẫn lưu file
bp.pm
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Trên giao diện Blink chọn tab Advance chỉđường dẫn đến file cạcrt
Hình 5. 30: Đường dẫn file cạcrt cập nhật cho Blink
5.2.2.2 Bảo mật bằng SRTP
Kích hoạt SRTP
Muốn Asterisk hỗ trợ SRTP thì cần phải cập nhật thêm thư viện libsrtp, thư
viện này cần phải được cài đặt trước khi cài đặt Asterisk, trong trường hợp này vì
Asterisk đã được cài đặt đểdemo các trường hợp trước nên sau khi cài libsrtp,phải cài đặt lại Asterisk, sau đó khai báo thuê bao, định hướng cuộc gọi trong các file
sip.conf và extensions.conf như đã trình bày ở các phần trên. Ngoài ra, để kích hoạt SRTP ở thuê bao nào thì ta thêm dòng encryption=yes và srtpenable=yes trong phần khai báo của thuê bao đó trong file sip.conf.
Cài đặt cho Blink sử dụng SRTP: Click vào Blink/Accounts/Manage Accounts, trong tab media, phần RTP options, chọn mandatory cho SRTP.
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Hình 5. 31: Cài đặt SRTP trên Blink
Tấn công cuộc gọi được bảo mật bởi SRTP
Tình huống cuộc gọi:
Hình 5. 32: Mô hình demo SRTP Cain & Able và Wireshark được đặt trên host của attacker
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG 5.3 Bảo mật hệ thống với Iptables và Fail2ban
Như đã đề cập ở chương 3, hướng tấn công ảnh hưởng băng thông và chất
lượng dịch vụ của hệ thống chính là DoS và ĐoS. Đó là dạng tấn công nguy hiểm có thể làm cho server bị sụp đổ hoàn toàn hoặc không thểđáp ứng dịch vụđược nữa (Từ chối dịch vụ).
Ở phần này sẽ demo cách sử dụng iptables và fail2ban để chặn hoặc giảm thiểu ảnh hưởng của các cuộc tấn công DoS và ĐoS.
5.3.1 Bảo mật hệ thống dùng Iptables 5.3.1.1 Cài đặt Iptables 5.3.1.1 Cài đặt Iptables
Kiểm tra Iptables đã được cài đặt chưa bằng lệnh:
# iptables -L
Với những máy chưa cài đặt Iptables thì dùng lệnh:
# apt-get install iptables
Nếu sau khi dùng lệnh iptables -L thấy hiện ra các Chain như hình sau tức là
iptables đã được cài đặt
Hình 5. 33: Kiểm tra cài đặt Iptables
Nếu Iptables đã được cài đặt thì start iptables bằng lệnh:
# service iptables start
Hoặc:
# /etc/init.d/iptables start
Để iptables tự start khi khởi động thì nên turn on iptables trong startup bằng lệnh:
# chkconfig iptables on
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG 5.3.1.2 Script Iptables Demo:
Sau khi cài đặt Iptables, tiến hành cấu hình iptables theo Script đã dựng sẵn. Tùy thuộc và mục đích của quản trị viên và vào tính chất của hệ thống mà Script được xây dựng sẽ khác nhaụ
Script này được xây dựng để chống các hướng tấn công sau: + Register bất hợp pháp SSH vào hệ thống + ICMP Flood + Syn Flood + Scan Port + UDP Flood + Ping of Death + Smurf + Fraggle >>> Xóa tất cả: # iptables -X
>>> Xóa các luật tồn tại trong Chain
# iptables -F
>>> Reset tất cả gói và Counter
# iptables -Z
>>> Không đóng các kết nối đang được thiết lập, đồng thời cũng cho phép mở các kết nối mới trong kết nối được thiết lập
# iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
>>> Chấp nhận 192.168.1.39 và 192.168.1.35 được phép register SSH vào hệ
thống. Chặn tất cả các IP còn lại
# iptables -A INPUT -s 192.168.1.35/32 -i eth0 -p tcp -m tcp --dport 2200 -m state - -state NEW -j ACCEPT
# iptables -A INPUT -s 192.168.1.39/32 -i eth0 -p tcp -m tcp --dport 2200 -m state - -state NEW -j ACCEPT
# iptables -A INPUT -i eth0 -p tcp -m tcp --dport 2200 -m state --state NEW -j DROP
>>> Hạn chế gói tin Ping tới Server: rule này sẽ giới hạn các gói Ping tới server là
10 gói/phút sau khi đạt mức đỉnh là 1 gói
# iptables -N test
# iptables -A test -m limit --limit-burst 1 --limit 10/m -j RETURN # iptables -A test -j DROP
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
# iptables -A INPUT -i eth0 -p icmp -m icmp --icmp-type echo-request -j test
>>> Chống Syn Flood: rule này sẽ giới hạn các gói TCP (SYN = 1) tới server qua
port 3306 và 2200 là 1 gói/phút sau khi đạt mức đỉnh là 1 gói
# iptables -N syn_flood
# iptables -A syn_flood -m limit --limit 1/min --limit-burst 1 -j RETURN # iptables -A syn_flood -j DROP
# iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 --syn -j syn_flood # iptables -A INPUT -i eth0 -p tcp -m tcp --dport 2200 --syn -j syn_flood
>>> Chống UDP Flood: ngăn các gói UDP đến port UDP-echo (port 7)
# iptables -A INPUT -p udp --dport 7 -j DROP
>>> Chống Ping of Death: kỹ thuật Ping of Death gửi gói tin lớn hơn 65535 byte
làm tê liệt hệ thống nên rule này hạn chế kích cỡ của 1 gói tin ICMP dưới 65535, DROP các gói không thỏạ
# iptables -A INPUT -p icmp --icmp-type echo-request -m length --length 60:65535 -j ACCEPT
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
>>> Chống Smurf Attack: Rule này ngăn không cho Ping tới địa chỉ broadcast và giới hạn tốc độ các gói tin echo-reply là 10 gói/phút khi đạt 1 gói
# iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
# iptables -A INPUT -p icmp --icmp-type echo-request -m pkttype --pkt-type broadcast -j DROP
# iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit-burst 1 --limit 10/m -j ACCEPT
>>> Chống Fraggle Attack: Rule này ngăn không cho các gói tin UDP gửi tới địa chỉ Broadcast
# iptables -A INPUT -p udp -m pkttype --pkt-type broadcast -j DROP # iptables -A INPUT -p udp -m limit --limit-birst 1 --limit 10/m -j ACCEPT
>>> Chống Scan Port
>>>>> Chống Xmas Scan (gửi gói tin với ba cờ được thiết lập FIN, URG, PSH)
# iptables -A INPUT -m state --state NEW -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
>>>>> Chống Xmas Scan với tất cả cờđược thiết lập
#iptables -A INPUT -m state --state NEW -p tcp --tcp-flags ALL ALL -j DROP
>>>>> Chống Null Scan (tắt tất cả cờ)
CHƯƠNG 5: DEMO BẢO MẬT HỆ THỐNG
Sau khi cấu hình Script xong, nếu trong quá trình test không có lỗi gì thì tiến hành save cấu hình lại bằng câu lệnh:
# iptables-save
Cách sửa cấu hình và reboot đã đề cập ởchương 4
Lệnh iptables-save chỉ tạm save lại cấu hình và khi restart lại hệ thống thì sẽ tự
dùng lệnh iptables-restore để đọc lại cấu hình nhưng khi reboot (tắt) và khởi động lại hệ thống thì cấu hình sẽ mất đị Để tránh mỗi lần mở máy phải cấu hình Script lại ta thực hiện các bước sau:
# pre-up iptables-restore < /etc/iptables.rules
# post-down iptables-restore < /etc/iptables.downrules # vi /etc/network/if-pre-up.d/iptablesload và thêm vào: # !/bin/sh
iptables-restore < /etc/iptables.rules exit0
# vi /etc/network/if-post-down.d/iptablessave và thêm vào # !/bin.sh iptables-save -c > /etc/iptables.rules if [ -f /etc/iptables.downrules ]; then iptables-restore < /etc/iptables.downrules fi exit 0 # chmod +x /etc/network/if-post-down.d/iptablessave # chmod +x /etc/network/if-pre-up.d/iptablesload # iptables-save > /etc/iptables.rules
Trước khi test demo nên restart lại hệ thống:
# /etc/init.d/networking restart
5.3.2 Bảo mật hệ thống dùng Fail2ban kết hợp Iptables 5.3.2.1 Cài đặt Fail2ban 5.3.2.1 Cài đặt Fail2ban
Fail2ban được tích hợp sẵn trong Ubuntu 11.04
Để bắt đầu cấu hình trước tiên phải cài đặt Fail2ban bằng câu lệnh:
# apt-get install fail2ban
5.3.2.2 Cấu hình
Cấu hình file asterisk.conf