• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как быстро привести в порядок лог от MASSCAN'a?

DougMarcaida

Green Team
12.04.2018
33
2
BIT
0
Добрый день друзья, интересует вопрос: как быстро и чем привести в порядок лог от масскана?
После скана мой лог имеет вид:
Код:
open tcp 3390 167.93.195.252 1544920856
open tcp 3390 167.93.27.100 1544920856
open tcp 3390 169.139.65.136 1544920856
open tcp 3390 167.93.161.109 1544920856
open tcp 3390 167.93.91.165 1544920856
open tcp 3390 167.93.6.216 1544920856
open tcp 3390 167.93.34.185 1544920856
Нужно получить вид
Код:
167.93.195.252:3390
167.93.27.100:3390
Знаю, что в софте RDP Brute (Coded by z668) имеется адаптер лога масскана - но он работает давольно долго ( учитывая что у меня около 40гигов логов, на это уйдет очень много времени). Есть ли какие-нибудь другие решения для быстрой обработки логов? Если есть, то буду благодарен
 
Последнее редактирование модератором:

f22

Codeby Academy
Gold Team
05.05.2019
1 835
225
BIT
972
я имею ввиду , чтобы рядом с ай-пи адресом, писалась информация bannerа , как в масскане.
В самом nmap есть несколько видов выдачи -oN,, -oX, -oS, -oG, -oA - последний объединяет все.
Есть более простой вариант - перенаправление потока выдачи - символ > file.txt
То есть в этот файл и будет записываться то, что ты видишь на экране.

Вот результат сканирования:
Nmap scan report for scanme.nmap.org (74.207.244.221)
Host is up (0.029s latency).
rDNS record for 74.207.244.221: li86-221.members.linode.com
Not shown: 995 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0)
| ssh-hostkey: 1024 8d:60:f1:7c:ca:b7:3d:0a:d6:67:54:9d:69:d9:b9:dd (DSA)
|_2048 79:f8:09:ac:d4:e2:32:42:10:49:d3:bd:20:82:85:ec (RSA)
80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
|_http-title: Go ahead and ScanMe!
646/tcp filtered ldp
1720/tcp filtered H.323/Q.931
9929/tcp open nping-echo Nping echo
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.39
OS details: Linux 2.6.39
Network Distance: 11 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:kernel

TRACEROUTE (using port 53/tcp)
HOP RTT ADDRESS
[Cut first 10 hops for brevity]
11 17.65 ms li86-221.members.linode.com (74.207.244.221)

Nmap done: 1 IP address (1 host up) scanned in 14.40 seconds
Чтобы вытянуть только порты (если ты это имеешь в виду), то скрипт может выглядеть, например, так
cat nmap_ouput.log | grep -Ee "Nmap scan .*" -e "^[0-9]{1,6}\/"

Nmap scan report for scanme.nmap.org (74.207.244.221)
22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
646/tcp filtered ldp
1720/tcp filtered H.323/Q.931
9929/tcp open nping-echo Nping echo
 

DougMarcaida

Green Team
12.04.2018
33
2
BIT
0
В самом nmap есть несколько видов выдачи -oN,, -oX, -oS, -oG, -oA - последний объединяет все.
Есть более простой вариант - перенаправление потока выдачи - символ > file.txt
То есть в этот файл и будет записываться то, что ты видишь на экране.

Вот результат сканирования:
Nmap scan report for scanme.nmap.org (74.207.244.221)
Host is up (0.029s latency).
rDNS record for 74.207.244.221: li86-221.members.linode.com
Not shown: 995 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (protocol 2.0)
| ssh-hostkey: 1024 8d:60:f1:7c:ca:b7:3d:0a:d6:67:54:9d:69:d9:b9:dd (DSA)
|_2048 79:f8:09:ac:d4:e2:32:42:10:49:d3:bd:20:82:85:ec (RSA)
80/tcp open http Apache httpd 2.2.14 ((Ubuntu))
|_http-title: Go ahead and ScanMe!
646/tcp filtered ldp
1720/tcp filtered H.323/Q.931
9929/tcp open nping-echo Nping echo
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.39
OS details: Linux 2.6.39
Network Distance: 11 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:kernel

TRACEROUTE (using port 53/tcp)
HOP RTT ADDRESS
[Cut first 10 hops for brevity]
11 17.65 ms li86-221.members.linode.com (74.207.244.221)

