【Python】HackBack(获取暴力破解服务器密码的IP来源)

1、前言

又在0x00sec上翻到好东东。

https://0x00sec.org/t/python-hackback-updated/882

帖子里的脚本会得到那些暴力服务器密码失败的IP和用户名,并且使用shodan api做一个溯源定位。

#!/usr/bin/python3.4
import re
import urllib.request
import json
log_path = "/var/log/auth.log"
hosts = []
key = "{YOUR_API_KEY}"
#GET FAILED PASSWORD ATTEMPT
def get_host(test):for line in text.split('\n'):if line.find("Failed password for invalid ") != -1:if get_ip(line) not in hosts:hosts.append(get_ip(line))return hosts
#GET USERNAME
def get_username(line):username_word = line.split("Failed password for invalid user ")username = (username_word[1]).split(" ")return username[0]#LOCATE IP WITH GEOIP
def geoip(host):response = urllib.request.urlopen("http://freegeoip.net/json/"+host)geoip = response.read().decode("utf-8")geoip = json.loads(geoip)print("\n[+] Tracking ip {}".format(geoip['ip']))print("-------------------------------")print('\tCountry : {}\n\ttimezone : {}\n\tlatitude : {}\n\tlongitude : {}'.format(geoip['country_name'],geoip['time_zone'],geoip['latitude'],geoip['longitude']))
def passive_recon(host,key):url = "https://api.shodan.io/shodan/host/{}?key={}&minify=true".format(host,key)try:response = urllib.request.urlopen(url)result = response.read().decode('utf-8')result = json.loads(result)print("[+] Passive Recon using shodan.io")print("-------------------------------")print("\tPort : {}\n\tOrganisation {}".format(result['ports'],result['org']))for x in range(len(result['ports'])):print("Banner {}".format(result['data'][x]['data']))except:print("[+] Passive Recon using shodan.io")print("-------------------------------")print("\tCan't retrieve information")pass
if __name__ == "__main__":with open(log_path, 'rt') as log:text = log.read()
get_host(text)
for host in hosts:geoip(host)passive_recon(host,key)

2、脚本实现的功能

def get_host(test):for line in text.split('\n'):if line.find("Failed password for invalid ") != -1:if get_ip(line) not in hosts:hosts.append(get_ip(line))return hostsdef get_username(line):username_word = line.split("Failed password for invalid user ")username = (username_word[1]).split(" ")return username[0]

这些函数将从auth.log文件中获取测试服务器密码的ip和用户名

使用freegeoip.net来获取ip位置(但是也可以使用shodan.io api),函数只是将json输出解析为一个美化后的文本输出。

def geoip(host):response = urllib.request.urlopen("http://freegeoip.net/json/"+host)geoip = response.read().decode("utf-8")geoip = json.loads(geoip)print("\n[+] Tracking ip {}".format(geoip['ip']))print("-------------------------------")print('\tCountry : {}\n\ttimezone : {}\n\tlatitude : {}\n\tlongitude : {}'.format(geoip['country_name'],geoip['time_zone'],geoip['latitude'],geoip['longitude']))

与shodan进行关联的脚本函数如下:

def passive_recon(host,key):url = "https://api.shodan.io/shodan/host/{}?key={}&minify=true".format(host,key)try:response = urllib.request.urlopen(url)result = response.read().decode('utf-8')result = json.loads(result)print("[+] Passive Recon using shodan.io")print("-------------------------------")print("\tPort : {}\n\tOrganisation {}".format(result['ports'],result['org']))for x in range(len(result['ports'])):print("Banner {}".format(result['data'][x]['data']))#If we don't get a 200 response code print 'Can't retrive informationexcept:print("[+] Passive Recon using shodan.io")print("-------------------------------")print("\tCan't retrieve information")pass

要获取关于黑客的信息,只需要运行:

./hackBack.py

转载于:https://www.cnblogs.com/17bdw/p/8146464.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281510.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业应用“数据优先”革命的下一个主战场:安全与运营

根据IDC发布的2015年全球CIO日程预测,80%的CIO将提供一个实现创新和改善业务决策的新体系架构。 大数据时代,企业软件市场正在经历一次大迁移,数以十亿计的企业IT支出预算将投向“数据优先”应用,而不是长久以来以业务流程和工作流…

给Web开发人员的以太坊入坑指南

以太坊现在各种学习资料数不胜数,但由于以太坊正处于飞速发展阶段,有些学习资料很快就过时了。所以想找到有价值的资料无异于大海捞针。我费了很大功夫,才建立起对以太坊的整体认识,搞清楚它的工作机制。我相信很多跃跃欲试的开发…

和硕看重物联网大势 程建中:从擅长领域出发

物联网(IoT)前景可期已是全球科技产业的共识,但是如何真正找出到位的商机,却考验产业链业者的智能。苹果iPhone代工厂和硕联合科技执行长程建中表示,物联网与大数据相关应用商机看俏,物联网筑的梦比网际网路还大,当年网…

html选择文本框后提示消失,两种方法实现文本框输入内容提示消失

第一种方法:基于HTML5 input标签的新特性 - placeholder 。另外,x-webkit-speech 属性可以实现语音输入功能。第二种方法:用span模拟,定位span,借助JS键盘事件判断输入,确定span里的内容显示隐藏。无标题文…

TensorFlow基本计算单元——变量

# -*- coding: utf-8 -*- import tensorflow as tf a 3 # 创建变量 w tf.Variable([[0.5, 1.0]]) #行向量 x tf.Variable([[2.0], [1.0]]) y tf.matmul(w, x) #矩阵相乘 print(y) # Tensor("MatMul:0", shape(1, 1), dtypefloat32)init_op tf.global_variables…

