SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!




            1




                         2




Penetration with Backtrack 5 R3
            Nguyễn Hải Long | kyo1412@gmail.com
 Nguyễn Phương Trường Anh | truonganhnl@gmail.com
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



               Nội dung chính
               2
 Giới thiệu
   Diễn giả
                           2
   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 ...)



                                                              2
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!




               3
                     Giới thiệu
 Diễn giả
   Nguyễn Hải Long
                   2
   Nguyễn Phương Trường Anh
 Backtrack




                                                              3
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!

                 About me
           4




                       2




                                                          4
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



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

• 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
                   2
• Chuyên môn chính Pentest, tư vấn và triển
  khai ISO/IEC 27001




                                                              5
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!




           6
                 Giới thiệu

                       2




                                                          6
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!




               7
                    Backtrack
 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
                     2
  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


                                                              7
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



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

 Information Gathering: Nmap, traceroute, sqlmap
  …
                        2
 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, …


                                                               8
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!




           9
                    Sniffer

                       2
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



            ARP Spoofing
           10




                       2
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!


             ARP Spoofing (tt)
 Sniff     11

 Netcut/Anti-Netcut
 Man in the middle attack
                     2




                                                              11
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                Software Exploit
                12

   Buffer Overflows
   Format Strings
                             2
   Race Condition
   Integer Overflow
   Off by one




                                                                12
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!

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




                       2




                                                          13
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



         Trình biên dịch và cấu trúc một hàm
               14
int func ( int a , int b)
{
    int c ;
    char d [7] ;         2
    short e ;
    return 0 ;
}




                                                              14
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



             Buffer Overflows
             15

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ó.
                           2




                                                              15
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



          Buffer Overflows (tt)
            16

#include <stdio.h>
int main ( )
{
                        2
    int cookie;
    char buf[16];
    printf("&buf: %p, &cookie: %pn", buf, &cookie);
    gets(buf);
    if (cookie == 0x41424344)
    {
        printf ( "You win !  n" ) ;
    }
}




                                                              16
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



           Buffer Overflows (tt)
             17
Thay đổi giá trị biến nội bộ


                            2




                                                               17
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



           Buffer Overflows (tt)
             18

   Truyền dữ liệu vào chương trình
   Thay đổi luồng thực thi
                     2
   Quay về thư viện chuẩn
   …




                                                               18
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                Software Exploit
                19

   Buffer Overflows
   Format Strings
                             2
   Race Condition
   Integer Overflow
   Off by one




                                                                19
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                  Format Strings
                  20
 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:     2
   –   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%


                                                                 20
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



            Format Strings (tt)
             21

 Dấu % có ý nghĩa đặc biệt
 % Đánh dấu sự bắt 2 của một yêu cầu định
                    đầu
  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!



            Format Strings (tt)
               22
• % in ra ký tự %
• c in tham số thứ nhất của một ký tự
                      2
• 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!



              Format Strings (tt)
               23

#include <stdio.h>
int main(int argc, char **argv )
{                         2
    char buffer[512];
    int cookie = 0 ;
    printf("&cookie: %pn", &cookie);
    gets( buffer);
    printf("cookie = %.8Xn",cookie);
    printf(buffer);
    printf("n cookie = %.8Xn", cookie);
    return 0 ;
}
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



           Format Strings (tt)
            24

• Nhập vào abcdef
 • abcdef
                          2
• 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!



              Format Strings (tt)
               25

• Để gán 0x64 vào biến cookie
  •   [địa chỉ cookie]%x%x%x%x%x%x%x%x%x[…]%n
                             2
• [địa chỉ cookie] in ra 4 byte x54xF8xFFxBF
• 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 "x54xF8xFFxBF%x%x%x%x%x%x%x%x%x" +
 "a"*75 + "%n"' | ./fmt
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                Software Exploit
                26

   Buffer Overflows
   Format Strings
                             2
   Race Condition
   Integer Overflow
   Off by one




                                                                26
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



               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 2 thứ tự truy cập
                     vào




                                                              27
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



            Race Condition (tt)
             28

• Để 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
                      2
  → Chữ “đua” (race)
