【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 hosts
def 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 information
except:
print("[+] Passive Recon using shodan.io")
print("-------------------------------")
print("\tCan't retrieve information")
pass
要获取关于黑客的信息,只需要运行:
./hackBack.py
【Python】HackBack(获取暴力破解服务器密码的IP来源)的更多相关文章
- 最详细Python批量字典暴力破解zip密码
工具破解 前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具 苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法 密码字典 巧的是破解的三个 ...
- 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码
WiFi密码Python暴力破解 Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...
- 忘记秘密利用python模拟登录暴力破解秘密
忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...
- 记录ssh暴力破解的密码字典
之前我已经在wooyun和91ri上发表了这篇文章,今天转到51cto上... 默认的ssh日志是不带密码记录功能的,现在想把登录密码记录下来,这样就可以搜集黑客的ssh爆破字典了,从而可以反扫回去. ...
- 使用Medusa美杜莎暴力破解SSH密码
使用Medusa美杜莎暴力破解SSH密码 1.Medusa简介 Medusa(美杜莎)是一个速度快,支持大规模并行,模块化的爆力破解工具.可以同时对多个主机,用户或密码执行强力测试.Medusa和hy ...
- Linux用root强制踢掉已登录用户;用fail2ban阻止ssh暴力破解root密码
Linux用root强制踢掉已登录用户 首先使用w命令查看所有在线用户: [root@VM_152_184_centos /]# w 20:50:14 up 9 days, 5:58, 3 use ...
- Odoo14 防暴力破解登录密码
1 # Odoo14 防暴力破解登录密码 2 # 主要工具:redis 3 # 实现思路:限制每个用户24小时内登录失败次数.连续超过5次失败后,需要等待一定时间后才能再次尝试登录 4 # 配置:在你 ...
- 10小时之内,暴力破解SSH账号的IP
10小时之内,暴力破解SSH账号的IP,IP 地址数据来源于 ip138.com 182.18.76.246 北京市昌平区 北京亿安天下网络科技有限公司 联通 221.223.200.143 北京市 ...
- python暴力破解压缩包密码
啥也不说,直接上代码 #-*-coding:utf-8-*- import zipfile #生成1-999999的数字密码表, 要是有别的密码类型,对密码表改造一下就可以了,也可以上网下载某些类型的 ...
随机推荐
- C语言版本:单链表的实现(优化版本)
未优化版本:http://www.cnblogs.com/duwenxing/p/7569376.html slist.h #ifndef __SLIST_H__ #define __SLIST_H_ ...
- 第二个spring冲刺第4天
今天,我们团队参考了其他团队的四则运算的程序,发现很多地方可以学习. 1.别人的界面比较唯美,我们做的有点粗糙,所以这个必须要改善. 2.别人的具有较多的功能,比如计时器,我们要效仿. 3.还有难度选 ...
- 安装visual studio过程
昨天上了一天课 ,晚上回到寝室就开始装visual studio这个软件,由于室友有安装包,免去了下载软件的时间,下面是装载软件的步骤: 点击安装,就可以了,安装完显示文件包失败,还以为是哪里弄错了, ...
- input 清空值。(转载)
ref顾名思义我们知道,其实它就可以被看座是一个组件的参考,也可以说是一个标识.作为组件的属性,其属性值可以是一个字符串也可以是一个函数. 其实,ref的使用不是必须的.即使是在其适用的场景中也不是非 ...
- 在PHPStorm中快速插入当前日期
在EditPlus中使用快捷键Ctrl+D即可插入当前日期,但在PHPStorm中似乎没有这样的快捷键,那如何实现快速插入当前日期呢?其实很简单,跟我做一遍你就会了: 目标 为PHPStorm定义一个 ...
- js 判断是否选中
js的方法 window.onload = function(){ var oDiv = document.getElementById('div1'); alert(oDiv.checked) } ...
- Oracle18c show pdbs 命令的使用.
解决来源: https://community.oracle.com/thread/4124293 我本机 连接oracle数据库 想看下pdb 结果发现不行 提示内容为: SP2-: The SHO ...
- 基于 Laravel 的 文件管理
以 laravel 5.5 为例,框架集成了文件系统和云存储功能 可以实现文件夹列表.创建.重命名.删除,文件列表.上传.重命名.删除等操作 一.先进行配置 在 config 文件夹下有 filesy ...
- python 按照固定长度分割字符串
>>> import re >>> string = '123456789abcdefg' >>> re.findall(r'.{3}', str ...
- 深入理解ajax系列第七篇——传递JSON
前面的话 虽然ajax全称是asynchronous javascript and XML.但目前使用ajax技术时,传递JSON已经成为事实上的标准.因为相较于XML而言,JSON简单且方便.本文将 ...