• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego nie mogę wysłać pakietu?

Object Storage Arubacloud
0 głosów
126 wizyt
pytanie zadane 30 maja 2020 w Python przez tonn204 Mądrala (7,440 p.)

Cześć, chcę wysłać pakiet za pomocą raw socket, ale kod nie działa. Wyskakuje mi taki błąd:

 

 File "syn.py", line 18, in <module>
    s.send(icmp(), ("192.168.100.1", 80))
  File "syn.py", line 14, in icmp
    real_chksum = checksum(_struct.pack("!BBHHH", Type, code, chksum, ID, seq))
  File "C:\Users\Antoni\Desktop\CTF\checksum.py", line 5, in checksum
    s+= ord(data[i]) + (ord(data[i+1]) << 8)
TypeError: ord() expected string of length 1, but int found

I jak przerobić ten program, żeby wysłać pakiet TCP?

 

import socket
import _struct
from checksum import checksum
from random import randint

s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_ICMP)

def icmp():
	Type = 8 
	code = 0
	chksum = 0
	ID = randint(0, 0xFFFF)
	seq = 1
	real_chksum = checksum(_struct.pack("!BBHHH", Type, code, chksum, ID, seq)) 
	icmp_pkt = pack("!BBHHH", Type, code, socket.htons(real_chksum), ID, seq)
	return icmp_pkt

s.send(icmp(), ("192.168.100.1", 80))

 

Funkcja checksum:

 

def checksum(data):
	s = 0
	n = len(data) % 2
	for i in range(0, len(data)-n, 2):
		s+= ord(data[i]) + (ord(data[i+1]) << 8)
	if n:
 		s+= ord(data[i+1])
	while (s >> 16):
		s = (s & 0xFFFF) + (s >> 16)
	s = ~s & 0xFFFF
	return s

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 255 wizyt
pytanie zadane 29 maja 2020 w Python przez tonn204 Mądrala (7,440 p.)
0 głosów
1 odpowiedź 147 wizyt
pytanie zadane 6 czerwca 2020 w C i C++ przez tonn204 Mądrala (7,440 p.)
0 głosów
0 odpowiedzi 312 wizyt

92,762 zapytań

141,686 odpowiedzi

320,499 komentarzy

62,106 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...