У меня была та же проблема с обновлением от стабильного до тестирования, и я думаю, что хороший путь состоит в том, чтобы переустановить тестирование от чистого. Поскольку, когда Вы обновляете, можно получить много поврежденных зависимостей и установленного программного обеспечения, которое работало со старыми библиотеками, может сделать проблемы. Кроме того, при установке закрытых драйверов fglrx это создали для предыдущей версии ядра и можно порвать новое. Кроме того, pae-ядра могут быть проблемой также. Так, я рекомендую Вам сделать чистую установку, если Вы не хотите бороться с поврежденными зависимостями и драйверами.
Если бы я получил “более или менее открытые порты ниже 443” случаев правильно, то это должно быть универсальным решением, обрабатывающим их правильно:
awk '/\/https\// {for(i=5;i<=NF;i++)if($i~"/open/.+/https/"){sub("/.*","",$i); print $2" "$i}}' nmap-synscan.gnmap
Это лучше подходит для парсинга регулярными выражениями, чем полями. Почему бы не использовать Perl?
$ perl -lne '/Host:\s*([\d\.]+)/; $h=$1;
print "$h $_" for (/(\d+)\/open[^\s]+https/g);
' file
123.123.123.123 443
123.123.123.123 10443
123.123.123.123 443
123.123.123.123 8443
123.123.123.123 443
123.123.123.123 443
Первая строка просто получает IP хоста и сохраняет его как $h
. Вторая строка, соответствует всем числам, которые сопровождаются /open
затем один или несколько непробельных символов и затем https
. Это должно соответствовать, все открываются https
порты. print
оператор распечатает имя хоста ($h
) и каждый из подобранных портов (сохраненный как специальная переменная $_
).
awk
split
функция может использоваться для извлечения полей из вывода gnmap.
split("443/open/tcp//https?///, a, "/"); print a[1]
дает Вам 443
.
Используйте это для печати IP и порта для строк, которые показывают по крайней мере один открытый https порт:
awk '{ for (f=5; f <= NF; f++) {
split($f,a,"/");
if (a[2] != "open") continue;
if (a[5] ~ /https.*/) {
print $2, a[1];
}
}
}' nmap-synscan.gnmap
Используйте это для печати IP и порта для строк, которые показывают открытый https порт и по крайней мере один открытый порт ниже https:
awk '{ lowopen = 0;
for (f=5; f <= NF; f++) {
split($f,a,"/");
if (a[2] != "open") continue;
if (a[1] < 443) lowopen++;
if (lowopen && a[5] ~ /https.*/) {
print $2, a[1];
}
}
}' nmap-synscan.gnmap
Править: для ответа на второй вопрос используйте это для печати IP и порта для строк, где точно второй открытый порт является https:
awk '{ split($6,a,"/");
if (a[5] ~ /https.*/) {
print $2, a[1];
}
}' nmap-synscan.gnmap
open
порты. Таким образом, команда должна быть обновлена к (если часть):if($i~"/https/"&&$i~"/open/")
– BMW 22.01.2014, 03:55