• 使用python处理子域名爆破工具subdomainsbrute结果txt


    近期学习了一段时间python,结合自己的安全从业经验,越来越感觉到安全测试是一个体力活。如果没有良好的coding能力去自动化的话,无疑会把安全测试效率变得很低。

          作为安全测试而言,第一步往往要通过爆破目标站的一级域名开始。作为安全而言,最薄弱的地方往往不是主站,而是二级和三级域名。通过大牛lijiejie的工具subdomainsbrute我们可以轻松的获得一个子域名列表和IP的txt文件:

    www.1.edu.cn                    125.x.x.x
    cs.2.edu.cn                     125.x.x.x
    my.3.edu.cn                     182.x.x.x

          作为安全测试最朴素的思想一定是,对整个网站的端口进行相关的扫描。分析lijiejie安全工具的源码我们可知dns爆破主要是通过多线程对dns服务器进行请求,我们不可避需要对所有爆破出的url一个个粘贴到浏览器中进行测试,这样的效率非常低,而且容易狗带。同时鉴于这种黑暗的txt输出格式,我们需要把所有ip都手工ctrl+c,ctrl+v到一个新的txt中才能进行nmap扫描,每次工作的时候我的心情总是崩溃的。学习了python之后我们可以通过比较简单的方法来完成对上述工作的自动化。

          主函数的设计思路非常简单,主要就是三个简单的功能,格式化subdommain输出结果,放进nmap扫描,对域名进行url试探。

          接下来我们希望对txt本身的字符串进行相关处理,format()。即我希望分离出两个文档,1个为ip地址的txt。一个为域名的txt。

      

    1   temp=sys.argv[1]
    2     print '-'*40
    3     print '正在格式化文本'
    4     inputname=str(temp)
    5     input=open(inputname,'r')
    6     scan=open('ip.txt','w')
    7     url=open('url.txt','w')

      首先通过创建一个input,读入subdommain输出的txt文件。

      同事创立两个scan与url分别存放即将输出的IP和url文件。

      下面要做的就是对subdomain的字符串格式化。

        for line in input:
            t=line.strip()
            final=t.split()
            scan.write(final[1]+'\n')
            url.write(final[0]+'\n')

      通过for循环读入文件中的每一行,通过line.strip()去掉两遍的空格后,用.split()方法以空格为界,切出一个list保存原文件的ip和url。

      下一步主要是将ip循环放进nmap扫描即可。这个实现比较容易。

       1 os.system(order+'-iL ip.txt') 

      最后通过request模块对url地址获得状态吗,即可完成收集工作。

      

     1     print '-'*40
     2     print '正在请求url分析响应结果'
     3     urlfile=open('url.txt','r')
     4     urlfinal=open('urlresult.txt','w')
     5     for line in urlfile:
     6         t=line.strip('\n')
     7         try:
     8             status=requests.get('http://'+t).status_code
     9             print t+'     '+str(status)
    10             urlfinal.write(t+'  '+str(status)+'\n')
    11         except:
    12             print t + '     ' + 'unknown'
    13             urlfinal.write(t+'  '+'unknown\n')
    14             continue
    15     urlfinal.close()
    16     os.remove('url.txt')

      

      

          

    Q:471795876 Wechat:lesswindy 欢迎一切感兴趣的同行一同交流,黑产不接,谢谢。
  • 相关阅读:
    vim使用基础
    linux基本命令随笔
    linux学习笔记
    中台建设随笔
    数据密集型系统响应优化
    TCP断开连接的问题
    多渠道接入系统总结
    关于实践的认识
    博客说明
    python下载图片的问题思考
  • 原文地址:https://www.cnblogs.com/Hyber/p/5981873.html
Copyright © 2020-2023  润新知