Uncategorized

Hackování tiskového serveru pro Ethernet Home Automation

odeslání Dan McGrath. O čem to všechno je? No, mám spoustu domácí automatizace a miluji to! Kdykoli to však ukážu přátelům a rodině, mám sklon získat jednu ze dvou odpovědí. První je, že je to jen trik a nikdy by nic takového nechtěli. Druhým je, že je to skvělé, ale pro ně je příliš komplikované nastavit něco podobného.

Takže to je můj pokus o jednoduché, ve skutečnosti velmi snadné domácí automatizační zařízení, které může kdokoli použít, a prakticky může udělat kdokoli. Ve skutečnosti vážně uvažuji o výrobě je hromadně (dobře něco podobného) a prodávám celou šarži jako spravovanou službu za asi tenner ročně. (Prosím, dejte mi vědět, jestli by to mohlo být pro kohokoli zajímavé). Každopádně, takže to je můj pokus o levnou domácí automatizaci pro masy, doufám, že se vám to líbí …

Design – správně, takže potřebuji něco, co je levné, spolehlivé a snadno se chystá. Také něco, co může být spuštěno snadným přepínačem a tento přepínač může být jakýkoli z následujících:

Připojte jej k zásuvce, světlu nebo jakémukoli jinému zařízení a použijte jej k jeho monor.

Připevněte k solárnímu panelu nebo LDR pro sledování úrovní světla.

Připojte pár sond a detekujte vodu (rostliny, déšť, úniky atd.)

Připojte se k přepínači PIR nebo rákosí pro zabezpečení,

Připojte se k kouřovému alarmu pro ochranu proti požáru,

Připojte se k tlakové podložce atd.

Většina lidí nechce, aby PC nebo server běžel celý den, kvůli hluku, teplu a spotřebě energie. Počítače Easy Tiny One Board lze nyní zakoupit od 50 $ každý (Xport, Arduino, Picotux atd.), Ale i to se zdá být nadměrné za to, co chci …

Spravovaný přepínač, router, firewall, cokoli s ethernetovým portem a nějakým druhem webového rozhraní, po kterém jsem byl, ale muselo to být levné … a malé…. Pak jsem přišel s myšlenkou tiskového serveru … tiskové servery jsou ideální, používají velmi malou elektřinu, vyvíjejí se k zapnutí po celou dobu, mohou reagovat na ping a lépe mít také vestavěný webový server. Udělal jsem trochu googlingu a viděl jsem je jen tak málo jako tenner na eBay. Oh a jsou také malí! Měl jsem pro tento projekt tři nápady:

Prvním bylo, že jsem mohl zlomit nebo zkrátit pár vysílacího páru na příchozí kabelové televizi Ethernet na tiskový server. S těmito zkratovanými nebo zlomenými by se zařízení určitě nemohlo reagovat na požadavek na ping ani HTTP.

Myslím, že by to fungovalo, ale vypadalo to trochu barbarské a jsem si jistý, že bych mohl udělat lépe.

Druhým bylo jen rozbít napájení zařízení

To mělo potenciál z pohledu úspory energie, protože byste zařízení napájeli jen někdy, samozřejmě, když bylo vypnuto, že byste neviděli ani jeho web, ani odpověď na žádost o ping. Tento nápad se mi docela líbil, jediná věc, která mě odložila, bylo, že když byl vypnutý, nebylo by možné zjistit, zda bylo zařízení vypnuto, nebo odpojeno od sítě z jiného důvodu – možná selhání jinde. Také jsem si nebyl jistý, jak dlouho by zařízení udržovalo nastavení (síť atd.), zatímco to bylo vypnuté.

To, co jsem opravdu chtěl, byl způsob, jak získat reakci z jednotky, aby se potvrdilo, že to bylo buď v jednom nebo druhém stavu, tak si můžete být jisti, co se skutečně děje. To je místo, kde přichází můj třetí nápad.

Třetí myšlenkou bylo oklamat tiskový server, že k němu byla tiskárna skutečně připojena,

a pak to mít tak, aby se zdálo, že tiskárna byla na linii nebo vypnuto.

Udělal jsem trochu výzkumu a zdá se, že pro tento účel se používá PIN 13 konektoru. Vezměte pin vysoko (tj. Použijte na něj 5volts) a server si myslí, že tiskárna je on_line, vezměte pin nízký (tj. Odstraňte napětí) a server si myslí, že tiskárna je off_line.

