Тема: Помогите
Показать сообщение отдельно

  #4  
Старый 04.12.2007, 12:40
Ar3s
Участник форума
Регистрация: 04.05.2005
Сообщений: 109
Провел на форуме:
304075

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

Код:
Недавно одному человеку написал такой скрипт. Необходимо было из /etc/passwd выбрать только валидные логины, у которых существует нормальный рабочий шелл, домашний каталог и еще несколько необходимых параметров. Из всех этих логинов нужно составить пару login:login, для простейшего брута (который как ни странно частенько срабатывает). Все данные записываются в файл, и скармливаются тому же Джону. Скрипт очень простенький, но, как оказалось, очень полезный, поэтому выкладываю его здесь.
CODE 

#!/usr/bin/perl

unless (@ARGV == 2) {

       print "\nUsage: $0 <file with UNIX logins, such as /etc/passwd> <output file>\n
       Example: $0 /etc/passwd brut.txt\n\n";
       exit 0;

}

$pass = $ARGV[0];
$brut = $ARGV[1];

$pass =~ s/[^\/a-z0-9A-Z\-_]//g;

open PASS, "<$pass" or die "Не могу открыть $pass: $!";
open F, ">$brut" or die "Не могу открыть $brut: $!";

while ($line = <PASS>) {

       @new = split(":", $line);

       $name = $new[0];
       $dir = $new[5];
       $shell = $new[6];

       next if $name =~ /\$$/ or $line =~ /^#/;

       print F "$name:$name\n" if $shell =~ /sh$/ and -d $dir;

}

close PASS;
close F
К сожалению копирайты утеряны