1. Trang chủ
  2. » Công Nghệ Thông Tin

Penetration with Backtrack 5 R3 ppt

49 780 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Penetration with Backtrack 5 R3
Tác giả Nguyễn Hải Long, Nguyễn Phương Trường Anh
Chuyên ngành Security and Information Technology
Thể loại Presentation
Năm xuất bản 2012
Định dạng
Số trang 49
Dung lượng 1,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• s in chuỗi được chỉ tới bởi tham số thứ nhất• n ghi vào ô nhớ có địa chỉ xác định bởi tham số thứ nhất số lượng ký tự đã in 4 byte... 2 Race Condition 27 • Xảy ra nhiều tiến trình tiể

Trang 1

2

Nguyễn Hải Long | kyo1412@gmail.com

Penetration with Backtrack 5 R3

Nguyễn Phương Trường Anh | truonganhnl@gmail.com

Trang 2

 Các phương thức tấn công phổ biến:

 ARP Spoofing (Ettercap)

 Software Exploit (Windows and Linux)

 Web Application Attack (SQLi, XSS, Local )

Nội dung chính

Trang 3

2

 Nguyễn Hải Long

 Nguyễn Phương Trường Anh

 Backtrack

Giới thiệu

3

Trang 4

2

Trang 5

2

• Kinh nghiệm 5 năm làm việc trong lĩnh vực

bảo mật và an toàn thông tin

• Chuyên môn chính Pentest, tư vấn và triển

khai ISO/IEC 27001

Nguyễn Phương Trường Anh

5

Trang 6

2

Giới thiệu

Trang 7

2

 Backtrack là một bản phân phối linux được

tích hợp các công cụ, driver hỗ trợ việc

pentest hệ thống.

 Live DVD or Live USB Flash

 Phát triển hợp nhất từ 3 công cụ nổi tiếng

Whoppix, IWHAX, và Auditor

 Phiên bản mới nhất Backtrack 5 R3

Backtrack

7

Trang 8

2

 Information Gathering: Nmap, traceroute, sqlmap

 Vulnerability assessment: Nessus, OpenVAS …

 Exploitation Tool: Metasploit, Aircrack-ng …

 Privilege Escalation: John the Ripper, Ophcrack, …

 Maintenance Access

 Reverse Engineering: gdb, ollydbg, ida …

 Forensic: sleuthkit, chkrootkit, …

Các công cụ sẵn có trên Backtrack

Trang 9

2

Sniffer

Trang 10

2

ARP Spoofing

Trang 13

2

Trình biên dịch và cấu trúc một hàm

13

Trang 18

2

 Truyền dữ liệu vào chương trình

 Thay đổi luồng thực thi

 Quay về thư viện chuẩn

 …

Buffer Overflows (tt)

Trang 20

printf ( const char * format , )

Nếu gọi printf ( "Hello" );

Trang 21

2

Format Strings (tt)

 Dấu % có ý nghĩa đặc biệt

% Đánh dấu sự bắt đầu của một yêu cầu định

dạng

 Yêu cầu định dạng tận cùng bởi ký tự định

dạng

Trang 22

s in chuỗi được chỉ tới bởi tham số thứ nhất

n ghi vào ô nhớ có địa chỉ xác định bởi tham số

thứ nhất số lượng ký tự đã in (4 byte)

Trang 27

2

Race Condition

27

• Xảy ra nhiều tiến trình (tiểu trình) truy cập và

sửa đổi cùng một dữ liệu vào cùng một lúc,

Kết quả phụ thuộc vào thứ tự truy cập

Trang 28

2

Race Condition (tt)

• Để tận dụng lỗi thì người ta chạy thật nhiều

tiến trình ngoài để “đua” với tiến trình bị lỗi

Trang 29

2

Race Condition (tt)

• Giữa hàm access() fopen() có một

khoảng thời gian nhỏ

• Hệ điều hành có thể sẽ chuyển qua tiến trình

Trang 30

2

Race Condition (tt)

Trang 31

2

