【信息收集】用python对目标网站进行 C段扫描 与 旁站扫描(八)

一、旁站探测

1.1 设计思想

1.旁站的概念
​ 旁站指的是同一服务器上的其他网站,很多时候,有些网站可能不是那么容易访问。那么,可以查看该网站所在的服务器上是否还有其他网站。如果有其他网站的话,可以先拿下其他网站的webshell,然后再提权拿到服务器的权限,最后就自然可以拿下该网站。

2.设计思想
封装domain数据以post方法请求 webscan.cc,进行旁站扫描,本例中返回与baidu.com在同站上的其他网站的域名。

1.2 代码

def site(domain):
	headers = {
        'Accept': '*/*',
        'Accept-Language': 'en-US,en;q=0.8',
        'Cache-Control': 'max-age=0',
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36',
        'Connection': 'keep-alive',
        'Referer': 'http://www.baidu.com/'
    }
    data = {
        'domain': domain
    }
    data_json = json.dumps(data)
    results = requests.post('https://www.webscan.cc/', headers=headers, data=data_json, verify=False)
    soup = BeautifulSoup(results.content, 'html.parser')
    job_bt = soup.findAll('li')
    # print(job_bt)
    number = 1
    res_list = []
    try:
        for i in job_bt:
            result = {
                '序号': number,
                '名称': i.span.string,
                '域名': i.a.string
            }
            number += 1
            res_list.append(result)
    except Exception as e:
        pass
    print(res_list)

if __name__ == '__main__':
    site("baidu.com")

返回结果:

[
{'序号': 1, '名称': 'Null', '域名': 'tools.ggogle.com'}, 
{'序号': 2, '名称': 'P-Learning - Corsi Di Formazione Professionale', '域名': 'www.p-learning.com'}, 
{'序号': 3, '名称': 'Null', '域名': 'www.1gyw8u.cyou'}, 
{'序号': 4, '名称': '仍玩游戏-仍爱玩那些让人热血沸腾的游戏', '域名': 'www.rr55.com'}, {'序号': 5, '名称': 'Null', '域名': 'www.1rw7no.cyou'}, 
{'序号': 6, '名称': 'Null', '域名': 'gw.fzzqcdn.com'}, 
{'序号': 7, '名称': 'Null', '域名': 'www.104uzb.cyou'},
{'序号': 8, '名称': 'Null', '域名': 'js-gt.com'}
]

二、C段扫描

2.1 设计思想

1.C段的概念
C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。

2.设计思想
首先对传入的IP地址进行 “减D段” 操作,例如传入“192.168.137.129”,经减D操作后得“192.168.137.”,此字符串拼接一个 1~255 之间的数字,得到此IP的整个C段。对 全C段 进行 ping 操作,通过观察返回的TTL得此C段中存活的主机。
此方法还使用了多线程技术,使得扫描速度大大加快。

2.2 代码

import time
from subprocess import Popen, PIPE
import threading

threads = []
thread_max = threading.BoundedSemaphore(255)


# ping检测
def ping_check(ip):
    # ip = '127.0.0.1'
    check = Popen('ping {0}\n'.format(ip), stdin=PIPE, stdout=PIPE, shell=True)
    data = check.stdout.read()
    data = data.decode('GBK')

    if 'TTL' in data:
        print('[+] The host {0} is up'.format(ip))
    # else:
    # print('[+] The host {0} is down'.format(ip))


# 多线程执行
def main(ip):
    for i in range(1, 255):  # 整个D段
        new_ip = ip + str(i)
        thread_max.acquire()
        t = threading.Thread(target=ping_check, args=(new_ip,))
        threads.append(t)
        t.start()
    for t in threads:
        t.join()


if __name__ == '__main__':
    ip = "192.168.137.129"

    # 减D段
    point_number = 0
    figure_number = 0
    for i in ip:
        figure_number += 1
        if i == '.':
            point_number += 1
        if point_number == 3:  # 当遇到第三个.时,进入D段
            cut = len(ip) - figure_number  # 用ip总长度减去A,B,C段长度,即为D段长度
            break

    new_ip = ip[:-cut]
    print(new_ip)

    print('[+] Strat scaning......Please wait...')
    start = time.time()
    main(new_ip)
    end = time.time()
    print("------------耗时{0:.5f}秒------------".format(end - start))

返回结果:

192.168.137.
[+] Strat scaning......Please wait...
[+] The host 192.168.137.2 is up
[+] The host 192.168.137.129 is up
[+] The host 192.168.137.133 is up
------------耗时19.53805秒------------

三、Reference

https://blog.csdn.net/weixin_45605352/article/details/117326120

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C扫描工具可以使用Python来编写。以下是一个简单的Python程序,用于扫描指定CIP地址的开放端口: ```python import socket def scan_port(ip, port): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(0.5) try: s.connect((ip, port)) print(f"Port {port} is open on {ip}") except: pass finally: s.close() def scan_c_segment(c_segment): for i in range(1, 256): ip = f"{c_segment}.{i}" for port in [80, 443, 8080]: scan_port(ip, port) if __name__ == "__main__": c_segment = "192.168.1" scan_c_segment(c_segment) ``` 在这个程序中,我们使用了Python内置的socket模块,用于进行TCP连接。我们首先定义了一个scan_port函数,该函数接受IP地址和端口号作为参数,并尝试建立TCP连接。如果连接成功,则表明该端口开放,程序将输出提示信息。如果连接失败,则程序将继续执行,尝试连接下一个端口。 我们还定义了一个scan_c_segment函数,该函数接受CIP地址作为参数,并循环遍历该C内的所有IP地址,同时针对三个常见端口(80、443、8080)进行扫描。最后,在程序的主函数中,我们定义了CIP地址为"192.168.1",并调用scan_c_segment函数进行扫描。 需要注意的是,这只是一个简单的示例程序,不能满足所有情况,对于大型网络,可能需要使用更复杂的程序来进行扫描。同时,在使用该程序时,请务必遵守法律法规,不要用于非法目的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微雨停了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值