URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9977
[ Назад ]

Исходное сообщение
"использование библиотеки libssh"

Отправлено Alex , 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")
тоже ни как..

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


Содержание

Сообщения в этом обсуждении
"использование библиотеки libssh"
Отправлено erera22 , 16-Фев-15 19:41 
http://api.libssh.org/master/libssh_tutor_guided_tour.html

"использование библиотеки libssh"
Отправлено Alex , 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

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


"использование библиотеки libssh"
Отправлено Alex , 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:    то есть не принял.

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


"использование библиотеки libssh"
Отправлено pavlinux , 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-туннель

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

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


"использование библиотеки libssh"
Отправлено Alex , 16-Ноя-15 09:42 
а на Си ?



"использование библиотеки libssh"
Отправлено pavlinux , 16-Ноя-15 16:44 
> а на Си ?

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


"использование библиотеки libssh"
Отправлено pavlinux , 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  


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

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

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

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



"использование библиотеки libssh"
Отправлено pavlinux , 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



"использование библиотеки libssh"
Отправлено Alex , 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
тоже ничего не дает пока.


"использование библиотеки libssh"
Отправлено pavlinux , 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.


"использование библиотеки libssh"
Отправлено Alex , 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

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


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

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

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

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



"использование библиотеки libssh"
Отправлено pavlinux , 23-Ноя-15 16:15 
> почитал...
> нужен сервер, можно поднять на FreeBSD

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


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

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


"использование библиотеки libssh"
Отправлено Alex , 26-Ноя-15 12:15 
для asa не нашел как поменять номер порта ssh

"использование библиотеки libssh"
Отправлено pavlinux , 26-Ноя-15 19:36 
> для asa не нашел как поменять номер порта ssh

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

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

---

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


"использование библиотеки libssh"
Отправлено pavlinux , 26-Ноя-15 19:40 
> для asa не нашел как поменять номер порта ssh

Во

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


"использование библиотеки libssh"
Отправлено Alex , 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 слушала на другом порту.
можите это место конфига указать?



"использование библиотеки libssh"
Отправлено Alex , 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

???


"использование библиотеки libssh"
Отправлено Alex , 27-Ноя-15 16:14 
:) :) :)

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



"использование библиотеки libssh"
Отправлено pavlinux , 28-Ноя-15 05:48 
> ???

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


"использование библиотеки libssh"
Отправлено Alex , 30-Ноя-15 09:23 
мне бы все таки с программированием по Си этот ssh победить...