The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"использование библиотеки libssh"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"использование библиотеки libssh"  +/
Сообщение от Alex (??) on 16-Фев-15, 13:39 
libssh.org

хочу подключиться на cisco роутер выполнить команду и отключиться.

к библиотеки прилагаются некоторые примеры, на их основании пытаюсь написать своё.
почему libssh - по тому, что штатно в линуксе ничего не нашел.

коротко: устанавливаем подключение ssh на роутер, по имени пользователя и паролю.
открываем канал. отправляем команду "en" для перехода в административный режим:
rc = ssh_channel_request_exec(channel, "en");
читаем, что шлет нам роутер. "password:" отлично.

а какой функцией вводить пароль?

rc = ssh_channel_request_exec(channel, "********");
вылетает в ошибку djpdhfn -1:
[1] Error : Channel request exec failed
пробовал еще:
printf("******\n")
тоже ни как..

язык Си. догадываюсь, что врядли кто использовал. но может быть...

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "использование библиотеки libssh"  +/
Сообщение от erera22 (ok) on 16-Фев-15, 19:41 
http://api.libssh.org/master/libssh_tutor_guided_tour.html
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 17-Фев-15, 09:33 
> http://api.libssh.org/master/libssh_tutor_guided_tour.html

да все верно!

rc = ssh_channel_request_exec(channel, "enable");
if (rc != SSH_OK)
{
ssh_channel_close(channel);
ssh_channel_free(channel);
return rc;
}
nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
while (nbytes > 0)
{
if (write(1, buffer, nbytes) != nbytes)
{
ssh_channel_close(channel);
ssh_channel_free(channel);
return SSH_ERROR;
}
nbytes = ssh_channel_read(channel, buffer, sizeof(buffer), 0);
}
if (nbytes < 0)
{
ssh_channel_close(channel);
ssh_channel_free(channel);
return SSH_ERROR;
}

приезжает "password:"

вопрос как теперь ввисти этот enable пароль?

