Echo战队第19次培训——渗透实战思路和实践
实战是各个方向的结合,甚至没有明确的方向区分。下面将展示实战思路和Lampiao靶机渗透 实战思路 上面是我整理的一份实战思路和总结,看不清楚可以点这里 Lampiao靶机渗透 什么是Lampiao靶机?知道Lampiao前得先介绍一下什么是vulnhub vulnhub是一个提供漏洞靶机的经典靶场,其中不乏一些高频漏洞,例如Log4j,Dirty cow,常见CMS漏洞等,非常适合萌新黑客练手。并且,vulnhub提供的靶机使用的是VMware镜像,和在线靶场所使用的docker靶机不一样,渗透环境更加真实。Lampiao是vulnhub中的一个非常经典的Dirty cow漏洞复现靶机。 接下来我们直接开始模拟一次真实的渗透过程 渗透环境 攻击者:kali(ip: 192.168.2.6) 受害者:一台服务器,其他信息全部未知,只知道和这台服务器在同一个内网 渗透过程 第一步:信息收集 我们已经知道需要入侵内网中一台服务器,可是服务器在哪?要怎么入侵它?一切都是未知的,既然这样,第一步当然就是信息收集 我们可以使用nmap -PS 192.168.2.1-225对同一C段的内网进行存活主机扫描。-PS是使用ping发包探测主机是否在线,同时可以粗略地检测端口。 经过扫描可以看到这台机子上开放了一个80端口和一个22端口,根据上面的总结不难看出这大概率是一台服务器,因为80端口通常就是用来提供http服务的 我们可以直接输入ip地址尝试访问 为了进一步验证猜想,可以用nmap -O 192.168.2.13来探测这台设备的操作系统,结果如下 可以看到nmap推断其大概率运行的是Linux 3.X或4.X内核的系统 为了获得更具体的系统版本,可以通过各个端口服务的对应版本来推断。什么意思呢?就是我们需要扫描一下80端口和22端口提供服务的软件版本分别是什么,是提供给哪一个linux发行版的 可以使用-sV参数再次进行扫描 通过扫描可以看到,22端口的ssh服务由openSSH提供,同时可以看到出这是个ubuntu版本,因此可以知道这台机器运行的系统是ubuntu,具体版本未知 接下来我们继续使用-A参数来扫描有关这台机器的所有详细信息(刚刚不这么做是因为进行粗扫描能够更快断定一些有关信息,便于后面渗透方向判断),这里我们还需要设置一下全端口扫描,你可以使用-p 1-65535或-p-参数来设置。扫描结果如下 可以看到,在设置了全端口扫描后还发现了一个刚刚没扫出来的1898端口,并且是一个Apache的httpd服务,意味着我们同样可以使用http协议访问 尝试访问结果如下 可以发现这是一个后端登录界面,乱点看了一圈后发现没用什么有价值的信息,但页面最下面的一句Powered by [Drupal](https://www.drupal.org/)引起了我的注意,搜索后发现这是个前端框架,并且发现了一个可利用的CVE漏洞 第二步:Getshell 经过上面信息搜集并了解这个CVE漏洞后, 知道CVE-2018-7600 根本原因出在 Drupal 对表单的渲染,发现可以直接使用MSF自带的攻击模块进行利用。先对msf自带的drupal模块进行搜索 根据Description内容,选中第4个模块,并设置options show options用来查看这个模块需要设置的内容。这里根据required一列可以看到还差RHOST这一项。在MSF所有攻击模块中,RHOST需要填上的是被攻击对象。 需要注意的是,在这个攻击模块中RPORT默认是80,需要修改成1898 执行run就能成功拿到Shell 不过这个没有交互式Shell前缀的界面看着不太舒服,我们可以利用这台服务器上自带的python服务自己构造一个”伪Shell“,代码如下 python -c 'import pty;pty.spawn("/bin/bash")' 有兴趣可以去看一下pty这个包是什么 执行后就能得到一个类似正常交互式Shell的前缀,就能直观地看到当前所在目录和用户名了 第三步:权限提升 只拿到shell依然不能满足我们很多操作,例如我们没法看到一些存放在root文件里的东西,也没法执行一些需要更高权限指令。因此提权就十分重要。 到这里,还记得我们在信息搜集步骤时留下的一个问题吗?我们还不知道这个系统的具体版本是什么。但现在我们已经拿到了shell,查看版本就很简单了,只需要执行以下uname -a就能知道 ...