One year ago 我整天哼着 搁浅; one year later 我整天唱着 最长的电影。
One year ago 我每天去打网球; one year later 我每天要去上班。
One year ago 我很受伤,内伤和外伤都很严重; one year later 我依然会受伤,但是已经不知道伤的是什么。
One year ago 我经常听到谎言,但只是静静听着,听完微笑一下; one year later 我已听烦了谎言,告诉说谎者你可以把谎言说的更完美,下次努力。
One year ago 我很少冲动; one year later 我经常冲动。
One year ago 我很伤感; one year later 我依然有点伤感。
One year ago 我爱着一个人; one year later 我爱过一个人。
One year ago 我的六块腹肌很明显; one year later 我的六块腹肌在呼唤回到健身房。
One year ago 我不知道未来在哪里,希望未来会在这里; one year later 我依然不知道未来在哪里,但我知道现在我宁愿待在这里。
One year ago 我认为女人是好人; one year later 我遇见的好人不多。
One year ago 我还抱有希望; one year later 我放弃那份希望。
One year ago 别人说我乐观; one year later 别人依旧说我乐观。
One year ago 我每天会想许多可能的情况; one year later 我已没有时间想那些可能。
One year ago 我还不习惯K歌当麦霸; one year later 我就是麦霸。
One year ago 别人说我诚实憨厚; one year later 别人说我是好人,我真的有那么失败么?
One year ago 我不了解女人; one year later 我略懂。。。。。。。
One year ago 在球场我还是詹姆斯风格; one year later 我退役了怎么办。
One year ago 我很傻很天真; one year later 我略傻略天真。
One year ago 我在为理想而奋斗; one year later 我在现实中奋斗。
One year ago 某人推荐我看奋斗; one year later 某几个人推荐我看奋斗。
One year ago 我对电驴不感兴趣; one year later 我喜欢骑电驴。
One year ago 我常以为自己快老了; one year later 我还可以年轻。
One year ago 我认为包容会换回感恩; one year later 我依然会包容,但已经什么都不奢求。
One year ago 我还在怀疑wj的理论; one year later 我向别人推荐wj的理论。
星期六, 八月 02, 2008
星期日, 六月 08, 2008
John the ripper 摘要
John the ripper 摘要
John the Ripper选项
--single single crack模式,使用配置文件中的规则进行破解
--wordlist=File 字典模式,从FILE或标准输入中读取词汇
--stdin
--rules 打开字典模式的词汇表切分规则
--incremental[=Mode] 使用增量模式
--stdout[=LENGTH] 不进行破解,仅仅把生成的、要测试是否为口令的词汇输出
--restore[=NAME] 恢复被中断的破解过程,从指定文件或john.rec中读取状态信息
--session=NAME 将新的破解会话命名为NAME,该选项用于会话中断恢复和同时运行
多个破解实例的情况
--status[=NAME] 显示会话状态
--make-charset=FILE 生成一个字符集文件,覆盖FILE文件,用于增量模式
--show 显示已破解的口令
--test 进行基准测试
--users=[-]LOGIN|UID[,..] 选择指定的一个或多个帐户进行破解或其他操作,列表前的减号表
示反向操作,说明对列出帐户之外的帐户进行破解或其他操作
--groups=[-]GID[,..] 对指定用户组的帐户进行破解,减号表示反向操作,说明对列出租
之外的帐户进行破解
--shells=[-]SHELL[,..] 对使用指定shell的帐户进行操作,减号表示反向操作
--salts=[-]COUNT 至少对COUNT口令加载加盐,减号表示反向操作
--format=NAME 使用密文格式名称,为DES/BSD/MD5/BF/AFS/LM之一
--save-memory=LEVEL 设置内存节省模式,当内存不多时使用这个选项。LEVEL取值在1-3
之间
其他工具
在run目录下,有几个工具。
unshadow PASSWORD-FILE SHADOW-FILE
unshadow命令将passwd文件和shadow文件组合在一起,其结果用于John。通常将这个程序的结果重定向
到文件中。
unafs DATABASE-FILE CELL-NAME
unafs从二进制AFS数据库中提取口令散列值,并生成John可用的输出,通常应该把这个输出重定向到文
件中。
unique OUTPUT-FILE
删除字典表中的重复词汇,但不改变字典中各词条项的顺序
例:
unshadow /etc/passwd /etc/shadow > passwd.1
在默认情况下,John使用passwd.lst作为攻击用的字典文件,我们可以编辑这个文件或创建自己的口令
文件。
./john passwd.1 (使用默认配置运行)
./john -show passwd.1 (显示破解后的口令)
如果想查看原始加密口令和破解后的口令,可随时打开文件 john.pot来观看
cat ./john.pot
更好的字典文件:
http://packetstormsecurity.org/Crackers/wordlists
John the Ripper选项
--single single crack模式,使用配置文件中的规则进行破解
--wordlist=File 字典模式,从FILE或标准输入中读取词汇
--stdin
--rules 打开字典模式的词汇表切分规则
--incremental[=Mode] 使用增量模式
--stdout[=LENGTH] 不进行破解,仅仅把生成的、要测试是否为口令的词汇输出
--restore[=NAME] 恢复被中断的破解过程,从指定文件或john.rec中读取状态信息
--session=NAME 将新的破解会话命名为NAME,该选项用于会话中断恢复和同时运行
多个破解实例的情况
--status[=NAME] 显示会话状态
--make-charset=FILE 生成一个字符集文件,覆盖FILE文件,用于增量模式
--show 显示已破解的口令
--test 进行基准测试
--users=[-]LOGIN|UID[,..] 选择指定的一个或多个帐户进行破解或其他操作,列表前的减号表
示反向操作,说明对列出帐户之外的帐户进行破解或其他操作
--groups=[-]GID[,..] 对指定用户组的帐户进行破解,减号表示反向操作,说明对列出租
之外的帐户进行破解
--shells=[-]SHELL[,..] 对使用指定shell的帐户进行操作,减号表示反向操作
--salts=[-]COUNT 至少对COUNT口令加载加盐,减号表示反向操作
--format=NAME 使用密文格式名称,为DES/BSD/MD5/BF/AFS/LM之一
--save-memory=LEVEL 设置内存节省模式,当内存不多时使用这个选项。LEVEL取值在1-3
之间
其他工具
在run目录下,有几个工具。
unshadow PASSWORD-FILE SHADOW-FILE
unshadow命令将passwd文件和shadow文件组合在一起,其结果用于John。通常将这个程序的结果重定向
到文件中。
unafs DATABASE-FILE CELL-NAME
unafs从二进制AFS数据库中提取口令散列值,并生成John可用的输出,通常应该把这个输出重定向到文
件中。
unique OUTPUT-FILE
删除字典表中的重复词汇,但不改变字典中各词条项的顺序
例:
unshadow /etc/passwd /etc/shadow > passwd.1
在默认情况下,John使用passwd.lst作为攻击用的字典文件,我们可以编辑这个文件或创建自己的口令
文件。
./john passwd.1 (使用默认配置运行)
./john -show passwd.1 (显示破解后的口令)
如果想查看原始加密口令和破解后的口令,可随时打开文件 john.pot来观看
cat ./john.pot
更好的字典文件:
http://packetstormsecurity.org/Crackers/wordlists
星期一, 五月 12, 2008
常用GDB调试命令简表
命令 说明 备注
file 文件名 在gdb中载入某可执行文件
break 设置断点 支持如下形式:
break 行号;
break 函数名称;
break 行号/函数名称 if 条件
info 查看和可执行程序相关的
各种信息
kill 终止正在调试的程序
print 显示变量或表达式的值
set args 设置调试程序的运行参数 “set args 参数列表”
delete 删除设置的某个断点
或观测点 delete后可以使用breakpoints、
checkpoint、display、mem和
tracepoints。可使用
help delete查看
clear 删除设置在指定行号
或函数上的断点
continue 从断点处继续执行程序
list 列出gdb中可加载的
程序代码 不带任何参数使用list命令时,
会从开始位置列出所有代码,
同时list还支持列出指定行号
之间的代码
watch 在程序中设置观测点 如果数据改变,将给出
变化前后的情况
run 运行在gdb中可加载的程序
next 单步执行程序
step 进入所调用的函数内部,
查看执行情况 退出调用函数,回到调用处
使用finish命令
whatis 查看变量或函数类型 调用格式为“whatis 变量名/
函数名
ptype 显示数据结构定义情况 与whatis不同的是,
ptype可以显示类或
数据结构的定义情况
make 编译程序
quit 退出
file 文件名 在gdb中载入某可执行文件
break 设置断点 支持如下形式:
break 行号;
break 函数名称;
break 行号/函数名称 if 条件
info 查看和可执行程序相关的
各种信息
kill 终止正在调试的程序
print 显示变量或表达式的值
set args 设置调试程序的运行参数 “set args 参数列表”
delete 删除设置的某个断点
或观测点 delete后可以使用breakpoints、
checkpoint、display、mem和
tracepoints。可使用
help delete查看
clear 删除设置在指定行号
或函数上的断点
continue 从断点处继续执行程序
list 列出gdb中可加载的
程序代码 不带任何参数使用list命令时,
会从开始位置列出所有代码,
同时list还支持列出指定行号
之间的代码
watch 在程序中设置观测点 如果数据改变,将给出
变化前后的情况
run 运行在gdb中可加载的程序
next 单步执行程序
step 进入所调用的函数内部,
查看执行情况 退出调用函数,回到调用处
使用finish命令
whatis 查看变量或函数类型 调用格式为“whatis 变量名/
函数名
ptype 显示数据结构定义情况 与whatis不同的是,
ptype可以显示类或
数据结构的定义情况
make 编译程序
quit 退出
星期六, 二月 23, 2008
教育网可用的北邮的Fedora 8 yum源
# cat /etc/yum.repos.d/by.repo
[Fedora-by]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.bupt.edu.cn/pub/mirror/fedora/linux/releases/$releasever/Fedor
a/$basearch/os/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GP
G-KEY
[Everything-by]
name=Everything $releasever - $basearch
baseurl=ftp://ftp.bupt.edu.cn/pub/mirror/fedora/linux/releases/$releasever/Every
thing/$basearch/os/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GP
G-KEY
[updates-by]
name=Fedora updates
baseurl=ftp://ftp.bupt.edu.cn/pub/mirror/fedora/linux/updates/$releasever/$basea
rch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GP
G-KEY
[Development-by]
name=Fedora Development
baseurl=ftp://ftp.bupt.edu.cn/pub/mirror/fedora/linux/development/$basearch/
enabled=0
gpgcheck=0
[Fedora-by]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.bupt.edu.cn/pub/mirror/fedora/linux/releases/$releasever/Fedor
a/$basearch/os/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GP
G-KEY
[Everything-by]
name=Everything $releasever - $basearch
baseurl=ftp://ftp.bupt.edu.cn/pub/mirror/fedora/linux/releases/$releasever/Every
thing/$basearch/os/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GP
G-KEY
[updates-by]
name=Fedora updates
baseurl=ftp://ftp.bupt.edu.cn/pub/mirror/fedora/linux/updates/$releasever/$basea
rch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GP
G-KEY
[Development-by]
name=Fedora Development
baseurl=ftp://ftp.bupt.edu.cn/pub/mirror/fedora/linux/development/$basearch/
enabled=0
gpgcheck=0
星期三, 一月 16, 2008
Fedora 8平台Mysql 5的安装
Fedora 8平台Mysql 5的安装
yum install mysql-server
yum install mysql
mysql_install_db
好了,比以前的版本轻松许多。
另外mysql server的日志文件为/var/log/mysqld.log
yum install mysql-server
yum install mysql
mysql_install_db
好了,比以前的版本轻松许多。
另外mysql server的日志文件为/var/log/mysqld.log
makefile支持的预定义变量及其定义
makefile支持的预定义变量及其定义
$@ 表示当前规则中的目标文件名
$? 新修改过的依赖文件列表
$* 不包含扩展名的目标文件名
$< 当前规则中的第一个依赖文件名
$% 当目标文件为库文件时,该变量为库文件名
$^ 当前规则中的所有文件列表
AR 归档程序名称,默认为CC
CC C编译器命令名,默认为CC
CFLAGS C编译器编译参数
$@ 表示当前规则中的目标文件名
$? 新修改过的依赖文件列表
$* 不包含扩展名的目标文件名
$< 当前规则中的第一个依赖文件名
$% 当目标文件为库文件时,该变量为库文件名
$^ 当前规则中的所有文件列表
AR 归档程序名称,默认为CC
CC C编译器命令名,默认为CC
CFLAGS C编译器编译参数
星期二, 一月 15, 2008
利用Vim+Taglist+Ctags阅读编辑代码
利用Vim+Taglist+Ctags阅读编辑代码
其实这套组合很实用了 基本上到了不用鼠标的source insight境界了
最重要的是可以在text模式下运行
使用的平台是Fedora 8
Vim和Ctags在F8安装完后系统已经具备
Taglist需要自己下载
1.下载一个Taglist的zip文件,然后解压缩,将taglist.vim复制到~/.vim/plugin目录下。
2.修改~/.vim/plugin/taglist.vim
在 if !exists('loaded_taglist')上面加入
let Tlist_Ctags_Cmd="/usr/bin/ctags"
结果为:
" Line continuation used here
let s:cpo_save = &cpo
set cpo&vim
let Tlist_Ctags_Cmd="/usr/bin/ctags"
if !exists('loaded_taglist')
" First time loading the taglist plugin
"
" To speed up the loading of Vim, the taglist plugin uses autoload
" mechanism to load the taglist functions.
" Only define the configuration variables, user commands and some
" auto-commands and finish sourcing the file
" The taglist plugin requires the built-in Vim system() function. If this
" function is not available, then don't load the plugin.
if !exists('*system')
echomsg 'Taglist: Vim system() built-in function is not available. ' .
\ 'Plugin is not loaded.'
let loaded_taglist = 'no'
let &cpo = s:cpo_save
finish
endif
此时Ctags和Taglist已经结合起来。
3.在相应的源码目录运行ctags -R产生相应的tags文件
4.将tags文件在vim运行时导入。可以修改~/.vimrc,以后每次启动vim将自动导入此tags文件
:set tags=/root/develop/honeyids/tags
并设置语法高亮
syntax enable
syntax on
5.运行vim, 激活Taglist时用:TaglistToggle命令。在左边的tags区域和正常编辑区域切换时用ctrl+2
个w。
6.使用ctags时, ctrl+]可查看函数的定义。 ctrl+o返回源文件
其实这套组合很实用了 基本上到了不用鼠标的source insight境界了
最重要的是可以在text模式下运行
使用的平台是Fedora 8
Vim和Ctags在F8安装完后系统已经具备
Taglist需要自己下载
1.下载一个Taglist的zip文件,然后解压缩,将taglist.vim复制到~/.vim/plugin目录下。
2.修改~/.vim/plugin/taglist.vim
在 if !exists('loaded_taglist')上面加入
let Tlist_Ctags_Cmd="/usr/bin/ctags"
结果为:
" Line continuation used here
let s:cpo_save = &cpo
set cpo&vim
let Tlist_Ctags_Cmd="/usr/bin/ctags"
if !exists('loaded_taglist')
" First time loading the taglist plugin
"
" To speed up the loading of Vim, the taglist plugin uses autoload
" mechanism to load the taglist functions.
" Only define the configuration variables, user commands and some
" auto-commands and finish sourcing the file
" The taglist plugin requires the built-in Vim system() function. If this
" function is not available, then don't load the plugin.
if !exists('*system')
echomsg 'Taglist: Vim system() built-in function is not available. ' .
\ 'Plugin is not loaded.'
let loaded_taglist = 'no'
let &cpo = s:cpo_save
finish
endif
此时Ctags和Taglist已经结合起来。
3.在相应的源码目录运行ctags -R产生相应的tags文件
4.将tags文件在vim运行时导入。可以修改~/.vimrc,以后每次启动vim将自动导入此tags文件
:set tags=/root/develop/honeyids/tags
并设置语法高亮
syntax enable
syntax on
5.运行vim, 激活Taglist时用:TaglistToggle命令。在左边的tags区域和正常编辑区域切换时用ctrl+2
个w。
6.使用ctags时, ctrl+]可查看函数的定义。 ctrl+o返回源文件
星期一, 一月 14, 2008
星期四, 一月 10, 2008
Fedora8 教育网中 可以使用的yum 源
一个是上海交大的
cat /etc/yum.repos.d/sj.repo
[updates]
name=Fedora updates
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/updates/$releasever/$basearch/
enabled=1
gpgcheck=0
[Fedora]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Fedora/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
[Everything]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
[freshrpms]
name=Fedora Core $releasever - $basearch - Freshrpms
baseurl=ftp://ftp.sjtu.edu.cn/freshrpms/ayo/fedora/linux/$releasever/$basearch/freshrpms/
enabled=1
gpgkea=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-freshrpms
gpgcheck=0
另外一个是清华的
cat /etc/yum.repos.d/tsinghua.repo
[updates-ts]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[livna-ts]
name=Livna for Fedora Core $releasever - $basearch - livna
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[livna-development-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[livna-testing-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[testing-ts]
name=Fedora Core $releasever - $basearch - Released Testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
cat /etc/yum.repos.d/sj.repo
[updates]
name=Fedora updates
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/updates/$releasever/$basearch/
enabled=1
gpgcheck=0
[Fedora]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Fedora/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
[Everything]
name=Fedora $releasever - $basearch
baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY
[freshrpms]
name=Fedora Core $releasever - $basearch - Freshrpms
baseurl=ftp://ftp.sjtu.edu.cn/freshrpms/ayo/fedora/linux/$releasever/$basearch/freshrpms/
enabled=1
gpgkea=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-freshrpms
gpgcheck=0
另外一个是清华的
cat /etc/yum.repos.d/tsinghua.repo
[updates-ts]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[livna-ts]
name=Livna for Fedora Core $releasever - $basearch - livna
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[livna-development-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[livna-testing-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[testing-ts]
name=Fedora Core $releasever - $basearch - Released Testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
教育网中Fedora Core 6 可用的清华yum源
[base-ts]
name=Fedora Core $releasever - $basearch - Base
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[extras-ts]
name=Fedora Extras $releasever - $basearch
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras
gpgcheck=1
[updates-ts]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[livna-ts]
name=Livna for Fedora Core $releasever - $basearch - livna
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[livna-development-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[livna-testing-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[testing-ts]
name=Fedora Core $releasever - $basearch - Released Testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[development-ts]
name=Fedora Core $releasever - $basearch - Released Development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
name=Fedora Core $releasever - $basearch - Base
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[extras-ts]
name=Fedora Extras $releasever - $basearch
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras
gpgcheck=1
[updates-ts]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[livna-ts]
name=Livna for Fedora Core $releasever - $basearch - livna
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[livna-development-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[livna-testing-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna
[testing-ts]
name=Fedora Core $releasever - $basearch - Released Testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
[development-ts]
name=Fedora Core $releasever - $basearch - Released Development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
星期三, 一月 09, 2008
【转】理解Windows Vista的启动过程
转自
http://windows.chinaitlab.com/basic/736838.html
如果您使用具有早期Windows版本如WindowsXP 的多启动环境,那么您可能迫切需要了解Windows Vista的启动过程做了哪些修改。在Windows Vista的启动过程中Ntldr和 Boot ini不再被使用(当然,在多启动环境下需要引导Windows 2000/XP或Windows Server2003时他们还是起作用的)。
过程概述:
开启电源。计算机系统将进行加电自检(POST)。如果通过,之后BIOS会读取主引导记录(MBR)-被标记为启动设备的硬盘的首扇区,并传送被Windows Vista建立的控制编码给MBR。这时Windows接管启动过程。接下来:
1.MBR读取引导扇区-活动分区的第一扇区。此扇区包含用以启动Windows启动管理器(Windows Boot Manager)程序Bootmgr exe的代码。
2.Windows启动管理器读取“启动配置数据存储(Boot Confi guration Data store)中的信息。此信息包含已被安装在计算机上的所有操作系统的配置信息。并且用以生成启动菜单。
3.当您在启动菜单中选择下列动作时:
<>如果您选择的是Windows Vista,Windows 启动管理器(Windows Boot Manager)运行%SystemRoot%\System32文件夹中的OS loader- Winload exe。
<>如果您选择的是自休眠状态恢复Windows Vista,那么启动管理器将装载Winresume exe并恢复您先前的使用环境。
<>如果您在启动菜单中选择的是早期的Windows版本,启动管理器将定位系统安装所在的卷,并且加载Windows NT风格的早期OS loader(Ntldr.exe),如果需要,生成一个由boot.ini内容决定的启动菜单。
Windows Vista启动时加载其核心文件 Ntoskrnl.exe和hal.dll从注册表中读取设置并加载驱动程序。接下来将运行Windows会话管理器(smss.exe)并且启动Windows启动程序(Wininit exe),本地安全验证(Lsass.exe)与服务(services.exe)进程,完成后,您就可以登录您的系统了。
http://windows.chinaitlab.com/basic/736838.html
如果您使用具有早期Windows版本如WindowsXP 的多启动环境,那么您可能迫切需要了解Windows Vista的启动过程做了哪些修改。在Windows Vista的启动过程中Ntldr和 Boot ini不再被使用(当然,在多启动环境下需要引导Windows 2000/XP或Windows Server2003时他们还是起作用的)。
过程概述:
开启电源。计算机系统将进行加电自检(POST)。如果通过,之后BIOS会读取主引导记录(MBR)-被标记为启动设备的硬盘的首扇区,并传送被Windows Vista建立的控制编码给MBR。这时Windows接管启动过程。接下来:
1.MBR读取引导扇区-活动分区的第一扇区。此扇区包含用以启动Windows启动管理器(Windows Boot Manager)程序Bootmgr exe的代码。
2.Windows启动管理器读取“启动配置数据存储(Boot Confi guration Data store)中的信息。此信息包含已被安装在计算机上的所有操作系统的配置信息。并且用以生成启动菜单。
3.当您在启动菜单中选择下列动作时:
<>如果您选择的是Windows Vista,Windows 启动管理器(Windows Boot Manager)运行%SystemRoot%\System32文件夹中的OS loader- Winload exe。
<>如果您选择的是自休眠状态恢复Windows Vista,那么启动管理器将装载Winresume exe并恢复您先前的使用环境。
<>如果您在启动菜单中选择的是早期的Windows版本,启动管理器将定位系统安装所在的卷,并且加载Windows NT风格的早期OS loader(Ntldr.exe),如果需要,生成一个由boot.ini内容决定的启动菜单。
Windows Vista启动时加载其核心文件 Ntoskrnl.exe和hal.dll从注册表中读取设置并加载驱动程序。接下来将运行Windows会话管理器(smss.exe)并且启动Windows启动程序(Wininit exe),本地安全验证(Lsass.exe)与服务(services.exe)进程,完成后,您就可以登录您的系统了。
星期一, 一月 07, 2008
【转】Linux系统的开机程序执行顺序
【转】Linux系统的开机程序执行顺序
转自http://linux.chinaitlab.com/administer/736585.html
开机的程序是这样的:
1. 加载 BIOS 的硬件信息,并取得第一个开机装置的代号;
2. 读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的开机信息;
3. 加载 Kernel 操作系统核心信息, Kernel 开始解压缩,并且尝试驱动所有硬件装置;
4. Kernel 执行 init 程序并取得 run-level 信息;
5. init 执行 /etc/rc.d/rc.sysinit 档案;
6. 启动核心的外挂模块 (/etc/modprobe.conf);
7. init 执行 run-level 的各个批次档( Scripts );
8. init 执行 /etc/rc.d/rc.local 档案;
9. 执行 /bin/login 程序,并等待使用者登入;
10. 登入之后开始以 Shell 控管主机。
转自http://linux.chinaitlab.com/administer/736585.html
开机的程序是这样的:
1. 加载 BIOS 的硬件信息,并取得第一个开机装置的代号;
2. 读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的开机信息;
3. 加载 Kernel 操作系统核心信息, Kernel 开始解压缩,并且尝试驱动所有硬件装置;
4. Kernel 执行 init 程序并取得 run-level 信息;
5. init 执行 /etc/rc.d/rc.sysinit 档案;
6. 启动核心的外挂模块 (/etc/modprobe.conf);
7. init 执行 run-level 的各个批次档( Scripts );
8. init 执行 /etc/rc.d/rc.local 档案;
9. 执行 /bin/login 程序,并等待使用者登入;
10. 登入之后开始以 Shell 控管主机。
星期四, 一月 03, 2008
[转]Linux环境下入侵工具Knark的分析及防范
Linux环境下入侵工具Knark的分析及防范
转自
http://linux.chinaitlab.com/safe/736314.html
文讨论了Linux环境下攻击者入侵成功以后常常使用的一些后门技术,并且对最著名的rootkit工具之一?knark进行了详细的分析,并且指出了在发现系统被入侵以后如何发现是否是kark及如何恢复。
什么是"rootkit"?
入侵者入侵后往往会进行清理脚印和留后门等工作,最常使用的后门创建工具就是rootkit。不要被名字所迷惑,这个所谓的“rootkit”可不是给超级用户root用的,它是入侵者在入侵了一太主机后,用来做创建后门并加以伪装用的程序包。这个程序包里通常包括了日志清理器,后门等程序。同时,程序包里通常还带有一些伪造的ps、ls、who、w、netstat等原本属于系统本身的程序,这样的话,程序员在试图通过这些命令查询系统状况的时候,就无法通过这些假的系统程序发觉入侵者的行踪。
在一些黑客组织中,rootkit (或者backdoor)是一个非常感兴趣的话题。各种不同的rootkit被开发并发布在internet上。在这些rootkit之中, LKM尤其被人关注,因为它是利用现代操作系统的模块技术。作为内核的一部分运行,这种rootkit将会越来越比传统技术更加强大更加不易被发觉。一旦被安装运行到目标机器上, 系统就会完全被控制在hacker手中了。甚至系统管理员根本找不到安全隐患的痕迹, 因为他们不能再信任它们的操作系统了。后门程序的目的就是甚至系统管理员企图弥补系统漏洞的时候也可以给hacker系统的访问权限。
入侵者通过:设置uid程序, 系统木马程序, cron后门等方法来实现入侵者以后从非特权用户使用root权限。
*设置uid程序。 黑客在一些文件系统理放一些设置uid脚本程序。无论何时它们只要执行这个程序它们就会成为root。
*系统木马程序。黑客替换一些系统程序,如"login"程序。因此, 只要满足一定的条件,那些程序就会给黑客最高权限。
*Cron后门。黑客在cron增加或修改一些任务,在某个特定的时间程序运行,他们就可以获得最高权限。
具体可能通过以下方法给予远程用户以最高访问权限: ".rhost" 文件, ssh认证密钥, bind shell, 木马服务程序。
*".rhosts" 文件。一旦 "+ +"被加入某个用户的.rhosts文件里, 任何人在任何地方都可以用这个账号来登陆进来而不需要密码。
*ssh认证密钥。黑客把他自己的公共密钥放到目标机器的ssh配置文件"authorized_keys"里, 他可以用该账号来访问机器而不需要密码。
*Bind shell。黑客绑定一个shell到一个特定的tcp端口。任何人telnet这个端口都可以获得交互的shell。更多精巧的这种方式的后门可以基于udp,或者未连接的tcp, 甚至icmp协议。
*Trojaned服务程序。任何打开的服务都可以成为木马来为远程用户提供访问权限。例如, 利用inetd服务在一个特定的端口来创建一个bind shell,或者通过ssh守护进程提供访问途径。
在入侵者植入和运行后门程序之后, 他会设法隐藏自己存在的证据,这主要涉及到两个方面问题: 如何来隐藏他的文件且如何来隐藏他的进程。
为了隐藏文件, 入侵者需要做如下事情: 替换一些系统常用命令如"ls", "du", "fsck"。在底层方面, 他们通过把硬盘里的一些区域标记为坏块并把它的文件放在那里。或者如果他足够疯狂,他会把一些文件放入引导块里。
为了隐藏进程, 他可以替换 "ps"程序, 或者通过修改argv[]来使程序看起来象一个合法的服务程序。有趣的是把一个程序改成中断驱动的话,它就不会出现在进程表里了。
RootKit-Knark的历史
Knark是第二代的新型rootkit工具-其基于LJM(loadable kernelmodule)技术,使用这种技术可以有效地隐藏系统的信息。作者在代码和README文件中都标注有不承担责任的声明,声明该代码不可以被用作非法活动。然而该软件可以容易地被用于这种目的。
Knark是由creed@sekure.net编写的,主要基于http://www.dataguard.no/bugtraq/1997_4/0059.html中RunarJensen 编写的代码heroin.c,设计思想主要来自于Phrack 52中plaguez发表的文章Weakening the LinuxKernel"。在重新编写了heroin.c的大部分代码以后,Creed决定重新命名为"Knark",在瑞典语中是指吸毒者。Creed 编写的其他软件可以在www.sekure.net/~happy-h/得到,但是由于该站点只有瑞典语版本,因此应用并不广泛。
Knark的第一个公开版本是0.41,发布于June, 1999。可以在B4B0 #9中索引到它:http://packetstorm.securify.com/mag/b4b0/b4b0-09.txt。随后0.50和0.59被发布,当前版本是0.59。可以从这里下载0.59版。
Knark特性
Knark0.59具有以下特性:
*隐藏或显示文件或目录
*隐藏TCP或UDP连接
*程序执行重定向
*非授权地用户权限增加("rootme")
*改变一个运行进程的UID/GID的工具
*非授权地、特权程序远程执行守护进程
*Kill –31来隐藏运行的进程
联合使用程序执行重新定向和文件隐藏,入侵者能提供各种后门程序执行。由于执行重定向是在内核级别进行的,因此文件检测工具不会发现程序文件被修改-原始的执行程序并没有被修改,因此配置检测工具在路径环境中也不会发现任何异常。
如果Knark结合另外一个用来隐藏系统当前加载的模块的LKM工具modhide,就可能实现甚至通过lsmod命令也不能发现knark的存在。
转自
http://linux.chinaitlab.com/safe/736314.html
文讨论了Linux环境下攻击者入侵成功以后常常使用的一些后门技术,并且对最著名的rootkit工具之一?knark进行了详细的分析,并且指出了在发现系统被入侵以后如何发现是否是kark及如何恢复。
什么是"rootkit"?
入侵者入侵后往往会进行清理脚印和留后门等工作,最常使用的后门创建工具就是rootkit。不要被名字所迷惑,这个所谓的“rootkit”可不是给超级用户root用的,它是入侵者在入侵了一太主机后,用来做创建后门并加以伪装用的程序包。这个程序包里通常包括了日志清理器,后门等程序。同时,程序包里通常还带有一些伪造的ps、ls、who、w、netstat等原本属于系统本身的程序,这样的话,程序员在试图通过这些命令查询系统状况的时候,就无法通过这些假的系统程序发觉入侵者的行踪。
在一些黑客组织中,rootkit (或者backdoor)是一个非常感兴趣的话题。各种不同的rootkit被开发并发布在internet上。在这些rootkit之中, LKM尤其被人关注,因为它是利用现代操作系统的模块技术。作为内核的一部分运行,这种rootkit将会越来越比传统技术更加强大更加不易被发觉。一旦被安装运行到目标机器上, 系统就会完全被控制在hacker手中了。甚至系统管理员根本找不到安全隐患的痕迹, 因为他们不能再信任它们的操作系统了。后门程序的目的就是甚至系统管理员企图弥补系统漏洞的时候也可以给hacker系统的访问权限。
入侵者通过:设置uid程序, 系统木马程序, cron后门等方法来实现入侵者以后从非特权用户使用root权限。
*设置uid程序。 黑客在一些文件系统理放一些设置uid脚本程序。无论何时它们只要执行这个程序它们就会成为root。
*系统木马程序。黑客替换一些系统程序,如"login"程序。因此, 只要满足一定的条件,那些程序就会给黑客最高权限。
*Cron后门。黑客在cron增加或修改一些任务,在某个特定的时间程序运行,他们就可以获得最高权限。
具体可能通过以下方法给予远程用户以最高访问权限: ".rhost" 文件, ssh认证密钥, bind shell, 木马服务程序。
*".rhosts" 文件。一旦 "+ +"被加入某个用户的.rhosts文件里, 任何人在任何地方都可以用这个账号来登陆进来而不需要密码。
*ssh认证密钥。黑客把他自己的公共密钥放到目标机器的ssh配置文件"authorized_keys"里, 他可以用该账号来访问机器而不需要密码。
*Bind shell。黑客绑定一个shell到一个特定的tcp端口。任何人telnet这个端口都可以获得交互的shell。更多精巧的这种方式的后门可以基于udp,或者未连接的tcp, 甚至icmp协议。
*Trojaned服务程序。任何打开的服务都可以成为木马来为远程用户提供访问权限。例如, 利用inetd服务在一个特定的端口来创建一个bind shell,或者通过ssh守护进程提供访问途径。
在入侵者植入和运行后门程序之后, 他会设法隐藏自己存在的证据,这主要涉及到两个方面问题: 如何来隐藏他的文件且如何来隐藏他的进程。
为了隐藏文件, 入侵者需要做如下事情: 替换一些系统常用命令如"ls", "du", "fsck"。在底层方面, 他们通过把硬盘里的一些区域标记为坏块并把它的文件放在那里。或者如果他足够疯狂,他会把一些文件放入引导块里。
为了隐藏进程, 他可以替换 "ps"程序, 或者通过修改argv[]来使程序看起来象一个合法的服务程序。有趣的是把一个程序改成中断驱动的话,它就不会出现在进程表里了。
RootKit-Knark的历史
Knark是第二代的新型rootkit工具-其基于LJM(loadable kernelmodule)技术,使用这种技术可以有效地隐藏系统的信息。作者在代码和README文件中都标注有不承担责任的声明,声明该代码不可以被用作非法活动。然而该软件可以容易地被用于这种目的。
Knark是由creed@sekure.net编写的,主要基于http://www.dataguard.no/bugtraq/1997_4/0059.html中RunarJensen 编写的代码heroin.c,设计思想主要来自于Phrack 52中plaguez发表的文章Weakening the LinuxKernel"。在重新编写了heroin.c的大部分代码以后,Creed决定重新命名为"Knark",在瑞典语中是指吸毒者。Creed 编写的其他软件可以在www.sekure.net/~happy-h/得到,但是由于该站点只有瑞典语版本,因此应用并不广泛。
Knark的第一个公开版本是0.41,发布于June, 1999。可以在B4B0 #9中索引到它:http://packetstorm.securify.com/mag/b4b0/b4b0-09.txt。随后0.50和0.59被发布,当前版本是0.59。可以从这里下载0.59版。
Knark特性
Knark0.59具有以下特性:
*隐藏或显示文件或目录
*隐藏TCP或UDP连接
*程序执行重定向
*非授权地用户权限增加("rootme")
*改变一个运行进程的UID/GID的工具
*非授权地、特权程序远程执行守护进程
*Kill –31来隐藏运行的进程
联合使用程序执行重新定向和文件隐藏,入侵者能提供各种后门程序执行。由于执行重定向是在内核级别进行的,因此文件检测工具不会发现程序文件被修改-原始的执行程序并没有被修改,因此配置检测工具在路径环境中也不会发现任何异常。
如果Knark结合另外一个用来隐藏系统当前加载的模块的LKM工具modhide,就可能实现甚至通过lsmod命令也不能发现knark的存在。
星期三, 一月 02, 2008
[转]从两个方面讲解SQL Server口令的脆弱性
[转]从两个方面讲解SQL Server口令的脆弱性
转自
http://database.csdn.net/page/f3f2c28f-5093-471e-bcfc-ef020629f4ab
如果你细心跟踪一下SQL Server数据库服务器的登录过程,你会发现口令计算其实是非常脆弱的,SQL Server数据库的口令脆弱体现两方面:
1、网络登陆时候的口令加密算法
2、数据库存储的口令加密算法。
下面就分别讲述:
1、网络登陆时候的口令加密算法
SQL Server网络加密的口令一直都非常脆弱,网上有很多写出来的对照表,但是都没有具体的算法处理,实际上跟踪一下SQL Server的登陆过程,就很容易获取其解密的算法:好吧,我们还是演示一下汇编流程:
登录类型的TDS包跳转到4126a4处执行:
004DE72E:根据接收到的大小字段生成对应大小的缓冲区进行下一步的拷贝
004DE748从接收到的TDS BUF偏移8处拷贝出LOGIN的信息
004DE762:call sub_54E4D0:将新拷贝的缓冲压入进行参数检查的处理
依次处理TDS包中的信息,各个字段气候都应该有各个域的长度,偏移0X24处与长度进行比较。
下面这段汇编代码就是实现对网络加密密码解密的算法:
.text:0065C880 mov cl, [edi]
.text:0065C882 mov dl, cl
.text:0065C884 xor cl, 5
.text:0065C887 xor dl, 0AFh
.text:0065C88A shr dl, 4
.text:0065C88D shl cl, 4
.text:0065C890 or dl, cl
.text:0065C892 mov [edi], dl
.text:0065C894 inc edi
.text:0065C895 dec eax
.text:0065C896 jnz short loc_65C880
.text:0065C898 jmp loc_4DE7E6
很容易就将其换成为C代码,可以看出其加密及其简单,和明文没什么区别,大家可以在SNIFFER中嵌入这段代码对嗅叹到的TDS登陆包进行解密,其实 0XA5不是特定的SQL Server密码字段的分界符号,只是由于加密算法会自动把ASC的双字节表示的0x0加密成0xa5而已,但是如果允许双字节口令,这个就不是判断其分界的主要原因了。
void sqlpasswd(char * enp,char* dnp)
{
int i;
unsigned char a1;
unsigned char a2;
for(i=0; i<128; i++)
{
if(enp[i]==0)
break;
a1 = enp[i]^5;
a1 = a1 << 4;
a2 = enp[i]^0xaf;
a2 = a2 >> 4;
dnp[i]=a1|a2;
}
dnp[i]=0;
dnp[i+1]=0;
wprintf(L"passwd:%s\n",(const wchar_t *)dnp);
}
2、数据库存储的口令加密算法
SQL Server的口令到数据库存储的加密方法,也是很让人诧异的。其过程如下:
在获得网络解密密码的口令以后在005F9D5A处call SQLSORT_14,实现一个转换为大写口令缓冲进行保存。
然后在004def6d处调用一个函数取出数据库中的加密的PASSWORD,其形式如下:
2个字节的头0x0100(固定)
4个字节的HASH加秘KEY
20个字节的HASH1
20个字节的HASH2
如我取出的一个例子:
fx:0x0100 1751857F DFDEC4FB618D8D18EBA5A27F615639F607
CD46BE DFDEC4FB618D8D18EBA5A27F615639F607CD46BE
固定 补充KEY HASH1 HASH2
口令是:123456
SQL首先用4个字节的HASH加秘KEY补上其两处口令的缓冲,一个为大写,一个为小写。然后其加密过程如下C函数:
CryptAcquireContextW(&hProv,NULL,
L("Microsoft Base Cryptographic Provider v1.0"),1,0xf0000000);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hhash);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hHash);
005F9DFE:
CryptHashData(hhash,passwdbuf,0x12,NULL);
passwdbuf是小写的passwd缓冲区,然后附加一个KEY,如上例子就是对
{'1','2''3''4''5''6',0x17,0x51,0x85,0x7F}
这样的一个字串进行HASH加密
CryptHashData(hHash,PASSWDBUF,0x12,NULL)
; PASSWDBUF是大写的passwd缓冲区,然后附加一个KEY 005F9E3E:
CryptGetHashParam(hhash,2,&passwdout,&outlen,0);
取出passwdbuf是小写的passwd的加密值
CryptGetHashParam(hHash,2,&PASSWDOUT,&OUTLEN,0);
取出passwdbuf是大写的passwd的加密值这两个相加就是真正的数据库中的PASSWORD加密字段.
为什么说以上方法是脆弱的呢?其实其真正的加密长度生成只有20个字节。
小写口令的HASH1+大写口令的HASH1拼接的40位HASH值的安全度还不如一个直接20位的HASH值来得安全。因为大家都知道这两个值的因果关系,
提供给了解密者更多的信息。
如因为其算法一样,如果HASH1=HASH2,就可以判断口令肯定是未使用字母,只使用了数字和符号的口令,如上取出的123456口令的HASH,两个HASH完全相等。
就是使用了字母,其知道补充的KEY,算法,两个加密字串的关系,其解应该也是大大的简化了。
2、数据库存储的口令加密算法
SQL Server的口令到数据库存储的加密方法,也是很让人诧异的。其过程如下:
在获得网络解密密码的口令以后在005F9D5A处call SQLSORT_14,实现一个转换为大写口令缓冲进行保存。
然后在004def6d处调用一个函数取出数据库中的加密的PASSWORD,其形式如下:
2个字节的头0x0100(固定)
4个字节的HASH加秘KEY
20个字节的HASH1
20个字节的HASH2
如我取出的一个例子:
fx:0x0100 1751857F DFDEC4FB618D8D18EBA5A27F615639F607
CD46BE DFDEC4FB618D8D18EBA5A27F615639F607CD46BE
固定 补充KEY HASH1 HASH2
口令是:123456
SQL首先用4个字节的HASH加秘KEY补上其两处口令的缓冲,一个为大写,一个为小写。然后其加密过程如下C函数:
CryptAcquireContextW(&hProv,NULL,
L("Microsoft Base Cryptographic Provider v1.0"),1,0xf0000000);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hhash);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hHash);
005F9DFE:
CryptHashData(hhash,passwdbuf,0x12,NULL);
passwdbuf是小写的passwd缓冲区,然后附加一个KEY,如上例子就是对
{'1','2''3''4''5''6',0x17,0x51,0x85,0x7F}
这样的一个字串进行HASH加密
CryptHashData(hHash,PASSWDBUF,0x12,NULL)
; PASSWDBUF是大写的passwd缓冲区,然后附加一个KEY 005F9E3E:
CryptGetHashParam(hhash,2,&passwdout,&outlen,0);
取出passwdbuf是小写的passwd的加密值
CryptGetHashParam(hHash,2,&PASSWDOUT,&OUTLEN,0);
取出passwdbuf是大写的passwd的加密值这两个相加就是真正的数据库中的PASSWORD加密字段.
为什么说以上方法是脆弱的呢?其实其真正的加密长度生成只有20个字节。
小写口令的HASH1+大写口令的HASH1拼接的40位HASH值的安全度还不如一个直接20位的HASH值来得安全。因为大家都知道这两个值的因果关系,
提供给了解密者更多的信息。
如因为其算法一样,如果HASH1=HASH2,就可以判断口令肯定是未使用字母,只使用了数字和符号的口令,如上取出的123456口令的HASH,两个HASH完全相等。
就是使用了字母,其知道补充的KEY,算法,两个加密字串的关系,其解应该也是大大的简化了。
转自
http://database.csdn.net/page/f3f2c28f-5093-471e-bcfc-ef020629f4ab
如果你细心跟踪一下SQL Server数据库服务器的登录过程,你会发现口令计算其实是非常脆弱的,SQL Server数据库的口令脆弱体现两方面:
1、网络登陆时候的口令加密算法
2、数据库存储的口令加密算法。
下面就分别讲述:
1、网络登陆时候的口令加密算法
SQL Server网络加密的口令一直都非常脆弱,网上有很多写出来的对照表,但是都没有具体的算法处理,实际上跟踪一下SQL Server的登陆过程,就很容易获取其解密的算法:好吧,我们还是演示一下汇编流程:
登录类型的TDS包跳转到4126a4处执行:
004DE72E:根据接收到的大小字段生成对应大小的缓冲区进行下一步的拷贝
004DE748从接收到的TDS BUF偏移8处拷贝出LOGIN的信息
004DE762:call sub_54E4D0:将新拷贝的缓冲压入进行参数检查的处理
依次处理TDS包中的信息,各个字段气候都应该有各个域的长度,偏移0X24处与长度进行比较。
下面这段汇编代码就是实现对网络加密密码解密的算法:
.text:0065C880 mov cl, [edi]
.text:0065C882 mov dl, cl
.text:0065C884 xor cl, 5
.text:0065C887 xor dl, 0AFh
.text:0065C88A shr dl, 4
.text:0065C88D shl cl, 4
.text:0065C890 or dl, cl
.text:0065C892 mov [edi], dl
.text:0065C894 inc edi
.text:0065C895 dec eax
.text:0065C896 jnz short loc_65C880
.text:0065C898 jmp loc_4DE7E6
很容易就将其换成为C代码,可以看出其加密及其简单,和明文没什么区别,大家可以在SNIFFER中嵌入这段代码对嗅叹到的TDS登陆包进行解密,其实 0XA5不是特定的SQL Server密码字段的分界符号,只是由于加密算法会自动把ASC的双字节表示的0x0加密成0xa5而已,但是如果允许双字节口令,这个就不是判断其分界的主要原因了。
void sqlpasswd(char * enp,char* dnp)
{
int i;
unsigned char a1;
unsigned char a2;
for(i=0; i<128; i++)
{
if(enp[i]==0)
break;
a1 = enp[i]^5;
a1 = a1 << 4;
a2 = enp[i]^0xaf;
a2 = a2 >> 4;
dnp[i]=a1|a2;
}
dnp[i]=0;
dnp[i+1]=0;
wprintf(L"passwd:%s\n",(const wchar_t *)dnp);
}
2、数据库存储的口令加密算法
SQL Server的口令到数据库存储的加密方法,也是很让人诧异的。其过程如下:
在获得网络解密密码的口令以后在005F9D5A处call SQLSORT_14,实现一个转换为大写口令缓冲进行保存。
然后在004def6d处调用一个函数取出数据库中的加密的PASSWORD,其形式如下:
2个字节的头0x0100(固定)
4个字节的HASH加秘KEY
20个字节的HASH1
20个字节的HASH2
如我取出的一个例子:
fx:0x0100 1751857F DFDEC4FB618D8D18EBA5A27F615639F607
CD46BE DFDEC4FB618D8D18EBA5A27F615639F607CD46BE
固定 补充KEY HASH1 HASH2
口令是:123456
SQL首先用4个字节的HASH加秘KEY补上其两处口令的缓冲,一个为大写,一个为小写。然后其加密过程如下C函数:
CryptAcquireContextW(&hProv,NULL,
L("Microsoft Base Cryptographic Provider v1.0"),1,0xf0000000);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hhash);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hHash);
005F9DFE:
CryptHashData(hhash,passwdbuf,0x12,NULL);
passwdbuf是小写的passwd缓冲区,然后附加一个KEY,如上例子就是对
{'1','2''3''4''5''6',0x17,0x51,0x85,0x7F}
这样的一个字串进行HASH加密
CryptHashData(hHash,PASSWDBUF,0x12,NULL)
; PASSWDBUF是大写的passwd缓冲区,然后附加一个KEY 005F9E3E:
CryptGetHashParam(hhash,2,&passwdout,&outlen,0);
取出passwdbuf是小写的passwd的加密值
CryptGetHashParam(hHash,2,&PASSWDOUT,&OUTLEN,0);
取出passwdbuf是大写的passwd的加密值这两个相加就是真正的数据库中的PASSWORD加密字段.
为什么说以上方法是脆弱的呢?其实其真正的加密长度生成只有20个字节。
小写口令的HASH1+大写口令的HASH1拼接的40位HASH值的安全度还不如一个直接20位的HASH值来得安全。因为大家都知道这两个值的因果关系,
提供给了解密者更多的信息。
如因为其算法一样,如果HASH1=HASH2,就可以判断口令肯定是未使用字母,只使用了数字和符号的口令,如上取出的123456口令的HASH,两个HASH完全相等。
就是使用了字母,其知道补充的KEY,算法,两个加密字串的关系,其解应该也是大大的简化了。
2、数据库存储的口令加密算法
SQL Server的口令到数据库存储的加密方法,也是很让人诧异的。其过程如下:
在获得网络解密密码的口令以后在005F9D5A处call SQLSORT_14,实现一个转换为大写口令缓冲进行保存。
然后在004def6d处调用一个函数取出数据库中的加密的PASSWORD,其形式如下:
2个字节的头0x0100(固定)
4个字节的HASH加秘KEY
20个字节的HASH1
20个字节的HASH2
如我取出的一个例子:
fx:0x0100 1751857F DFDEC4FB618D8D18EBA5A27F615639F607
CD46BE DFDEC4FB618D8D18EBA5A27F615639F607CD46BE
固定 补充KEY HASH1 HASH2
口令是:123456
SQL首先用4个字节的HASH加秘KEY补上其两处口令的缓冲,一个为大写,一个为小写。然后其加密过程如下C函数:
CryptAcquireContextW(&hProv,NULL,
L("Microsoft Base Cryptographic Provider v1.0"),1,0xf0000000);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hhash);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hHash);
005F9DFE:
CryptHashData(hhash,passwdbuf,0x12,NULL);
passwdbuf是小写的passwd缓冲区,然后附加一个KEY,如上例子就是对
{'1','2''3''4''5''6',0x17,0x51,0x85,0x7F}
这样的一个字串进行HASH加密
CryptHashData(hHash,PASSWDBUF,0x12,NULL)
; PASSWDBUF是大写的passwd缓冲区,然后附加一个KEY 005F9E3E:
CryptGetHashParam(hhash,2,&passwdout,&outlen,0);
取出passwdbuf是小写的passwd的加密值
CryptGetHashParam(hHash,2,&PASSWDOUT,&OUTLEN,0);
取出passwdbuf是大写的passwd的加密值这两个相加就是真正的数据库中的PASSWORD加密字段.
为什么说以上方法是脆弱的呢?其实其真正的加密长度生成只有20个字节。
小写口令的HASH1+大写口令的HASH1拼接的40位HASH值的安全度还不如一个直接20位的HASH值来得安全。因为大家都知道这两个值的因果关系,
提供给了解密者更多的信息。
如因为其算法一样,如果HASH1=HASH2,就可以判断口令肯定是未使用字母,只使用了数字和符号的口令,如上取出的123456口令的HASH,两个HASH完全相等。
就是使用了字母,其知道补充的KEY,算法,两个加密字串的关系,其解应该也是大大的简化了。
星期二, 一月 01, 2008
Windows XP常用命令合集
Windows XP常用命令合集
转自
http://testlab.chinaok.com/data/2006/0619/article_51017.htm
winver---------检查windows版本
wmimgmt.msc----打开windows管理体系结构(wmi)
wupdmgr--------windows更新程序
wscript--------windows脚本宿主设置
write----------写字板
winmsd---------系统信息
wiaacmgr-------扫描仪和照相机向导
winchat--------xp自带局域网聊天
mem.exe--------显示内存使用情况
msconfig-----------启动
msconfig.exe---系统配置实用程序
mplayer2-------简易widnows media player
mspaint--------画图板
mstsc----------远程桌面连接
mplayer2-------媒体播放机
magnify--------放大镜实用程序
mmc------------打开控制台
mobsync--------同步命令
dxdiag---------检查directx信息
drwtsn32------ 系统医生
devmgmt.msc--- 设备管理器
dfrg.msc-------磁盘碎片整理程序
diskmgmt.msc---磁盘管理实用程序
dcomcnfg-------打开系统组件服务
ddeshare-------打开dde共享设置
dvdplay--------dvd播放器
nslookup-------ip地址侦测器
net stop messenger-----停止信使服务
net start messenger----开始信使服务
notepad--------打开记事本
nslookup-------网络管理的工具向导
ntbackup-------系统备份和还原
narrator-------屏幕“讲述人”
ntmsmgr.msc----移动存储管理器
ntmsoprq.msc---移动存储管理员操作请求
netstat -an----(tc)命令检查接口
syncapp--------创建一个公文包
sysedit--------系统配置编辑器
sigverif-------文件签名验证程序
sndrec32-------录音机
shrpubw--------创建共享文件夹
secpol.msc-----本地安全策略
syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
services.msc---本地服务设置
sndvol32-------音量控制程序
sfc.exe--------系统文件检查器
sfc /scannow---windows文件保护(扫描错误并复原)
tsshutdn-------60秒倒计时关机命令
tourstart------xp简介(安装完成后出现的漫游xp程序)
taskmgr--------任务管理器 (2000/xp/2003)
eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打开资源管理器
packager-------对象包装程序
perfmon.msc----计算机性能监测程序
progman--------程序管理器
regedit.exe----注册表
rsop.msc-------组策略结果集
regedt32-------注册表编辑器
rononce -p ----15秒关机
regsvr32 /u *.dll----停止dll文件运行
regsvr32 /u zipfldr.dll------取消zip支持
cmd.exe--------cmd命令提示符
chkdsk.exe-----chkdsk磁盘检查
certmgr.msc----证书管理实用程序
calc-----------启动计算器
charmap--------启动字符映射表
cliconfg-------sql server 客户端网络实用程序
clipbrd--------剪贴板查看器
conf-----------启动netmeeting
compmgmt.msc---计算机管理
cleanmgr-------垃圾整理
ciadv.msc------索引服务程序
osk------------打开屏幕键盘
odbcad32-------odbc数据源管理器
oobe/msoobe /a----检查xp是否激活
lusrmgr.msc----本机用户和组
logoff---------注销命令
iexpress-------木马捆绑工具,系统自带
fsmgmt.msc-----共享文件夹管理器
utilman--------辅助工具管理器
gpedit.msc-----组策略
转自
http://testlab.chinaok.com/data/2006/0619/article_51017.htm
winver---------检查windows版本
wmimgmt.msc----打开windows管理体系结构(wmi)
wupdmgr--------windows更新程序
wscript--------windows脚本宿主设置
write----------写字板
winmsd---------系统信息
wiaacmgr-------扫描仪和照相机向导
winchat--------xp自带局域网聊天
mem.exe--------显示内存使用情况
msconfig-----------启动
msconfig.exe---系统配置实用程序
mplayer2-------简易widnows media player
mspaint--------画图板
mstsc----------远程桌面连接
mplayer2-------媒体播放机
magnify--------放大镜实用程序
mmc------------打开控制台
mobsync--------同步命令
dxdiag---------检查directx信息
drwtsn32------ 系统医生
devmgmt.msc--- 设备管理器
dfrg.msc-------磁盘碎片整理程序
diskmgmt.msc---磁盘管理实用程序
dcomcnfg-------打开系统组件服务
ddeshare-------打开dde共享设置
dvdplay--------dvd播放器
nslookup-------ip地址侦测器
net stop messenger-----停止信使服务
net start messenger----开始信使服务
notepad--------打开记事本
nslookup-------网络管理的工具向导
ntbackup-------系统备份和还原
narrator-------屏幕“讲述人”
ntmsmgr.msc----移动存储管理器
ntmsoprq.msc---移动存储管理员操作请求
netstat -an----(tc)命令检查接口
syncapp--------创建一个公文包
sysedit--------系统配置编辑器
sigverif-------文件签名验证程序
sndrec32-------录音机
shrpubw--------创建共享文件夹
secpol.msc-----本地安全策略
syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
services.msc---本地服务设置
sndvol32-------音量控制程序
sfc.exe--------系统文件检查器
sfc /scannow---windows文件保护(扫描错误并复原)
tsshutdn-------60秒倒计时关机命令
tourstart------xp简介(安装完成后出现的漫游xp程序)
taskmgr--------任务管理器 (2000/xp/2003)
eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打开资源管理器
packager-------对象包装程序
perfmon.msc----计算机性能监测程序
progman--------程序管理器
regedit.exe----注册表
rsop.msc-------组策略结果集
regedt32-------注册表编辑器
rononce -p ----15秒关机
regsvr32 /u *.dll----停止dll文件运行
regsvr32 /u zipfldr.dll------取消zip支持
cmd.exe--------cmd命令提示符
chkdsk.exe-----chkdsk磁盘检查
certmgr.msc----证书管理实用程序
calc-----------启动计算器
charmap--------启动字符映射表
cliconfg-------sql server 客户端网络实用程序
clipbrd--------剪贴板查看器
conf-----------启动netmeeting
compmgmt.msc---计算机管理
cleanmgr-------垃圾整理
ciadv.msc------索引服务程序
osk------------打开屏幕键盘
odbcad32-------odbc数据源管理器
oobe/msoobe /a----检查xp是否激活
lusrmgr.msc----本机用户和组
logoff---------注销命令
iexpress-------木马捆绑工具,系统自带
fsmgmt.msc-----共享文件夹管理器
utilman--------辅助工具管理器
gpedit.msc-----组策略
订阅:
博文 (Atom)