查看: 172067|回复: 902

[Python] 一个简短的字符处理脚本

[复制链接]
发表于 2015-11-20 11:18:32 | 显示全部楼层 |阅读模式
本帖最后由 sladjfksld 于 2015-11-20 11:46 编辑

前几天用cain嗅探一个C段时,嗅出了一堆3389登录账号密码,大概有几万个吧,其中大部分都是别人爆破的记录,是无效的的。
cain把每个登录记录都保存一个txt,用cain rdp parser读取的话,要点开好几万次txt,那得搞死个人,并且也不容以判断哪个是有效的,哪个是爆破的。
在网上down了一个批量读取记录的php脚本,下载地址见:http://lcx.cc/?i=3307,读出来的账号密码单独保存在一个txt中,就是下面的截图
QQ截图20151120111112.jpg
但是这玩意儿有好几万个记录,也不好判断哪个有效啊,然后无赖之下就写了个python脚本,便于分析
脚本代码如下:
[AppleScript] 纯文本查看 复制代码
import string

list=[]
list_server=[]
depre_list_server=[]
result_list=[]

#提取被爆破serve的IP地址,并去重
def obtain_server_address():
    for line in open('rdp.txt'):
        list.append(line)
    for line_list in list:
        if('Server' in line_list):
            line_server_address=line_list.split(':')[1].strip()
            list_server.append(line_server_address)
        else:
            pass
    list_server_depre=set(list_server)
    for i in list_server_depre:
        depre_list_server.append(i)
        
#按被爆破serverIP地址,登录源地址,账号,密码打印列出    
def trans_str():
    for server_address in depre_list_server:
        for line_index,value in enumerate(list):
            if(server_address in value):
                client_address_index=line_index+1
                username_index=line_index+2
                password_index=line_index+3
                if('Client' in list[client_address_index]):
                    client_address=list[client_address_index].split(':')[1].strip()
                else:
                    client_address='不存在client server'
                if('username' in list[username_index]):
                    username=list[username_index].split(':')[1].strip().replace(' ','')
                else:
                    username='不存在username'
                if('password' in list[password_index]):
                    password=list[password_index].split(':')[1].strip().replace(' ','')
                else:
                    password='不存在password'
                result=server_address+' '+client_address+' '+username+' '+password
                result_list.append(result)
            else:
                pass
    for result_index,result_line in enumerate(result_list):
        result_dict=result_line.split(' ')
        if(result_index==0):
            print result_line
        elif(result_index>0):
            if(result_dict[0]!=result_list[result_index-1].split(' ')[0]):
               print result_line
            else:
               print '               ',result_dict[1],result_dict[2],result_dict[3]
        else:
            print '出现错误'

if __name__=="__main__":
    obtain_server_address()
    trans_str()


执行结果见图
02.jpg
第一列是服务器地址,第二列是登录源地址,第三列是账号,第四列是密码。可以看到登录源地址大部分都相同,这肯定是爆破记录,一般都是无效的,不用去登录尝试了
只需要重点找那些单独出现的登录源地址对应的账号密码尝试就OK了
回复

使用道具 举报

发表于 2015-11-21 15:01:45 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2015-11-21 19:45:05 | 显示全部楼层
支持,看起来不错呢!
回复 支持 反对

使用道具 举报

发表于 2015-11-22 01:10:14 | 显示全部楼层
感谢楼主的分享~
回复 支持 反对

使用道具 举报

发表于 2015-11-22 15:26:59 | 显示全部楼层
感谢楼主的分享~
回复 支持 反对

使用道具 举报

发表于 2015-11-23 03:48:08 | 显示全部楼层
支持,看起来不错呢!
回复 支持 反对

使用道具 举报

发表于 2015-11-23 13:21:46 | 显示全部楼层
学习学习技术,加油!
回复 支持 反对

使用道具 举报

发表于 2015-11-23 21:24:04 | 显示全部楼层
支持,看起来不错呢!
回复 支持 反对

使用道具 举报

发表于 2015-11-24 11:36:32 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2015-11-24 16:59:01 | 显示全部楼层
感谢楼主的分享~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

旗下站点

邮箱系统

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2025-3-7 03:13 , Processed in 0.021375 second(s), 10 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部