Linux 马斯坎公司;Nmap脚本

Linux 马斯坎公司;Nmap脚本,linux,bash,awk,sed,Linux,Bash,Awk,Sed,我目前正在学习笔测试,在练习本“掌握kali linux for advanced Perception testing second edition”(掌握kali linux for advanced Perception testing第二版)中,他们为Masscan&Nmap(组合)提供的脚本如下: #/bin/bash 函数帮助文本{ echo“使用文件输入和IP地址范围列表输入massnmap” } 如果[“$#”-ne 1];然后 echo“抱歉,无法理解命令” 帮助文本>&2 出

我目前正在学习笔测试,在练习本“掌握kali linux for advanced Perception testing second edition”(掌握kali linux for advanced Perception testing第二版)中,他们为Masscan&Nmap(组合)提供的脚本如下:

#/bin/bash
函数帮助文本{
echo“使用文件输入和IP地址范围列表输入massnmap”
}
如果[“$#”-ne 1];然后
echo“抱歉,无法理解命令”
帮助文本>&2
出口1
elif[!-s$1];然后
回声“哦,它是空的”
帮助文本>&2
出口1
fi
如果[“$(id-u)”!=“0”];然后
echo“我认为您正在以root身份运行”
帮助文本>&2
出口1
fi
以美元为单位的范围(类别1);做
store=$(echo$range | sed-e's/\/\u g')
echo“我正在尝试创建一个要立即转储的商店,等等”
mkdir-p pwd/$store;
iptables-A-INPUT-ptcp-dport60000-j DROP;
echo-e“\n好的,让我们发射masscan****”
masscan--开放--横幅--源端口60000-p0-65535--最大速率15000-oBpwd/$store/masscan.bin$范围;马斯坎——读$
如果[!-s./results/$store/masscan-output.txt];然后
echo“谢谢你浪费时间”
其他的
awk'/open/{print$4、$3、$2、$1}./results/$store/masscan-output.txt | awk'
/.+/{
如果(!($1 in Val)){Key[++i]=$1;}
Val[$1]=Val[$1]$2“,”;
结束{

对于(j=1;j可能您应该将
行更改为:
for TARGET in$(cat/results/$store/hostsalive.csv);do
你在那一行中使用的语法写得不正确。谢谢,我会试试看,你能解释一下它是怎么不正确的吗?我真的很困惑,因为这正是我用来学习的书中的内容。再次感谢你的评论:)我刚刚试过,再次工作了,谢谢!正如阿迪特已经告诉我的:“您在该行中使用的语法写得不正确。”for
循环的语法应该是:
for
变量
字符串
中;do
…它对分配给变量的字符串中的每个单词执行正文(从
do
直到
完成)。(参见示例。)因此,在
中找到的IP的
从字面上描述了应该做什么,但不是正确的bash语法。与Ardit一样,我怀疑找到的
IP必须根据其在for循环体中的用法被目标替换。“我真的很困惑,因为这正是我正在学习的书中的内容。“->嗯,这本书似乎有一个错误。你可以向作者报告…(别忘了要求退款。)也许你应该将的
行改为这一行:
的目标是$(cat/results/$store/hostsalive.csv);do
你在那一行中使用的语法写得不正确。谢谢,我会试试看,你能解释一下它是怎么不正确的吗?我真的很困惑,因为这正是我用来学习的书中的内容。再次感谢你的评论:)我刚刚试过,再次工作了,谢谢!正如阿迪特已经告诉我的:“您在该行中使用的语法写得不正确。”for
循环的语法应该是:
for
变量
字符串
中;do
…它对分配给变量的字符串中的每个单词执行正文(从
do
直到
完成)。(参见示例。)因此,在
中找到的IP的
从字面上描述了应该做什么,但不是正确的bash语法。与Ardit一样,我怀疑找到的
IP必须根据其在for循环体中的用法被目标替换。“我真的很困惑,因为这正是我正在学习的书中的内容。“->嗯,这本书似乎有错误。你可以向作者报告…(别忘了要求退款。)
#!/bin/bash
function helptext {
echo "enter the massnmap with the file input with list of IP address      ranges"
}
if [ "$#" -ne 1 ]; then
echo  "Sorry cannot understand the command"
helptext>&2
exit 1
elif [ ! -s $1 ]; then
echo "ooops it is empty"
helptext>&2
exit 1
fi

if [ "$(id -u)" != "0" ]; then
echo "I assunme you are running as root"
helptext>&2
exit 1
fi
for range in $(cat $1); do
  store=$(echo $range | sed -e 's/\//_g')
  echo "I am trying to create a store to dump now hangon"
  mkdir -p pwd/$store;
  iptables -A INPUT -p tcp --dport 60000 -j DROP;
  echo -e "\n alright lets fire masscan ****"
  masscan --open --banners --source-port 60000 -p0-65535 --max-rate 15000          -oBpwd/$store/masscan.bin $range; masscan --read$
  if [ ! -s ./results/$store/masscan-output.txt ]; then
      echo "Thanks for wasting time"
    else
    awk'/open/ {print $4, $3, $2, $1}' ./results/$store/masscan-output.txt | awk'
                                                          /.+/{
                                                          if (! ($1 in Val)) { Key[++i] = $1; }
                                                          Val[$1] = Val[$1] $2 ",";
                                                          END{
for (j = 1; j <= i; j++) {                        printf("%s:%s\n%s", Key[j], Val[Key[j]], (j == i) ? "" : "\n");                       }
                                                                                    }'>}./results/$store/hostsalive.csv
for ips found in $(cat ./results/$store/hostsalive.csv); do
  IP=$(echo $TARGET | awk -F: '{print $1}');
  PORT=$(echo $TARGET | awk -F: '{print$2}' | sed's/,$//');
  FILENAME=$(echo $IP | awk'{print "nmap_"$1}');
  nmap -vv -sV --version-intensity 5 -sT -O --max-rate 5000 -Pn -T3 -p     $PORT -oA ./results/$store/$FILENAME $IP;
                                                                   done
                                                                 fi
                                                                 done