虚拟机玩渗透 目标虚拟机 需要怎么设置 ***
VMWare虚拟机搭建渗透测试的 *** 环境
1. 问题的提出
通过虚拟机运行Kali Linux或者OWASP WTE,需要靶机来进行渗透测试的学习和研究。比较简单的方式是,靶机也作为虚拟机运行;在渗透机与虚拟机之间建立专门的 *** 连接。
使用VMWare提供的LAN区段(LAN Segament)是个简单、快捷的解决方案。
2. 步骤说明
设置LAN区段 - 在VMWare中
靶机和渗透机的虚拟机设置 - 在VMWare中
靶机和渗透机的系统 *** 设置 - 虚拟机内部
2.1 LAN区段(LAN Segament)设置
在VMWare Workstation中,打开目标虚拟机的“虚拟机设置”标签,点选“LAN区段”,如下图:
![点击这里的"LAN区段"按钮]()
点击之后,
+ 如果没有设置过LAN区段,则新建一个LAN区段
+ 如果已经设置过,则选择目标所在的LAN区段
2.2 渗透机/靶机虚拟机设置
在完成了上述LAN区段设置后,虚拟机的 *** 连接模式设置为“LAN区段”,并选择上述设置的具体区段。
虚拟机和靶机的**设置 *** 相同**。
2.3 渗透机/靶机的系统设置
进入虚拟机系统内部,需要手动指定IP地址,确保渗透机和靶机在同一网段内。
虚拟机和靶机的**设置 *** 相同**。
Windows的设置比较简单。
+ 对于没有图形界面的Linux,手动设置 *** 如下:
1. 关闭网卡,目的在于**清除之前的 *** 设置**
precode$ ifconfig eth0 down/code/pre
2. 设置新的IP地址等信息,并启动网卡
precode$ ifconfig eth0 192.168.xx.123 netmask 255.255.255.0 up/code/pre
注意,这里最后的up是启动网卡的意思
3. 设置网关gateway,需要使用route命令
precode$ route add default gw 192.168.xx.1
+ 对于有图形界面的Linux,有时候会出现Network Manager显示"device not managed"的情况,特别是在Debian或者Kali底下。
1. 问题是因为同时满足以下条件:
(1) /etc/network/interface文件中包括目标设备(网卡);
(2) /etc/NetworkManager/NetworkManager.conf中没有设定自动管理。
2. 问题解决 *** :
(1) 在/etc/NetworkManager/NetworkManager.conf中,设置managed=true
(2) 重启network manager:
precode$service network-manager restart/code/pre
内网渗透--对不出网目标的打法
配置 ***
在VM虚拟机中按照下边的 *** 拓扑进行配置 *** 。 *** 拓扑图如下:
win7具有双网卡,其中外网ip是192.168.8.133,内网网段是52。三台机器彼此互通,但是win server 2008和win2003不通外网。用我mac作为攻击机,来对这个靶场环境进行渗透测试。
外网打点
在win7这台靶机上,使用PHPStudy让网站可以运行起来。在攻击机上,访问 可以看到是一个phpStudy 探针。对这网站进行渗透,因为本文主要写在内网渗透过程中对不出网主机的渗透,所以此处外网打点就不写的很详细了。
针对此靶场进行外网渗透拿权限大致有这几种 *** :
通过phpmyadmin弱口令,进入phpmyadmin后台。然后知识点就变成了,通过phpmyadmin进行getshell,这个点又分为,得到网站绝对路径后,使用select into outfile的方式写shell和利用日志写shell。在此处,我是使用日志写shell的 *** 拿到权限。因为secure_file_priv配置为null,禁止修改目录下的文件,也就不能使用into outfile的方式写入shell。
通过目录扫描可以扫出beifen.rar,备份文件。在源码中可以找到登陆后台的账号密码:admin/123456和登陆路径/index.php?r=admin,在前台模板文件中添加一句话木马连接也可获取shell。
获得webshell的信息收集
通过外网打点获得的webshell,可以进行一波信息收集,摸清我是谁?我在哪?有没有内网环境?有没有杀软?通过拿到webshell后的信息收集的结果来评估一下有没有必要继续深入或者初步了解继续深入的话需要哪些手段。
我是谁?
蚁剑已经给出基础信息
我在哪?
使用ipconfig /all 看一下 *** 信息
目标有两个网卡,并且存在域环境,那么就有打它内网的必要了。
有没有杀软?
tasklist查看一下进程信息
根据进程查一下是否有杀软
目标没有使用杀软,还有域环境那么让它直接cs上线。
内网渗透
cs上线
内网信息收集
信息收集每个人都有自己的习惯,信息收集的顺序和信息收集的项目也都不太一样,只要根据自己的习惯和嗅觉,针对目标具体情况进行收集,以求尽快的拿下目标就好。信息收集的越全面突破口也就会越多,考虑到篇幅和文章内容匹配度等因素,此处并没有写出大量信息收集 *** 。
使用cs自带的net view查看域信息。
使用cs自带功能进行端口扫描,分别对8和52两个网段进行扫描进行完这两个步骤以后,cs会把扫到的目标列出来。
因为拿到的是管理员权限,可以先抓一波密码。用 cs 的 hashdump 读内存密码,用 mimikatz 读注册表密码:logonpasswords。
此处打码的地方是因为配置靶机登陆时靶机提示重置密码,我给靶机改了个包含个人信息的密码。蠢哭。拿到密码后,目标主机没有开启防火墙,可以使用cs自带的psexec做一波横向,因为抓到很多域中机器密码,域控密码也抓到了。
内网横向(通过登录凭证)
这个靶机设置的比较简单,抓到密码后,因为抓到了域控登陆的凭证,那么使用psexec即可横向内网所有机器。因为,另外两台内网的机器不出网,那么就到了本文着重练习的点了,打不出网的机器。
不出网机器上线一般有以下几种方式:
使用 *** b beacon
配置listener通过HTTP *** 上线
使用pystinger搭建socks4 ***
这几种方式之前有师傅也在先知写过 《不出网主机上线 *** 》 。此处我采用的 *** B beacon这个 *** 。
*** B Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在 *** B协议中,所以 *** B beacon相对隐蔽。 *** B beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。
首先得到内网中一台主机的beacon,抓取密码后进行 *** b喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线
使用条件
具有 *** B Beacon 的主机必须接受 445 端口上的连接。
只能链接由同一个 Cobalt Strike 实例管理的 Beacon。
利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。
使用 *** :
1.建立 *** b的listener
2.在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator ,即拥有目标主机管理员权限
3.连接成功,可以看到 *** b beacon上线的主机右侧有∞∞标识
使用这种 *** 上线的机器,主要是通过出网机作为一个中间人,不出网主机成功上线后,如果出网机一断开,这个不出网主机也会断。
内网横向(通过ms-17010)
在拿下win7的时候,可以给它传一个fscan,给win7做一个内网大保健。上传fscan后,运行扫一下内网。
发现存在ms17010。
ms17010常见的几种打法:
msf
ladon/ladon_ms17010
从msf分离出的exe
nessus里的exe
cs插件
这几种打法,我在这个环境中都做过尝试。过程就不一一叙述了,直接说我测试的结果。msf是最稳定的,但是打起来有稍许的麻烦因为要设置监听模块和选择攻击模块等配置。ladon_ms17010方便但是不太稳有时候会打不成功。cs插件也不稳,并且在这种不出网 *** 不稳定的情况下成功率会变的更低。
这个图片的ip可能跟上边配置符不起来,因为我在测试过程中,网断过几次,ip就变了。所以,在打的时候,如果ladon和分离出的exe没有打成,不要轻易放弃,用msf在打打试试,毕竟工具就是工具,不能过分依赖某个工具。
在这种不出网的情况下,可以优先考虑使用从msf分离出的exe和ladon_ms17010来打,打成功会直接通过自定义的dll新建一个用户并加入管理员组,开启3389端口。根据实际情况,可考虑在合适的时间段和条件下直接远程登入,翻一下敏感数据,往往会因为运维人员的很多“好习惯”而给渗透带来很多便利,比如说“密码本.txt”。
msf打不出网机器的ms17010
msf在单兵作战的时候还是很稳定很香的。首先,让出网机器先在msf上线,可以用cs直接传递会话,或者生成个msf马直接运行一下。在这的 *** 就很多了。win7在msf上线后,因为我们已经提前知道了,存在52这个不出网的段,那么就需要在msf中添加路由。
查看路由
run get_local_subnets
添加路由
run autoroute -s 192.168.52.0/24
查看添加的路由
run autoroute -p
把shell切换到后台,然后使用ms17010模块进行漏洞利用,监听时使用正向监听,即可
小贴士:
漏洞检测 *** :
use auxiliary/scanner/ *** b/ *** b_ms17_010
之后设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,也就不在叙述。
漏洞利用常使用的是:
auxiliary/admin/ *** b/ms17_010_command
exploit/windows/ *** b/ms17_010_eternalblue
exploit/windows/ *** b/ms17_010_psexec
这里的之一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。
在打ms17010的时候,不妨使用auxiliary/admin/ *** b/ms17_010_command模块探测一下是否可以使用命名管道。
use auxiliary/admin/ *** b/ms17_010_commandsetrhosts192.168.164.156192.168.164.161setcommandtasklistshow optionsrun
如果命令执行成功的话就可以优先考虑
auxiliary/admin/ *** b/ms17_010_commandexploit/windows/ *** b/ms17_010_psexec
这两个模块进行利用。
我在上边打得时候因为目标机器没有杀软就直接使用exploit/windows/ *** b/ms17_010_eternalblue来打了,期间为了测试打过多次,确实出现了把目标机器打重启的情况。
总结
这个靶场设计的技能点比较基础,外网打点获得shell后,直接可以通过cs上线,在管理员权限下,抓取密码,新建一个 *** b beacon然后使用psexec对内网两台不出网的机器进行横向。
2022 OSCP Exam Review
上周五我参加了OSCP(Offensive Security Certified Professional,进攻性安全认证专家)考试,并于周六提交了考试报告,就在周日晚上大概十二点,我收到了来自offsec的邮件,通知我已经通过了认证。
我最终解决了AD的三台机器+两 *** 立机器的完全控制权限+另一台机器的初始shell。另外我还做完了课本习题和lab里的超过10台机器的报告,如果所有报告都没有被扣分的话,我最后的成绩应该是90+10分。
我大概花了一年多的时间去准备这个考试,期间有过很多困惑,踩过许多坑,我在学习的过程当中受到过很多人的启发,因此现在我也想写一篇学习回顾,以(希望能够)帮助那些当初和我一样不知道如何入门的学员,如果你是渗透测试的大佬,那么这篇东西只是浪费你的时间,因为它真的很基础。
我本职工作是一个程序员,此前没有任何渗透测试经历,当时的我知道nmap是扫描器,kali是专门做渗透测试的,但没怎么用过,说是零基础也不为过。因为出于兴趣我想系统学习渗透测试,就在一年多以前我知道了OSCP这个认证,那时候我想以考促学,并且OSCP学费还挺贵的,我觉得这样或许能push自己一把。我没有一开始就报名,我记得当时我注册了offsec的账号,为了了解购买流程我还下了一个订单,但是没有付款。然后过了没多久,新加坡的David就打了一个越洋 *** 给我,问我是不是有兴趣学习,还说可以给我申请一个很优惠的折扣。我说我对于这个东西完全是零基础,我可能现在还不合适去报名。然后David说没关系,还建议我先到HTB打打靶机学习。应该说这还是挺良心的,不会让一个0基础的人盲目去报名。事实证明,延迟报名的决定非常正确,如果你像我当初一样对渗透是零基础,那建议还是补一下基础知识,我后面会分享到我当初遇到的那些我感觉很好的课程和平台。
众所周知,OSCP在2022年1月初启用了新版本的考试结构。
旧版本的考试结构:
1台简单机器 10分
2台中等机器 20分x2
2台困难机器 25分x2,其中一台为bof题,必出,圈内评价是送分题。
总分达到70分通过考试,完成所有课后练习+10台lab报告可以另外+5分
新版本的考试结构:
AD包含3台机器,总共40分,只有攻入DC才有分,没有过程分,也就是要么40分全拿,要么0分。
3 *** 立机器,每台20分,bof题不是必出,而且需要提权。
完成所有课后练习+10台lab报告(包含4台域机器)可以另外+10分
总分也是达到70分通过考试。
应该说新版本考试结构难度增加了不少。
我在考试之前在各个平台打了一些靶机,我后来统计了一下:
TryHackMe:53
OSCP LAB:75
HTB:60
PG:40
vulnhub:11
我认为TryHackMe是很好的专题学习平台,以及是很好的基础学习平台,但是我不推荐打太多里面的靶机,因为他们多数都是CTF形式,与OSCP相去甚远。从技术的角度,一个零基础学员从任何方向出发当然都是进步,但是从考试的角度,我们还是要有的放矢,毕竟时间也是资源。
我完成了TryHackMe里的 Complete Beginner , Offensive Pentesting , CompTIA Pentest+ 三个路径,这三个路径的学习让我对渗透测试有了一个初步的了解。我非常建议初学者跟着这些路径学习。而且TryHackMe非常良心,他的很多房间都是免费的,就算续费每个月也只是需要10美元。这个花费对于你将可以学到的知识来说简直是不值一提。
后面TryHackMe又出了好几个学习路径,我现在还没有去做,在这里不评价,我想我后面有时间会去做一下。
我在今年三月份报的名,报的是两个月的课程。需要注意的是,今年4月以后OSCP只有三个月的课程了,价格是1499美元。
我在之一个月完成了课本上的所有习题以及打了40台靶机,在第二个月我完成了剩下的35台靶机。这两个月可以说是我目前人生最累的两个月,几乎每天下班以后我都要肝到晚上一两点,第二天还要上班。这期间有痛苦,有绝望,有焦虑同时也是收获满满。OSCP之旅绝对是一个折磨之旅,我看到有朋友的评论是"比高考还累"。
OSCP Lab是一个多级的 *** ,它外网有40台左右的机器,但是我觉得它最有意思的是内网,有些内网你还需要转发多次才能访问。这样的靶机环境一般在其他平台很少遇到,因此会是一个很不错的学习体验。我看到有些早期的学员说内网很卡,我这边觉得还好,可能是offsec后来升级了OSCP LAB的 *** 。但是我自己为备考也拉了一条300M的网线,以及买了一个美国节点的vps,整个OSCP Lab的旅程中我觉得 *** 非常舒服。
这里有一个小技巧,我不知道这算不算offsec的一个bug,OSCP Lab其实是有多个节点的,而且同样的vpn可以登录不同的节点,我一般扫描探测和爆破的时候用的是美国的vps(跟lab的延时大概是10ms以内),其他手动的枚举或者拿shell时用的是本地kali机。需要注意,因为lab各个节点是独立的,在美国vps触发的rev shell,在本地kali是接收不到的。但是vps可以省去你很多探测和爆破的时间。
鉴于OSCP现在只有3个月lab time的选择,这是绝对够时间打完OSCP所有lab的。关于什么时候应该去论坛看hint,我的理解是,当你觉得你已经穷尽了你目前所知道的所有 *** 和技巧还是没有进度,那就去看。我认为不必去忌讳看hint这个东西,你就是来学习的,不懂很正常,基本上你不可能去hack一个你完全不懂的东西。相反的,如果你都觉得OSCP Lab对你一点难度都没有,那么OSCP只是浪费你的时间,你应该去挑战更难的东西。
我强烈推荐这个HTB的OSCP vm like list,同时这也是很多OSCP前辈的一致推荐。如果你备考的时间有限,我建议你就好好打一下这个list里面的机器。
这个是offsec的亲儿子,也有很多前辈推荐里面的机器作为OSCP的练习,考试里单机的难度大概相当于里面的中等难度机器。
vulnhub好像是被offsec收购了,好多机器都在PG里。我打的不多,感觉有些还是偏向CTF。。
我听说有人打了30多台就通过了OSCP考试,有的大佬打了400多台。。。我的理解是,越多越好,你在练习中踩的坑越多,在考试的时候才会越游刃有余,Practice make prefect。
官方有一个靶机数量与通过率的表格,打过的靶机数量和通过率是正相关的,这也符合人的直觉。
对比各个平台靶机的难度,我主观上的感觉是:HTB PG OSCP Lab
我觉得备考打这三个lab就够了
如果你实在备考时间有限,那推荐上面的1和3。
OSCP的教材和视频都是全英文的,你在备考中看到的所有文章,资料等等99%都会是英文,所以英文是逃不掉的。
我自己也是英语渣,但是好在计算机类的英语词汇固定,语法结构也简单,看多几次也就知道了,实在不懂还可以在线翻译嘛,所以在英语上不必有太大的压力。如果你实在很想学习,你总是会想得到办法的。
从你决定要开始OSCP之旅,无论以前你有没有记录笔记的习惯,从现在都要开始记录。开一个博客,或者自己记录一份文档。
记录一切你遇到的东西,命令,技巧,原理,靶机wp。记完以后尝试去整理他们,反复阅读,这也是一个学习的过程,而且很重要。
这一年来我大概记了十几万字的笔记和wp,我习惯用markdown格式记录,这样我可以用sublime快速查找我想知道的一切记录过的东西。
我预定的是周五早上9点钟的考试,前一天晚上我还吃了安眠药睡觉,因为我习惯性焦虑,容易考试前失眠。好在那天我睡的还挺好。
我为考试准备了咖啡,巧克力,红牛,面包和一些饺子,整个考试期间我喝了三杯美式咖啡和一瓶红牛,这的确让我考试的时候异常亢奋,但是第二天我非常痛苦,完全没办法睡觉。
我用了6个小时完成了AD部分的内容,之后3个小时,我拿到了一台主机的完全控制权限。然后我又花了几个小时,拿到了一台单机的foothold,但是后面提权的部分,我在这台机器卡了很久,一直到凌晨一点,我跟监考人员说我太累了需要休息一下。然后我睡了大概一个多小时(其实也没睡着,因为我喝太多咖啡了),在凌晨两点我醒来,我决定先放一下那台机器的提权,再看看另外一台单机,从凌晨2点一直到早上6点,我完全卡死在这台机器的foothold里,然后我跟监考人员说我要休息一下,之后我躺在床上突然想到了一个点,于是马上起来验证,结果成功进入这台机器,此时距离考试结束还有两个多小时,我发现我唯一那次msf的机会还没用,于是我决定上msf,用了10分钟拿到了这台机器的system权限。我用剩下的时间补充了一些截图,然后结束了这个23小时45分钟的考试。
我在OSCP之前学习过CRTP的课程,老实说OSCP的AD部分的内容,无论广度和深度完全都比不上CRTP。但是我在这里不是说你在考OSCP之前要去考个CRTP,完全没有必要,而且我也没有过CRTP考试。。(T_T)。OSCP考试里ad方面的知识全都在教程里,没有任何超纲的东西。但是考试时ad部分难的可能是ad之外的东西。。。
关于考试,我的建议是每隔一两个小时,要起来喝水,走动一下,或者躺一下。就我做程序员的经验,我职业生涯中遇到的所有技术上能说的是难题的东西,要么是我躺在床上想到解决 *** ,要么是我走在路上想到的解决 *** ,但是绝对不会是坐在电脑前想到的。一旦卡住了就起来走走,放轻松。OSCP考试除了考验技术以外,我觉得很大一部分也是考验一个人的心理承受能力。因为这种24小时的考试真的是太变态了,如果心态崩了那本来很容易的东西可能会被你miss掉。
第二天我陆陆续续花了一天时间写完了报告,多数都是先写中文,然后放到deepl上去翻译的,我没有任何渗透测试工作经历,因此我不太知道一个合格的渗透测试报告应该是怎么样的,好在官方有个报告模板,我就按照那个模板来写。一直忙到当天晚上差不多12点,我提交了我的考试报告和练习报告。
以下是我备考过程当中遇到的一些我觉得很好的资源:
hacktricks :黑客圣经,你在备考中每天都应该会去翻阅它。
PayloadsAllTheThings :各种cheetsheet,和hacktricks有重合的地方,但是更侧重各种命令的记录,我弄rev shell的时候经常翻阅。
gtfobins :linux提权宝典。
bufferoverflowprep :更好的Buffer Overflow练习,专门为OSCP准备。
linux提权房间1 :tryhackme上的一个提权房间
linux提权房间2 :另外一个linux的提权房间,专门为OSCP *** ,在 udemy 上有对应的视频课程。
windows提权房间 :上面提权系列的windows姐妹版,也是专门为OSCP *** ,在 udemy 上有对应的视频课程。
what-to-do-with-new-oscp :老外整理的关于OSCP里AD部分的学习资源集锦。
hackingarticles :三哥整理的一个博客,有很多很好的思路和 *** 的介绍。
0xdf :0xdf的博客,HTB官方打lab人员,能学到很多技巧。
IppSec :IppSec的 *** 频道,也是HTB官方的,同样的也可以学习到很多技巧。
我觉得一旦你觉得要准备OSCP的时候,一定要好好跟家里人/女朋友/老婆沟通,跟他们解释为什么你需要那么多时间自己一个人在电脑前鼓捣。我觉得整个备考期间我牺牲了好多跟女友和家里人相处的时间,每每回想总是心中有愧,我要感谢我的女友小头,她一直很理解和支持我去做这一切,接下来我想花多点时间陪伴身边的人。
0条大神的评论