• Còn được gọi là TOC/TOU
• Xét ví dụ:
   if(access(argv[1], R_OK)==0)
       {
           f = fopen(arvg[1], "r");
       }
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



           Race Condition (tt)
            29

• Giữa hàm access() và fopen() có một
  khoảng thời gian nhỏ
                           2
     CALL access
     CMP EXA, 0
     JNZ ...
     PUSH ...
     PUSH ...
     CALL fopen

• Hệ điều hành có thể sẽ chuyển qua tiến trình
  khác ở giữa các lệnh đó
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



       Race Condition (tt)
        30




                       2
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



             Race Condition (tt)
                 31
• access() và fopen() nhận tên file
• Cùng một tên nhưng có thể là 2 file khác nhau
  •   Symlink                2

• 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
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



           Race Condition (tt)
            32

• Đ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
                      2
  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
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                Software Exploit
                33

   Buffer Overflows
   Format Strings
                             2
   Race Condition
   Integer Overflow
   Off by one




                                                                33
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



               Integer Overflow
                34

• Số nguyên trong máy tính được biểu diễn
  •   Ở dạng bù 2
                          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 (-128→127)
• 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
  (255 kiểu short là 1 kiểu char)

                                                                34
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



           Integer Overflow (tt)
             35

• 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
                        2
• Xét ví dụ:
     int i;
     i = atoi(argv[1]);
     if(i<0x1000) fgets(buf, i, stdin);

• atoi() trả về số nguyên có dấu
• Tham số thứ 2 của fget() là kiểu số nguyên
  không dấu.
• Nếu arvg[1] là số âm thì sẽ gây tràn
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



          Integer Overflow (tt)
            36

• Xét ví dụ:
     int i = -2,147,483,648;
     int j = -1;        2
     printf("%d n", i/j);

• i là số âm nhất
• j là -1
• 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
  diễn (2,147,483,647) →crash
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                Software Exploit
                37

   Buffer Overflows
   Format Strings
                             2
   Race Condition
   Integer Overflow
   Off by one




                                                                37
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!




                38
                     Off by one
• Đâ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
                            2
• Xét ví dụ:
     void vuln(char *arg)
     {
         char buff[8];
         strcpy(buff,arg);
     }
     void main (int argc, char **argv)
     {
         vuln(argv[1]);
     }

                                                               38
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                Off by one (tt)
               39

• 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
                       2
• 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
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                    Off by one (tt)
                   40
• 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()
                      2
  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
  hàm main() sẽ là địa chỉ của biến buff+4
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



            Off by one (tt)
           41




                       2
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



    Demo Buffer Overflow
      42




                       2




                                                          42
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!




                43
                     Web Attack
   SQL Injection
   Cross-site scripting(XSS)
                       2
   Local and Remote file inclusion
   Web proxy




                                                               43
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



                 SQL Injection
                44

   Boolean based blind
   Time based blind 2
   Error based
   UNION query
   Stacked queries
   Out of band



                                                               44
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



       Demo SQL Injection
        45




                       2




                                                          45
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



    Cross-site scripting(XSS)
        46

 Reflected
 Persistent              2
 DOM-based




                                                             46
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!




           47
                Demo XSS

                       2




                                                          47
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



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

• Nghệ thuật tận dụng lỗi phần mềm – Nguyễn
  Thành Nam
                    2
• Offensive Security - Penetration Testing with
  BackTrack (Lab Guide)
• Google
SECURITY BOOTCAMP 2012 | Make yourself to be an expert!



        Thanks & Question
         49




                       2




                                                          49

Contenu connexe

Tendances

Tendances (7)

SBC 2012 - SSL/TLS Attacks & Defenses (Lê Quốc Nhật Đông)
SBC 2012 - SSL/TLS Attacks & Defenses (Lê Quốc Nhật Đông)SBC 2012 - SSL/TLS Attacks & Defenses (Lê Quốc Nhật Đông)
SBC 2012 - SSL/TLS Attacks & Defenses (Lê Quốc Nhật Đông)
 
SBC 2012 - Database Security (Nguyễn Thanh Tùng)
SBC 2012 - Database Security (Nguyễn Thanh Tùng)SBC 2012 - Database Security (Nguyễn Thanh Tùng)
SBC 2012 - Database Security (Nguyễn Thanh Tùng)
 