Race Condition (tt)

access() fopen() nhận tên file

• Cùng một tên nhưng có thể là 2 file khác nhau

• Symlink

• Do đó ta có thể tận dụng bằng cách:

• Chỉ symlink đến tập tin có thể đọc được

• Chỉ symlink đến tập tin không có quyền đọc nhưng

chương trình bị lỗi có thể đọc được

• Lập lại 2 việc này liên tục

• Song song đó, ta sẽ chạy chương trình bị lỗi và truyền tên

symlink vào

Trang 32

2

Race Condition (tt)

• Điều kiện đua thường gặp ở các ứng dụng xử

lý file, ứng dụng mạng, database, ứng dụng đa tiểu trình, ứng dụng web

• Ứng dụng web đặc biệt dễ mắc phải vì vừa đa

tiến(tiểu) trình, vừa truy cập database, vừa

truy cập file

Trang 34

2

• Số nguyên trong máy tính được biểu diễn

• Ở dạng bù 2

• Có dấu hoặc không dấu

• Giá trị âm lớn nhất cũng có thể là giá trị dương

cao nhất

• Số có dấu hiệu bị lệch giá trị âm (-128127)

• Hiện tượng quay vòng (127 +1 = -128, 255+1=0)

• Kích thước kiểu dữ liệu ảnh hưởng quan trọng

Integer Overflow

Trang 35

2

Integer Overflow (tt)

• Tràn số nguyên xảy ra khi giá trị số nằm ngoài phạm

vi biểu diễn của kiểu dữ liệu

• Xét ví dụ:

atoi() trả về số nguyên có dấu

• Tham số thứ 2 của fget() là kiểu số nguyên

Trang 36

• Khi thực hiện phép chia sẽ ra 2,147,483,648,

nhưng 2,147,483,648 vượt quá phạm vi biểu

int i = - 2,147,483,648 ;

int j = - 1 ;

printf ( "%d \n" , i / j );

Trang 38

2

• Đây là một trường hợp đặc biệt của lỗi tràn bộ

đệm, trong đó chỉ duy nhất chỉ tràn một byte

Trang 39

2

Off by one (tt)

• Giả sử argv[1] có độ dài 8 ký tự

• Khi vào vuln() thì biến buff chứa 8 ký tự này

• Ký tự kết thúc chuỗi sẽ lem ra ngoài

• Ký tự \x00 sẽ bị lem vào EBP cũ

• Trong phần kết thúc của hàm vuln() : POP EBP

=> sẽ khiến EBP mang giá trị XXXXXX00

• Trong phần kết thúc của hàm main() : MOV ESP,

EBP => sẽ khiễn ESP mang giá trị XXXXXX00

Trang 40

2

Off by one (tt)

• Sau đó POP EBP sẽ làm ESP tăng thêm 4

• Cuối cùng RET sẽ lấy giá trị hiện tại trên đỉnh ngăn

xếp để quay về → lỗi xảy ra trong hàm vuln()

nhưng tận dụng trong hàm main()

• Hai điểm cần lưu ý:

Giá trị mới của EBP sẽ nhỏ hơn giá trị EBP đã lưu

• Và do đó có thể chỉ tới phần ngăn xếp trong vuln()

• Giả sử biến buff có địa chỉ tận cùng là 00 → cơ hội

EBP chỉ tới biến buff sẽ cao → địa chỉ trở về của

Trang 41

2

Off by one (tt)

Trang 42

2

Demo Buffer Overflow

Trang 44

2

 Boolean based blind

 Time based blind

Trang 45

2

Demo SQL Injection

45

Trang 47

2

Demo XSS

47

Trang 48

2

Các tài liệu tham khảo

• Nghệ thuật tận dụng lỗi phần mềm – Nguyễn

Thành Nam

• Offensive Security - Penetration Testing with

BackTrack (Lab Guide)

• Google

Trang 49

2

Thanks & Question

49

Ngày đăng: 22/03/2014, 16:20

TỪ KHÓA LIÊN QUAN

w