comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Perl] DH Twitter Locator 0.6

  • 2 Respuestas
  • 3286 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« en: Octubre 19, 2016, 10:27:22 am »
Un script en Perl para scanear los tweets de cualquier usuario , basado en la idea original de "tinfoleak by Vicente Aguilera Diaz"

Funciones :

  • Extrae informacion del perfil
  • Scanea los tweets en busca de apps y locations
  • Permite cargar las localizaciones en google maps
  • Guarda todo en logs


El codigo :

Código: Perl
  1. # !usr/bin/perl
  2. # DH Twitter Locator 0.6
  3. # (C) Doddy Hackman 2016
  4. # Credits :
  5. # Based in idea original of : tinfoleak by Vicente Aguilera Diaz
  6.  
  7. use LWP::UserAgent;
  8. use IO::Socket::SSL;
  9. use HTTP::Request::Common;
  10. use JSON;
  11. use Data::Dumper;
  12. use MIME::Base64;
  13. use Date::Parse;
  14. use DateTime;
  15. use Getopt::Long;
  16. use Color::Output;
  17. Color::Output::Init;
  18.  
  19. my $consumer_key = "IQKbtAYlXLripLGPWd0HUA";
  20. my $consumer_secret = "GgDYlkSvaPxGxC4X8liwpUoqKwwr3lCADbz8A7ADU";
  21.  
  22. my $bearer_token = "$consumer_key:$consumer_secret";
  23. my $bearer_token_64 = encode_base64($bearer_token);
  24.  
  25. my $nave = LWP::UserAgent->new(ssl_opts => {verify_hostname => 0,SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE});
  26. $nave->agent(
  27. "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0"
  28. );
  29. $nave->timeout(5);
  30.  
  31. GetOptions(
  32.         "profile"   => \$profile,
  33.         "apps"   => \$apps,
  34.     "locations"  => \$locations,
  35.     "username=s"   => \$username,
  36.     "count=i"   => \$count,
  37.     "savefile=s"  => \$savefile,
  38. );
  39.  
  40. head();
  41.  
  42. if ($profile) {
  43.         if($profile && $username) {
  44.                 search_profile($username);
  45.         } else {
  46.                 sintax();
  47.         }      
  48. }
  49. if ($apps) {
  50.         if($apps && $username && $count) {
  51.                 search_apps($username,$count);
  52.         } else {
  53.                 sintax();
  54.         }
  55. }
  56. if ($locations) {
  57.         if($locations && $username && $count) {
  58.                 search_locations($username,$count);
  59.         } else {
  60.                 sintax();
  61.         }
  62. }
  63. if(!$profile and !$apps and !$locations) {
  64.         sintax();
  65. } else {
  66.         if($savefile) {
  67.                 printear_logo("\n[+] Logs $savefile saved\n");
  68.         }
  69. }
  70.  
  71. copyright();
  72.  
  73. # Functions
  74.  
  75. sub search_profile {
  76.         my ($username) = @_;
  77.        
  78.         printear_titulo("\n[+] Loading Profile in Username : ");
  79.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $username." ...\n\n";
  80.        
  81.         #my $code = toma("http://localhost/twitter/getuser.php");
  82.         my $code = get_code("https://api.twitter.com/1.1/users/show.json?screen_name=".$username);
  83.  
  84.         my $resultado = JSON->new->decode($code);
  85.  
  86.         my $screen_name = $resultado->{"screen_name"};
  87.         if($screen_name eq "") {
  88.                 $screen_name = "Not Found";
  89.         }
  90.         my $name = $resultado->{"name"};
  91.         if($name eq "") {
  92.                 $name = "Not Found";
  93.         }
  94.         my $id = $resultado->{"id_str"};
  95.         if($id eq "") {
  96.                 $id = "Not Found";
  97.         }
  98.         my $created = parse_date($resultado->{"created_at"});
  99.         if($created eq "") {
  100.                 $created = "Not Found";
  101.         }
  102.         my $followers = $resultado->{"followers_count"};
  103.         if($followers eq "") {
  104.                 $followers = "Not Found";
  105.         }
  106.         my $tweets_count = $resultado->{"statuses_count"};
  107.         if($tweets_count eq "") {
  108.                 $tweets_count = "Not Found";
  109.         }
  110.         my $location = $resultado->{"location"};
  111.         if($location eq "") {
  112.                 $location = "Not Found";
  113.         }
  114.         my $description = $resultado->{"description"};
  115.         if($description eq "") {
  116.                 $description = "Not Found";
  117.         }
  118.         my $url = $resultado->{"url"};
  119.         if($url eq "") {
  120.                 $url = "Not Found";
  121.         }
  122.         my $profile_image = $resultado->{"profile_image_url"};
  123.         if($profile_image eq "") {
  124.                 $profile_image = "Not Found";
  125.         }
  126.        
  127.         printear("Screen Name : ");
  128.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $screen_name."\n";
  129.         printear("Username : ");
  130.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $name."\n";
  131.         printear("ID : ");
  132.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $id."\n";
  133.         printear("Created at : ");
  134.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $created."\n";
  135.         printear("Followers : ");
  136.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $followers."\n";
  137.         printear("Tweets count : ");
  138.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $tweets_count."\n";
  139.         printear("Location : ");
  140.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $location."\n";
  141.         printear("Description : ");
  142.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $description."\n";
  143.         printear("URL : ");
  144.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $url."\n";
  145.         printear("Profile Image : ");
  146.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $profile_image."\n";
  147.        
  148.         printear_titulo("\n[+] Profile Loaded\n");
  149.        
  150.         if($savefile) {
  151.                 savefile($savefile,"\n[+] Loading Profile in Username : $username\n");
  152.                 savefile($savefile,"Screen Name : $screen_name");
  153.                 savefile($savefile,"Username : $name");
  154.                 savefile($savefile,"ID : $id");
  155.                 savefile($savefile,"Created at : $created");
  156.                 savefile($savefile,"Followers : $followers");
  157.                 savefile($savefile,"Tweets count : $tweets_count");
  158.                 savefile($savefile,"Location : $location");
  159.                 savefile($savefile,"Description : $description");
  160.                 savefile($savefile,"URL : $url");
  161.                 savefile($savefile,"Profile Image : $profile_image");
  162.                 savefile($savefile,"\n[+] Profile Loaded");
  163.         }
  164.  
  165.         #for my $number(1..5) {
  166.         #       sleep(1);
  167.         #       printear_logo("number : ");
  168.         #       printear_titulo($number."\r");
  169.         #}
  170.         #printear_titulo("Number : Finished\n");
  171. }
  172.  
  173. sub search_apps {
  174.         my($username,$count) = @_;
  175.        
  176.         printear_titulo("\n[+] Searching Apps in Username : ");
  177.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $username." ...\n\n";
  178.        
  179.         #my $code = toma("http://localhost/twitter/timeline.php");
  180.         my $code = get_code("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$username."&include_rts=True&count=".$count);
  181.        
  182.         my $resultado = JSON->new->decode($code);
  183.        
  184.         my @resultado = @$resultado;
  185.        
  186.         my $i = 0;
  187.  
  188.         if(No tienes permisos para ver links. Registrate o Entra con tu cuenta(@resultado) eq "0") {
  189.                 printear_rojo("[-] Tweets not found\n");
  190.         } else {
  191.                 printear("[+] Tweets found : ");
  192.                 No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta(@resultado)."\n\n\n";
  193.                 printear("  Tweet\t\t Date\t\t   Apps\n");
  194.                 No tienes permisos para ver links. Registrate o Entra con tu cuenta "  -----------------------------------------------------\n\n";
  195.                
  196.                 if($savefile) {
  197.                         savefile($savefile,"\n[+] Searching Apps in Username : $username\n");
  198.                         savefile($savefile,"[+] Tweets found : ".No tienes permisos para ver links. Registrate o Entra con tu cuenta(@resultado)."\n");
  199.                         savefile($savefile,"  Tweet\t\t Date\t\t   Apps\n");
  200.                         savefile($savefile,"  -----------------------------------------------------\n");
  201.                 }
  202.  
  203.                 for my $result(@resultado) {
  204.                         $i++;
  205.                         my $source_split = $result->{"source"};
  206.                         if($source_split=~/>(.*)<\/a>/) {
  207.                                 my $source = $1;
  208.                                 my $datetime = parse_date($result->{"created_at"});
  209.                                 if($source ne "") {
  210.                                         No tienes permisos para ver links. Registrate o Entra con tu cuenta("   %-5s %-22s %-15s\n", $i,$datetime,$source);
  211.                                         if($savefile) {
  212.                                                 savefile($savefile,"   $i\t$datetime\t$source");
  213.                                         }
  214.                                 }
  215.                         }
  216.                 }
  217.                
  218.                 printear_titulo("\n\n[+] Apps Loaded\n");
  219.                
  220.                 if($savefile) {
  221.                         savefile($savefile,"\n[+] Apps Loaded\n");
  222.                 }
  223.         }
  224.        
  225. }
  226.  
  227. sub search_locations {
  228.         my($username,$count) = @_;
  229.        
  230.         printear_titulo("\n[+] Searching Locations in Username : ");
  231.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $username." ...\n\n";
  232.        
  233.         #my $code = toma("http://localhost/twitter/timeline.php");
  234.         my $code = get_code("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$username."&include_rts=True&count=".$count);
  235.        
  236.         my $resultado = JSON->new->decode($code);
  237.        
  238.         my @resultado = @$resultado;
  239.        
  240.         my $i = 0;
  241.  
  242.         if(No tienes permisos para ver links. Registrate o Entra con tu cuenta(@resultado) eq "0") {
  243.                 printear_rojo("[-] Tweets not found\n");
  244.         } else {
  245.                 printear("[+] Tweets found : ");
  246.                 No tienes permisos para ver links. Registrate o Entra con tu cuenta No tienes permisos para ver links. Registrate o Entra con tu cuenta(@resultado)."\n\n\n";
  247.  
  248.                 printear("  Tweet\t\t Date\t\t     Locations\n");
  249.                 No tienes permisos para ver links. Registrate o Entra con tu cuenta "  -----------------------------------------------------\n\n";
  250.                
  251.                 if($savefile) {
  252.                         savefile($savefile,"\n[+] Searching Locations in Username : $username\n");
  253.                         savefile($savefile,"[+] Tweets found : ".No tienes permisos para ver links. Registrate o Entra con tu cuenta(@resultado)."\n");
  254.                         savefile($savefile,"  Tweet\t\t Date\t\t   Locations\n");
  255.                         savefile($savefile,"  -----------------------------------------------------\n");
  256.                 }
  257.  
  258.                 for my $result(@resultado) {
  259.                         $i++;
  260.                         my $place = $result->{"place"}{"country"};
  261.                         my $coordinates1 = $result->{"geo"}{"coordinates"}[0];
  262.                         my $coordinates2 = $result->{"geo"}{"coordinates"}[1];
  263.                         my $datetime = parse_date($result->{"created_at"});
  264.                         if($place ne "") {
  265.                                 my $data = "";
  266.                                 if($coordinates1 ne "" && $coordinates2 ne "") {
  267.                                         $data = $place." [".$coordinates1.",".$coordinates2."]";
  268.                                 } else {
  269.                                         $data = $place;
  270.                                 }
  271.                                 No tienes permisos para ver links. Registrate o Entra con tu cuenta("   %-5s %-22s %-15s\n", $i,$datetime,$data);
  272.                                 if($savefile) {
  273.                                         savefile($savefile,"   $i\t$datetime\t$data");
  274.                                 }
  275.                         }
  276.                 }
  277.                 printear_titulo("\n\n[+] Locations Loaded\n");
  278.                 if($savefile) {
  279.                         savefile($savefile,"\n[+] Locations Loaded\n");
  280.                 }
  281.         }
  282.        
  283. }
  284.  
  285. # More Functions
  286.  
  287. sub get_token {
  288.         my $code = $nave->request(POST(
  289.                 "https://api.twitter.com/oauth2/token",
  290.                 "Content-Type" => "application/x-www-form-urlencoded;charset=UTF-8",
  291.                 "Authorization" => "Basic $bearer_token_64",
  292.                 Content => { "grant_type" => "client_credentials" }
  293.         ))->content;
  294.         my $resultado = JSON->new->decode($code);
  295.         my $token = $resultado->{"access_token"};
  296.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $token;
  297. }
  298.  
  299. sub get_code {
  300.         my $url = No tienes permisos para ver links. Registrate o Entra con tu cuenta;
  301.         my $code = $nave->request(GET($url,"Authorization" => "Bearer " . get_token()))->content;
  302.         No tienes permisos para ver links. Registrate o Entra con tu cuenta $code;
  303. }
  304.  
  305. sub parse_date {
  306.     my $date = No tienes permisos para ver links. Registrate o Entra con tu cuenta;        
  307.     $time = str2time($date);    
  308.     my $datetime = DateTime->from_epoch(epoch => $time);
  309.     No tienes permisos para ver links. Registrate o Entra con tu cuenta $datetime->mdy("/")." ".$datetime->hms;
  310. }
  311.  
  312. sub toma {
  313.     No tienes permisos para ver links. Registrate o Entra con tu cuenta $nave->get( $_[0] )->content;
  314. }
  315.  
  316. sub savefile {
  317.         my ($filename,$text) = @_;
  318.         No tienes permisos para ver links. Registrate o Entra con tu cuenta( SAVE, ">>" . $filename );
  319.         No tienes permisos para ver links. Registrate o Entra con tu cuenta SAVE $text . "\n";
  320.         No tienes permisos para ver links. Registrate o Entra con tu cuenta SAVE;
  321. }
  322.  
  323. sub printear {
  324.     cprint( "\x036" . $_[0] . "\x030" );
  325. }
  326.  
  327. sub printear_logo {
  328.     cprint( "\x037" . $_[0] . "\x030" );
  329. }
  330.  
  331. sub printear_titulo {
  332.     cprint( "\x0310" . $_[0] . "\x030" );
  333. }
  334.  
  335. sub printear_rojo {
  336.     cprint( "\x034" . $_[0] . "\x030" );
  337. }
  338.  
  339. sub printear_azul {
  340.     cprint( "\x033" . $_[0] . "\x030" );
  341. }
  342.  
  343. sub sintax {
  344.     printear("\n[+] Sintax : ");
  345.     No tienes permisos para ver links. Registrate o Entra con tu cuenta "perl $0 <option> <value>\n";
  346.     printear("\n[+] Options : \n\n");
  347.     No tienes permisos para ver links. Registrate o Entra con tu cuenta "-profile : Show profile information\n";
  348.     No tienes permisos para ver links. Registrate o Entra con tu cuenta "-apps : List apps in tweets\n";
  349.     No tienes permisos para ver links. Registrate o Entra con tu cuenta "-locations : List locations in tweets\n";
  350.     No tienes permisos para ver links. Registrate o Entra con tu cuenta "-username <username> : Set username to find\n";
  351.         No tienes permisos para ver links. Registrate o Entra con tu cuenta "-count <count> : Set count to find\n";
  352.         No tienes permisos para ver links. Registrate o Entra con tu cuenta "-savefile <filename> : Save results\n";
  353.     printear("\n[+] Example : ");
  354.     No tienes permisos para ver links. Registrate o Entra con tu cuenta "perl dh_twitter_locator.pl -profile -apps -locations -username test -count 800 -savefile results.txt\n";
  355.     copyright();
  356. }
  357.  
  358. sub head {
  359.     printear_logo("\n-- == DH Twitter Locator 0.6 == --\n\n");
  360. }
  361.  
  362. sub copyright {
  363.     printear_logo("\n\n-- == (C) Doddy Hackman 2016 == --\n\n");
  364.     No tienes permisos para ver links. Registrate o Entra con tu cuenta(1);
  365. }
  366.  
  367. #The End ?
  368.  

Un video con ejemplos de uso :



Si quieren bajar el programa lo pueden hacer de aca :

No tienes permisos para ver links. Registrate o Entra con tu cuenta.
No tienes permisos para ver links. Registrate o Entra con tu cuenta.

Eso seria todo.

Desconectado HATI

  • *
  • Moderador
  • Mensajes: 422
  • Actividad:
    0%
  • Reputación 11
    • Ver Perfil
« Respuesta #1 en: Diciembre 13, 2016, 06:09:51 pm »
Increíble @No tienes permisos para ver links. Registrate o Entra con tu cuenta, en cuanto tenga un momento la probaré.


Jugar o perder

Desconectado BigBear

  • *
  • Underc0der
  • Mensajes: 543
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
« Respuesta #2 en: Diciembre 18, 2016, 08:41:19 pm »
Gracias por comentar , no te puedo responder el privado porque el foro me da un error , el error que me comentaste por MP debe ser por las dependencias , usa el comando "cpan install <modulo>" para instalar los modulos faltantes.

 

¿Te gustó el post? COMPARTILO!



Tutorial perl desde cero By: Black Poision & Painboy

Iniciado por ProcessKill

Respuestas: 2
Vistas: 3229
Último mensaje Septiembre 02, 2011, 09:43:36 pm
por blozzter
[Perl] Verificando si es root para correr un script

Iniciado por c1st

Respuestas: 1
Vistas: 1511
Último mensaje Octubre 07, 2012, 06:01:39 pm
por ANTRAX
[Uniscan] Scanner de vulnerabilidades WEB hecho en Perl

Iniciado por tar3kw0rm3d

Respuestas: 0
Vistas: 1662
Último mensaje Junio 02, 2013, 08:01:28 pm
por tar3kw0rm3d
[Perl] Counter Strike 1.6 Servers List

Iniciado por BigBear

Respuestas: 0
Vistas: 1168
Último mensaje Noviembre 12, 2012, 07:32:11 pm
por BigBear
[Perl] Iframe DDos Attack Tool

Iniciado por BigBear

Respuestas: 0
Vistas: 1310
Último mensaje Julio 03, 2011, 10:06:45 pm
por BigBear