Hướng nghiên cứu mới cho ngành mật mã nước nhà - TS Hồ Ngọc Duy
Hướng nghiên cứu mới cho ngành mật mã nước nhà - TS Hồ Ngọc DuyHướng nghiên cứu mới cho ngành mật mã nước nhà - TS Hồ Ngọc Duy
Hướng nghiên cứu mới cho ngành mật mã nước nhà - TS Hồ Ngọc Duy
 
Security Bootcamp 2013 - Định hướng công việc ngành ATTT - Nguyễn Hải Long
Security Bootcamp 2013 - Định hướng công việc ngành ATTT - Nguyễn Hải LongSecurity Bootcamp 2013 - Định hướng công việc ngành ATTT - Nguyễn Hải Long
Security Bootcamp 2013 - Định hướng công việc ngành ATTT - Nguyễn Hải Long
 
Trần Anh Khoa - Kautilya và Powershell trong kỹ thuật tấn công tiếp cận
Trần Anh Khoa - Kautilya và Powershelltrong kỹ thuật tấn công tiếp cậnTrần Anh Khoa - Kautilya và Powershelltrong kỹ thuật tấn công tiếp cận
Trần Anh Khoa - Kautilya và Powershell trong kỹ thuật tấn công tiếp cận
 
SBC 2012 - Một số thuật toán phân lớp và ứng dụng trong IDS (Nguyễn Đình Chiểu)
SBC 2012 - Một số thuật toán phân lớp và ứng dụng trong IDS (Nguyễn Đình Chiểu)SBC 2012 - Một số thuật toán phân lớp và ứng dụng trong IDS (Nguyễn Đình Chiểu)
SBC 2012 - Một số thuật toán phân lớp và ứng dụng trong IDS (Nguyễn Đình Chiểu)
 
Security Bootcamp 2013 penetration testing (basic)
Security Bootcamp 2013   penetration testing (basic)Security Bootcamp 2013   penetration testing (basic)
Security Bootcamp 2013 penetration testing (basic)
 

Similaire à SBC 2012 - Penetration Testting với Backtrack 5 (Nguyễn Phương Trường Anh + Nguyễn Hải Long)

Similaire à SBC 2012 - Penetration Testting với Backtrack 5 (Nguyễn Phương Trường Anh + Nguyễn Hải Long) (10)

Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
Ac fr ogdyeeau50afg7bcxmtrplolcc9hoeu__6mus7monefoq946imlse7fvjnynphogvjyelfq...
 
Cocomo – constructive cost model
Cocomo – constructive cost modelCocomo – constructive cost model
Cocomo – constructive cost model
 
Slide py-sys-devops-final-v1
Slide py-sys-devops-final-v1Slide py-sys-devops-final-v1
Slide py-sys-devops-final-v1
 
Chương 4. Kỹ thuật phân tích mã độc dựa trên gỡ rối.pdf
Chương 4. Kỹ thuật phân tích mã độc dựa trên gỡ rối.pdfChương 4. Kỹ thuật phân tích mã độc dựa trên gỡ rối.pdf
Chương 4. Kỹ thuật phân tích mã độc dựa trên gỡ rối.pdf
 
C2 basics of_c_and_cpp
C2 basics of_c_and_cppC2 basics of_c_and_cpp
C2 basics of_c_and_cpp
 
C2 basics of_c_and_cpp
C2 basics of_c_and_cppC2 basics of_c_and_cpp
C2 basics of_c_and_cpp
 
Chuong2 nmth
Chuong2 nmthChuong2 nmth
Chuong2 nmth
 
Hướng dẫn làm quen với stm8 f103 - tincanban.com
Hướng dẫn làm quen với stm8 f103 - tincanban.comHướng dẫn làm quen với stm8 f103 - tincanban.com
Hướng dẫn làm quen với stm8 f103 - tincanban.com
 
Presentation Contiki OS - Vietnamese
Presentation Contiki OS - VietnamesePresentation Contiki OS - Vietnamese
Presentation Contiki OS - Vietnamese
 
Chuong 09 vb
Chuong 09   vbChuong 09   vb
Chuong 09 vb
 

