Trzepak.pl

Regulamin forum


Wypowiedzi muszą stosować się do zasad ogólnie przyjętej "netykiety" wynikającej z dokumentu RFC 1855, zamieszczonego pod tym adresem:
http://www.ietf.org/rfc/rfc1855.txt
Osoby wypowiadające się tu "zawodowo" proszone są o logowanie się swoim imieniem i nazwiskiem, a w stopce ich wypowiedzi wskazane jest przedstawienie danych adresowych łącznie z linkiem do strony głównej przedsiębiorstwa lub organizacji, którą reprezentują.
Umieszczanie informacji reklamowych w wypowiedzi i w stopce nie jest wskazane a moderatorzy mogą ingerować usuwając takie posty w sposób nie podlegający dyskusji.



Nowy temat  Odpowiedz w temacie
Autor Wiadomość
Post: pt, 11 sty 2019 20:39:45 
Odpowiedz z cytatem
Offline
Moderator
Moderator
Awatar użytkownika

Rejestracja: czw, 18 lis 2010 9:00:53
Posty: 3474
Lokalizacja: Mazury
Czy ma ktoś jakieś materiały jak wykorzystać protokół winboxa, aby zalogować się na mikrotika i choćby włączyć ssh ?

_________________
# http://kazuko.pl ☚☜☚☜ automagiczna kopia zapasowa, aktualizacja i zmiana ustawień


Na górę
Post: pt, 11 sty 2019 21:19:02 
Odpowiedz z cytatem
Offline
Powieściopisarz
Powieściopisarz

Rejestracja: czw, 10 lis 2011 17:44:20
Posty: 1738
Lokalizacja: W-wa
A nie chodzi Ci o API?


Na górę
Post: pt, 11 sty 2019 21:22:07 
Odpowiedz z cytatem
Offline
Moderator
Moderator
Awatar użytkownika

Rejestracja: czw, 18 lis 2010 9:00:53
Posty: 3474
Lokalizacja: Mazury
Nie.
Kiedyś gdy nie było ani api, ani oficjalnej apki na Androida od Mikrotika, były robione przez ludzi takie apki, więc chyba jakoś można wykorzystać ten protokół do komunikacji z Mikrotikiem przez własne skrypty.

_________________
# http://kazuko.pl ☚☜☚☜ automagiczna kopia zapasowa, aktualizacja i zmiana ustawień


Na górę
Post: pt, 11 sty 2019 22:44:20 
Odpowiedz z cytatem
Offline
Powieściopisarz
Powieściopisarz

Rejestracja: czw, 10 lis 2011 17:44:20
Posty: 1738
Lokalizacja: W-wa
Bawie sie MT od naprawde dlugiego czasu i API jest od jakiegos 2006 roku. Wczesniej nie przypominam sobie zadnych aplikacji ktore by nie dzialaly inaczej jak po SNMP albo SSH.


Na górę
Post: sob, 12 sty 2019 0:57:13 
Odpowiedz z cytatem
Offline
Obserwator
Obserwator

Rejestracja: wt, 22 wrz 2015 10:35:55
Posty: 31
Ja już od wielu lat przymierzałem się do rozgryzienia protokołu Winboxa, ale z braku czasu skończyło się na parsowaniu SSH. Wszystko z czym się do tej pory spotkałem szerokim łukiem omija port 8291. Aczkolwiek kilka miesięcy temu pojawił się… dissector do Wiresharka.

https://github.com/Cisco-Talos/Winbox_P ... _Dissector

Bardzo ładnie to działa. Trzeba sobie wygrzebać potrzebne rzeczy przez reverse engineering na podstawie wiadomości przesyłanych przez oryginalny soft.

EDIT:
Jeżeli ktoś się chce pobawić… Na dzień dobry wysyłamy pakiet:

Kod:
static const guchar msg_hello[] =
{
    0x20, 0x01, 0x00, 0x1e, 'M', '2',

    0x05, 0x00, 0xff, 0x01,

    0x06, 0x00, 0xff, 0x09,
    0x02,

    0x07, 0x00, 0xff, 0x09,
    0x04,

    0x01, 0x00, 0xff, 0x88,
    0x02, 0x00,
    0x0d, 0x00, 0x00, 0x00,
    0x04, 0x00, 0x00, 0x00
};


Po czym otrzymujemy zwrotkę:

