exploit research

37
Metasploit Framework READY TO ROLL PRESENTED BY: JASKARAN SINGH

Upload: anonymous-ptbygrm

Post on 27-Jan-2016

28 views

Category:

Documents


1 download

DESCRIPTION

Exploit Research

TRANSCRIPT

Page 1: Exploit Research

Metasploit Framework

READY TO ROLL

PRESENTED BY: JASKARAN SINGH

Page 2: Exploit Research

Android 4.1.2 (Linux 3.3) Exploitation

Page 3: Exploit Research

Exploit Writing◦ Windows Assembly Language

◦ Linux Assembly Language

◦ Networking Basics

◦ Socket programming

◦ Python/Ruby/Perl/C/C++/…

Page 4: Exploit Research

Memcpy Buffer Overflow Exploit

Page 5: Exploit Research

ARG2

ARG1

RET

EBP-old

Local variables

High Memory

Low Memory

SP (Stack Pointer)

BP (Base Pointer / Frame Pointer)

Return Address

Arguments

Str (pointer to a string)

Return Address

EBP-old (Previous Base Pointer)

Buffer[0] … Buffer[7]

var_a

(a) (b)

void test(char *str) { char buffer[12];int var_a; strcpy (buffer, str); } int main() {char *str = “Larger than 12 bytes”; test (str); }

Page 6: Exploit Research

Str (pointer to a string)

Return Address

EBP-old (Previous Base Pointer)

Buffer[0] … Buffer[7]

var_a

(a) (b)

void test(char *str) { char buffer[12];int var_a; strcpy (buffer, str); } int main() {char *str = “Larger than 12 bytes”; test (str); }

Page 7: Exploit Research

void test(char *str) { char buffer[12];int var_a; strcpy (buffer, str); } int main() {char *str = “Larger than 12 bytes”; test (str); }

Page 8: Exploit Research

char a[3]

a[0] a[1] a[2]

E X P L O I T

a = “EXPLOIT”

a[0] a[1] a[2]

Overwritten memory locations

Page 9: Exploit Research

Vulnerable Code

Page 10: Exploit Research

//listening on port 6767

int vul_func(char *input)

{

char buffer[256];

memcpy(buffer, input, 1024);

return 1;

}

Vulnerable Code

Page 11: Exploit Research

Exploit Code

Page 12: Exploit Research

Exploit Code#!/usr/bin/python

import socket, syssock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sock.connect((sys.arv[1], 6767)) //argument passed is IP address

buffer = “J*2000

sock.send(buffer)

sock.close()

Page 13: Exploit Research

Crash…

Page 14: Exploit Research

Crash…

Page 15: Exploit Research

Debugger

Page 16: Exploit Research

After Attack

Page 17: Exploit Research

Memory…

ARG2

ARG1

RET

EBP-old

Local var1

41414141

41414141

41414141

41414141

41414141

41414141

4141414141414141414141414141414141414141

EIP

Stack

Page 18: Exploit Research

Successful Exploitation

PAYLOAD

PAYLOAD

4A4A4A4A

4A4A4A4A

4A4A4A4A

AABBCC08AABBCC08

AABBCC04

AABBCC00

EIP

Page 19: Exploit Research
Page 20: Exploit Research
Page 21: Exploit Research
Page 22: Exploit Research
Page 23: Exploit Research
Page 24: Exploit Research
Page 25: Exploit Research
Page 26: Exploit Research
Page 27: Exploit Research
Page 28: Exploit Research
Page 29: Exploit Research
Page 30: Exploit Research
Page 31: Exploit Research
Page 32: Exploit Research
Page 33: Exploit Research
Page 34: Exploit Research
Page 35: Exploit Research
Page 36: Exploit Research
Page 37: Exploit Research