2016-01-07 2 views
0

Я хочу использовать scapy сделать Tcp 3-полосная дрожание рук, мой код ниже:scapy 3-полосная дрожание рук не работает

from scapy.all import * 
# VARIABLES 
src = sys.argv[1] 
dst = sys.argv[2] 
sport = random.randint(20000,65535) 
dport = int(sys.argv[3]) 
print src 
print dst 
print sport 
print dport 
# SYN 
ip=IP(src=src,dst=dst) 
SYN=TCP(sport=sport,dport=dport,flags='S',seq=1000) 
SYNACK=sr1(ip/SYN) 
SYN.show() 
SYNACK.show() 
# ACK 
seq=SYNACK.ack + 1 
ack=SYNACK.seq + 1 
print seq 
print ack 
ACK=TCP(sport=sport, dport=dport, flags='A', seq=seq, ack=ack) 
sr1(ip/ACK) 
ACK.show() 

команда ехес:

python 3WSK.py 10.16.11.21 10.11.157.130 26789 

И SYNACK ниже:

###[ IP ]### 
version = 4L 
ihl  = 5L 
tos  = 0x0 
len  = 44 
id  = 0 
flags  = DF 
frag  = 0L 
ttl  = 60 
proto  = tcp 
chksum = 0x821a 
src  = 10.11.157.130 
dst  = 10.16.11.21 
\options \ 
###[ TCP ]### 
sport  = 26789 
dport  = 35067 
seq  = 1918207620 
ack  = 1001 
dataofs = 6L 
reserved = 0L 
flags  = SA 
window = 5840 
chksum = 0xd630 
urgptr = 0 
options = [('MSS', 1460)] 
###[ Padding ]### 
load  = '\x00\x00' 

, но мой сервер tcp не регистрирует ничего.

для теста: Я использую telnet 10.11.157.130 26789 соединить мой TCP сервер, то мой TCP сервер может войти что-то вроде: "INFO ltTcpServer - в, /10.16.11.21:34906"

Так, I`m не уверен, что мой кошечный код подключен успешно или нет, я также хочу знать, как работает tcp connect, или нет. спасибо

ответ

0

Проверьте, не появляется ли RST, отправляемое с вашего устройства, когда приходит SYN + ACK. Если так посмотреть на this answer и падение RST с IPTables:

iptables -A OUTPUT -p tcp --tcp-flags RST RST -s <your_ip> -j DROP

если тот не случай взглянуть на this gist, который прекрасно работает для меня.