首先,感谢您花时间和精力帮助我解决这个问题。现在,闲话少说,我的问题。
我是网络安全专业的学生,我正在尝试制作 bash 脚本来枚举我的目标主机。我有几个在功能中重复的 echo -e 命令,但为了在我的渗透测试报告中清晰可见,需要将它们放在输出文件中的位置。此外,我什至将命令输出发送到适当的文件。我的问题是这样的:
我如何附加回显消息的输出(如下所示)以在两个文件中占据应有的位置?(这是一个简短的摘录)
(omitted)
Enum_Report=(Enum_Report-$(date "+%F-%H-%M-%S").txt)
Enum_Log=(Enum_Webserver_Log-$(date "+%F-%H-%M-%S").txt)
Err_Log=(Enum_Report_Error_Log-$(date "+%F-%H-%M-%S").txt)
(omitted)
echo -e "\nWhat's the kernel version? Is it 64-bit?\n" >> $Enum_Report >> $Err_Log
{
cat /proc/version
uname -a
uname -mrs
dmesg | grep Linux
ls /boot | grep vmlinuz-
} >> $Enum_Report 2>>$Err_Log
echo -e "\nWhats cached, IP and/or MAC addresses?\n" >>$Enum_Report >> $Err_Log
{
arp -e
route
/sbin/route -nee
} >> $Enum_Report 2>>$Err_Log
(omitted)
目前,仅回显输出到 $Err_Log,我希望它作为我在两个文件中使用的每个命令组的开头。基本上,我想在标题下和两个单独的文件中记录从此脚本运行的所有命令。重定向 stdout 和 stderr 可以很好地将命令组的输出分离到单独的文件中。当然,必须有一种更简单的方法在命令运行之前将 echo 消息附加到两个文件,以便 echo 命令 stdout 落在 $Enum_Report 和 $Err_Log 中,然后每个命令组的输出正常运行。
其他需要注意的信息:
我的目标主机是与我的 Kali-box 位于同一网络上的虚拟机,运行 Ubuntu 14.04.5 LTS
再次感谢,
-N-
答案1
您无法将输出重定向到多个文件,但可以使用tee
或tee -a
。
echo -e "\nWhat's the kernel version? Is it 64-bit?\n" | tee -a $Enum_Report >> $Err_Log