Plus de Security Bootcamp

GOLDEN TICKET - Hiểm hoa tiềm ẩn trong hệ thống Active Directory
GOLDEN TICKET -  Hiểm hoa tiềm ẩn trong hệ thống Active DirectoryGOLDEN TICKET -  Hiểm hoa tiềm ẩn trong hệ thống Active Directory
GOLDEN TICKET - Hiểm hoa tiềm ẩn trong hệ thống Active Directory
Security Bootcamp
 
PHÂN TÍCH MỘT SỐ CUỘC TẤN CÔNG APT ĐIỂN HÌNH NHẮM VÀO VIỆT NAM 2017-2018
PHÂN TÍCH MỘT SỐ CUỘC TẤN CÔNG APT ĐIỂN HÌNH NHẮM VÀO VIỆT NAM 2017-2018PHÂN TÍCH MỘT SỐ CUỘC TẤN CÔNG APT ĐIỂN HÌNH NHẮM VÀO VIỆT NAM 2017-2018
PHÂN TÍCH MỘT SỐ CUỘC TẤN CÔNG APT ĐIỂN HÌNH NHẮM VÀO VIỆT NAM 2017-2018
Security Bootcamp
 

Plus de Security Bootcamp (20)

Ransomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdf
 
Hieupc-The role of psychology in enhancing cybersecurity
Hieupc-The role of psychology in enhancing cybersecurityHieupc-The role of psychology in enhancing cybersecurity
Hieupc-The role of psychology in enhancing cybersecurity
 
Nguyen Huu Trung - Building a web vulnerability scanner - From a hacker’s view
Nguyen Huu Trung - Building a web vulnerability scanner - From a hacker’s viewNguyen Huu Trung - Building a web vulnerability scanner - From a hacker’s view
Nguyen Huu Trung - Building a web vulnerability scanner - From a hacker’s view
 
Sbc 2020 bao gio vn co anm dua vao cong nghe mo
Sbc 2020 bao gio vn co anm dua vao cong nghe moSbc 2020 bao gio vn co anm dua vao cong nghe mo
Sbc 2020 bao gio vn co anm dua vao cong nghe mo
 
Deception change-the-game
Deception change-the-gameDeception change-the-game
Deception change-the-game
 
Giam sat thu dong thong tin an toan hang hai su dung sdr
Giam sat thu dong thong tin an toan hang hai su dung sdrGiam sat thu dong thong tin an toan hang hai su dung sdr
Giam sat thu dong thong tin an toan hang hai su dung sdr
 
Sbc2019 luong-cyber startup
Sbc2019 luong-cyber startupSbc2019 luong-cyber startup
Sbc2019 luong-cyber startup
 
Insider threat-what-us-do d-want
Insider threat-what-us-do d-wantInsider threat-what-us-do d-want
Insider threat-what-us-do d-want
 
Macro malware common techniques - public
Macro malware   common techniques - publicMacro malware   common techniques - public
Macro malware common techniques - public
 
Malware detection-using-machine-learning
Malware detection-using-machine-learningMalware detection-using-machine-learning
Malware detection-using-machine-learning
 
Tim dieu moi trong nhung dieu cu
Tim dieu moi trong nhung dieu cuTim dieu moi trong nhung dieu cu
Tim dieu moi trong nhung dieu cu
 
Threat detection with 0 cost
Threat detection with 0 costThreat detection with 0 cost
Threat detection with 0 cost
 
Build SOC
Build SOC Build SOC
Build SOC
 
AD red vs blue
AD red vs blueAD red vs blue
AD red vs blue
 
Securitybox
SecurityboxSecuritybox
Securitybox
 
GOLDEN TICKET - Hiểm hoa tiềm ẩn trong hệ thống Active Directory
GOLDEN TICKET -  Hiểm hoa tiềm ẩn trong hệ thống Active DirectoryGOLDEN TICKET -  Hiểm hoa tiềm ẩn trong hệ thống Active Directory
GOLDEN TICKET - Hiểm hoa tiềm ẩn trong hệ thống Active Directory
 
