先声明博主周末一般是不写文章的,也不怎么浏览网站(陪家人),如果偶尔有空暇会简单的更新一两篇,这个周末博主突然在打开网站时出现让输入用户名与密码的提示,这个让博主很纳闷,但这倒是难不住一些人的,随手就解决了,但突然想到是不是也有部分人会因为这个问题而到处搜集资料或者寻求别人帮忙,更有甚者这些很简单的问题,有些人都不想动手利用网络去解决,而利用自己的什么VIP群去解决,最后一点很让人无奈哦,但不管怎样,博主还是要把这么个简单的问题写出来,以便让有些人更好的去解决问题。
问题如图:
问题解析:
出现这个提示,不乏有几个分析方向,这里列举一下:
1、IIS权限设置的问题;
2、匿名用户的访问;
3、“IUSR_您的计算机名”的问题;
问题可能原因:
1、查看网站属性——文档
看看启用默认文档中是否存在:index.asp index.htm index.html
2、查看网站属性——主目录
A、本地路径是否指定正确
B、是否勾选“脚本资源访问”?
C、是否勾选“读取”?
D、执行权限:纯脚本
3、查看网站属性——目录安全性——编辑
A、是否勾选“匿名访问”?
B、用户名:IUSR_您的计算机名
C、密码不用改,勾选“允许IIS控制密码”就可以了
D、其它不用选
4、查看网站属性——网站
A、IP地址:全部未分配或者选择一个
B、TCP端口:80
5、打开控制面板——管理工具——计算机管理——本地用户和组——用户
A、看看“IUSR_您的计算机名”此用户有没有启动,必须启动
B、看看“IWAM_您的计算机名”此用户有没有启动,必须启动
C、在“IWAM_您的计算机名”该用户上按右键——设置密码
6、打开控制面板——管理工具——组件服务——组件服务——计算机——我的电脑——COM+应用程序
A、在“IIS Out-Of-Process Pooled Applications”上按右键选择‘属性’——选择‘标识’,指定用户:IWAM_您计算机名(说明:可以点浏览查找);输入密码,密码上面步骤的密码。再次启动该服务,启动后它会动。
B、在“IIS In-Process Applications”上按右键选择‘属性’——选择‘安全性’,将‘启用身份验证’勾去掉
C、在“IIS Utilities”上按右键选择‘属性’——选择‘安全性’,将‘启用身份验证’勾去掉。
以上都有可能解决您所遇到的问题,但博主只用了一个就解决了,那就是由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问。
如下图:
红色的×表示没有启动就表示没有启动,启动方法就是将“用户不能更改密码”与“帐户已禁用”不要勾选就可以了;完成之后,网站顺利打开了,所有步骤完成。
最后博主简单说两句,像以上这样的问题,在网络上比比皆是,到处都是解决方案,但很少有人去搜索解决,或者搜索到了仍解决不了,这里需要提醒下,每个人遇到的问题都是不太一样的,或许你是其它原因,所以用这个方法不能解决,但一定要自己去思考去分析,而不是直接去问别人,让别人替你解决很省心,但你会越来越懒的思考。
/文:迷神
现在写爬虫也难啊,现在Python爬虫写多了,发觉很多大型网站都开始用js 加密技术。记得,有次在利用webQQ登录时需要的某些参数时,从js中获取到的js的加密的函数。如果要转化成对应的Python代码,还是有点难度的。那又没办法直接执行JavaScript代码呢,答案是肯定有的。
为了实现我们自己的Python爬虫的春秋大梦,我们还是要一抗到底,对,突破它。
本次推荐推荐的主角是:PyExecJS
python安装PyExecJS很简单:pip install PyExecJS
使用实例:
# -*- coding: UTF-8 -*-
import execjs
#hash33 是javascript函数
encrypt_fun=execjs.compile("""
function hash33(t) {
for (var e=0, i=0, n=t.length; i < n; ++i)
e +=(e << 5) + t.charCodeAt(i);
return 2147483647 & e
}
""")
print encrypt_fun.call("hash33", "5Kj0l5GEwtMm-VuxuL98Rt*2Qd-UDmNaaQgxtGtZcm9-Umco7PUC8GuQ5nI-3jut")
#快速执行js代码,比如:
#execjs.eval("1 + 2 + 3 + 4")
#>结果:355347598
其实,这个主要利用的就是python可以执行JavaScript,execjs会自动使用当前电脑上的运行时环境(建议用nodejs,与Phantomjs)。现在很多网站都喜欢使用JavaScript生成各种密钥令牌,加密,主要是需要大家举一反三,触类旁通即可。
目标地址:ac。scmor。com 自己具体替换接口。
通过执行加密函数的js文件,来抓取活的最终这个上面的所有镜像网址。
目标地址
目标网址里面的地址,都是被加密过的,如图:
加密地址了
通过查看发觉是使用一个叫visit() 的js函数加密了:
加密
2个相关函数如下:
function visit(url) {
var newTab=window.open('about:blank');
if(Gword!='') url=strdecode(url);
newTab.location.href=url;
}
#其实这个 Gword,是页面定义的变量:var Gword="21b5del6oIO57e01a",
function strdecode(string) {
string=base64decode(string);
key=Gword + 'ok';
len=key.length;
code='';
for (i=0; i < string.length; i++) {
var k=i % len;
code +=String.fromCharCode(string.charCodeAt(i) ^ key.charCodeAt(k))
}
return base64decode(code)
}
我们实际用到的就是这个 strdecode函数,当然要加上密钥函数,密钥可以去网站实际搜索下,即可搜索到,有Gword和hn2个, 另外,这个strdecode函数还调用了另外一个函数:base64decode(),而base64decode又调用了一个 base64DecodeChars 的数组,把这些都 添加文件里面的js代码,encrypt.js 如下:
完整代码
有了加密的js文件,我们就要实现我们最终的python代码,主要流程就是先爬取网页,获取到js加密的网址,然后python调用执行JavaScript代码,进行还原即可。
最终代码如下:
# coding=utf-8
import requests
import execjs
import re
node=execjs.get()
# print(execjs.get().name)
source_url='http://ac.scmor.com/'
source_headers={
'User-Agent':'Mozilla/5.0 (Windows; ) AppleWebKit/537 (KHTML, Gecko) Chrome/55 Safari/537',
}
source_res=requests.get(url=source_url, headers=source_headers)
re_source=re.findall(r'var autourl=\["(.*)"\];var',source_res.text)
re_source=re_source[0]
file='./encrypt.js'
ctx=node.compile(open(file).read())
re_source=re_source.split('","')
for each_source in re_source:
#print(each_source)
md_js='strdecode("%s")' % each_source #破解中的函数,
href=ctx.eval(md_js)
print(href)
执行结果:
当初除了这个模块,还有一个:js2py,pip install js2py 即可安装,比较类似,大家自行学习啦。
好了,就这么多啦,有问题大家可以留言交流,觉得不错,也多多转发和关注迷神哦,后面还将继续分享更多的精彩内容哦。
imipenguin 是一个免费、开源、简单但是强大的 shell/python 脚本,用来从当前 Linux 桌面用户转储登录凭证(用户名和密码),并且已在不同的 Linux 发行版中测试过。 -- Aaron Kili
本文导航
-mimipenguin 是如何工作的? …… 15%
-在 Linux 中安装 mimipenguin …… 30%
-未来更新 …… 61%
编译自: https://www.tecmint.com/mimipenguin-hack-login-passwords-of-linux-users/作者: Aaron Kili
译者: geekpi
mimipenguin 是一个免费、开源、简单但是强大的 shell/python 脚本,用来从当前 Linux 桌面用户转储登录凭证(用户名和密码),并且已在不同的 Linux 发行版中测试过。
另外,它还支持如:VSFTPd(活跃的 FTP 客户端连接)、Apache2(活跃的/旧的 HTTP 基础认证会话,但是这需要 Gcore),还有 openssh-server(活跃的 SSH 链接,需用 sudo 命令[1])。重要的是,它逐渐被移植到其他语言中,以支持所有可想到的以后可以利用的情况。
要理解 mimipenguin 是如何工作的,你需要知道所有或者大多数的 Linux 发行版会在内存中存储大量的重要信息, 如:凭据、加密密钥以及个人数据。
尤其是用户名和密码是由进程(运行中的程序)保存在内存中,并以明文形式存储较长时间。mimipenguin 在技术上利用这些在内存中的明文凭证 - 它会转储一个进程,并提取可能包含明文凭据的行。
然后,通过以下内容的哈希值来尝试计算每个单词的出现几率:/etc/shadow、内存和 regex 搜索。一旦找到任何内容,它就会在标准输出上打印出来。
我们将使用 git 来克隆 mimipenguin 仓库,因此如果你还没安装,那么首先在系统上安装 git。
$ sudo apt install git #Debian/Ubuntu systems$ sudo yum install git #RHEL/CentOS systems
$ sudo dnf install git #Fedora 22+
接着像这样在你的家目录(或者其他任何地方)克隆 mimipenguin 目录:
$ git clone https://github.com/huntergregal/mimipenguin.git
下载完成后,进入并如下运行 mimipenguin:
$ cd mimipenguin/$ ./mimipenguin.sh
注意:如果你遇到下面的错误,那就使用 sudo 命令:
Root required - You are dumping memory...Even mimikatz requires administrator
在 Linux 中转储登录密码
从上面的输出中,mimipenguin 向你提供了桌面环境的用户名和密码。
另外,还可以如下运行 python 版脚本:
$ sudo ./mimipenguin.py
注意有时 gcore 可能会阻塞脚本(这是 gcore 中一个已知问题)。
下面是将会被添加到 mimipenguin 的功能:
提升总体效率
添加更多支持以及其他的凭据位置
包括支持非桌面环境
添加 LDAP 的支持
mimipenguin 的 Github 仓库:https://github.com/huntergregal/mimipenguin
同样,请查阅:
如何在 Linux 中用密码保护一个 vim 文件[2]
如何在 Linux 中生成/加密/解密随机密码[3]
如何在 RHEL/CentOS/Fedora 中用密码保护 GRUB[4]
在 CentOS 7 中重置/恢复忘记的 root 用户账号密码[5]
在下面的评论栏中分享你关于这个工具的额外想法或者对 Linux 中内存中明文凭据的问题。
(题图:Pixabay,CC0)
作者简介:
Aaron Kili 是 Linux 和 F.O.S.S 爱好者,即将成为 Linux SysAdmin 和网络开发人员,目前是 TecMint 的内容创作者,他喜欢在电脑上工作,并坚信分享知识。
via: https://www.tecmint.com/mimipenguin-hack-login-passwords-of-linux-users/
作者:Aaron Kili[6] 译者:geekpi 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
[1]: sudo 命令 - https://www.tecmint.com/sudoers-configurations-for-setting-sudo-in-linux/
[2]: 如何在 Linux 中用密码保护一个 vim 文件 - https://linux.cn/article-8547-1.html
[3]: 如何在 Linux 中生成/加密/解密随机密码 - https://www.tecmint.com/generate-encrypt-decrypt-random-passwords-in-linux/
[4]: 如何在 RHEL/CentOS/Fedora 中用密码保护 GRUB - https://www.tecmint.com/password-protect-grub-in-linux/
[5]: 在 CentOS 7 中重置/恢复忘记的 root 用户账号密码 - https://linux.cn/article-8212-1.html
[6]: Aaron Kili - https://www.tecmint.com/author/aaronkili/
*请认真填写需求信息,我们会在24小时内与您取得联系。