LLVM 代码混淆

这里是看雪学院课程LLVM与代码混淆技术的笔记,讲师是@34r7hm4n,讲的很好,希望大家有能力的支持一下原作者。

本文环境与作者稍有不同(WSL Kali + LLVM 16.0.0),作者提供的源代码有许多编译或者运行时会出现错误,本文中对其进行了修改,使之能够正常编译和运行,多数修改部分给出了注释或说明。

阅读更多

PWN 入门

星盟安全的 PWN 学习

阅读更多

cpp

简单记录一下

《C++ Primer Plus》

阅读更多

Node.js 相关

不会 Node.js 的人已经不配再做 Web 狗了

阅读更多

计算机网络

《计算机网络:自顶向下方法》学习笔记、Wireshark 实验

阅读更多

内网渗透

《内网安全攻防——渗透测试实战指南》笔记

阅读更多

Windows 服务器安全

Windows 安全架构

安全配置

账号安全策略设置

用户账户

用户账户分为本地和全局两种,全局用户可在网络上任意计算机上登录。

Windows 常用内置账户有 Guest(低权限) 和 Administrator(高权限),可以改名,不能删除。

用于简化系统管理,通过组可以一次性位一批用户设置权限。

内置组账号:Administrators, Users, Guests, Backup Operators, Replicator, * Operators(Print Account, Server), Domain *(Administrators, Users, Guests), Network, Interactive, Everyone

组分为本地组,全剧组和特殊组。全剧组分为三类,管理员组(Domain Admins),用户组(Domain Users),访客组(Domain Guests)。特别组不能通过用户管理器增加新成员,也不能被浏览和修改,有 System(操作系统), Creator owner(创建对对象拥有所有权的用户), Interactive(以交互方式在本地系统登录入网的所有哦用户), Network(系统中通过网络连接的所有用户), Everyone(登录上网的系统中的所有用户,相当于Interactive+Network,所有登陆账户都是Everyone组的成员)。

账户安全管理

对于用户账户,应设置尽量小的权限。对于系统管理员,应妥善管理和设置口令。

应把性质相同的用户分在同一组,便于管理。

账号克隆和SID

SID,安全标识符,唯一标识用户、组和计算机账户。Windows系统使用SID区分用户。

通过对注册表的 HKEY_LOCAL_MACHIENE\SAM\SAM\Domains\Account\Users\ 下的子健操作可以克隆账户(需要System权限),可以使一个普通用户拥有与Administrator同样的权限。

账号克隆过程:打开CMD输入 net user beifeng$ 123 /add,$可以隐藏用户。这个用户在cmd的net user里看不到,但是可以在计算机管理中看到。进入注册表 HKEY_LOCAL_MACHIENE\SAM\SAM\Domains\account\user\names\beifeng$。将项beifeng$、上层目录中与beifeng$对应的000003f1、与Administrator对应的000001f4导出为.reg,打开两个reg文件,将Administrator用户对应的000001f4下的键F的值复制,覆盖beifeng$对应的项000003f1下的F的值。删除beifeng$用户(net user beifeng$ /del),再把beifeng$.reg000003f1.reg导入,设置密码(net user beifeng$ 123),完成克隆。

入侵者克隆时一般选择已有的账号进行克隆,比如aspnet, guest等,通过本地管理员检查工具枚举账户可以发现 这样的克隆管理员。

账号枚举

Windows默认允许任何用户通过空用户得到系统所有账号和共享列表,得到用户名后暴力破解密码可以进行登录。

防止方式:控制面板,管理工具,本地安全策略选项,Windows设置,安全设置,本地策略,安全选项。将网络访问,不允许SAM账户的匿名枚举网络访问,不允许SAM和共享的匿名枚举启用。

其他设置

  • Administrator账户更名。

  • 不显示上次登陆过的用户名。控制面板,管理工具,本地安全策略,本地策略,安全选项。启用登陆屏幕上不要显示上次登录过的用户名

  • 强制Windows口令的复杂性。本地计算机策略,计算机配置,Windows设置,安全设置,账户策略,密码策略。

  • 检查组和账号。我的电脑,管理,计算机管理,本地用户与组。或者通过cmd的net user命令。