Побег через брандмаузер

         

Организация удаленного shell'a в UNIX и NT


Потребность в удаленном shell'е испытывают не только хакеры, но и сами администраторы. Знаете, как неохота бывает в дождливый день тащится через весь город только затем, чтобы прикрутить фитилек "коптящего" NT'го сервера, на ходу стряхивая с себя остатки сна, да собственно даже не сна, а тех его жалких урывков в которые в изнеможении погружаешься прямо за монитором…

В UNIX-подобных операционных системах shell есть от рождения, а вот в NT его приходится реализовывать самостоятельно. Как это можно сделать? По сети ходит совершенно чудовищный код, перенаправляющий весь ввод/вывод порожденного процесса в дескрипторы non-overlapping сокетов. Считается, что раз уж non-overlapping сокеты во многих отношениях ведут себя так же, как и обычные файловые манипуляторы, операционная система не заменит обмана и командный интерпретатор будет работать с удаленным терминалом так же, как и с локальной консолью. Может быть (хотя это и крайне маловероятно) в какой-то из версий Windows такой прием и работает, однако, на всех современных системах, порожденный процесс попросту не знает, что ему с дескрипторами сокетов, собственно, делать и весь ввод/вывод проваливается в тартарары…



Содержание раздела