PHÂN TÍCH MỘT SỐ CUỘC TẤN CÔNG APT ĐIỂN HÌNH NHẮM VÀO VIỆT NAM 2017-2018
PHÂN TÍCH MỘT SỐ CUỘC TẤN CÔNG APT ĐIỂN HÌNH NHẮM VÀO VIỆT NAM 2017-2018PHÂN TÍCH MỘT SỐ CUỘC TẤN CÔNG APT ĐIỂN HÌNH NHẮM VÀO VIỆT NAM 2017-2018
PHÂN TÍCH MỘT SỐ CUỘC TẤN CÔNG APT ĐIỂN HÌNH NHẮM VÀO VIỆT NAM 2017-2018
 
Api security-present
Api security-presentApi security-present
Api security-present
 
Lannguyen-Detecting Cyber Attacks
Lannguyen-Detecting Cyber AttacksLannguyen-Detecting Cyber Attacks
Lannguyen-Detecting Cyber Attacks
 
Letrungnghia-gopyluananm2018
Letrungnghia-gopyluananm2018Letrungnghia-gopyluananm2018
Letrungnghia-gopyluananm2018
 

SBC 2012 - Penetration Testting với Backtrack 5 (Nguyễn Phương Trường Anh + Nguyễn Hải Long)

  • 1. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 1 2 Penetration with Backtrack 5 R3 Nguyễn Hải Long | kyo1412@gmail.com Nguyễn Phương Trường Anh | truonganhnl@gmail.com
  • 2. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Nội dung chính 2  Giới thiệu  Diễn giả 2  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 ...) 2
  • 3. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 3 Giới thiệu  Diễn giả  Nguyễn Hải Long 2  Nguyễn Phương Trường Anh  Backtrack 3
  • 4. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! About me 4 2 4
  • 5. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Nguyễn Phương Trường Anh 5 • 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 2 • Chuyên môn chính Pentest, tư vấn và triển khai ISO/IEC 27001 5
  • 6. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 6 Giới thiệu 2 6
  • 7. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 7 Backtrack  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 2 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 7
  • 8. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Các công cụ sẵn có trên Backtrack 8  Information Gathering: Nmap, traceroute, sqlmap … 2  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, … 8
  • 9. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 9 Sniffer 2
  • 10. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! ARP Spoofing 10 2
  • 11. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! ARP Spoofing (tt)  Sniff 11  Netcut/Anti-Netcut  Man in the middle attack 2 11
  • 12. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Software Exploit 12  Buffer Overflows  Format Strings 2  Race Condition  Integer Overflow  Off by one 12
  • 13. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Trình biên dịch và cấu trúc một hàm 13 2 13
  • 14. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Trình biên dịch và cấu trúc một hàm 14 int func ( int a , int b) { int c ; char d [7] ; 2 short e ; return 0 ; } 14
  • 15. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Buffer Overflows 15 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ó. 2 15
  • 16. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Buffer Overflows (tt) 16 #include <stdio.h> int main ( ) { 2 int cookie; char buf[16]; printf("&buf: %p, &cookie: %pn", buf, &cookie); gets(buf); if (cookie == 0x41424344) { printf ( "You win ! n" ) ; } } 16
  • 17. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Buffer Overflows (tt) 17 Thay đổi giá trị biến nội bộ 2 17
  • 18. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Buffer Overflows (tt) 18  Truyền dữ liệu vào chương trình  Thay đổi luồng thực thi 2  Quay về thư viện chuẩn  … 18
  • 19. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Software Exploit 19  Buffer Overflows  Format Strings 2  Race Condition  Integer Overflow  Off by one 19
  • 20. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Format Strings 20  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: 2 – 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% 20
  • 21. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Format Strings (tt) 21  Dấu % có ý nghĩa đặc biệt  % Đánh dấu sự bắt 2 của một yêu cầu định đầu dạng  Yêu cầu định dạng tận cùng bởi ký tự định dạng
  • 22. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Format Strings (tt) 22 • % in ra ký tự % • c in tham số thứ nhất của một ký tự 2 • 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
  • 23. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Format Strings (tt) 23 #include <stdio.h> int main(int argc, char **argv ) { 2 char buffer[512]; int cookie = 0 ; printf("&cookie: %pn", &cookie); gets( buffer); printf("cookie = %.8Xn",cookie); printf(buffer); printf("n cookie = %.8Xn", cookie); return 0 ; }
  • 24. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Format Strings (tt) 24 • Nhập vào abcdef • abcdef 2 • Nhập vào %x • 0 • Nhập vào %x%x%x%x • 0 0 0 6
  • 25. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Format Strings (tt) 25 • Để gán 0x64 vào biến cookie • [địa chỉ cookie]%x%x%x%x%x%x%x%x%x[…]%n 2 • [địa chỉ cookie] in ra 4 byte x54xF8xFFxBF • 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 "x54xF8xFFxBF%x%x%x%x%x%x%x%x%x" + "a"*75 + "%n"' | ./fmt
  • 26. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Software Exploit 26  Buffer Overflows  Format Strings 2  Race Condition  Integer Overflow  Off by one 26
  • 27. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 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 2 thứ tự truy cập vào 27
  • 28. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Race Condition (tt) 28 • Để 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 2 → Chữ “đua” (race) • Còn được gọi là TOC/TOU • Xét ví dụ: if(access(argv[1], R_OK)==0) { f = fopen(arvg[1], "r"); }
  • 29. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Race Condition (tt) 29 • Giữa hàm access() và fopen() có một khoảng thời gian nhỏ 2 CALL access CMP EXA, 0 JNZ ... PUSH ... PUSH ... CALL fopen • Hệ điều hành có thể sẽ chuyển qua tiến trình khác ở giữa các lệnh đó
  • 30. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Race Condition (tt) 30 2
  • 31. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Race Condition (tt) 31 • access() và fopen() nhận tên file • Cùng một tên nhưng có thể là 2 file khác nhau • Symlink 2 • 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
  • 32. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Race Condition (tt) 32 • Đ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 2 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
  • 33. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Software Exploit 33  Buffer Overflows  Format Strings 2  Race Condition  Integer Overflow  Off by one 33
  • 34. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Integer Overflow 34 • Số nguyên trong máy tính được biểu diễn • Ở dạng bù 2 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 (-128→127) • 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 (255 kiểu short là 1 kiểu char) 34
  • 35. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Integer Overflow (tt) 35 • 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 2 • Xét ví dụ: int i; i = atoi(argv[1]); if(i<0x1000) fgets(buf, i, stdin); • atoi() trả về số nguyên có dấu • Tham số thứ 2 của fget() là kiểu số nguyên không dấu. • Nếu arvg[1] là số âm thì sẽ gây tràn
  • 36. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Integer Overflow (tt) 36 • Xét ví dụ: int i = -2,147,483,648; int j = -1; 2 printf("%d n", i/j); • i là số âm nhất • j là -1 • 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 diễn (2,147,483,647) →crash
  • 37. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Software Exploit 37  Buffer Overflows  Format Strings 2  Race Condition  Integer Overflow  Off by one 37
  • 38. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 38 Off by one • Đâ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 2 • Xét ví dụ: void vuln(char *arg) { char buff[8]; strcpy(buff,arg); } void main (int argc, char **argv) { vuln(argv[1]); } 38
  • 39. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Off by one (tt) 39 • 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 2 • 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
  • 40. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Off by one (tt) 40 • 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() 2 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 hàm main() sẽ là địa chỉ của biến buff+4
  • 41. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Off by one (tt) 41 2
  • 42. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Demo Buffer Overflow 42 2 42
  • 43. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 43 Web Attack  SQL Injection  Cross-site scripting(XSS) 2  Local and Remote file inclusion  Web proxy 43
  • 44. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! SQL Injection 44  Boolean based blind  Time based blind 2  Error based  UNION query  Stacked queries  Out of band 44
  • 45. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Demo SQL Injection 45 2 45
  • 46. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Cross-site scripting(XSS) 46  Reflected  Persistent 2  DOM-based 46
  • 47. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! 47 Demo XSS 2 47
  • 48. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Các tài liệu tham khảo 48 • Nghệ thuật tận dụng lỗi phần mềm – Nguyễn Thành Nam 2 • Offensive Security - Penetration Testing with BackTrack (Lab Guide) • Google
  • 49. SECURITY BOOTCAMP 2012 | Make yourself to be an expert! Thanks & Question 49 2 49