{"id":5065,"date":"2010-09-25T10:24:12","date_gmt":"2010-09-25T08:24:12","guid":{"rendered":"http:\/\/www.corelan.be:8800\/?p=5065"},"modified":"2010-09-25T10:24:12","modified_gmt":"2010-09-25T08:24:12","slug":"brucon-2010-day-0x2","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/","title":{"rendered":"BruCON 2010 : Day 0x2"},"content":{"rendered":"<h3>[WORKSHOP] \u2013 Malicious PDF Analysis<\/h3>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/bruconlogo3.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 10px 0px 30px; display: inline; border-width: 0px;\" title=\"bruconlogo\" src=\"\/wp-content\/uploads\/2010\/09\/bruconlogo_thumb3.jpg\" border=\"0\" alt=\"bruconlogo\" width=\"116\" height=\"71\" align=\"right\" \/><\/a> I started the second day at BruCON with attending the workshop about analyzing malicious pdf files.<\/p>\n<p><a href=\"http:\/\/blog.didierstevens.com\/\">Didier Stevens<\/a> spared no expense and prepared an impressive lab, offering all sorts of pdf exercise files.\u00a0 Trying to squeeze in weeks and months of research into a 2 hour workshop, he managed to make things look so simple and took the time to explain how to use his tools to dissect pdf files, find malicious code, extract it and analyze the code.\u00a0 He even was so generous to include his chapter from a (unfortunately cancelled) malware analysis book.<\/p>\n<blockquote><p>Update : Didier has posted the pdf analysis ebook on his blog. You can download the file <a href=\"https:\/\/web.archive.org\/web\/20201227001723\/http:\/\/didierstevens.com\/files\/data\/malicious-pdf-analysis-ebook.zip\" target=\"_blank\" rel=\"noopener\">here<\/a><\/p><\/blockquote>\n<p>The lab was built around 2 tools written by Didier : pdfid.py and pdf-parser.py<\/p>\n<p>Where the first exercises used plain simple javascript instructions, we quickly had to start analyzing files that contained obfuscated javascript, used vulnerabilities in pdf readers (and used javascript to perform heap spraying), or contained other files embedded inside the pdf file.<\/p>\n<p>We also learned how pdf encryption works (basically, only contents are encrypted, but not the structure, so you can still analyze the structure with the tools\u2026 but it won\u2019t decrypt it). Encrypting a pdf can be done using DRM (which, in essence, protects the file with an owner password). Didier mentions that\u00a0 <a href=\"http:\/\/qpdf.sourceforge.net\/\">QPDF<\/a> can be used to further analyze encrypted files, or to create encrypted pdf files.<\/p>\n<p>Summarizing the workshop, Didier explains that this is just the beginning. We only analyzed some simple examples, but he also stresses that most of the current malware examples found in the wild use javascript\/javascript obfuscation one way or another.<\/p>\n<p>If you ever get the chance to take Didier\u2019s workshop, don\u2019t hesitate. You\u2019ll love it !<\/p>\n<p>Some related links :<\/p>\n<p><a title=\"http:\/\/blog.didierstevens.com\/programs\/pdf-tools\/\" href=\"http:\/\/blog.didierstevens.com\/programs\/pdf-tools\/\">http:\/\/blog.didierstevens.com\/programs\/pdf-tools\/<\/a><\/p>\n<p>http:\/\/media.software.com.pl\/hakin9\/en\/Listingi\/03_2009\/Anatomy_of_Malicious_PDF_Documents.rtf<\/p>\n<h3>Repelling the Wily Insider : Finding backdoors in code<\/h3>\n<p>Matias Madou (Principal Security Research at Fortify) introduces his talk by explaining that he focuses on finding new techniques for finding vulnerabilities (static and dynamic analysis), and new ways to protect web apps.<\/p>\n<h4>Insider threats<\/h4>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/250920105592.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 0px 0px 15px; display: inline; border-width: 0px;\" title=\"25092010559\" src=\"\/wp-content\/uploads\/2010\/09\/25092010559_thumb2.jpg\" border=\"0\" alt=\"25092010559\" width=\"205\" height=\"154\" align=\"right\" \/><\/a> Matias explains that still a vast amount of insiders (employees) pose a substantial risk to the company.\u00a0 But the real danger may come from developers. Developers have access to source code and might leave backdoors (intentionally or not).<\/p>\n<p>The main motives for leaving backdoor-alike code inside applications are money and revenge.<\/p>\n<p>Some interesting examples where \u201cspecial\u201d code was planted in applications are<\/p>\n<ul>\n<li>various open source \/ public disclosures<\/li>\n<li>anonymized commercial \/ enterprise code<\/li>\n<li>the 2004 obfuscated voting contest (Stanford), where\n<ul>\n<li>votes should be counted correctly in test mode<\/li>\n<li>one candidate should be favored<\/li>\n<li>the code should not get detected by human code reviews<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Classes of insider threats :<\/h4>\n<ul>\n<li>(Medco 2008) : compare current date with a certain date, and delete files (destructive)<\/li>\n<li>(Linux 2005) : if ((options == (__WCLONE|__WALL)) &amp;&amp; (current-&gt;uid = 0))\n<ul>\n<li>This code actually sets uid to 0 (only one =)<\/li>\n<li>Bug\/Authorization issue<\/li>\n<\/ul>\n<\/li>\n<li>(Borland\u2019s Interbase 2003)if (username ==\u201d politically\u201d and password == \u201ccorrect\u201d)\u00a0 \/\/ grant access\n<ul>\n<li>Tried to fix a chicken &amp; egg issue, hardcoded a username &amp; password in the application<\/li>\n<li>Authentication issue, Hardcoded sensitive data<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/25092010560.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 0px 0px 10px; display: inline; border-width: 0px;\" title=\"25092010560\" src=\"\/wp-content\/uploads\/2010\/09\/25092010560_thumb.jpg\" border=\"0\" alt=\"25092010560\" width=\"242\" height=\"182\" align=\"right\" \/><\/a> The way Matias wants to classify the issues (based on the technique you need to use to find the issues) :<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Logic or Time Bomb <\/span><\/strong>: Malicious code lies dormant until a trigger is reached (time, logic).<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Backdoors &amp; Secret Credentials<\/span><\/strong> : Provide covert access to the system in the future :<\/p>\n<ul>\n<li>code that allows remote access<\/li>\n<li>adding hardcoded credentials<\/li>\n<li>adding a master password<\/li>\n<li>etc<\/li>\n<\/ul>\n<p>Some cases : Borland Interbase, WordPress backdoor (iz), Optix Pro (2004), Subseven (2000)\u00a0 (the last 2 apps are backdoor apps that\u2026 are backdoored themselves)<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Nefarious communcations<\/span><\/strong><\/p>\n<p>Fixed communication channel to transfer data out of the organization (via a network socket, via emails, posting it to an evil website, etc).\u00a0 The transfer could be time based, change trigger based, etc.<br \/>\nThe code is usually static and cannot be changed.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Dynamic code injection \/ manipulation<\/span><\/strong><\/p>\n<p>This refers to techniques which abuse reflection, perform resource rewrites, does runtime compilation, performs class loader abuse, and so on.<\/p>\n<p>There are not a lot of known cases that use this type of malicious code (because it\u2019s pretty complex to do\u2026 it usually is easier to hardcode code into the application.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Ofuscation \/ Camouflage<\/span><\/strong><\/p>\n<p>Usually applied to other techniques, to prevent manual code reviewers to find the special code. Techniques to do this include making use of encoding\/decoding functions.<\/p>\n<h4>Techniques for defenders :<\/h4>\n<p>How can we uncover malicious code ?<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Peer review <\/span><\/strong>: Obviously suspicious strings\/code in the code base.\u00a0 But what if the code is not that suspicious, and introduces the issue if it\u2019s just a matter of \u201c=\u201d instead of \u201c==\u201d) ?\u00a0 Examples like this are really hard to spot.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Static analysis<\/span><\/strong> : While this is not \u201cthe\u201d magic solution (because it\u2019s hard to define \u201cwhat to look for\u201d and \u201cwhere to start\u201d), it might help to get you some ideas so you can dive deeper into specific parts of the source code.<\/p>\n<p>Matias mentions that you should think about \u201cwhat would people try to do\u201d, and look for references to that.\u00a0 If you want to find instances where people try to grab an entire database and send it somewhere else, you may want to look for instructions that will read from the database, and instructions that would set up network sockets.<\/p>\n<p>Inserting credentials into a user database table might be suspicious as well.\u00a0 Looking for email addresses \/ mailing API\u2019s is a good idea as well.\u00a0 Finding for example \u201cif\u201d statements that use \u201c=\u201d\u00a0 instead of \u201c==\u201d is useful as well.\u00a0 And the list goes on.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Runtime testing : QA<\/span><\/strong><\/p>\n<p>Extensive functional testing can help, but we might be intersted in the code that is not running \/ not running all the time (dead code).\u00a0 If the backdoor is time based for example, it\u2019s most likely not going to run at test time.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Runtime testing : production<\/span><\/strong><\/p>\n<p>Look for anomalies \u2013 unexpected spikes in traffic for example, or performance issues. These might indicate that something unusual is happening (such as dumping the database and transferring it over the network)<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Interpret the results<\/span><\/strong><\/p>\n<p>Matias continues by explaining that interpreting the results is important as well.\u00a0 First step in the exercise would need to be to order the results based on the importance\/impact.\u00a0 This might help code reviewers to look at specific parts of the code.\u00a0 If you find a date\/time comparison routine in a login script, then this might be suspicious and may be a high priority target.<\/p>\n<p>If you combine all that knowledge and techniques, Matias says, it may be possible to turn them into some rules and apply priorities based on those rules, pretty much building upon <a href=\"https:\/\/web.archive.org\/web\/20190810063836\/https:\/\/www.owasp.org\/index.php\/User:Jeff_Williams\">Jeff Williams\u2019<\/a> paper on the subject and extending it with more rules.<\/p>\n<h4>What will people with malicious intentions try to do ?<\/h4>\n<ul>\n<li>make the code to look as real as possible, and as benign as possible<\/li>\n<li>understand defender\u2019s capabilities to detect\/discover and act accordingly<\/li>\n<li>use tools that might help to hide\/insert code<\/li>\n<\/ul>\n<p>Matias closes his talk by explaining that, despite all the efforts, catching malicious insiders is like looking for a needle in a haystack.<\/p>\n<p>Most companies tend to ignore the problem. Others may have a change management process in place that might help detecting malicious code as it gets inserted into the source.\u00a0 But if we are talking about big code changes, it would still be very complex to actually read and interpret every single code change.<\/p>\n<p>If the insider has bad intentions, odds are very high that he will succeed.\u00a0 He might get caught afterwards, but harm might be done already.<\/p>\n<h3>Head Hacking \u2013 The Magic Of Suggestion And Perception<\/h3>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/25092010561.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 10px 0px 0px; display: inline; border-width: 0px;\" title=\"25092010561\" src=\"\/wp-content\/uploads\/2010\/09\/25092010561_thumb.jpg\" border=\"0\" alt=\"25092010561\" width=\"242\" height=\"182\" align=\"left\" \/><\/a> Dale Pearson, \u201cHead Hacker\u201d, kicks off his session by explaining that he will talk about hacking humans, hacking minds\u2026 Social Engineering basically.<\/p>\n<p>He will talk about types of social engineering, tools for the job and journey to enlightenment, and provide some tips on how to apply this knowledge in our day-to-day lives.<\/p>\n<p>Social Engineering (SE), Dale says, is all about.. lying\u2026 about convincing people to believe something.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/25092010562.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 0px 0px 10px; display: inline; border-width: 0px;\" title=\"25092010562\" src=\"\/wp-content\/uploads\/2010\/09\/25092010562_thumb.jpg\" border=\"0\" alt=\"25092010562\" width=\"242\" height=\"182\" align=\"right\" \/><\/a> There are various types of social engineering :<\/p>\n<ul>\n<li>Opportunist : attractive individual, available time-wise, got some skills about SE, sometimes first-timers can be classified as \u201copportunists\u201d<\/li>\n<li>Natural confidence : talks the talk, but don\u2019t always walk the walk. they are good communicators, and are comfortable interacting with people. They may lack some expertise\/experience with SE<\/li>\n<li>Professional : Skilled in InfoSec, regimented, knowledgeable. They have more art, use less science<\/li>\n<li>Seasoned Pro (ninja\u2019s) : They have repetition and experience on their side. They know how to handle confrontation and are passionate about SE.\u00a0 Most of them think they know everything.<\/li>\n<li>Master Manipulator : He understands how and why. They have done a lot of testing, done research, and are ready to change techniques to make them more successful (constant evolution).\u00a0 They have a game plan. (Not just A-&gt;B,\u00a0 but have a whole series of plans and ways to get to the goal).\u00a0 They have multiple outs.\u00a0 They are passionate, dedicated and creative. One of the bad things is that they tend to be real cocky bastards \ud83d\ude42<\/li>\n<\/ul>\n<p>How can we utilize the power of our minds, linguistics and obversations to become the master manipulator ?\u00a0 Dale explains what he has been working on over the last months and years to get more proficient in this area, and what we need to focus on in order to get better at this as well.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/25092010563.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 10px 0px 0px; display: inline; border-width: 0px;\" title=\"25092010563\" src=\"\/wp-content\/uploads\/2010\/09\/25092010563_thumb.jpg\" border=\"0\" alt=\"25092010563\" width=\"242\" height=\"182\" align=\"left\" \/><\/a> He starts by explaining that the best tool for the job is your brains !\u00a0 There are 3 important parts of the brain :<\/p>\n<ul>\n<li><strong><em>Limbic system<\/em><\/strong> (animalistic \u2013 fight or flight \u2013 reactive)<\/li>\n<li><strong><em>Subconscious <\/em><\/strong>(power house) : takes in about 11000000 pieces of information a second<\/li>\n<li><strong><em>Conscious<\/em><\/strong> (our reality) : based on what we perceive to be priority information<\/li>\n<\/ul>\n<p>First, of all, in order to become more proficient at SE \/ Head Hacking, you need to be <strong><span style=\"text-decoration: underline;\">committed<\/span><\/strong>. You need to be focused and you need to focus your target on you and what you are telling him.\u00a0 You need to have a planned path and you have to be able to put the target in the best position so he can be easily persuaded.\u00a0 Finally, you need to reach some sort of agreement. You have to make the target accept that you are where you are and that\u2019s it\u2019s not strange or unacceptable that you\u2019re there.\u00a0 Also, it might help to choose the right side ear, because that\u2019s the best way to reach the part of the brain that will help you reach your goal.\u00a0 Finally, you have to stay true to what you say. Putting that together, you\u2019ll have to make the leap. By sending signals to the target, making him believe that you do belong here or where you need to be, it will become easier to reach that goal.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">Because <\/span><\/strong>\u201cEverything happens for a reason\u201d.\u00a0 If you start a sentence with \u201cbecause\u201d, you might already take away possible doubts about why you want to do something.<\/p>\n<p>The <strong><span style=\"text-decoration: underline;\">index finger<\/span><\/strong>. By making certain subtle changes to the way you talk about something, you can influence people to select something in particular, or make a certain choice.<\/p>\n<p><strong><span style=\"text-decoration: underline;\">NLP <\/span><\/strong>: Neuro-Linguistic Programming.\u00a0 Getting familiar with these techniques, you will be able to achieve your goals in a better\/faster way.\u00a0\u00a0 NLP is essentially a study of therapy. It\u2019s not a science. It\u2019s an art, a process, based on thinking about why something works in a certain way.\u00a0 In NLP, rapport is important.\u00a0 We like people who are like us, and they like us.\u00a0 Mimicking each other may be a good signal to indicate that there\u2019s a certain level of rapport happening.\u00a0 That means that you can build up rapport with someone, convincing him that you are trustworthy and that person might start sharing private details about his life with you.<\/p>\n<p>NLP is build around frames.\u00a0 Each individual has a frame, something that surrounds him and describes how that person lives his life.\u00a0\u00a0 By using NLP scripts, you can try to ReFrame, manipulate people to start doing something else.<\/p>\n<p>The question you need to ask yourself first is \u201cWhat would it take to make it happen ?\u201d, so you can define what you need, what needs to be done to get there, and to what extend you will have to manipulate people.<\/p>\n<p>NLP Pattern examples :<\/p>\n<ul>\n<li>Redefinition \u2013 Change the focus and question during the talk.<\/li>\n<li>Agreement \u2013 Agree on the negative, focus to the positive ( = your idea \/ requirement)<\/li>\n<li>Awareness \u2013 Bring attention to something, key words. Emphasize certain words, utilize language to focus on certain key words<\/li>\n<li>Interruption \u2013 create confusion, information overflow, derailment. Use the opportunity to insert your own idea\/goal, don\u2019t wait until the target resumes \u201cnormal operation\u201d. Use that one or 2 seconds to inject your code.<\/li>\n<\/ul>\n<p>When you are trying NLP for the first time, be prepared to get disappointed many times. Be prepared to work hard, but don\u2019t make things overly complex.<\/p>\n<p>Maybe it works to just ask.\u00a0 Just ask for a password. It might work. We all have to answer something.<\/p>\n<p>To take things to another level, you can also try to use some techniques related with hypnosis.\u00a0 Hypnosis is based on neuro-hypnotism, and aims at putting someone into a wakeful state of focused attention.\u00a0 Using the focus and subconscious communication (art of vagueness and assumption), you may be able to close the gap and get the target to do what you want him to do.\u00a0 Dale says that, as he was reading more about hypnosis, he came across the \u201cRapid Induction Technique (Anthony Jacquin wrote a book about it)\u201d, allowing you to play the game in just a matter of seconds.<\/p>\n<p>The main thing is : Keep it simple\u00a0 (language-wise, story-wise, etc).<\/p>\n<p>Try to interrupt normal reasoning and inject your code.\u00a0 Use pattern interrupts, 7+ Open loops (brains can handle that number of stories without an end).\u00a0 Speak in ambiguous terms.\u00a0 Make suggestions. Create a YES set (make the target think that everything you says is true).<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/25092010564.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 10px 0px 0px; display: inline; border-width: 0px;\" title=\"25092010564\" src=\"\/wp-content\/uploads\/2010\/09\/25092010564_thumb.jpg\" border=\"0\" alt=\"25092010564\" width=\"242\" height=\"182\" align=\"left\" \/><\/a> Reinforcement is key. Pacing and leading is important. You can take a direct or indirect approach.\u00a0 Share the experience, send body signals that will emphasize what you say.\u00a0 Either way, the ultimate goals is to make the target to do exactly what you want.<\/p>\n<p>From a protection point of view : Educate, Empower, Test, Communicate, Make it personal, don\u2019t be a target, and be mindful. Don\u2019t stop learning, don\u2019t assume you know everything already.<\/p>\n<p>I\u2019m not a social engineer expert at all, but I have been very intrigued by hypnosis and NLP myself for a long time, so I really looked forward and have enjoyed this talk. It is clear that this art takes a lot of practice, \u201cNo Fear\u201d attitude, and a pair of balls of steel.<\/p>\n<p>If you are interested in this topic, check out http:\/\/www.youtube.com\/user\/headhacking, <a href=\"https:\/\/web.archive.org\/web\/20110207060723\/http:\/\/www.headhacker.net:80\/videos\/\">http:\/\/www.headhacker.net\/videos\/<\/a><\/p>\n<p>Contact Dale : <a href=\"mailto:dale@headhacker.net\">dale@headhacker.net<\/a> \/ <a href=\"https:\/\/twitter.com\/headhacking\">https:\/\/twitter.com\/headhacking<\/a> and <a href=\"https:\/\/twitter.com\/dalepearson\">https:\/\/twitter.com\/dalepearson<\/a><\/p>\n<p>Good job Dale !<\/p>\n<h3>The Hex Factor<\/h3>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/image29.png\"><img loading=\"lazy\" decoding=\"async\" style=\"margin: 0px 10px 0px 0px; display: inline; border-width: 0px;\" title=\"image\" src=\"\/wp-content\/uploads\/2010\/09\/image_thumb29.png\" border=\"0\" alt=\"image\" width=\"242\" height=\"176\" align=\"left\" \/><\/a>Although I had planned most part of my day in advance (and wanted to attend <a href=\"http:\/\/blog.c22.cc\/2010\/09\/25\/brucon-top-5-ways-to-destroy-a-company\/\">more talks<\/a> in the afternoon) I ended up doing something else.\u00a0 I noticed that my friends from <a href=\"http:\/\/www.ascure.com\">Ascure<\/a> were taking \u201cThe Hex Factor\u201d challenge, so I decided to sit down with them and observe how they were hacking their way into various systems and taking other hacking challenges\u2026<\/p>\n<p>For the record, and as I mentioned in yesterday\u2019s post, \u201cThe Hex Factor\u201d is a Capture The Flag game, held during the conference.\u00a0 Because a lot of people, volunteers, worked really really hard building the challenges and hosting the Hex Factor machines, I think their hard work deserve a warm round of applause and a lot of respect.<\/p>\n<p>&lt;applause&gt;<\/p>\n<p>Anyways, I ended up looking at one of the challenges myself (a reverse engineering exercise) and I have to admit\u2026\u00a0 the Hex Factor builders really did an awesome job. (you have an evil wicked mind, <a href=\"https:\/\/blog.didierstevens.com\">Didier<\/a> !)\u00a0 Because \u201cThe Hex Factor\u201d will be organized during some other conferences in the next couple of months (Hack In The Box, SANS London), I\u2019m not going to spoil the fun by disclosing solutions about the challenges\u2026\u00a0 If you have the opportunity to take the challenges\u2026 man\u2026 I can guarantee this : you are going to love it !<\/p>\n<p>By the way \u2013 the Ascure team won the contest this year. Big thumbs up to the team, it was a pleasure watching you guys working together and win the game.\u00a0 (And in case anyone is wondering\u2026 no\u2026 I didn\u2019t do anything to help them)<\/p>\n<p>Another high five goes to <a href=\"https:\/\/twitter.com\/0xtosh\">0xtosh<\/a>. He came in on the fifth place\u2026 on his own. No team, just solo skillz. Respect.<\/p>\n<p>By the time the Hex Factor finished, the BruCON <a href=\"http:\/\/2010.brucon.org\/index.php\/Lightning_Talks\">lightning talks<\/a> were about to start, so I rushed back to the Westvleteren meeting room and watched how MC\u2019s-on-duty Chris John Riley and Dale Pearson turned another episode of the lightning talks into a success.<\/p>\n<p>After the lightning talks ended, <a href=\"http:\/\/tombstone-bbs.co.uk\/\" target=\"_blank\" rel=\"noopener\">WickedClown<\/a> was awarded with the \u201cbest lightning talk\u201d price (about a RDP vulnerability). You can listen to his lightning talk <a href=\"http:\/\/www.tombstone-bbs.co.uk\/brucon\/talk-wv-full.html\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<h3>Presentation slides &amp; other blogs<\/h3>\n<h4>Rootshell (Xavier Mertens) write-up about BruCON<\/h4>\n<p><a title=\"http:\/\/blog.rootshell.be\/2010\/09\/26\/brucon-2010-wrap-up\/\" href=\"http:\/\/blog.rootshell.be\/2010\/09\/26\/brucon-2010-wrap-up\/\">http:\/\/blog.rootshell.be\/2010\/09\/26\/brucon-2010-wrap-up\/<\/a><\/p>\n<h4>All presentations can be found here :<\/h4>\n<p><a href=\"http:\/\/2010.brucon.org\/index.php\/Presentations\">http:\/\/2010.brucon.org\/index.php\/Presentations<\/a><\/p>\n<h3>BruCON 2010 is over \u2013 looking forward to BruCON 2011<\/h3>\n<p>Before finishing this post, I wanted to share some nice pictures, featuring Chris John Riley doing his lightning talk about <a href=\"http:\/\/blog.c22.cc\/2010\/09\/25\/ua-tester-1-0-released-now-with-38-more-pimp\/\">UA-Tester<\/a>, dressed as an evil hax0r pimp\u2026\u00a0 (slides <a href=\"http:\/\/c22blog.files.wordpress.com\/2009\/01\/uatester_brucon_lt.pdf\" target=\"_blank\" rel=\"noopener\">here<\/a>)<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/09\/25092010565.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border-width: 0px;\" title=\"25092010565\" src=\"\/wp-content\/uploads\/2010\/09\/25092010565_thumb.jpg\" border=\"0\" alt=\"25092010565\" width=\"166\" height=\"125\" \/><\/a> <a href=\"\/wp-content\/uploads\/2010\/09\/25092010566.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border-width: 0px;\" title=\"25092010566\" src=\"\/wp-content\/uploads\/2010\/09\/25092010566_thumb.jpg\" border=\"0\" alt=\"25092010566\" width=\"166\" height=\"125\" \/><\/a> <a href=\"\/wp-content\/uploads\/2010\/09\/25092010567.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border-width: 0px;\" title=\"25092010567\" src=\"\/wp-content\/uploads\/2010\/09\/25092010567_thumb.jpg\" border=\"0\" alt=\"25092010567\" width=\"168\" height=\"126\" \/><\/a> <a href=\"\/wp-content\/uploads\/2010\/09\/5023593322_5d3cb5041d_o.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"display: inline; border-width: 0px;\" title=\"5023593322_5d3cb5041d_o\" src=\"\/wp-content\/uploads\/2010\/09\/5023593322_5d3cb5041d_o_thumb.jpg\" border=\"0\" alt=\"5023593322_5d3cb5041d_o\" width=\"94\" height=\"126\" \/><\/a><\/p>\n<p>Next, I would like to thank all of the volunteers that made BruCON a success. Although this was just the second edition, and driven by volunteers and supported by a few sponsors, everything was handled and managed in a very professional manner.\u00a0 But what is even more important is the fact that I really enjoyed the atmosphere.\u00a0 You could smell passion, talent, skills and mutual respect in the air\u2026\u00a0 Do I need to say more ?<\/p>\n<p>Finally, I would like to say hi to the nice people I met at BruCON\u2026 looking forward to meeting you again some time soon folks !<\/p>\n<p>%%EOF<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[WORKSHOP] \u2013 Malicious PDF Analysis I started the second day at BruCON with attending the workshop about analyzing malicious pdf files. Didier Stevens spared no expense and prepared an impressive lab, offering all sorts of pdf exercise files.\u00a0 Trying to squeeze in weeks and months of research into a 2 hour workshop, he managed to &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"BruCON 2010 : Day 0x2\"<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[2250,127],"tags":[2477,2310],"class_list":["post-5065","post","type-post","status-publish","format-standard","hentry","category-cons-seminars","category-security","tag-pdf","tag-hacking"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>BruCON 2010 : Day 0x2 - Corelan | Exploit Development &amp; Vulnerability Research<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"BruCON 2010 : Day 0x2 - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"[WORKSHOP] \u2013 Malicious PDF Analysis I started the second day at BruCON with attending the workshop about analyzing malicious pdf files. Didier Stevens spared no expense and prepared an impressive lab, offering all sorts of pdf exercise files.\u00a0 Trying to squeeze in weeks and months of research into a 2 hour workshop, he managed to &hellip; Continue reading &quot;BruCON 2010 : Day 0x2&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/\" \/>\n<meta property=\"og:site_name\" content=\"Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/corelanconsulting\" \/>\n<meta property=\"article:published_time\" content=\"2010-09-25T08:24:12+00:00\" \/>\n<meta name=\"author\" content=\"corelanc0d3r\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@corelanc0d3r\" \/>\n<meta name=\"twitter:site\" content=\"@corelanc0d3r\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/09\\\/25\\\/brucon-2010-day-0x2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/09\\\/25\\\/brucon-2010-day-0x2\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"BruCON 2010 : Day 0x2\",\"datePublished\":\"2010-09-25T08:24:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/09\\\/25\\\/brucon-2010-day-0x2\\\/\"},\"wordCount\":3027,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"keywords\":[\"pdf\",\"hacking\"],\"articleSection\":[\"Cons and Seminars\",\"Security\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/09\\\/25\\\/brucon-2010-day-0x2\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/09\\\/25\\\/brucon-2010-day-0x2\\\/\",\"name\":\"BruCON 2010 : Day 0x2 - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"datePublished\":\"2010-09-25T08:24:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/09\\\/25\\\/brucon-2010-day-0x2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/09\\\/25\\\/brucon-2010-day-0x2\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/09\\\/25\\\/brucon-2010-day-0x2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"BruCON 2010 : Day 0x2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"name\":\"Corelan CyberSecurity Research\",\"description\":\"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.corelan.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\",\"name\":\"Corelan CyberSecurity Research\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"width\":200,\"height\":200,\"caption\":\"Corelan CyberSecurity Research\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/corelanconsulting\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\",\"https:\\\/\\\/x.com\\\/corelanconsulting\",\"https:\\\/\\\/instagram.com\\\/corelanconsult\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\",\"name\":\"corelanc0d3r\",\"pronouns\":\"he\\\/him\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"caption\":\"corelanc0d3r\"},\"description\":\"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.\",\"sameAs\":[\"https:\\\/\\\/www.corelan-training.com\",\"https:\\\/\\\/instagram.com\\\/corelanc0d3r\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petervaneeckhoutte\\\/\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\"],\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/author\\\/admin0\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"BruCON 2010 : Day 0x2 - Corelan | Exploit Development &amp; Vulnerability Research","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/","og_locale":"en_US","og_type":"article","og_title":"BruCON 2010 : Day 0x2 - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"[WORKSHOP] \u2013 Malicious PDF Analysis I started the second day at BruCON with attending the workshop about analyzing malicious pdf files. Didier Stevens spared no expense and prepared an impressive lab, offering all sorts of pdf exercise files.\u00a0 Trying to squeeze in weeks and months of research into a 2 hour workshop, he managed to &hellip; Continue reading \"BruCON 2010 : Day 0x2\"","og_url":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2010-09-25T08:24:12+00:00","author":"corelanc0d3r","twitter_card":"summary_large_image","twitter_creator":"@corelanc0d3r","twitter_site":"@corelanc0d3r","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"BruCON 2010 : Day 0x2","datePublished":"2010-09-25T08:24:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/"},"wordCount":3027,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"keywords":["pdf","hacking"],"articleSection":["Cons and Seminars","Security"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/","url":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/","name":"BruCON 2010 : Day 0x2 - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"datePublished":"2010-09-25T08:24:12+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2010\/09\/25\/brucon-2010-day-0x2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"BruCON 2010 : Day 0x2"}]},{"@type":"WebSite","@id":"https:\/\/www.corelan.be\/#website","url":"https:\/\/www.corelan.be\/","name":"Corelan CyberSecurity Research","description":"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.","publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.corelan.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.corelan.be\/#organization","name":"Corelan CyberSecurity Research","url":"https:\/\/www.corelan.be\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","width":200,"height":200,"caption":"Corelan CyberSecurity Research"},"image":{"@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/corelanconsulting","https:\/\/x.com\/corelanc0d3r","https:\/\/x.com\/corelanconsulting","https:\/\/instagram.com\/corelanconsult"]},{"@type":"Person","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f","name":"corelanc0d3r","pronouns":"he\/him","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","caption":"corelanc0d3r"},"description":"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.","sameAs":["https:\/\/www.corelan-training.com","https:\/\/instagram.com\/corelanc0d3r","https:\/\/www.linkedin.com\/in\/petervaneeckhoutte\/","https:\/\/x.com\/corelanc0d3r"],"url":"https:\/\/www.corelan.be\/index.php\/author\/admin0\/"}]}},"views":2870,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/5065","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/comments?post=5065"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/5065\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=5065"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=5065"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=5065"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}