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).