绕过UAC
什么是UAC?用户帐户控制,通常简称 UAC,是 Windows Vista 和 Windows Server 2008中引入的 Windows 安全组件。UAC 尽可能限制进程对管理级(特权)资源和操作的访问,除非用户明确授予这些权限。换句话说,它是Windows的一个安全功能,它支持防止对操作系统进行未经授权的修改,UAC确保仅在管理员授权的情况下进行某些更改。如果管理员不允许更改,则不会执行这些更改,并且Windows系统保持不变。
UAC如何运行?UAC通过阻止程序执行任何涉及有关系统更改/特定任务的任务来运行。除非尝试执行这些操作的进程以管理员权限运行,否则这些操作将无法运行。如果您以管理员身份运行程序,则它将具有更多权限,因为它将被“提升权限”,而不是以管理员身份运行的程序。
一些没有管理员权限无法完成的操作:
注册表修改(如果注册表项在HKEY_LOCAL_MACHINE下(因为它影响多个用户),它将是只读的)
加载设备驱动程序
DLL注入
修改系统时间(时钟)
修改用户帐户控制设置(通过注册表,可以启用/禁用该设置,但您需要正确的权限才能执行此操作)
修改受保护的目 ...
钓鱼之office宏攻击
什么是Office宏?
宏是一种特殊用途的程序,用于在较大的应用程序或软件中实现过程自动化。宏通常由一系列命令和操作组成,这些命令和操作是用专用的宏语言或标准编程语言编写的。当某个触发器发生时,应用程序将自动执行这些命令。
宏在 Office 套件中得到广泛实现,以实现常见任务和过程的自动化。不同的套件使用不同的宏语言,但值得注意的是 Visual Basic for Applications (MS Office)、 LibreOffice Basic (LibreOffice)和 OpenOffice Basic (OpenOffice Basic)。
大多数 Office 宏语言具有相当广泛的特性,可以访问各种资源。例如,MS Office 宏(用 VBA 编写)可以运行可执行文件并使用网络功能。
为什么这是一个问题?正如任何允许在后台执行可定制脚本的程序一样,攻击者可以利用 Office 套件运行恶意代码并危害受害者。通常宏恶意软件在感染链中扮演加载程序的角色,在终止之前会下载并执行另一个有效载荷。这个恶意软件会被植入到——你猜对了——一个 Office 文件中,然后被植入到某 ...
凭证窃取的几种方式
0x01 Windows登录凭证窃取
Windows的系统密码hash默认情况下一般由两部分组成:第一部分是LM-hash,第二部分是NTLM-hash。它们都是用户密码经过hash加密后的形式。
Windows系统下hash密码格式为:用户名称:RID:LM-HASH值:NT-HASH值。
1234567例如:Administrator:500:AF01DF70036EBACFAAD3B435B51404EE:44F077E27F6FEF69E7BD834C7242B040用户名称为:AdministratorRID为:500LM-HASH值为:AF01DF70036EBACFAAD3B435B51404EENTLM-HASH值为:44F077E27F6FEF69E7BD834C7242B040
1.从LSASS内存中读取lsass.exe是一个系统进程,用于微软Windows系统的安全机制。它用于本地安全和登陆策略。
要想读取内存的密码,前提是用户登陆过机器,登陆过就会在内存中停留:lsass.exe,一般在进程管理器中能看到,如下图(测试机器:windows server 20 ...
浅谈暴力破解
0x01 原理 暴力破解(brute force),又名暴力攻击、暴力猜解,从数学和逻辑学的角度,它属于穷举法在现实场景的运用。当密码未知或获得密码哈希时,攻击者会使用暴力破解来试图登录帐户,即通过利用大量猜测和穷举的方式来尝试获取用户口令的攻击方式。在ATT&CK中暴力破解有如下四种子技术。
Password Guessing(密码猜测)
事先不了解系统和环境,攻击者会猜测密码以尝试登录帐户。在不了解帐户密码的情况下,攻击者可能会在操作过程中通过使用常用密码字典来猜测登录密码,而无须事先了解系统或环境密码。
Password Cracking(密码破解)
当获得凭证材料(例如密码哈希)时,攻击者可能会解密密码来尝试恢复可用的凭据,例如纯文本密码。
Password Spraying(密码喷洒)
使用多个密码来暴力破解一个账号可能会导致该账号被锁定,攻击者可能会针对许多不同帐户使用单个或少量的常用密码列表,以尝试获取有效帐户凭据。
密码喷洒常常针对如下服务:
SSH (22/TCP)
Telnet (23/TCP)
FTP (21/TCP)
NetBIOS ...
从强网杯2021线上赛习得
0x00 前言强网杯的题目质量就是高,奈何没几个我会做的😣(还是太菜)
以下对从这次比赛所学习到的干货(主要是web方面)进行记录。
0x01 pop_masterindex.php 代码
12345678<?phpinclude "class.php";//class.php.txthighlight_file(__FILE__);$a = $_GET['pop'];$b = $_GET['argv'];$class = unserialize($a);$class->NGPaqV($b);
明显是考察反序列化,但打开class.php.txt后就傻了。
好家伙,近17万行代码,这得有多少个类。虽然知道肯定很多类是来混淆的,但从中找出可利用的类进行构造,其工作量之大!写脚本找可行,但不会啊(流下了没有技术的泪水)。
赛后看师傅的wp,过滤的思路是这样的:
eval 没被引用,过滤
for 循环中会覆盖传入参数值,过滤
eval 前会覆盖值参数值,过滤
除了入口函数外,其他函数只被引用一次的,过滤
依此编写 ...
反序列化漏洞学习
原理
序列化(serialize):将对象转换为字符串
反序列化(unserialize):将字符串转换为对象
注意:
php序列化是为了在程序运行的过程中方便对象转储而产生的。序列化可以将对象转换成字符串,但仅保留对象里的成员变量,不保留函数方法。
简单例子
1234567891011121314151617<?phpclass Students{ public $name,$age; public function __construct($name,$age){ $this->name=$name; $this->age=$age; }}$student1=new Students("zhansan",18);$str=serialize($student1);echo "序列化:\n".$str."\n";$obj=unserialize($str);echo "反序列化:\n";print_ ...
命令执行漏洞学习
概述产生原因:
应用未对用户输入做严格的检查过滤,导致用户输入的参数被当成命令来执行。
危害:
继承Web服务程序的权限去执行系统命令或读写文件
反弹shell,获得目标服务器的权限
进一步内网渗透
远程命令执行在PHP中,有时候需要调用一些执行命令的函数,如:eval()、assert()、preg_replace()、create_function()等,如果存在一个使用这些函数且未对可被用户控制的参数进行检查过滤的页面,那么这个页面就有可能存在远程命令执行漏洞。
eval() 和 assert() 函数eval() 和 assert() 函数都可以执行参数内的代码,且接受的参数为字符串。
注意:eval() 函数传入的参数必须为PHP代码,即要以分号结尾,而assert() 函数不需要以分号结尾。
例子:
1<?php @eval($_POST['cmd']);?>
1<?php @assert($_POST['cmd']);?>
preg_replace 函数使用:preg_replace(‘正则规则’,’ ...
文件包含漏洞学习
概述什么是文件包含?
将需要重复调用的函数写入一个文件,对该文件进行包含时产生的操作。
漏洞产生原因
文件包含函数加载的参数没有经过过滤或严格定义,可以被用户控制,包含其他恶意文件,导致了执行非预期代码。
示例:
1234<?php$filename=$_GET['filename'];include($filename);?>
可以看出,改变URL中filename的值即可改变代码中包含的文件。
PHP中的文件包含函数
include 函数出现错误时,会抛出警告,但程序仍继续执行。
include_once 同 include ,但仅包含一次(避免函数重定义,变量重新赋值等问题)。
require 函数出现错误时,会直接报错并退出程序执行。
require_once 同 require ,但仅包含一次。
类型本地文件包含被包含的文件在服务器本地
包含本地敏感文件
敏感文件默认路径列举(以下目录随系统版本不同而有差异):
windows系统:
C:\windows\win.ini //基本系统配置文件
C:\boot.ini ...
从CISCN2021初赛习得
Webeasy_sql这里简要记录下我的思路以及学到的姿势。
一开始经过几次尝试发现uname处存在注入点且为单引号括号闭合,在sql语句为真时,返回 login ,为假时空白,于是就傻乎乎认为是布尔盲注,而忽略了加引号时页面会返回报错信息。所以可以用更为简单的报错注入的题,而我却用布尔盲注捣鼓了半天。得到库名后,发现information被过滤,无法查表和列名。艰难绕过后,利用无列名注入,mysql字符串逐位比较把flag给试了出来,但可能因为大小写的原因导致提交错误,白干一场(后来才知道mysql字符串比较不区分大小写😂)解决方法见下文。
正解报错注入
暴库
1uname=1')||extractvalue(1,concat('~',database()))%23&passwd=1
利用sqlmap获取表名
1python sqlmap.py -r " 1.txt" –dump -D “security”
暴列名
1uname=1') ||updatexml("~",c ...
文件上传漏洞学习
文件上传简介文件上传,顾名思义就是上传文件的功能行为。将客户端数据以文件形式封装,通过网络协议发送到服务器端。在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存。
漏洞产生原因:大部分的网站和应用系统都有上传功能,一些文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意 PHP 文件,并能够将这些文件传递给 PHP 解释器,就可以在远程服务器上执行任意PHP脚本。另外,服务器配置不当、开源编辑器的上传漏洞、文件上传限制被绕过、文件解析漏洞导致文件执行等都有可能产生文件上传漏洞。
漏洞危害:当系统存在文件上传漏洞时,攻击者可以将病毒,木马,WebShell,其他恶意脚本或者是包含了脚本的图片上传到服务器,服务器如果对其解析执行则会造成很大的危害。
WebShell 就是以 asp、php、jsp 或者 cgi 等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些 asp 或 php 后门文件与网站服务器 web 目录下正常的网页文件混在一起,然后使用浏览器来访问 ...