Protože vše, co musím udělat, je aplikovat a odstranit 5volty, mohu někde najít 5 Voltů a projít je přepínačem. Zavřete spínač a zdá se, že tiskárna je on_line, otevřete spínač a tiskárna se objeví Off_line. Jak říkám, tento stav se odráží ve webovém rozhraní, takže snadný skript by měl být schopen tuto stránku dodat a analyzovat stav tiskárny a poté použít tyto informace pro něco užitečného.

Konstrukce-Jak je uvedeno výše, použil jsem paralelní tiskový server EDIMAX PS-1206P, který jsem zakoupil za asi 25 liber online. Ve skutečnosti to bylo mnohem víc jako 22 liber, ale poštovné a balení to trochu narazí. Nakonec jsem si je koupil hrstkou, protože byly tak levné. Nikdy jsem o Edimaxu neslyšel, takže produkt by mohl být dobrý nebo špatný, ale je mi to jedno, pokud bude reagovat na žádost HTTP, budu šťastný! Když jsem se objevil, byl jsem příjemně ohromen, byli pěkně v krabici a obsah také vypadal dobře:

Jedna věc je však jistá, toto zařízení nebude nikdy zapojeno do zadní části tiskárny. Brzy to nasekám na něco mnohem zajímavějšího. Podrobnosti zde: EDIMAX PS-1206P

Dobře, tak pojďme spustit víko z jednoho z nich … prostě ráda rozebírám věci, ale brát zbrusu nové věciKromě toho je pro mě obzvláště zábavná, prostě se to zdá být tak špatně !! Na dně je několik šroubů hlavy Phillips a jakmile jsou odstraněny, pouzdro se jen roztrhne, i když je třeba trochu vytlačit strany, když se obě poloviny spojují do sebe.

Byl jsem příjemně ohromen vnitřkem této jednotky, bylo to velmi dobře sestaveno. Pán ví jen, k čemu jsou všechny bity, myslím, že tam je procesor, nějaká paměť, trochu I/O a další věci, kterým nerozumím.

Nyní byste mohli ponechat na tiskovém serveru Big 36Pin Centronics Socket a jen se chytit odpovídající zástrčku, aby se k ní připojila, ale ty jsou docela objemné a zdá se, že je to trochu přes vrchol, zejména vzhledem k tomu, že se musíme připojit pouze k 2 z Těchto 36 kolíků. Rozhodl jsem se odříznout zásuvku … Ne, neudělal jsem to se sekerou, v tuto chvíli to vypadá trochu drsně:

Potom jsem detoldoval jednotlivé kolíky z desky a vytvořil malou kovovou desku, aby zablokoval díru vlevo z chybějící zásuvky. Vyvrtal jsem do něj několik děr a připojil pár šroubových terminálů. Trochu 2 částečné epoxidy a nějaké heathrink a máte to …

Docela elegantní hm?! Takže to je funkční prototyp, s trochou štěstí, překlenutí těchto dvou šroubových terminálů vrátí stav on_line a jejich otevřené ponechání. Je tedy čas vyzkoušet. Poznámka: Obrázky výše ukazují spojení s kolíky 35 a 36, ​​to je nesprávné, následné testování ukázalo, že jsem skutečně potřeboval kolíky 13 a 19.

Rozhodl jsem se měřit spotřebu energie a byl jsem příjemně ohromen tím, co jsem našel, používá to pouze 6watts, což není vůbec vůbec? (Při 10p za kWh bude stát asi 5 liber ročně)

Jak jsem řekl výše, budu dotazovat svůj server s požadavkem HTTP a shromáždit stav tiskárny, ale pokud chcete jen zjistit, zda je tam tím, že ho pingujete, můžete použít Ping k jeho motivu pomocí něčeho jako:

datum
n = 1

zatímco [$ n -lt 1000]
dělat
ping -n 1 server_ip
echo $ n
Nechť n = n+1
Hotovo
datum

Ukazuje, že toto zařízení může snadno odesílat (a přijímat) 1000 pingů za 52 sekund, což je 20 pingů za sekundu. Takže je to proveditelné možnosti a měl by vám dát poměrně rychlou odpověď. Samozřejmě, pokud chcete pouze použít PING, budete muset jednotku vyrazit přerušením připojení napájení nebo sítě (nebude to ovlivněno stavem tiskárny). Pings na internetu opravdu nefunguje dobře, spousta lidí a směrovačů zakazuje požadavky ICMP na svých hranicích, ale přínosem tohoto zařízení je, že má také webové rozhraní, které lze dotazovat za účelem kontroly jeho dostupnosti. To lze snadno provést přes internet a opět krátký skript ukazuje, že můžete učinit asi 1 požadavek za sekundu pomocí…