Nmap done: 1 IP address (1 host up) scanned in 14.40 seconds
Чтобы вытянуть только порты (если ты это имеешь в виду), то скрипт может выглядеть, например, так
cat nmap_ouput.log | grep -Ee "Nmap scan .*" -e "^[0-9]{1,6}\/"
у меня есть файл ip.txt там список вида: ip;port , хочу его прочекать например на OS которая на этих ай-пи весит и чтобы это все было записано в файл вида: ip:port и рядом OS . можно ли так?
 

f22

Codeby Academy
Gold Team
05.05.2019
1 835
225
BIT
972
у меня есть файл ip.txt там список вида: ip;port , хочу его прочекать например на OS которая на этих ай-пи весит и чтобы это все было записано в файл вида: ip:port и рядом OS . можно ли так?
Конечно, можно. По очереди выполняешь эти 3 команды в консоли в той папке, где у тебя лежит файл ip.txt
cat ip.txt | cut -d ";" -f 1 | sort -u > clear_ips.txt
nmap -iL clear_ips.txt -sV > nmap_output.txt
cat output.txt | grep -Ee "Nmap scan .*" -e "OS gues"
Первая команда "вычленит" из файла ip.txt только ipшники и запишет их в файл clear_ips.txt.
Вторая передаст на вход nmap этот список, отсканирует и выведет в файл nmap_output.txt данные сканирования.
Ну, а третья уже покажет тебе результат вроде этого
Nmap scan report for li86-221.members.linode.com (74.207.244.221)
Aggressive OS guesses: Linux 2.6.32 - 3.13 (96%), Linux 2.6.22 - 2.6.36 (95%), Linux 3.10 - 4.11 (95%), Linux 3.10 (94%), Linux 2.6.32 (94%), Linux 3.2 - 4.9 (94%), Linux 2.6.32 - 3.10 (93%), HP P2000 G3 NAS device (93%), Linux 2.6.18 (93%), Linux 3.16 - 4.6 (93%)

Можешь одной стройкой выполнить
cat ip.txt | cut -d ";" -f 1 | sort -u > clear_ips.txt; nmap -iL clear_ips.txt -sV > nmap_output.txt; cat output.txt | grep -Ee "Nmap scan .*" -e "OS gues"
 

DougMarcaida

Green Team
12.04.2018
33
2
BIT
0
Конечно, можно. По очереди выполняешь эти 3 команды в консоли в той папке, где у тебя лежит файл ip.txt
cat ip.txt | cut -d ";" -f 1 | sort -u > clear_ips.txt
nmap -iL clear_ips.txt -sV > nmap_output.txt
cat output.txt | grep -Ee "Nmap scan .*" -e "OS gues"
Первая команда "вычленит" из файла ip.txt только ipшники и запишет их в файл clear_ips.txt.
Вторая передаст на вход nmap этот список, отсканирует и выведет в файл nmap_output.txt данные сканирования.
Ну, а третья уже покажет тебе результат вроде этого


Можешь одной стройкой выполнить
cat ip.txt | cut -d ";" -f 1 | sort -u > clear_ips.txt; nmap -iL clear_ips.txt -sV > nmap_output.txt; cat output.txt | grep -Ee "Nmap scan .*" -e "OS gues"
большое спасибо за информацию
 

vaszen

Member
23.01.2020
5
0
BIT
0
Конечно, можно. По очереди выполняешь эти 3 команды в консоли в той папке, где у тебя лежит файл ip.txt
cat ip.txt | cut -d ";" -f 1 | sort -u > clear_ips.txt
nmap -iL clear_ips.txt -sV > nmap_output.txt
cat output.txt | grep -Ee "Nmap scan .*" -e "OS gues"
Первая команда "вычленит" из файла ip.txt только ipшники и запишет их в файл clear_ips.txt.
Вторая передаст на вход nmap этот список, отсканирует и выведет в файл nmap_output.txt данные сканирования.
Ну, а третья уже покажет тебе результат вроде этого


Можешь одной стройкой выполнить
cat ip.txt | cut -d ";" -f 1 | sort -u > clear_ips.txt; nmap -iL clear_ips.txt -sV > nmap_output.txt; cat output.txt | grep -Ee "Nmap scan .*" -e "OS gues"
Хай! Друг, а может знаешь как реализовать что-то подобное... есть списочек ипчиков открыт vnc порт 5900. хочу определить на этих ипчиках какой где RFB протокол …чтобы выбрать нужный а остальное убрать. Есть программка Netcat - она может «грабить» баннеры там и показывают инф об протоколе пример RFB 003.008. Но у меня не достаточно скилов, чтобы организовать это дело из моего файла и чтобы на выходе после чека был файл с моими ипишниками и напротив них стояла версия RFB протокола. Пример: 47.195.255.46:5900 RFB 003.008
Возможно ты обладаешь такими знаниями и подскажешь? Сенькс
 

f22

Codeby Academy
Gold Team
05.05.2019
1 835
225
BIT
972
Есть программка Netcat - она может «грабить» баннеры там и показывают инф об протоколе пример RFB 003.008. Но у меня не достаточно скилов, чтобы организовать это дело из моего файла и чтобы на выходе после чека был файл с моими ипишниками и напротив них стояла версия RFB протокола. Пример: 47.195.255.46:5900 RFB 003.008
Возможно ты обладаешь такими знаниями и подскажешь? Сенькс
Привет!
Какой командой ты их сканируешь? nc $ip 5900 ?
Покажи, какой вывод даёт с открытым портом.
 

vaszen

Member
23.01.2020
5
0
BIT
0
Привет!
Какой командой ты их сканируешь? nc $ip 5900 ?
Покажи, какой вывод даёт с открытым портом.


root@server:~# nc 47.195.255.46 5900
RFB 003.008

Да этой командой. Меня интересует.... можно ли как-то запихнуть весь список ипишников и чтобы софт их чекнул записав результат в текстовый файл, в ручном режиме уж очень долго каждый ип чеkать....
 

f22

Codeby Academy
Gold Team
05.05.2019
1 835
225
BIT
972
можно ли как-то запихнуть весь список ипишников и чтобы софт их чекнул записав результат в текстовый файл, в ручном режиме уж очень долго каждый ип чеkать....
Конечно можно. Предположим, у тебя все IP в файле ips.txt, а выводить строки будем в файл nc_log.txt
for line in `cat ips.txt`; do nc_out=`nc -w 1 $line 5900`; echo -e ${line}":"${nc_out} >> nc_log.txt; done
То есть читаем построчно файл ips.txt
записываем вывод команды nc в переменную nc_out
ключ -w 1 - устанавливает таймаут отключения
Потом пишем в файл командой echo сначала ip (который прочитали из файла), а потом вывод команды nc (из переменной nc_out).

Вполне возможно, есть варианты проще, но я только до этого додумался.
Почему-то у самого nc встроенный вывод не отображает IP адреса.
 
Последнее редактирование:

vaszen

Member
23.01.2020
5
0
BIT
0
Конечно можно. Предположим, у тебя все IP в файле ips.txt, а выводить строки будем в файл nc_log.txt
for line in `cat ips.txt`; do nc_out=`nc -w 1 $line 5900`; echo -e ${line}":"${nc_out} >> nc_log.txt; done
То есть читаем построчно файл ips.txt
записываем вывод команды nc в переменную nc_out
ключ -w 1 - устанавливает таймаут отключения
Потом пишем в файл командой echo сначала ip (который прочитали из файла), а потом вывод команды nc (из переменной nc_out).

Вполне возможно, есть варианты проще, но я только до этого додумался.
Почему-то у самого nc встроенный вывод не отображает IP адреса.
что-то не выходит:
 

vaszen

Member
23.01.2020
5
0
BIT
0
cat забыл
for line in `cat ips.txt`
thanks
сейчас вроде как зашевeлилось, но не определяет RFB протокол, вот что пишет:

хотя все заработало. Thanks

вот такой лог:
69.135.83.162
:RFB 003.008
64.68.163.20
:RFB 004.001
50.200.193.119
:RFB 003.008
172.81.110.18
:RFB 003.008

PS можно ли сделать так чтобы лог выглядел )))):
69.135.83.162 :RFB 003.008
64.68.163.20 :RFB 004.001
50.200.193.119 :RFB 003.008
172.81.110.18 :RFB 003.008
 
Последнее редактирование:

vaszen

Member
23.01.2020
5
0
BIT
0
а покажи строчки в файле ips.txt
хотя все заработало. Thanks

вот такой лог:
69.135.83.162
:RFB 003.008
64.68.163.20
:RFB 004.001
50.200.193.119
:RFB 003.008
172.81.110.18
:RFB 003.008

PS можно ли сделать так чтобы лог выглядел )))):
69.135.83.162 :RFB 003.008
64.68.163.20 :RFB 004.001
50.200.193.119 :RFB 003.008
172.81.110.18 :RFB 003.008
 

f22

Codeby Academy
Gold Team
05.05.2019
1 835
225
BIT
972
PS можно ли сделать так чтобы лог выглядел )))):
Так так и было сделано. Я не могу сказать, что у тебя в файле с ip адресами, может быть из-за них перенос
putty_E4BC1IRlNe.png
 

DougMarcaida

Green Team
12.04.2018
33
2
BIT
0
Привет парни! Есть вопросик : просканил весь мир, теперь нужно из всего списка , удалить ай-пишники таких стран как россия , украина, казахстан, белоруссия. Как или чем можно сделать? Спасибо
 

f22

Codeby Academy
Gold Team
05.05.2019
1 835
225
BIT
972
Привет парни! Есть вопросик : просканил весь мир, теперь нужно из всего списка , удалить ай-пишники таких стран как россия , украина, казахстан, белоруссия. Как или чем можно сделать? Спасибо
Вот небольшой скрипт для Python'a. Нужны диапазоны стран. Можно взять
Python:
import ipaddress

def fill_arrays(filename, target_array):
    """Функция заполняет данными нужный список"""
    with open(filename, 'r') as reader:
        for line in reader.readlines():
            if len(line) > 6:
                target_array.append(line.strip())


# Спискок полученных IP адресов
checked_ips = []
# Список IP диапазонов стран, которые не нужны
countries_ips = []
# Список для записи данных
output = []

fill_arrays('scan_result.txt', checked_ips)
fill_arrays('countries.txt', countries_ips)

# Пробегаем по всем полученным IP адресам
for target_ip in checked_ips:
    # Потом по всем IP диапазонам
    for net in countries_ips:
        # Если IP адрес не в диапазоне, добавляем в массив для записи
        if ipaddress.ip_address(target_ip) not in ipaddress.ip_network(net, False):
            output.append(target_ip)

# Записываем результаты
with open("output.txt", "w") as writer:
    for line in output:
        writer.write(line + "\r\n")

Можно допилить, добавив проверку IP и сети регулярками
Python:
import ipaddress
import re

# Спискок полученных IP адресов
checked_ips = []
# Список IP диапазонов стран, которые не нужны
countries_ips = []
# Список для записи данных
output = []

def fill_arrays(filename, target_array):
    """Функция заполняет данными нужный список"""
    ip_pattern = "([0-9]{1,3}\\.){3}[/0-9]{1,5}"
    with open(filename, 'r') as reader:
        for line in reader.readlines():
            if re.match(ip_pattern, line):
                target_array.append(line.strip())

fill_arrays('scan_result.txt', checked_ips)
fill_arrays('countries.txt', countries_ips)

print('Filled IP\'s: ' + str(len(checked_ips)))
print('Filled countries: ' + str(len(countries_ips)))

for target_ip in checked_ips:
    for net in countries_ips:
        if ipaddress.ip_address(target_ip) not in ipaddress.ip_network(net, False):
            output.append(target_ip)

with open("output.txt", "w") as writer:
    for line in output:
        writer.write(line + "\r\n")
 
Последнее редактирование:

DougMarcaida

Green Team
12.04.2018
33
2
BIT
0
Вот небольшой скрипт для Python'a. Нужны диапазоны стран. Можно взять
Python:
import ipaddress

def fill_arrays(filename, target_array):
    """Функция заполняет данными нужный список"""
    with open(filename, 'r') as reader:
        for line in reader.readlines():
            if len(line) > 6:
                target_array.append(line.strip())


# Спискок полученных IP адресов
checked_ips = []
# Список IP диапазонов стран, которые не нужны
countries_ips = []
# Список для записи данных
output = []

fill_arrays('scan_result.txt', checked_ips)
fill_arrays('countries.txt', countries_ips)

# Пробегаем по всем полученным IP адресам
for target_ip in checked_ips:
    # Потом по всем IP диапазонам
    for net in countries_ips:
        # Если IP адрес не в диапазоне, добавляем в массив для записи
        if ipaddress.ip_address(target_ip) not in ipaddress.ip_network(net, False):
            output.append(target_ip)

# Записываем результаты
with open("output.txt", "w") as writer:
    for line in output:
        writer.write(line + "\r\n")

Можно допилить, добавив проверку IP и сети регулярками
Python:
import ipaddress
import re

# Спискок полученных IP адресов
checked_ips = []
# Список IP диапазонов стран, которые не нужны
countries_ips = []
# Список для записи данных
output = []

def fill_arrays(filename, target_array):
    """Функция заполняет данными нужный список"""
    ip_pattern = "([0-9]{1,3}\\.){3}[/0-9]{1,5}"
    with open(filename, 'r') as reader:
        for line in reader.readlines():
            if re.match(ip_pattern, line):
                target_array.append(line.strip())

fill_arrays('scan_result.txt', checked_ips)
fill_arrays('countries.txt', countries_ips)

print('Filled IP\'s: ' + str(len(checked_ips)))
print('Filled countries: ' + str(len(countries_ips)))

for target_ip in checked_ips:
    for net in countries_ips:
        if ipaddress.ip_address(target_ip) not in ipaddress.ip_network(net, False):
            output.append(target_ip)

with open("output.txt", "w") as writer:
    for line in output:
        writer.write(line + "\r\n")
спасибо, теперь осталось научиться пользоваться питоном )

Вот небольшой скрипт для Python'a. Нужны диапазоны стран. Можно взять
Python:
import ipaddress

def fill_arrays(filename, target_array):
    """Функция заполняет данными нужный список"""
    with open(filename, 'r') as reader:
        for line in reader.readlines():
            if len(line) > 6:
                target_array.append(line.strip())


# Спискок полученных IP адресов
checked_ips = []
# Список IP диапазонов стран, которые не нужны
countries_ips = []
# Список для записи данных
output = []

fill_arrays('scan_result.txt', checked_ips)
fill_arrays('countries.txt', countries_ips)

# Пробегаем по всем полученным IP адресам
for target_ip in checked_ips:
    # Потом по всем IP диапазонам
    for net in countries_ips:
        # Если IP адрес не в диапазоне, добавляем в массив для записи
        if ipaddress.ip_address(target_ip) not in ipaddress.ip_network(net, False):
            output.append(target_ip)

# Записываем результаты
with open("output.txt", "w") as writer:
    for line in output:
        writer.write(line + "\r\n")

Можно допилить, добавив проверку IP и сети регулярками
Python:
import ipaddress
import re

# Спискок полученных IP адресов
checked_ips = []
# Список IP диапазонов стран, которые не нужны
countries_ips = []
# Список для записи данных
output = []

def fill_arrays(filename, target_array):
    """Функция заполняет данными нужный список"""
    ip_pattern = "([0-9]{1,3}\\.){3}[/0-9]{1,5}"
    with open(filename, 'r') as reader:
        for line in reader.readlines():
            if re.match(ip_pattern, line):
                target_array.append(line.strip())

fill_arrays('scan_result.txt', checked_ips)
fill_arrays('countries.txt', countries_ips)

print('Filled IP\'s: ' + str(len(checked_ips)))
print('Filled countries: ' + str(len(countries_ips)))

for target_ip in checked_ips:
    for net in countries_ips:
        if ipaddress.ip_address(target_ip) not in ipaddress.ip_network(net, False):
            output.append(target_ip)

with open("output.txt", "w") as writer:
    for line in output:
        writer.write(line + "\r\n")
запустил скрипт и чет вобще ппц - проц начинает бешено грузиться и оперативка начинает с каждой секундой поглощаться . и так бесконечно долго... это наверное из-за большого файла с ип
 

f22

Codeby Academy
Gold Team
05.05.2019
1 835
225
BIT
972
запустил скрипт и чет вобще ппц - проц начинает бешено грузиться и оперативка начинает с каждой секундой поглощаться . и так бесконечно долго... это наверное из-за большого файла с ип
просканил весь мир,
Времени действительно может занять много.
Посмотрел свой же код. Скорее всего там ошибка.

Вот так, думаю, будет верно

Python:
import ipaddress
import re

# Спискок полученных IP адресов
checked_ips = []
# Список IP диапазонов стран, которые не нужны
countries_ips = []


def fill_arrays(filename, target_array):
    """Функция заполняет данными нужный список"""
    ip_pattern = "([0-9]{1,3}\\.){3}[/0-9]{1,5}"
    with open(filename, 'r') as reader:
        for line in reader.readlines():
            if re.match(ip_pattern, line):
                target_array.append(line.strip())

def write_data(filename):
    """Функция записывает обработанные данные в файл"""
    with open(filename, "w") as writer:
        for line in checked_ips:
            writer.write(line + "\r\n")


fill_arrays('scan_result.txt', checked_ips)
fill_arrays('countries.txt', countries_ips)

ready_to_check_ips = len(checked_ips)
print('Filled IP\'s: ' + str(ready_to_check_ips))
print('Filled countries: ' + str(len(countries_ips)))

# Пробегаем по всем сетям из списка для удаления
for net in countries_ips:
    # Пробегаем по всем полученным IP адресам
    for target_ip in checked_ips:
        # Если IP адрес присутствует в сети, удаяем его из загруженного списка
        if ipaddress.ip_address(target_ip) in ipaddress.ip_network(net, False):
            checked_ips.remove(target_ip)
            continue

print("\nБыло загружено адресов: " + str(ready_to_check_ips))
print("Отфильтровано адресов: " + str(ready_to_check_ips - len(checked_ips)))
# Записываем оставшиеся IP адреса
write_data("output.txt")
print("Запись завершена!")
 

jonomono

New member
18.03.2020
1
0
BIT
0
Конечно можно. Предположим, у тебя все IP в файле ips.txt, а выводить строки будем в файл nc_log.txt
for line in `cat ips.txt`; do nc_out=`nc -w 1 $line 5900`; echo -e ${line}":"${nc_out} >> nc_log.txt; done
То есть читаем построчно файл ips.txt
записываем вывод команды nc в переменную nc_out
ключ -w 1 - устанавливает таймаут отключения
Потом пишем в файл командой echo сначала ip (который прочитали из файла), а потом вывод команды nc (из переменной nc_out).

Вполне возможно, есть варианты проще, но я только до этого додумался.
Почему-то у самого nc встроенный вывод не отображает IP адреса.
здарова, а можно-ли заставить данную команду работать в многопоточности? а то блин крупные файлы уж оч долго чекаются. Есть конечно варик - запустить несколько копий разделив перед этим файл для чека на части, но это не очень удобно
 

Bergets

New member
05.03.2022
1
0
BIT
0
Добрый день друзья, интересует вопрос: как быстро и чем привести в порядок лог от масскана?
После скана мой лог имеет вид:
Код:
open tcp 3390 167.93.195.252 1544920856
open tcp 3390 167.93.27.100 1544920856
open tcp 3390 169.139.65.136 1544920856
open tcp 3390 167.93.161.109 1544920856
open tcp 3390 167.93.91.165 1544920856
open tcp 3390 167.93.6.216 1544920856
open tcp 3390 167.93.34.185 1544920856
Нужно получить вид
Код:
167.93.195.252:3390
167.93.27.100:3390
Знаю, что в софте RDP Brute (Coded by z668) имеется адаптер лога масскана - но он работает давольно долго ( учитывая что у меня около 40гигов логов, на это уйдет очень много времени). Есть ли какие-нибудь другие решения для быстрой обработки логов? Если есть, то буду благодарен

Лови дружище!

Python:
import re

def masscan_parse(brute_file):
    with open(brute_file, 'r') as file:
        hosts = []
        for line in file.readlines():
            ips_re = re.findall(r'[0-9]+(?:\.[0-9]+){3}', line)
            port_re = re.findall(r'tcp (\d+)', line)
            for p in port_re:
                for ip in ips_re:
                       hosts.append([ip, p])
    return hosts

def write_file(out_file,hosts_array):
    with open(out_file, 'w') as file:
        for host in hosts_array:
            file.write(f'{host[0]}:{host[1]}\r\n')
    print('Вывод в файл завершен!')
  
file_masscan = 'ips.txt' #Имя файлы сохраненное после масскана
file_out = 'out.txt' #Имя файла для вывода

hosts = masscan_parse(file_masscan)

write_file(file_out,hosts)
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!