я пробовал так:
rc = ssh_channel_request_exec(channel, "********");
if (rc != SSH_OK)
{
ssh_channel_close(channel);
ssh_channel_free(channel);


получал ошибку:
[1] Error : Channel request exec failed
error : Channel request exec failed

вот в этом месте у меня и возникла проблема, которая в мауале не описана. точнее описание ее я не нашел. (возможно плохо искал... но пока не попалась.)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 13-Ноя-15, 16:41 
в продолжение.. так как тема еще актуальна.

тот пример что выше, это для одной команды. но есть для нескольких комманд.

channel_request_shell(channel);
   channel_write(channel,"help\n");
   channel_read(...)
   channel_write(channel,"help\n");
   channel_read(...)
   ......

да, действительно получаю хелп роутера два раза.

хочу зайти в привелигированный режим.
отправляю enable
читаю password:
отправляю сам пароль
читаю password:    то есть не принял.

возникает вопрос, почему??

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 16-Ноя-15, 04:19 
>  потому, что штатно в линуксе ничего не нашел.


#!/usr/bin/expect -f

spawn ssh siska
expect "login:";
send "odmin\n"
expect "password: "
send "PASSWORD\n"
expect "$ "
...

http://sourceforge.net/projects/sshpass/

Ещё куча вариантов на Perl, Ruby, Tcl, sh/chat через ssh-туннель

> язык Си. догадываюсь, что врядли кто использовал. но может быть...

Всё украдено уже до вас.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 16-Ноя-15, 09:42 
а на Си ?


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 16-Ноя-15, 16:44 
> а на Си ?

http://sourceforge.net/p/sshpass/code/HEAD/tree/trunk/main.c

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 16-Ноя-15, 19:07 
Кстати, а ты это читал?

http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ios_tcl/con...
http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ios_tcl/con...

И ещё есть волшебный протокол SNMP  

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 17-Ноя-15, 11:05 
про sshpass вчера весь вечер читал и искал примеры. с cisco-ой что то ни кто не использует.
примеры тоже, как я понял, позволяют пройти первую проверку пользователя и пароля. а дальше, пароль enable ни кто не пробовал проходить. наверно надо просто попробовать.

tcl почитал. есть некое непонимание. в статье IOS, я так понимаю это относится к роутерам. у меня ASA-5500.

SNMP да, сила. родной веб интерфейс для управления железкой, я так понимаю, активно использует SNMP. Но как там применить к моей задаче, я не придумал. (по SNMP отправить новое правило)

моя задача:
меня брутят по ssh. поэтому я хочу написать скриптик которой смотрит, если 5 попыток  подключиться по ssh неудачны (я это смотрю по логам), надо добавить на железку правило блокировки это ip адрес. что я и пытаюсь сделать на си через ssh. почему си? скорость, и хочу все в одной программе сделать. разносить по скриптам, в какой то момент становится неудобно. если получиться, будут довешиваться дополнительные полезности автоматизации.


Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 17-Ноя-15, 17:00 
>  я так понимаю это относится к роутерам. у меня ASA-5500.

Скорее надо на версию IOS смотреть,  много фич общих.


>  я хочу написать скриптик которой смотрит, если 5 попыток  подключиться по ssh неудачны
> (я это смотрю по логам), надо добавить на железку правило блокировки это ip адрес.

router(config)# login block-for <sec> attempts <attempts> within <sec>
router(config)# login block-for 300 attempts 5 within 30

Хост будет заблокирован на 300 сек., если в течение 30 секунд будет 5 неудачных попыток логина


Исключение своего апишнега

router(config)# access-list 10 permit 192.168.1.2
router(config)# login quiet-mode access-class 10


Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 17-Ноя-15, 18:03 
да, это справедливо для роутеров.
ASA это немного другое оборудование.
данный функционал я пока не нашел для ASA.

вот что есть на железке:
asa(config)# ?
.....
  isakmp                 Configure ISAKMP key, peer, policy and other options
  l2tp                   Configure Global L2TP Parameters
  ldap                   Configure LDAP Mapping
  logging                Configure logging levels, recipients and other options
  logout                 Logoff from config mode
  mac-list
.....

login - нету..

гуголь на запрос: cisco +asa login block-for
тоже ничего не дает пока.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 21-Ноя-15, 18:13 
> ASA это немного другое оборудование.

У меня этих ASA/PIX было, туева хуча.  

>гуголь на запрос: cisco +asa login block-for
>тоже ничего не дает пока.

http://www.security-solutions.co.za/cisco-asa-firewall-harde...


----

Feature Information for Cisco IOS Login Enhancements (Login Block)

Cisco IOS Login Enhancements (Login Block)

Releases

12.3(4)T
12.2(25)S
12.2(33)SRA
12.2(33)SRB 12.2(33)SXH
12.4(15)T1

Feature Information

The Cisco IOS Login Enhancements (Login Block) feature allows users to enhance the security of a router by configuring options to automatically block further login attempts when a possible DoS attack is detected.

This feature was introduced in Cisco IOS Release 12.3(4)T.
This feature was integrated into Cisco IOS Release 12.2(25)S.
This feature was integrated into Cisco IOS Release 12.2(33)SRA.
Support for HTTP login blocking was integrated into Cisco IOS Release 12.2(33)SRB, 12.2(33)SXH, 12.4(15)T1.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 23-Ноя-15, 09:04 
я так понимаю что ключевое:
aaa-server TACACS+ protocol tacacs+
reactivation-mode depletion deadtime 1
aaa-server TACACS+ (inside) host 192.168.1.1
max-failed attempts 2

?

у меня:
aaa authentication ssh console LOCAL

несколько проще..
сейчас попробую разобраться с этими хитросплетениями..

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 23-Ноя-15, 11:06 
почитал...
нужен сервер, можно поднять на FreeBSD
целесобразен при большом количетве железяк, и большем количестве обслуживающего персонала, с разганичением по командам и с персональным логированием действий.

для 1-3 железяк, не целесобразно.
- припадении сервера теряем доступ.
- две штуки держать или более (опять расходы растут)
- энерго снабжение им надо хорошее.
не ну можно конечно PasPI на батарейках запустить. Но... пока неверное нет.

раньше вообще был проет MARS не знаю жив ли он. там вообще огого. правда дорог.

мне бы все таки как бы домучить библиотечку на Си. Очень уж интересная опция...


Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 23-Ноя-15, 16:15 
> почитал...
> нужен сервер, можно поднять на FreeBSD

TACACS это конечно круто, но мож пароль CWSrgrt4214GB&%0-2234FV111, и пущай трахаются.
Ах да, можно ещё ssh "на другой порт завести" загугли, вариантов навалом.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 24-Ноя-15, 08:58 
пароль такой уж есть. и логин такой же. и словари прозапас уже набраны :)
но сам факт не приятен, да и ресурсы кушаются до 20% цпу.

