Paul Troncone and Carl Albing Cybersecurity Ops with bash Attack, Defend, and Analyze from the Command Line



Download 4,82 Mb.
Pdf ko'rish
bet168/206
Sana29.03.2022
Hajmi4,82 Mb.
#515317
1   ...   164   165   166   167   168   169   170   171   ...   206
Bog'liq
Bash и кибербезопасность Атака, защита и анализ из командной строки

Пример 15.2.
fuzzer.sh
#!/bin/bash -
#


Глава 15. Инструмент: Fuzzer 
229
# Bash и кибербезопасность
# fuzzer.sh
#
# Описание:
# Изменение указанного аргумента программы
#
# Использование:
# bash fuzzer.sh [?] ...
# Целевая исполняемая программа/скрипт
# Статические аргументы для исполняемого файла
# '?' Аргумент, который должен быть изменен
# пример: fuzzer.sh ./myprog -t '?' fn1 fn2
#
#
function usagexit ()

{
echo "usage: $0 executable args"
echo "example: $0 myapp -lpt arg \?"
exit 1
} >&2

if (($# < 2))

then
usagexit
fi
# приложение, которое мы будем изменять, — это первый аргумент
THEAPP="$1"
shift

# действительно здесь?
type -t "$THEAPP" >/dev/null || usagexit

# какой аргумент нужно изменять?
# найти ? и пометить его позицию
declare -i i
for ((i=0; $# ; i++))

do
ALIST+=( "$1" )

if [[ $1 == '?' ]]
then
NDX=$i

fi
shift
done
# printf "Executable: %s Arg: %d %s\n" "$THEAPP" $NDX "${ALIST[$NDX]}"
# теперь изменить:
MAX=10000
FUZONE="a"
FUZARG=""


230
Часть III • Тестирование на проникновение
for ((i=1; i <= MAX; i++))

do
FUZARG="${FUZARG}${FUZONE}" # то есть +=
ALIST[$NDX]="$FUZARG"
# порядок >s важен
$THEAPP "${ALIST[@]}" 2>&1 >/dev/null

if (( $? )) ; then echo "Caused by: $FUZARG" >&2 ; fi
done

.Мы.определяем.функцию.
usagexit
,.чтобы.выдать.пользователю.сообщение.об.
ошибке,.которая.укажет.правильный.способ.использования.сценария..После.печати.
сообщения.сценарий.завершит.работу.и.будет.вызван.при.ошибочной.активации.
(в.нашем.случае,.если.аргументов.станет.недостаточно).(см..

)..Аргумент.
-lpt
.
в.примере.сообщения.является.аргументом.для.пользовательской.программы.
myapp
,.а.не.для.сценария.
fuzzer.sh
.

.Поскольку.эта.функция.выдает.сообщение.об.ошибке,.а.не.предполагаемый.
вывод.программы,.мы.хотим,.чтобы.сообщение.перешло.в.stderr..После.этого.весь.
вывод.из.функции,.который.был.направлен.в.stdout,.перенаправляется.в.stderr.

.Если.аргументов.недостаточно,.следует.завершить.работу.сценария;.мы.вызы-
ваем.эту.функцию,.чтобы.объяснить.пользователю,.как.ее.правильно.использовать.
(функция.выйдет.из.сценария.и.не.возвратится).

.Сохранив.в.приложении.первый.аргумент,.мы.смещаем.аргументы..Таким.об-
разом,.
$2
.становится.
$1
,.
$3
.становится.
$2
.и.т..д.

.Тип.встроенного.приложения.определяет.тип.исполняемого.файла.(псевдоним,.
ключевое.слово,.функция,.встроенный.файл)..Поскольку.вывод.нас.не.интересует,.
мы.перенаправляем.его.в.
/dev/null
.и.отбрасываем..Нам.необходимо.получить.
возвращаемое.значение.
type
..Если.пользовательское.приложение.(один.из.пере-
численных.типов).может.быть.запущено,.возвращается.значение.
0
..Если.нет.—.
возвращается.значение.
1
.и.выполняется.второе.условие.этой.строки:.вызывается.
функция.
usagexit
,.а.работа.сценария.завершается.

.Этот.цикл.
for
.будет.перебирать.количество.аргументов.(
$#
),.хотя.это.количе-
ство.с.каждым.сдвигом.будет.уменьшаться..Данные.аргументы.предназначены.для.
пользовательской.программы,.то.есть.программы,.к.которой.мы.применяем.метод.
фаззинга.

.Мы.сохраняем.каждый.аргумент,.добавляя.его.в.переменную.массива.
ALIST
..
Почему.бы.нам.просто.не.добавить.каждый.аргумент.в.строку,.а.не.хранить.их.
как.элементы.массива?.Все.будет.работать.нормально,.если.ни.один.из.аргумен-


Download 4,82 Mb.

Do'stlaringiz bilan baham:
1   ...   164   165   166   167   168   169   170   171   ...   206




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish