Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 Wochen, 1 Tag her
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 Monat her
Код задачи.
```
# ------------------------- dependencies ------------------------- #
from scapy.layers.inet import IP, TCP
from scapy.sendrecv import sr1
from socket import socket, AF_INET, SOCK_STREAM, timeout
from sys import argv, exit
# ------------------------- ------------ ------------------------- #
# scapy is necessary to perform the "stealth" scan by sending TCP packets with SYN flag without finishing the TCP connection sequence.
# socket.socket is needed to send the raw http GET request to check if a HTTP service is running on specified port
# a simple raw HTTP GET request using old HTTP version - 1.0
raw_http_get = 'GET / HTTP/1.0\r\nConnection: keep-alive\r\n\r\n'.encode()
# --------- input information --------- #
destination : str = None
port : int = None
timeout : int = None
# --------- ----------------- --------- #
# ---------- scanning results ---------- #
port_status : str = 'Closed'
is_http : bool = False
service_name : str = None
# ---------- ---------------- ---------- #
if __name__ == '__main__':
# checking if command-line arguments have the necessary number of arguments
if len(argv) != 4:
print(f'usage: {argv[0]} target-ip target-port timeout')
exit(1)
\# target IP
destination = argv[1]
port = int(argv[2])
\# connection timeout
timeout = int(argv[3])
\# generating TCP packet with SYN flag
packet = IP(dst = destination) / TCP(dport = port, flags = 'S')
\# sending the generated packet
response = sr1(packet, verbose = False, timeout = timeout)
if response and response[TCP].flags == 'SA':
\# If the port is open the server will send a TCP packet with SYN\-ACK (SA) flags as a response.
\# Other flags will indicate that the port is probably closed.
port\_status = 'Opened'
else:
print('Port is not open. Quitting...')
exit(0)
\# creating a socket with TCP
sock = socket(AF\_INET, SOCK\_STREAM)
sock.settimeout(timeout)
sock.connect((destination, port))
sock.send(raw\_http\_get)
\# receiving the response as a bytes\-like object and decoding to str
response = sock.recv(4096).decode()
if not response:
\# in this case the response will be equal to '' \- indicating that the connection was closed by server.
print('Connection has been closed. Quitting...')
if response[:4] == 'HTTP':
\# if the HTTP service is running on the specified port, the first letters of the response will be "HTTP".
is\_http = True
\# finding the first letter index of the "Server" header.
server\_header\_index = response.find('Server:')
if server\_header\_index != \-1:
\# str.find() method returns \-1 if it could not find the first letter index of the specified string
\# those are some basic operations with list. Try to understand how it works yourself.
server\_header\_newline\_index = response[server\_header\_index:].find('\r\n')
service\_name = response[server\_header\_index + 7:server\_header\_index + server\_header\_newline\_index].strip()
# printing results to stdout
print(f'''
IP: {destination}
Port: {port}
Port status: {port_status}
Is HTTP: {is_http}
Service name: {service_name}
''')
```
Поскольку в комментариях этого поста никто не отправил решение задачи, его выложу я сам.
Я также добавил комментарии на английском объясняющие те или иные аспекты кода. Код старался писать максимально просто и ясно, думаю с чтением кода проблем не будет.
Задача для тех, кто уже знает базу языка Python.
Думаю вы все знакомы с инструментом Nmap.
Задача:
Создайте скрипт, который проводит т.н. "стелс" сканирование, как делает Nmap, и определяет:
Исходный код можете оставить в комментариях под этим постом.
Для тех, кто уже знает базу питона, создам задачу самостоятельно.
Пока я ленюсь делать новые посты, могу посоветовать вам изучать метасплойт и метасплойтбл (metasploitable 2).
Metasploitable 2 - подготовленная ОС для тестирования различных эксплойтов и уязвимостей. Думаю вам будет интересно поиграться с ним.
Хочу написать несколько программ связанных с кибер-атаками, инструкциями как их использовать и как от них защищаться, чтобы вы смогли самому протестировать их и поближе познакомиться с практической частью кибер-безопасности. Публиковать буду на гитхаб.
Что думаете касательно этого? можете написать мне в бот: @secarmbot
Друзья, мой второй канал удалил по причине нехватки времени для его ведения.
Но если у вас появятся вопросы касательно программирования - пишите здесь, с радостью готов помочь вам всем.
Чат открыт!
Common vulnerabilities and exposures (CVE)
CVE - один из наиболее известных методов идентификации уязвимостей в различных сервисах и программах.
Что это значит?
Этичные хакеры или другие похожие специалисты в определённых сервисах (программах) ищут уязвимости, которые способны навредить стабильной работе программы, навредить системе, предоставить удалённый доступ к устройству и так далее.
Список найденных уязвимостей, которые занесены в базу CVE - огромен, и находится она на сайте cve.org. Рекомендую поподробнее изучить эту тему в интернете.
Пример одного CVE:
CVE-2011-2523 (довольно старая и ныне неактуальная уязвимость): Найденная уязвимость позволяет получать удалённый доступ к устройству и выполнять команды. Происходит это из-за уязвимости vsFTPd версии 2.3.4
Информация получена из https://www.cve.org/CVERecord?id=CVE-2011-2523
P.s. vsFTPd - протокол для передачи файлов между устройствами. С помощью него пользователи могут из одного сервера или компьютера загружать/выгружать различные файлы в другой.
Architec.Ton is a ecosystem on the TON chain with non-custodial wallet, swap, apps catalog and launchpad.
Main app: @architec_ton_bot
Our Chat: @architec_ton
EU Channel: @architecton_eu
Twitter: x.com/architec_ton
Support: @architecton_support
Last updated 2 Wochen, 1 Tag her
Канал для поиска исполнителей для разных задач и организации мини конкурсов
Last updated 1 Monat her