Kod:
0000   3a 01 00 38 4d 32 01 00 ff 88 00 00 02 00 ff 88  :..8M2..........
0010   02 00 0d 00 00 00 04 00 00 00 03 00 ff 09 02 06  ................
0020   00 ff 08 c2 13 00 00 09 00 00 31 10 f1 cc 55 89  ..........1...U.
0030   5b b0 98 48 90 11 21 55 e0 a4 9f 25              [..H..!U...%


Pod adresem (0x31) 0x00 0x00 0x09 (w pakiecie jest zapisane jako little endian, więc 0x09 0x00 0x00 0x31) jest ciąg o długości 0x10 (16 bajtów) o przykładowej wartości: 0xf1 0xcc 0x55 0x89 0x5b 0xb0 0x98 0x48 0x90 0x11 0x21 0x55 0xe0 0xa4 0x9f 0x25
Będzie on potrzebny do wyliczenia MD5.

Aby się zalogować tworzymy pakiet zwrotny:

Kod:
static const guchar msg_auth_start[] =
{
    0x50, 0x01, 0x00, 0x4E, 'M', '2',

    0x05, 0x00, 0xff, 0x01,

    0x06, 0x00, 0xff, 0x09,
    0x0e,

    0x07, 0x00, 0xff, 0x09,
    0x01,

    0x0a, 0x00, 0x00, 0x31,
    0x11,
    0x01,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Hash */

    0x09, 0x00, 0x00, 0x31,
    0x10,

    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* Salt */

    0x01, 0x00, 0x00, 0x21,
    0x00 /* <-- tutaj strlen(login) */
};

static const guchar msg_auth_end[] =
{
    0x01, 0x00, 0xff, 0x88,
    0x02, 0x00,
    0x0d, 0x00, 0x00, 0x00,
    0x04, 0x00, 0x00, 0x00
}


Co zmieniamy:
1. Do pierwszego bajtu msg_auth_start dodajemy długość loginu (8-bitowa wartość, 0x50 + strlen(login), chunk length).
2. Do trzeciego i czwarego również (16-bitowa wartość, 0x004E + strlen(login), message length - tutaj wyjątkowo big endian).
3. Hash to MD5 liczone z kontatenacji znaku \x01, hasła i 16-bajtowej soli (przy czym \0x01 można sobie zmienić na inny znak z tego co sprawdzałem, zmieniając go też w bajcie tuż przed przesłanym hashem).
4. Sól trzeba wysłać również spowrotem we własnym pakiecie. Nie mam pojęcia jaki jest w tym sens. Serwer oczwyiście sprawdza, czy jest to poprawna wartość, sprawdzałem.
5. W ostatni bajt z msg_auth_start również zapisujemy długość loginu.

Sklejamy razem msg_auth_start, login i msg_auth_end, wysyłamy i jesteśmy zalogowani :) Miłej zabawy!
Docelowo będę chciał napisać jakiś generator wiadomości z podziałem na chunki, ale w tej chwili mam to w kodzie na sztywno jak wyżej.

Jeszcze drobna uwaga… Biorąc pod uwagę zachowanie Winboxa (zaciąganie DLL-ek z RouterOS-a), to Łotysze mogą w zasadzie zmieniać mapę adresów zapytań przy każdej wersji systemu :). Aczkolwiek rzeczy z których korzystałem na kilku różnych wersjach ROS (względnie nowych) są w tym samym miejscu.


Na górę
Post: ndz, 13 sty 2019 20:53:28 
Odpowiedz z cytatem
Offline
Moderator
Moderator
Awatar użytkownika

Rejestracja: czw, 18 lis 2010 9:00:53
Posty: 3474
Lokalizacja: Mazury
Tylko to działa tylko przy nie szyfrowanym połączeniu, a teraz połączenie winboxowe jest tylko szyfrowane.
Dobrze myślę?

_________________
# http://kazuko.pl ☚☜☚☜ automagiczna kopia zapasowa, aktualizacja i zmiana ustawień


Na górę
Post: ndz, 13 sty 2019 22:48:26 
Odpowiedz z cytatem
Offline
Obserwator
Obserwator

Rejestracja: wt, 22 wrz 2015 10:35:55
Posty: 31
Pod ręką mam w tej chwili v6.43, v6.43.2, v6.43.4, v6.44beta50 - powyższy sposób logowania wszędzie działa.
Dziś w nocy przysiadłem do tematu i napisałem generator oraz parser chunków/wiadomości. Działa z pewnymi uproszczeniami, jeszcze muszę trochę nad tym popracować…


Na górę
Post: pn, 14 sty 2019 19:04:19 
Odpowiedz z cytatem
Offline
Obserwator
Obserwator

Rejestracja: ndz, 17 cze 2018 15:09:19
Posty: 28
Niezły kawał wiedzy. Dzięki!


Na górę
Post: pn, 14 sty 2019 21:22:24 
Odpowiedz z cytatem
Offline
Obsesyjny prozaik
Obsesyjny prozaik

Rejestracja: śr, 12 paź 2011 21:04:41
Posty: 1026
Ze tak się zapytam po co się z tym męczyć skoro jest SSH?
Jaki widzicie tego sens? bo ja żaden...


Na górę
Post: pn, 14 sty 2019 21:31:59 
Odpowiedz z cytatem
Offline
Moderator
Moderator
Awatar użytkownika

Rejestracja: czw, 18 lis 2010 9:00:53
Posty: 3474
Lokalizacja: Mazury
Niestety co niektórzy nie wiedzą co to jest ssh i wyłącza :) a że sporo mam takich mikrotików to pomyślałem o winboxie.

@kkonrad udostępnisz jakąś uproszczoną funkcje (miel widziana w perlu / php)?, jakąś możliwość wysłania komendy? Bo szczerze mówiąc nie łapie tego, może za mało wiedzy.
W zamian mogę odwdzięczyć się dostępem do moich skryptów na http://kazuko.pl

_________________
# http://kazuko.pl ☚☜☚☜ automagiczna kopia zapasowa, aktualizacja i zmiana ustawień


Na górę
Wyświetl posty nie starsze niż:  Sortuj wg  
Nowy temat  Odpowiedz w temacie


Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 7 gości


Nie możesz tworzyć nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Przejdź do:  
Dzisiaj jest sob, 19 sty 2019 13:59:17

Strefa czasowa UTC+02:00

Moderatorzy: Administratorzy, Moderatorzy

Nakarm glodne dziecko - wejdz na strone www.Pajacyk.pl


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
SubSilver2 modified for Trzepak.pl by Colir
Polski pakiet językowy dostarcza phpBB.pl