, если вы перейдете к
cd /usr/share/nmap/scripts
вы увидите множество предустановленных скриптов в Kali Linux. вот как вы используете их с nmap.
nmap --scripts=ssh.brute.nse TargetIpAdress
в том же каталоге, если вы наберете
nano ssh-brute.nse
вы получите доступ к скрипту для изменения некоторых опций.
Вы также можете скачать скрипты nse с github. вот 2 из них.
git clone https://github.com/scipag/vulscan
git clone https://github.com/vulnersCom/nmap-vulners
реализация этих скриптов немного отличается. в каталоге этих скриптов
nmap --script vulscan targetIpAddress
Мы можем сделать это, используя следующий подход, в котором мы используем sed
для руководства grep
при поиске строк с учетом их соседства:
sed -e 's/.*/\\<&\\>/' f1 | grep -Ef - f3col
Выходы:-
1 2 3
5 10 15
10 11 12
150 151 152
Используя awk
, мы можем сделать так, как показано. Сначала мы формируем ассоциативный массив a[...]
со столбцами файла с одним столбцом -. После этого в каждой строке файла с тремя столбцами -мы инициализируем флаг p
и увеличиваем его всякий раз, когда есть данные из файла с одним столбцом, соответствующие любому из полей. Затем в конце цикла for мы условно печатаем запись reCord, если флаг когда-либо увеличивался хотя бы один раз.
awk '
NR==FNR{a[$1];next}
{
for (p=i=1; i<=NF; i++) if ($i in a) p++
}p>1
' f1 f3col
python
изначально поддерживает структуру данных set
, которую мы делаем, как показано ниже, где печать происходит, когда пересечение наборов непусто:
python3 -c 'import sys
file1,file2 = sys.argv[1:]
with open(file1) as f1, open(file2) as f2:
s1 = { _.rstrip() for _ in f1 }
for _ in f2:
s2 = set(_.rstrip().split())
if bool(s2 & s1):
print(_,end="")
' f1 f3col
Используя конструкции POSIX sed
, мы сначала генерируем код POSIX sed, используя файл с одним столбцом, а затем применяем его к файлу с тремя -столбцами:
sed -e '
h;G;G
s/.*/^&$/
s|\n| /b&/ |g
s|.*|/&/b|;$a\
d
' f1 | sed -f - f3col
perl
можно сделать это несколькими способами:
perl -lane '
@A || chomp(@A=<STDIN>);
for my $f (@F) {
print,last if grep { $f == $_ } @A;
}
' f3col < f1
perl -MList::Util=any -lane '
chomp(@A=<STDIN>) if !@A;
print if
any {
my $f = $_;
any { $_ == $f } @A;
} @F;
' f3col < f1