Redis-匿名访问利用技巧 (redis-server)

教程大全 2025-07-16 23:19:05 浏览

Redis 数据库在内网渗透中比较常见,结合近期的利用过程,记录下:

在内网机器中下载Redis 解压 make一下,不用make install

A) 一般情况下知道路径写shell

B) 利用公匙免密码登录1 本机生成公匙2 利用redis将公匙备份到redis机器上C) 利用linux的任务反弹shell

1 /var/spool/cron linux机器下默认的计划任务,开启cron的时候,linux会定时去执行里面的任务,文件名为用户名2 redis 设置dbfilename 到上面可以直接反弹shell回来

大概总结了主要是以上三种方式获取redis 服务器 的权限,因为redis一般都是root权限启动的,所以权限很大。

但渗透过程中总是会出现意向不到的情况,有木有啊。

第一种方式,如果redis数据库太大,导致PHP马超限,直接500不解析,那我们可以通过第三个命令写个马到web目录

这样的马就没问题了

第二种方式,我测试本机没问题,但是到了渗透环境就出问题了,应该是ssh免密码登录 .ssh目录权限问题,成功几率不太大

redis

第三种方式,最喜欢的一种,简单粗暴明了,连提权都省了(如果是重要的机器,root用户一般都会有计划任务,建议先用低权限的用户反弹个shell上去 探下情况,在root) 但也遇到很奇葩的不给连接外网的机器,那就只能写个shell到web目录,或者在内网监听一个bashshell ,自己去连接就ok了

redis还有一个发现就是,高版本的linux提权不了,我们也可以通过redis直接提权,也就是第三方软件提权的一种方法吧。


局域网共享打印机

哪里有这么复杂,照我说的设置一下就能用了: 一、首先,将计算机实现物理连接,连接方法如下: 1. 使用HUB连接; 2. 使用交换机连接,但要确保交换机不使用VLAN隔离,如使用VLAN则需要共享的计算机在一个VLAN中; 3. 两台计算机使用交叉网线背靠背连接。 二、更改不同的计算机名,设置相同的工作组!方法: 我的电脑右键-管理-计算机管理-本地用户和组-用户:更改管理员用户名。 三、设置防火墙。 开始-设置-控制面板-防火墙,例外-勾选“文件和打印机共享”!当然也可以关闭防火墙。 注意:这里防火墙不设置好,两台机器将无法ping通。 四、手动设置IP,将IP设置在同一个网段,子网掩码和DNS解析相同。 设置好后在“运行”使用ping命令,测试连通后,进行下一步。 五、运行里面输入回车进入本地安全设置-本地策略-安全选项,将“网络访问:不允许SAM账户的匿名枚举”停用,注意此点只对来宾起效;将“账户:使用空白密码的本地账户只允许进行控制台登录”停用 。 如不设置这两项,共享计算机无法正常匿名登陆。 六、双击我的电脑打开资源管理器-工具-文件夹选项-查看-将“使用简单的文件夹共享”前面的勾去除!如不设置这项,则只能实现文件的共享,而不能实现文件夹共享。 七、设置共享文件夹、共享盘符或打印机,如共享打印机:打开控件面板-打印机和传真--打印机--左键点属性--打开共享。 依照以上步骤,就实现局域网内文件和打印机共享了!

javascript中的闭包主要在哪些地方用到

Javascript闭包的用途事实上,通过使用闭包,我们可以做很多事情。 比如模拟面向对象的代码风格;更优雅,更简洁的表达出代码;在某些方面提升代码的执行效率。 1、匿名自执行函数我们知道所有的变量,如果不加上var关键字,则默认的会添加到全局对象的属性上去,这样的临时变量加入全局对象有很多坏处,比如:别的函数可能误用这些变量;造成全局对象过于庞大,影响访问速度(因为变量的取值是需要从原型链上遍历的)。 除了每次使用变量都是用var关键字外,我们在实际情况下经常遇到这样一种情况,即有的函数只需要执行一次,其内部变量无需维护,比如UI的初始化,那么我们可以使用闭包:var data= {table : [],tree : {}};(function(dm){for(var i = 0; i < ; i++){var row = [i];for(var j = 0; j < ; i++){drawCell(i, j);}}})(data); 我们创建了一个匿名的函数,并立即执行它,由于外部无法引用它内部的变量,因此在函数执行完后会立刻释放资源,关键是不污染全局对象。 2、结果缓存我们开发中会碰到很多情况,设想我们有一个处理过程很耗时的函数对象,每次调用都会花费很长时间,那么我们就需要将计算出来的值存储起来,当调用这个函数的时候,首先在缓存中查找,如果找不到,则进行计算,然后更新缓存并返回值,如果找到了,直接返回查找到的值即可。 闭包正是可以做到这一点,因为它不会释放外部的引用,从而函数内部的值可以得以保留。 var CachedSearchBox = (function(){var cache = {},count = [];return {attachSearchBox : function(dsid){if(dsid in cache){//如果结果在缓存中return cache[dsid];//直接返回缓存中的对象}var fsb = new (dsid);//新建cache[dsid] = fsb;//更新缓存if( > 100){//保正缓存的大小<=100delete cache[()];}return fsb;},clearSearchBox : function(dsid){if(dsid in cache){cache[dsid]();}}};})();(input);这样我们在第二次调用的时候,就会从缓存中读取到该对象。 3、封装var person = function(){//变量作用域为函数内部,外部无法访问var name = default;return {getName : function(){return name;},setName : function(newName){name = newName;}}}();print();//直接访问,结果为undefinedprint(());(abruzzi);print(());得到结果如下:undefineddefaultabruzzi4、实现类和继承function Person(){var name = default;return {getName : function(){return name;},setName : function(newName){name = newName;}}};var p = new Person();(Tom);alert(());var Jack = function(){};//继承自 = new Person();//添加私有方法 = function(){alert(Hello,my name is Jack);};var j = new Jack();(Jack);();alert(());我们定义了Person,它就像一个类,我们new一个Person对象,访问它的方法。 下面我们定义了Jack,继承Person,并添加自己的方法。

在唯一密钥属性“name”设置为“Session”时,无法添加类型为“add”的重复集合项

第一步:“开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务 ”->“计算机”->“我的电脑”->“COM+应用程序”中,有一个“IIS Out-Of-Process Pooled”鼠标右键“属性”--“标识”--把“此用户”调整为“交互式用户--目前已登录的用户”。 然后“确定”,再鼠标右键“属性”--“启动 ”.第二步:“开始”->“管理工具”->“Internet 信息服务”->展开左侧的本地计算机->右击“网站”属性->选择“目录安全性”->点“编辑”然后在弹出的对话框中确保只选中 了“匿名访问”和“集成Windows验证”两项,单击匿名访问中的编辑,去掉“允许IIS控制密码”然后保存设置就可以了。 第三步:点“默认WEB站点”的右键,转到“目录安全性”选项卡,点“匿名访问和验证控制”的“编辑”按钮,回弹出匿名方法新窗口,再点击其中“匿名访问”中的“编辑”按钮,将“允许IIS控制密码”全面的勾去掉,然后一路确定返回就可以了。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