• XSS.stack #1 – первый литературный журнал от юзеров форума

root cheker

overxor

floppy-диск
Пользователь
Регистрация
28.02.2010
Сообщения
3
Реакции
0
Код:
import paramiko
import sys, os 
import socket
import re

# - - - - - - - - - - - - - - - - #
#          SSH Checker          #
# - - - - - - - - - - - - - - - - #

#log_file    = "log.txt"
read_access = "access.txt"
sucess = 0

ssh = paramiko.SSHClient()


#    Test on connect to server 
def is_work_sshd(host, dPort=22):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
    sock.settimeout(20) 
    try:
        sock.connect((host, dPort))
    except:
    #    print "Connect to ssh server timeout"
        return 1

#    print "Connect Ok"
    sock.close()
    return 0

''' Test host on avalible 
def pinger(host):
    result_ping = os.popen("ping -c 3 %s" % host)
    if result_ping.read().search("bytes"):
        print "find bytes"
        return 1
    return 0
'''
    
def check_server(host, user, password, port=22):
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # test on connect to ssh
    if is_work_sshd(host,port): return 2
    
    try:
        ssh.connect(host, username=user, password=password, port=port)
        ssh.close()             # Close ssh session
    except:
        #print 'Error'
        return 1
    return 0

if not os.path.exists(os.getcwd() + '/' + read_access):
    print "File not found!"
    sys.exit()

fd = open(read_access, "r")
for i in fd.readlines():
    if  i[-1:] == '\n':
        i = i[:-1]
 
    port = 22

    res = i.split(':')
    if(len(res) > 2):
        user,host,password = res[:3]
    if(len(res) > 3):
        port = int(res[3])

    #print user, host, password, port
    ret = check_server(host, user, password, port)
    if not ret:
        print "Connect to %s [success]" % host
    elif ret == 1:
        print "Connect to %s [error]" % host
    else: 
        print "Connect to %s [timeout]" % host
Данный скрипт будет проверять серверы на доступ через ssh.
формат файла access.txt, откуда будут браться данные для проверки.
user:host:password:[port]
параметр port опционально, по дефолту 22

для работы скрипта необходим модуль paramiko
установка во freebsd
cd /usr/ports/security/py-paramiko && make install clean
или из сорцов
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх