Na ubuntu 14.04 to neviem rozbehat :-/
Ked to instalujem ako balicek .deb tak je to zavisle na python-twisted ver. 16.x ale ubuntu14 ma len 13.2 ako balik.
A ked to chcem rozbehat manualne, tak sa zaseknem na cryptography
error in cryptography setup command: Invalid environment marker: python_version < '3'
Mozno je cas na upgrade
Chtěli jsme aby proxy fungovala s Python 2 i 3, což nás donutilo sáhnout až po verzi Twisted 16. Navíc Twisted má v sobě nějaké bugy a tak pro každou verzi Pythonu je nejnižší možná jiná. Uživatelé novějších systémů mohou zůstat u deb či rpm balíků, ostatní musí bohužel zůstat u pip, což může přinášet různé problémy z důvodu kompilace balíků atp. :-(
Nenašel jsem, které OS podporuje (před tím než se zaregistruji, pak nevím)
Dole tam vidím jedinou poznámku "stáhnout a spustit proxy na Vašem PC nebo serveru s Linuxem". Nevím, zda se Linux týká jen serverů či i toho PC. Poběží to tedy na Win (a jaká jsou podporována?). To by mi stálo za to, abych to nahodil třeba i u některých zákazníků (po jejich souhlasu), ale tam je win nutností.
Vzhledem k tomu, že se jedná pouze o jednoduché SSH proxy, tak jej na WIndows asi nemá smysl moc rozjíždět. Co jsem ze zdrojáku pochopil, tak to poslouchá (na portu 22) a v případě, že se někdo pokusí autentizovat, zaznamená to jeho údaje (host, user, password) a skrz sshpass začne všechnu další komunikaci přeposílat na server(y) CZ NICu.
Konkrétní OS tam nikde nevidím, jenom závislosti.
Linux se týká obojího, nezáleží zda proxy běží na serveru či vašem počítači. V podstatě je to jen malý Python script se závislostí na Twisted a sshpass. Pokud se povede zbavit sshpass, bude to fungovat všude, kde bude fungovat Python s implementací SSH v Twisted. :-)
Chtěl jsem se zapojit, založil jsem účet, nastavil…
Jen několik věcí, řekl bych show-stopper za mne.
1) nelíbí se mi, že se to daemonizuje, nenašel jsem volbu, aby proces zůstal v popředí a vypisoval jen log
2) rozhodně nedám procesu root práva (spojení je NATováno, takže port, na kterém haas naslouchá je > 1024)
3) nikde jsem rychle nenašel e-mail na podporu; měl jsem 3 spojení za hodinu, ale vždy ten python process hodin nějakou výjimku při sestavení spojení, nebo co to bylo
Škoda, zkusím někdy v budoucnu, účet jsem smazal.
Ale líbilo se mi, že při zrušení účtu se slušně zeptají, zda si přeji alespoň zachovat anonymizovaná data z honeypotu. Pěkné.
1) Stačí použít přepínač --nodaemon (či kratší verzi -n) od Twisted. Přidáme do helpu. :-)
2) Root práva řešíme. :-) V příštím týdnu vydáme novou verzi, tak snad už bude pro vás snadnější se také zapojit do projektu.
3) Máme ho na stránce about / o projektu. Přidáme ho i na hlavní stránku. Kde jste ho hledal, kam by mělo smysl ještě kontakt přidat?
Kromě toho, že zdrojové kódy proxy jsou přístupné až po přihlášení, mě také dost překvapuje absence přihlášení pomocí mojeID. Ale předpokládám, že to se také časem vyladí ;)
Klidne bych se i zapojil se svym OpenWrt, ale nechapu, proc je takova jednoducha vec napsana v pythonu - nic proti, ale:
a) instalovat kvuli tomu cely python (distutils a setuptools moduly nejsou v python3-light ale musi se nainstalovat cely python3)
b) muset si rucne cross-compilovat sshpass
c) stejne mne na openwrt chybi ten python modul twister a opravdu ho nebudu sam (cross)compilovat
:-(
Navic, jak uz tady nekdo psal, tato aplikace opravdu posloucha na portu 22, pri prichozim spojeni udela pres ssh binarku connect na haas.cz (pres sshpass preda vas device-token jako jmeno/heslo) a pak uz pouze prehazuje data 'vidlemi' tam i zpet.
Takze program na cca 50-100 radku v cistem c-cku (i s pseudo TTY fintou pro 'oblafnuti' ssh) a nebo normalne prilinkovat 'nativni' libssh2 .....
Bohuzel, nenasel jsem :-(
Ale muzete to skusit sam:
http://downloads.openwrt.org/snapshots/trunk/brcm47xx/mips74k/packages/packages/
> na tom twisted byly myslím založeny i ssh honeypoty kippo a
> jeho pokračování cowrie, bych si myslel, že to z nich vychází
Tenhle HaaS je jen proxy. Kippo i Cowrie jsou složitější zejméno o to, že logují akce útočníka (v lépe čitelné formě než raw SSH pakety) a poskytují mu i nějak emulované prostředí (tzn. může teoreticky provádět i něco destruktivního). Podle mých zkušeností jsou oba HP docela obludy (oproti HaaS rozhodně). AFAIK zrovna Cowrie je nasazen na serveru.
Ono to není tak snadné. Pro potřeby párování dat k uživatelským účtům potřebujeme nějak SSH session označit. Nejschůdnější řešení je nahradit útočníkovo heslo za JSON s tokenem zařízení, heslem a původní IP adresou. Pythoní Twisted nám toto dokázal vyřešit snadno bez nutnosti kompilace na všechny možné systémy. Navíc používané honeypoty využívají také Twisted, takže aspoň nemusíme spravovat více přístupů.
Pokud máte nápad jak to udělat lépe, klidně se nám ozvěte, budeme rádi. :-)
> Ono to není tak snadné. Pro potřeby párování dat k
> uživatelským účtům potřebujeme nějak SSH session označit.
> Nejschůdnější řešení je nahradit útočníkovo heslo za JSON s
> tokenem zařízení, heslem a původní IP adresou.
Zrovna tohle mi nepřijde jako ten hlavní problém. Spíše potřebujete, aby za vás někdo (kód) pořešil výměnu úvodních zpráv a pak samotné přeposílání. Libssh neznám, tak nevím, jaké tady klade překážky, ale nemyslím, že to bude zrovna ve vyplnění hesla do podoby toho JSONu.
> Pythoní Twisted nám toto dokázal vyřešit snadno bez
> nutnosti kompilace na všechny možné systémy. Navíc
> používané honeypoty využívají také Twisted, takže aspoň
> nemusíme spravovat více přístupů.
Tak, na vaší straně by ani při naprogramování té věci v čistém C neznamenalo kompilace pro všechny platformy, ne? Tohle břemeno bude vždy ležet hlavně na nás, uživatelích. Jistě, bylo by to třeba udělat kvůli testům, ale jak je vidět, Twisted v tomto ohledu také nepomohlo (také patřím k těm, kteří budou muset nějak tu věc ještě donutit fungovat kvůli starší verzi Twisted a možná ještě něčeho).
$ sudo python -m haas-proxy -l /var/log/haas.log --pidfile /var/run/haas.pid haas_proxy --device-token f240............
/usr/bin/python: No module named haas-proxy
This is what I have done:
wget https://gitlab.labs.nic.cz/haas/proxy/raw/a84a97d098060c3fedfabdd7284455f806a9675f/release/python3-haas-proxy_1.1_all.deb
wget https://gitlab.labs.nic.cz/haas/proxy/raw/a84a97d098060c3fedfabdd7284455f806a9675f/release/python3-haas-proxy_1.1_all.deb.checksum
md5sum -c python3-haas-proxy_1.1_all.deb.checksum
sudo dpkg --info python3-haas-proxy_1.1_all.deb
sudo dpkg -c python3-haas-proxy_1.1_all.deb
sudo dpkg -i python3-haas-proxy_1.1_all.deb
sudo apt-get install -f