【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的数字密码表, 要是有别的密码类型,对密码表改造一下就可以了,也可以上网下载某些类型的 ...
随机推荐
- Linux内核分析——第六周学习笔记
进程的描述和进程的创建 前言:以下笔记除了一些讲解视频中的概念记录,图示.图示中的补充文字.总结.分析.小结部分均是个人理解.如有错误观点,请多指教! PS.实验操作会在提交到MOOC网站的博客中写.
- 20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程
第八周 进程的切换和系统的一般执行过程 一.进程切换关键代码switch_to 1.不同类型进程有不同调度需求--两种分类 2.调度策略--规则 Linux中进程优先级是动态的,周期性调整. 3.时机 ...
- java入门--4111:判断游戏胜者-Who Is the Winner
基础的题目 学习了StringBuilder, 通过delete来清空它 学了Map的简单用法 import java.util.*; public class Main { public stati ...
- Android的发展历程及搭建
Android的发展历程: 对于Android我比较不熟悉,因为我的第一只手机就是iphone,我没用过Android系统,但在中国使用带有Android系统的手机的人数是最多的,所以我想学习Andr ...
- 四则运算level2
package j; import java.util.Scanner; public class Main { public static void main(String[] args) { Sc ...
- 构建之法——Team & Scrum & MSF
第五章(团队和流程)83-99 这一章主要介绍的是团队精神 那是不是说只要能组合在一起的就是组成了一个团队了?其实不然,软件团队有各种形式,适用于不同的人员和需求.适合自己的团队才能共赢! ...
- ElasticSearch 2 (29) - 信息聚合系列之测试驱动
ElasticSearch 2 (29) - 信息聚合系列之测试驱动 摘要 我们可以用以下几页定义不同的聚合和它们的语法,但学习聚合的最佳途径就是用实例来说明.一旦我们获得了聚合的思想,以及如何合理地 ...
- 深入解读Quartz的原理
Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便. 一.核心概念 Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可. 1 ...
- js手写俄罗斯方块
代码如下 html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...
- 一本通1656Combination
1656:Combination 时间限制: 1000 ms 内存限制: 524288 KB [题目描述] 原题来自:BZOJ 2982 LMZ 有 n 个不同的基友,他每天晚上要选 ...