C段存活主机及端口探测

在这个世界上,不是所有合理的和美好的都能按照自己的愿望存在或实现。

–平凡的世界

前言

在渗透测试中,C段和旁站是一个很重要的突破口,有时候目标站点如果是一个cms,C段和旁站也有可能是同一个cms,C段中的端口同样是一个重点,因此我写了一个小脚本,目的在于探测c段内存活主机的端口,便于进一步的信息收集及渗透。

C0DE

#!/usr/bin/env python
# coding:utf-8

import requests
from IPy import IP
import threading
import queue
import time
import sys


HH = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36'}


class WingScan(threading.Thread):
    def __init__(self, que):
        threading.Thread.__init__(self)
        self._que = que

    def run(self):
        while not self._que.empty():
            url = self._que.get()
            # print(url)
            try:
                r = requests.get(url=url, timeout=5, verify=False, headers=HH)
                if r.status_code == 200:
                    print(url)
                    f = open('collectip.txt', 'a+')
                    f.write(url)
                    f.write('\r\n')
                    f.close()
            except:
                pass


def creatip(scanip):
    que = queue.Queue()
    ip = IP(scanip, make_net=True)
    # Define the port you want to scan here!
    ports = ['80', '8080', '3389', '22', '21', '23', '3306', '445', '443']
    # http = ['http://', 'https://']
    http = ['http://']
    for i in ip:
        for j in ports:
            for k in http:
                que.put(str(k)+str(i)+':'+str(j))
    return que


def main(scanip):
    que = creatip(scanip)
    # Define the thread_count you wang to scan
    thread_count = 10
    threads = []

    for i in range(thread_count):
        threads.append(WingScan(que))

    for i in threads:
        i.start()

    for i in threads:
        i.join()


if __name__ == '__main__':
    if len(sys.argv) == 2:
        start = time.time()
        s = '''
        你陪了我多少年
        穿林打叶 过程轰轰烈烈
        花开花落 一路上起起跌跌
        春夏秋冬泯和灭
        幕还未谢
        好不容易又一年
                        Wing
        '''
        print(s)
        main(sys.argv[1])
        end = time.time()
        print (end-start)
        sys.exit(0)
    else:
        print('[Usage]:Please enter the IP you want to scan\n[***wing***]%s 192.168.1.1/24' % sys.argv[0])

与nmap的对比

这还用说吗,当然是namp最好(sao)
namp 扫描C段内各个ip的端口的命令
namp -sS -p [port] ip/24
对比图
wing
wing
wing
看来nmap的结果比较更好一些,更加准确,但是或许以后在做项目的过程中需要自己定制一些需求,还是要自己开发,各方面结合才能达到事半功倍的效果。

tips

由于py2.7和python3有很多区别,很多人电脑上都安装了这两个版本,因为实际需求,我自己也是这样,但是现在很多实用的脚本都是python2.7,在版本之间切换或许比较麻烦,以及安装相关的第三方模块,下面有简单解决的办法。
版本问题
py -2 wing.py 用python2运行
py -3 wing.py 用python3运行
模块问题
个人建议用pycharm直接安装,需要什么直接搜索即可。


   转载规则


《C段存活主机及端口探测》 Wing 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
一款跨平台本地密码查看工具 一款跨平台本地密码查看工具
你或许喜欢法国大面包,那,你喜欢自带BGM的面包吗? 在得到服务器权限之后,如果想要获取本地的账号密码,有很多方法和工具,比如mimikatz(法国大面包),可获取管理员明文密码,但是LaZagne在我看来,它还是挺好玩的,它可以读
2017-08-20
下一篇 
url采集脚本(持续更新) url采集脚本(持续更新)
一句话,一个人。一首诗,一段情。 第一次写url采集,针对的是360搜索引擎,谷歌的比较准确,但是只有20页左右,其他搜索引擎是64页左右,我的想法是集齐各个搜索引擎,得到的是这几个搜索引擎的结果,然后去重。完善中… code #!
2017-08-14
  目录