#!/usr/bin/bash

Uživatel = uživatelské jméno
heslo = heslo
url = server_url

wget –quiet –http-user = $ user –http-password = $ heslo \
—Proxy = $ proxy $ url

Grep Off_line Printer.htm> /dev /null

Pokud [„$?“ == „0“]
pak ozvěna „offline“
jinak echo „online“
fi

rm tiskárna.htm

Vrátí hodnotu na základě stavu tiskárny. Všimněte si, že na palubě webového serveru je docela pomalý, jak se očekávalo, ale za méně než sekundu máte reakci, takže si myslím, že bude možné hlasovat každých 5-10sec. Nahrazení příkazů Echo poštou nebo další příkazy Wget by vám mohlo poslat e -mail nebo získat adresu URL (možná použijte Twitter k SMS atd.)

Dobře, příklad toho, jak aktualizovat svůj stav Twitteru, je uveden níže:

wget–se-session-cookies –http-user = username \
–Http-password = heslo –Post-data = message \

(Vyměňte uživatelské jméno, heslo a zprávu, dobře víte ..)

Nebo ještě lépe, tady je návod, jak si poslat tweet, když se něco stane:

wget –Keech-session-cookies –http-user = user \
–Http-password = heslo –Post-data = message \

Všimněte si, že musíte adresu URL kódovat zprávu, která je docela v pohodě, že? Zde se podívejte mnohem více o API Twitter. – Twitter API

Abyste to viděli z sítě, budete muset na NAT na svém tiskovém serveru, provozuji router Cisco, takže pro mě fungovalo následující:

IP NAT NAT VNITŘNÍ ZDROJ STATICKÝ TCP Rozšiřitelný

(Udržujte číslo portu ve vysokých 50 000 s a získáte méně lidí, kteří vás skenují a zkoušíte). Pokud máte router Linksys, bude směrnice lišit, ale něco takového by to mělo udělat:

Pokud nemáte žádný z výše uvedených, pak jste sami … hodně štěstí!

Software – ok, uvedl jsem několik příkladů výše, níže je pracovní skript Bash, který pro vás bude monitorovat, a Twitter SMS, když se stav změní. Je to velmi snadný příklad, ale měl by vás začít.

#!/bin/bash

## Web Získejte parametry
user = ”admin”
heslo = ”1234 ″
url = ”http: //ip_address/printer.htm”

## Twitter parametry
t_user = uživatel
t_passwd = heslo

## Další parametry
status = ”uzavřený”

i když je to pravda
dělat
Old_status = $ status
wget –quiet –http-user = $ user –http-passwd = $ heslo $ url

Grep Off_line Printer.htm> /dev /null

Pokud [„$?“ == „0“]
pak status = ”otevřený”
else status = ”uzavřený”
fi

rm tiskárna.htm

Pokud [$ status! = $ old_status]
pak wget –quiet –http-user = $ t_user \
–HttP-Passwd = $ t_passwd —Keep-session-Cookies \
–Post-Data = ”user = twitter_username & text = message” \

fi
Spánek 1
Hotovo

Alternativně byste mohli použít nějaký monitorovací software, jako je vynikající Freenats, aby vás upozornil, když se něco stane.

Závěr – No, doufám, že jste potěšili, co jsem udělal, musíte přiznat, že je to domácí automatizace
na levné a velmi snadné. Na zdraví – Dan

Užitečné odkazy

CPAN – všechny věci perl
Perl – Mnohem více věcí perl
Wget – Wget Application
EDIMAX – Poskytovatelé tiskového serveru Other / Misc
Twitter – web sociálních sítí s SMS

Tento krátký článek reprodukovaný z originálu laskavým souhlasem Dan McGrath z Yourmissus.com

Chcete víc? – Sledujte nás na Twitteru, jako jsme my na Facebooku, nebo se přihlaste k našemu RSS kanálu. Tyto zpravodajské příběhy můžete dokonce získat prostřednictvím e -mailu, každý den přímo do své doručené pošty

Sdílejte toto:
Facebook
Cvrlikání
Reddit
LinkedIn
Pinterest
E-mailem
Více

Whatsapp
Tisk

Skype
Tumblr

Telegram
Kapsa