Topic outline
LIB pCAP
Libreria winpcap + Codice Sorgente SendPkt.c + Packet Capture
Programmazione di Rete - Python
NB1: Avviare un idle per ogni programma.
NB2:In linux si puo' inviare pacchetti in modo semplice:
$ echo "hello" > dev/tcp/<IPAddr>/<PORT>
es:$ echo "hello world" >/dev/udp/127.0.0.1/8125
NB3: In Python 2 le stringhe sono sequenze di Byte mentre in Python 3.+ sono caratteri Unicode, quindi un socket che riceve un messaggio (che e' una sequenza di byte) in Python 3.+ deve usare b'...' oppure convertirlo in Unicode se si vuole fare confronti con parole, oppure . In pratica:
.....
data = conn.recv(BUFFER_SIZE)
if (data==b'quit'):#la strin 'quit' viene convertita da unicode in byte
......
OPPURE;
if(data.decode("utf-8")=='quit'):#data viene convertito in unicode
......
Viene eseguito uno script sh se viene ricevuta la stringa 'go' in Linux
N.B.!!! Testato con Python 3.10.0
https://linuxhint.com/capture-packets-using-python/
SENDPACKET in Python:
https://iplab.naist.jp/class/2018/materials/hands-on/layer-2-raw-socket/
https://inc0x0.com/tcp-ip-packets-introduction/tcp-ip-packets-3-manually-create-and-send-raw-tcp-ip-packets/
Con libreria scapy:
https://www.freecodecamp.org/news/how-to-use-scapy-python-networking/
Esempio:
from scapy.all import send, IP, ICMP
send(IP(src="10.0.99.100",dst="10.1.99.100")/ICMP()/"Hello World")
Bit Stuffing
Realizzazione in Linguaggio C dell'algoritmo di bit stuffing.
(vedi:Corsi>Innovazione didattica>Telecomunicazioni @ Telecomunicazioni>Il livello 2: DataLink>Bit stuffing)
N.B. il codice per il programma flag.c deve essere implementato come esercizio
Comunicazione RS232
Puo' essere provato anche con Arduino utilizzando la Serial.Print() per inviare dati al PC e la Serial.available()/Serial.read() per leggere dati inviati dal PC.
N.B.!!! Non si puo' utilizzare il Monitor Seriale e contemporaneamente un programma di comunicazione RS232.
Programma di lettura dati RS232 in C tramite chiamata alle API di Windows.
NB!!!! inserire la porta nel codice sorgente nel main.
Programma di scrittura dati RS232 in C tramite chiamata alle API di Windows.
NB!!!! inserire la porta nel codice sorgente nel main.
ESEMPI
Programma in linguaggio C che visualizza il segnale RS232 di un carattere digitato da tastiera .
(Rif. Ollari "Corso di Sistema e Reti" Vol 1. pag.155)
Programma in C++ per il calcolo di appartenenza degli indirizzi IPv4 (Rif. Ollari "Corso di Sistema e Reti" Vol 2. pag.180)
Hacking
esempio: C:\>nmap -p 6000-6010 -T4 -PN 172.31.110.203
Crittografia
Script Powershell per verificare un file scaricato da Internet
Script per crittografare con AES i soli pixel di una bmp (l'immagine prodotta e' una nuvola di pixel) che iniziano dopo il byte alla posizione 54 (i byte da 0 a 54 contengono l'header), e decrittare l'immagine criptata. Se al posto di 54 si mette zero negli script seguenti viene criptato l'intero file rendendo lo stesso non apribile dai visualizzatori di immagini
Docker
Installazione su Linux Kali e Mint
Alpine + flask + mongodb
Alpine + flask + mongodb + html (template)
Kubernetes
Note su installazione e uso