失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【Python】HackBack(获取暴力破解服务器密码的IP来源)

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

时间:2024-01-12 04:22:19

相关推荐

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

1、前言

又在0x00sec上翻到好东东。

/t/python-hackback-updated/882

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

#!/usr/bin/python3.4import reimport urllib.requestimport jsonlog_path = "/var/log/auth.log"hosts = []key = "{YOUR_API_KEY}"#GET FAILED PASSWORD ATTEMPTdef 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 USERNAMEdef get_username(line):username_word = line.split("Failed password for invalid user ")username = (username_word[1]).split(" ")return username[0]#LOCATE IP WITH GEOIPdef geoip(host):response = urllib.request.urlopen("/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")passif __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和用户名

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

def geoip(host):response = urllib.request.urlopen("/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

如果觉得《【Python】HackBack(获取暴力破解服务器密码的IP来源)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。