Reborn

And from the ashes the Phoenix rose reborn
  • Начало
  • About

BTV hacked

Владимир | 12/06/2009

Е здрасти, което си е новина си е новина. сайта на БТВ беше хакнат.
Е не точно хакнат ами deface -нат (което си е почти същото). Нямам представа колко време е бил така но около 2 мин след като го видях вече беше свален. Т.е някой бърз админ беше убил webserver -а. Направо ме е срам че не погледнах хедърите на кво върви.

Доказателство: btv-hacked
Предупреждение: Снимката е големичка

Update: Сайта им е все още долу. Беше си deface -нат като хората. Нямаше нищо трито от секциите, макар че 100% е можело …

Коментари
1 Коментар »
Категории
Разни
Tags
btv, deface, hacked, Update, webserver
RSS коментари RSS коментари
Trackback Trackback

A dead simple webserver in bash

Владимир | 12/06/2009

Тук ще представя една относително елементарна идея за мизерен web сървър. Предупреждавам няма никаква функционалност и доста ограничени възможности.

Защо
Ами по ред причини. Може да искате да имате много елементарни статистики, да речем натоварване на машината. Може да искате да паркирате някаква много елементарна страничка. Не искате да пускате пълнофункционален сървър и може би още тон причини.

Предпоставки
Ще предположим следното:

  • Този web сървър ще е статичен
  • Ще сервира една единствена страница/файл независимо какво иска клиента
  • Ще работи на порт 8080

Теория на операцията

  • Трябва ни нещо което да посрещне входящата заявка – в случая ще ползваме netcat който популярно е наричан “TCP/IP swiss army knife” заедно с един малък wrapper script.
  • Трябва по някакъв начин да разберем че е дошла заявка – в случая това изобщо не ни интересува. В момента в който дойде трафик на нашия порт значи някой праща заявка, като свърши трафика значи заявката е свършила и ще си сервираме нашият отговор.
  • Трябва да конструираме правилен отговор за да не объркаме клиента който ни пита за нещо.
  • След това си вмъкваме нашето съобщение/файлче.
  • И накрая разбира се терминираме сесията.

Реализация
Wrapper script-а който ще напишем за netcatима една единствена цел. Да стартира netcat след като той излезе, като слага известно забавяне. Забавянето е необходимо от гледна точка на предпазване от DoS атака. Не е ефективно но е елементарно. А и все пак се очаква че това нещо няма да работи на production машина.

/var/www/bashserver/netcat-server.sh

#!/bin/bash
#
# Simple wrapper for keeping nc alive as it exits after successfull request
# at least on debian it acts this way.
# Author: vvitkov
# ver: 0.1
# date: 18.07.2007
# licence: CC BY-SA 3.0

NC=$(which nc)
while [ ] ; do
$NC -l -p  8080 -e /var/www/bashserver/webserver.sh
sleep 1
done

Идеята на цялото това нещо е да се върти безкраен цикъл в който се пуска nc с определени параметри, чака се да излезе, изчаква се две секунди, и след това цялата въртележка на нова сметка.
Параметрите с които се пуска nc са както следва:

  • -l – локален режим. Тоест nc ще работи като сървър.
  • -p – порта на който ще слуша.
  • -е – при връзка изпълни този скрипт и върни каквото върне той.

С това първата ни задачка по посрещането на трафика е изпълнена.

/var/www/bashserver/webserver.sh

#!/bin/bash
#
# Simple bash webserver. Nothing fancy
# Author: vvitkov
# ver: 0.1
# date: 18.07.2007
# licence: CC NC-BY-SA 3.0

# Our simple file which we will serve
FILE='/var/www/bashserver/message.txt'
# Construct propper headers
echo -e "HTTP/1.0 200 OK\r"
echo -e "Content-Type: `/usr/bin/file -bi \"$FILE\"`\r"
echo -e "\r"

# Now lets spit our data
cat "$FILE"

# And lets finish the transmission.
echo -e "\r"

Простичко нали. И което е по интересното върши добра работа.

Идеи за развиване
Модифициране на webserver.sh така че да приема параметър с който да се описва порта на който да слуша. Втори параметър който да указва кой файл точно да се изпълнява а не да е твърдо закодирано за webserver.sh. Евентуално дори трети параметър който да се предава към файла който изпълняваме и да указва кой файл да връщаме.
Модифициране на webserver.sh така че да бъде научен да разбира от заявките, а не просто да сервира един единствен файл.

Заключение
Този вебсървър е със много ограничено приложение и кажи речи пълна неизползваемост, но за определени цели върши работа.

Коментари
Няма коментари »
Категории
Статии
Tags
bash, debian, FILE, quot, simple, sleep, swiss army knife, tcp ip, var, web web, webserver, wrapper script
RSS коментари RSS коментари
Trackback Trackback

Абонирай се

Your email:

 

Разни Лични

  • Play a Game baby
  • На море
  • Шумилницата

Blogroll

  • Summerborn

Етикети

Конкурс bash Code debian dhcp dhcpd dns dnsmasq encryption firewall Ghost ghost norton gnupg initrd installation iproute iptables iso jabber linux lqlqlq management memdisk mrtg netboot new Norton norton ghost ntp php ping port quot reborn router routing secure shaper simple soho squid ssh tftp web webserver
rss RSS коментари valid xhtml 1.1 get firefox