как порт поменять для asa что то не знаю. для ios знаю как.
может в новенких прошивках на конец то сделали эту возможность...
сейчас попробую поискать..

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 26-Ноя-15, 12:15 
для asa не нашел как поменять номер порта ssh
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 26-Ноя-15, 19:36 
> для asa не нашел как поменять номер порта ssh

Порт не поменяешь. Команды точные не помню, но смысл такой:

Запретить коннекты на 22 порт через OUTSIDE фейс,
Сделать маппинг/алиас 22 порта на любой другой, напр. 11220
Спрятаться за NATом (PAT), то есть коннекты к 22 порту должны идти с адреса циски.  

---

Где-то выдел, ща пороюсь по закладкам....

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 26-Ноя-15, 19:40 
> для asa не нашел как поменять номер порта ssh

Во

https://supportforums.cisco.com/discussion/11359826/how-chan...

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

20. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 27-Ноя-15, 12:34 
предыдущее сообщение я Вас что то не понял...
за ссылку спасобо, изучил..

на сколько я понял (английский не мой родной язык, сорри) там пытаются разрулить ssh на трех устройсвах.

потом приводится полный конфиг ASA. версии 8.3(1) , у меня 7.2.4 старенькая стоит.
в восьмой ветки они переделали нат полностью. мне не очень это понравилось (синтаксис), да и памяти надо было доставлять. вообщем я пока не перехожу на новые прошивки...


так вот там есть:
interface Vlan2
nameif outside
security-level 0
ip address x.x.x.x 255.255.255.252

object network ROUTER
    host 10.10.1.1
object service MAPPED_SSH_TO_ROUTER
    service tcp source eq 2001
object service REAL_SSH
    service tcp source eq ssh
access-list ALLOW_FROM_OUTSIDE extended permit tcp any object ROUTER eq ssh

nat (inside,outside) source static ROUTER interface service REAL_SSH MAPPED_SSH_TO_ROUTER

access-group ALLOW_FROM_OUTSIDE in interface outside

ну тоесть:
access-list "С внешнего интерфейса" extended permit tcp any object "host 10.10.1.1" eq 22
nat (inside,outside) source static "host 10.10.1.1" interface "service tcp source eq 2001"

я так понимаю что меняется порты для хоста 10.10.1.1 ???
а нас интересует x.x.x.x 255.255.255.252

в старой версии это выглядели на мой взляд очевидней:
static (Inside,Outside) udp interface 26301 192.168.1.6 26301 netmask 255.255.255.255

здесь четко показано какой порт берем с внешнего интерфейса и куда в какой отправляем.

я допускаю, что мне нехватает кармы, и я не заметил как сделать что бы ASA свой ssh слушала на другом порту.
можите это место конфига указать?


Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

21. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 27-Ноя-15, 13:11 
еще раз перечитал Ваше непонятное сообщение...

получается так:

access-list Outside_access_in extended deny tcp any host x.x.x.x eq ssh
access-list Outside_access_in extended permit tcp any host x.x.x.x eq 7722
static (Outside,Outside) tcp interface 7722 x.x.x.x 22 netmask 255.255.255.255
same-security-traffic permit intra-interface

???

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 27-Ноя-15, 16:14 
:) :) :)

https://supportforums.cisco.com/discussion/12715691/change-p...


Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

23. "использование библиотеки libssh"  +/
Сообщение от pavlinux (ok) on 28-Ноя-15, 05:48 
> ???

Дальше уже тестить надо иль на форум цискарей: sysadmin.ru и подобные.

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

24. "использование библиотеки libssh"  +/
Сообщение от Alex (??) on 30-Ноя-15, 09:23 
мне бы все таки с программированием по Си этот ssh победить...


Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру