freelsd
23.10.2009, 00:54
Привет. Я тут ебанулся на отличненько и решил накодить сканер расшаренных ресурсов с проверкой на уникальность(парсятся первые 50кб).
Сканер состоит из 3-х частей.
Первая сканирует на открытые 445 и кидает все в scan.txt
nmap 192.168.0-7.0-255 -p 445 | grep -v PORT | grep '.' | grep -v Nmap | sed '$!N;s/\n/ /' | grep open | awk '{print ($4)}'| sed 's/.$//' | grep 192 > scan.txt
Вторая шарится по всем машинам в scan.txt и записывает текстовик для каждого смонтированного ресурса
#!/bin/bash
for server in $(<scan.txt); do
echo $server -------server_NAMe;
smbclient -L $server -N | grep Disk | grep -v \\$ | sed 's/^[\t]*//;s/Disk//;s/^[ \t]*//;s/[ \t]*$//;' | replace ' ' '%20' > join.txt;
for directory in $(<join.txt); do
directory=`echo $directory | replace '%20' ' '`;
# echo server-$server; echo directory-$directory;
mkdir "$directory";
mount.cifs //"$server"/"$directory"/ "$directory"/ -o iocharset=utf8,pass='';
for i in $( find "$directory" -type f | replace ' ' '%20'); do
s=`echo $i | replace '%20' ' '`;
vivod=$s' '`dd if="$s" bs=1000k count=1 | sha1sum | sed 's/..$//'`' '`ls -la "$s" | awk '{print $5}'`' '`ls -la "$s" | awk '{print $6}'`;
echo $vivod >> $server.txt
#echo '\n'
done
umount "$directory";
rmdir "$directory";
done
#rm join.txt;
rmdir $server;
done
Вот формат вывода:
Полный путь с именем файла, чексумма первых 50кБ файла, дата.
music/other/Пурген/2005 - Реинкарнация/10 - Гонки - Моя Жизнь.mp3 c15561c6fd2913a1705f05b6ab17f17017ed14f9 7387473 2007-04-24
music/other/Пурген/2005 - Реинкарнация/11 - Дождь (Пессимизм).mp3 51fdc68be127274261ea370aa49ed058d916e829 9134080 2007-04-24
Третья, загоняет это в базу, отрезает дубли и прочее(написана на питоне, хз где валяется)
Можно доделать, чтобы подбирала пароли, возможно даже многопоточность сделать. Вдруг кому-дь надо =)
Сканер состоит из 3-х частей.
Первая сканирует на открытые 445 и кидает все в scan.txt
nmap 192.168.0-7.0-255 -p 445 | grep -v PORT | grep '.' | grep -v Nmap | sed '$!N;s/\n/ /' | grep open | awk '{print ($4)}'| sed 's/.$//' | grep 192 > scan.txt
Вторая шарится по всем машинам в scan.txt и записывает текстовик для каждого смонтированного ресурса
#!/bin/bash
for server in $(<scan.txt); do
echo $server -------server_NAMe;
smbclient -L $server -N | grep Disk | grep -v \\$ | sed 's/^[\t]*//;s/Disk//;s/^[ \t]*//;s/[ \t]*$//;' | replace ' ' '%20' > join.txt;
for directory in $(<join.txt); do
directory=`echo $directory | replace '%20' ' '`;
# echo server-$server; echo directory-$directory;
mkdir "$directory";
mount.cifs //"$server"/"$directory"/ "$directory"/ -o iocharset=utf8,pass='';
for i in $( find "$directory" -type f | replace ' ' '%20'); do
s=`echo $i | replace '%20' ' '`;
vivod=$s' '`dd if="$s" bs=1000k count=1 | sha1sum | sed 's/..$//'`' '`ls -la "$s" | awk '{print $5}'`' '`ls -la "$s" | awk '{print $6}'`;
echo $vivod >> $server.txt
#echo '\n'
done
umount "$directory";
rmdir "$directory";
done
#rm join.txt;
rmdir $server;
done
Вот формат вывода:
Полный путь с именем файла, чексумма первых 50кБ файла, дата.
music/other/Пурген/2005 - Реинкарнация/10 - Гонки - Моя Жизнь.mp3 c15561c6fd2913a1705f05b6ab17f17017ed14f9 7387473 2007-04-24
music/other/Пурген/2005 - Реинкарнация/11 - Дождь (Пессимизм).mp3 51fdc68be127274261ea370aa49ed058d916e829 9134080 2007-04-24
Третья, загоняет это в базу, отрезает дубли и прочее(написана на питоне, хз где валяется)
Можно доделать, чтобы подбирала пароли, возможно даже многопоточность сделать. Вдруг кому-дь надо =)