程序人生:织梦dedecms后台/会员验证码关闭

dedecms默认是所有的功能几乎只要用到验证码的地方我们都需要验证的,如果要关闭一些验证功能我们可以参考下面的教程,这里介绍了关闭后台,留言板,会员系统等验证码功能关闭了。提示:支持DedeCMS V5.6 以上的所有版本取…

html中图片的属性优化,Html标签元素在SEO中的优化方式(二)

接上html标签元素在SEO中的优化方式(一)中对HTML界面的介绍,我们今天继续补充HTML标签的SEO优化方式在内容中有几个值得去研究一下的优化元素--导航和内部链接:很明显的一点,建立导航会使搜索引擎可以容易的确定网站结构,但是很多…

Gartner认为安全性将取代成本和敏捷性成为政府部门采用云服务的首要原因

全球领先的信息技术研究和顾问公司Gartner表示,公有云如今具备可扩展性、计算威力、海量存储和安全性,可打造更好的政府数字化平台并满足对业绩和价值不断增长的期望值。 Gartner预计到2018年,提升的安全性将取代成本节约和敏捷性成为政府部门…

一款简单的缩放拖拽图片控件

本文介绍一个针对 .NET 桌面应用程序的独立图片缩放拖拽显示控件 SQPhoto[1]。SQPhoto 是一个 Windows 桌面应用的组件,支持 .NET6 和 .NET Framework 4.6 。基于 PictureBox 的图片展示工具,增加了拖动和缩放功能,便于在某些场景下的图片展…

安卓虚拟机与Hyper-V冲突

经过各种经验,哪个安卓虚拟机跟Hyper-V都存在着冲突。 解决方案一 程序中卸载Hyper-V,之后还要再配置太麻烦。 解决方案二 1、关掉Hyper-V的启动项,命令如下。 bcdedit /set hypervisorlaunchtype off 重启在开安卓模拟器蓝屏就没有了。 2、重…

共轨之家获吉利家族基金新一轮融资 5个月前曾获磐霖资本领投A轮融资

11月27日消息,近日,国内最大商用车技术服务平台共轨之家对外宣布完成新一轮融资。本轮融资由吉利家族基金投资,未来将推进共轨之家占领商用车后市场。 成立于2014年的共轨之家,以商用车技术知识科普社区起家,积累起国…

光伏产业的发展推动太阳能组件技术进步

从全球能源发展趋势的角度来看,太阳能等可再生能源势必逐步替代不可再生的传统能源,光伏产业将在全球各国的经济发展中扮演重要的角色。大力开发和利用光伏产业,对于优化我国能源结构,优化环境,保证我国社会经济可持续…

HTML怎么让div全透明,设置div为透明 怎样才让div里面的div不透明?

#a{ background:#FFCC33; filter:alpha(opacity:0); width: 300px; heig#a{background:#FFCC33; filter:alpha(opacity50); /*支持 IE 浏览器*/-moz-opacity:0.50; /*支持 FireFox 浏览器*/opacity:0.50; /*支持 Chrome, Opera, Safari 等浏览器*/width: 300px;height:300px;}还…

k64 datasheet学习笔记12---System Integration Module (SIM)

1.前言 Features of the SIM include: System clocking configuration(1)System clock divide values(2) Architectural clock gating control(3) USB clock selection and divide values(4&…

informix linux安装步骤

informix linux安装步骤整个安装过程都以root用户运行1. 创建informix用户# groupadd informix# useradd -g informix informix2. 创建安装目录: "/opt/informix"# mkdir /opt/informix# chown informix.informix /opt/informixyum install libc.so.6 libncurses.so.…

html overflow 样式,css样式之overflow-x属性样式

overflow-x是overflow子花样,平日也很少用的。overflow-x设置匿伏溢出过宽模式(比如过宽图片)、设置对象底部转折条等重要。overflow-x语法与根本懂得1、overflow-x可设置值overflow-x : visible | auto | hidden| scroll值与解释引见:visible :  不剪切…

泰国能源部携手本土企业打造智慧城市

泰国能源部与泰国安美德集团签署谅解备忘录,共同投资开发新能源在工业生产领域的应用。俞懿春 摄 泰国能源部与泰国安美德(AMATA)集团昨天在曼谷签署谅解备忘录,以公私合作模式推动安美德智慧城市开发,响应泰国政府提出…

MAMP升级mysql5.6到5.7

RT 1.先把mamp环境停掉 sudo sh /Applications/MAMP/bin/stop.sh 2.然后使用brew安装mysql5.7 brew install mysql 3.默认安装的是最新版本,因为是5.7所以要手动设置一下root用户的密码,跟着步骤设置就行 /usr/local/Cellar/mysql/5.7.20/bin sudo ./mysql_secure_…

C# WPF GridControl用法举例

概述GridControl是Dev中的表格控件&#xff0c;类似于Winfrom中的DataGridView&#xff0c;以及WPF中的DataGrid&#xff0c;但是这个控件功能比原生的功能要强大很多&#xff0c;下面用实例举例说明此控件的用法.代码前台XAML&#xff1a;<UserControl x:Class"Calibu…

js中关于Blob对象的介绍与使用

js中关于Blob对象的介绍与使用 blob对象介绍 一个 Blob对象表示一个不可变的, 原始数据的类似文件对象。Blob表示的数据不一定是一个JavaScript原生格式 blob对象本质上是js中的一个对象&#xff0c;里面可以储存大量的二进制编码格式的数据。 创建blob对象 创建blob对象本质上…