1. 如何在Ubuntu 12.04上配置CUDA 4.2
今天运行一个UCLA的光流程序,非常耗时间。看到作者在网站上提供了GPU版的,所以希望能使用CUDA加速的版本。今天晚上按照NVidia论坛上的一个教程,成功的配置好了ubuntu 12.04 64bit版的CUDA 4.2. 现将原文分享如下:
http。//forums。nvidia。com/index.php?showtopic=231150
Posted 06 June 2012 - 10:40 PM
This post is to give a complete picture on how to install and test CUDA 4.2 on Ubuntu 12.04 64 bit. I have found that everything that needs to be done is quite scattered and needs bringing together to make CUDA more accessible to more novice users such as my self. So if this doesn't work for you please post and let us know and if you know a quicker or better way please enlighten us!!!
Thanks,
CDS
I hope you find this useful and I would like to credit my sources:
FCNS
sn0v
The NVIDIA CUDA Getting Started Guide (linux)
Note one must have a nVidia GPU which is CUDA capable http。//developer。nvidia。com/cuda-gpus
Check is the OS is 32 or 64 bit by running
uname -m
in a terminal. i686 denotes a 32-bit system, and x86_64 denotes a 64-bit one.
Proceed to CUDA Downloads page: http。//developer。nvidia。com/cu
For the toolkit, I chose the one titled Ubuntu 11.04, and save all three files in an easy to access location, like your Home folder.
Make sure the requisite tools are installed using the following command :
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
Next, blacklist the required moles (so that they don’t interfere with the driver installation)
gksu gedit /etc/modprobe.d/blacklist.conf
Add the following lines to the end of the file, one per line:
blacklist amd76x_edac
blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv
Save the file and exit gedit.
In order to get rid of any nVidia resials, run the following command in a terminal:
sudo apt-get remove --purge nvidia*
Once it’s done, reboot your machine. At the login screen, don’t login just yet. Press Ctrl+Alt+F1 to switch to a text-based login. Login and switch to the directory which contains the downloaded drivers, toolkit and SDK. Run the following commands:
sudo service lightdm stop chmod +x devdriver*.run
Follow the onscreen instructions. If the installer throws up an error about nouveau kernel still running, allow it to create a blacklist for nouveau, quit the installation and reboot. In that case, run the following commands again:
sudo service lightdm stop
sudo ./devdriver*.run
The installation should now proceed smoothly. When it asks you if you want the 32-bit libraries and if you want it to edit xorg.conf to use these drivers by default, allow both.
Reboot once the installation completes.
Next, enter the following in a terminal window (in the directory where the files are stored):
sudo chmod +x cudatoolkit*.run
sudo ./cudatoolkit*.run
where cudatoolkit*.run is the full name of the toolkit installer. I recommend leaving the installation path to its default setting (/usr/local/cuda) unless you have a specific reason for not doing so.
The following lines must be added into the .bashrc file in your home directory:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH
export CUDA_ROOT=/usr/local/cuda/binSDK must be installed as a regular user (and not as root) to prevent access issues with the SDK files.
Once the toolkit is installed, enter the following in a terminal:
sudo chmod +x gpucomputingsdk*.run
sudo ./gpucomputingsdk*.run
where gpucomputingsdk*.run is the full name of the SDK installer. Again, follow the instructions onscreen to complete the installation.
Since there are several linking errors in this compilation several modifications must be make. You are made aware of this when you change your working directory to NVIDIA_GPU_Computing_SDK in your home directory and then run:
sudo make
This will result in the following error:
../../lib/librendercheckgl_x86_64.a(rendercheck_gl. cpp.o): In function `CheckBackBuffer::checkStatus(char const*, int, bool)': rendercheck_gl.cpp:(.text+0xfbb): undefined reference to `gluErrorString'
The fix is contained in the following three steps.
1) change the order for all occurrences of RENDERCHECKLIB in BOTH /C/common/common.mk and /CUDALibraries/common/common_cudalib.mk like this:
OLD:
LIB += ${OPENGLLIB} $(PARAMGLLIB) $(RENDERCHECKGLLIB) ${LIB} -ldl -rdynamic
NEW:
LIB += $(RENDERCHECKGLLIB) ${OPENGLLIB} $(PARAMGLLIB) ${LIB} -ldl –rdynamic
and add -L../../../C/lib in common_cudalib.mk RENDERCHECKGLLIB definition line:
OLD:
RENDERCHECKGLLIB := -lrendercheckgl_$(LIB_ARCH)$(LIBSUFFIX)NEW:
RENDERCHECKGLLIB := -L../../../C/lib -lrendercheckgl_$(LIB_ARCH)$(LIBSUFFIX)
2) In all files that use UtilNPP (boxFilterNPP, imageSegmentationNPP, freeImageInteropNPP, histEqualizationNPP), the makefiles have the wrong order of library linking ($LIB is before the source/out files), so go to the /CUDALibraries/src/*NPP/Makefile and change the order like (note this is an example of the freeImageInteropNPP file modification, all others are done similarly):
OLD:
$(CXX) $(INC) $(LIB) -o freeImageInteropNPP freeImageInteropNPP.cpp -lUtilNPP_$(LIB_ARCH) -lfreeimage$(FREEIMAGELIBARCH)NEW:
$(CXX) $(INC) -o freeImageInteropNPP freeImageInteropNPP.cpp $(LIB) -lUtilNPP_$(LIB_ARCH) -lfreeimage$(FREEIMAGELIBARCH)
3) For randomFog, you also need to add
USERENDERCHECKGL := 1
to the Makefile.
Now go back to the working directory NVIDIA_GPU_Computing_SDKand run
make
, this will take some time to fully compile to be patient. Also the compiler will throw several warning but these should be ignored.
The version of the CUDA Toolkit can be checked by running
nvcc -V
in a terminal window. The nvcc command runs the compiler driver that compiles CUDA programs. It calls the gcc compiler for C code and the NVIDIA PTX compiler for the CUDA code.
NVIDIA includes sample programs in source form in the GPU Computing SDK. You should compile them all by changing to ~/NVIDIA_GPU_Computing_SDK/Cand running
sudo make
. The resulting binaries will be installed in ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release.
After compilation, go to ~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release and run
deviceQuery
. If the CUDA software is installed and configured correctly, the output for deviceQuery should look similar to that shown in Figure 1 of the reference guide provided by NVIDIA. The exact appearance and the output lines might be different on your system. The important outcomes are that a device was found (the first highlighted line), that the device matches the one on your system (the second highlighted line), and that the test passed (the final highlighted line). If a CUDA-enabled device and the CUDA Driver are installed but deviceQuery reports that no CUDA-capable devices are present, this likely means that the /dev/nvidia* files are missing or have the wrong permissions.
2. 有什么是 python 可以做,但是 PHP 不可以做的
1. GUI应用,包括桌面以及移动端App(后者Py群体中很小众)
2. 2D/3D的展示和游戏
3. 科学计算、统计、计算金融
4. 机器学习
5. 并行计算、显卡计算(调动Cuda/OpenCL)!
3. n卡physx和a卡的havok哪个发展前途大
Havok简史
2000年 Havok公司发布了1.0版本
2003年 在的GDC大会上,发布2.0版本
...
2007年3月 4.5版本发布
2007-09 Havok公司被Intel收购
2009-12 Havok SDK 7.1版本
PhysX简史
2006年 Ageia公司推出了PhysX P1物理加速卡和PhysX物理引擎
2008年2月 Nvidia收购了Ageia
2008年8月 nvidia推出了支持PhysX的GeForce 8系列显卡
PhysX与Nvidia是什么关系?
原来PhysX是用PhysX卡计算的,nvidia收购了ageia公司后,并用cuda计算框架实现了PhysX物理计算引擎。说白了就是API基本不变,内部实现完全改变了。
现在PhysX产权归PhysX。
PhysX、CUDA、Havok、Stream、OpenCL、Direct Compute之间是什么关系?
CUDA和Stream分别是N卡和A卡提供的通用计算接口,是硬件相关的。
OpenCL和DC都是通用计算的API,是编程用的API,是硬件无关的;
PhysX、Havok是物理计算引擎,是编程用的API。
Nvidia:显卡有cuda接口,然后以cuda为基础实现了opencl、dc、physx的API。也就是程序里面调用了physx,那么nv的驱动 程序就调用cuda完成计算。
AMD类似:显卡有stream接口,然后以stream为基础实现了opencl、dc的API。也就是程序里面调用了 opencl,那么amd的驱动程序就调用steam完成计算。
等等,havok呢?
最新版本的havok 是用opencl实现了用GPU加速的物理引擎,也就是说havok在n卡、a卡上都没问题。
以java对比:
a/n的显卡好比操作系统,linux、windows各种各样的。
cuda/stream好比操作系统的API也是不同的。
显卡驱动提供了opencl、dc接口,好比java虚拟机提供了java基本api.
havok好比java程序,随便什么操作系统,只要有java虚拟机就可以执行。
当然physX类似java程序,但是因为调用了操作系统的api的程序,换了操作系统就不能执行了。
从Havok的历史上看,跟ATI/AMD没啥关系啊,两者是怎么扯上的呢?
Havok使用了GPU的Shader Model 3.0计算特效。也就是说用了amd/nvidia的GPU加速。
用了就得展示,但是nvidia已经有了physX了,再用就没啥优势,而ati/amd没有自己搞一套物理加速。
所以havok选择ati显卡作为展示显卡,同时ati/amd也提供开发支持,所以就被大家视为"ati/amd的物理加速引擎"了。
目前现在Havok进展如何?
曾经有一个Havok FX项目,该项目是使用nvidia和ati的显卡来实现物理计算的。
但havok被intel收购后,intel一度想让CPU做物理计算,也就是在CPU中加上PPU(物理计算单元),所以 Havok FX项目被取消了。
不过在GDC09展览中,Havok演示了使用了ATI的显示核心作为加速,但该引擎是基于OpenCL架构进行开发。也就是说同时支持 nvidia的显卡。
Havok有游戏支持吗?
不仅有,而且相当的多,特别是那些老牌游戏开发商用的多。
Assassin's Creed II,The Saboteur,Resident Evil 5 ,Halo 2,Far Cry 2,Fallout3 、。。。
PC版本的清单: http://www.havok.com/index.php?page=pc
还有很多支持Havok的平台,Xbox 360, Xbox, PlayStation 3, PlayStation 2, Wii, PSP
既然有这么多游戏支持Havok,为什么没看到关于Havok宣传?
确切的说不是“支持”,而是“使用到”。
Havok是一个物理计算的解决方案,可以用CPU计算也可以用GPU计算。
Havok只是个物理引擎,更硬件无关、操作系统无关,也就是“没后台”,没人愿意打广告(东家intel不生产最终成品,不最终收钱,所以也不愿意)。
况且游戏里面用到Havok计算一些物理场景,没必要在启动画面上贴上一个偌大的图标。havok都贴上去了,还不如开个广告位放广告呢。
至于为什么PhysX会有一个图标....那就说不清楚了,图标太多了(intel的、杜比的、windows的、发行商的、开发小组的、成人委员会的……)
ATI/AMD为什么不自己搞一套物理引擎?
以上的问题已经能回答了。
ati/amd已经有了通用计算接口,谁要用就用呗,为何要自己搞一套呢。况且物理引擎那么多,应该由游戏开发商自己选择。
最重要的是如果要挖PhysX的墙角,最好的办法就是支持第三方开发物理引擎(这个第三方包括Intel的Havok)。
如果一个物理引擎能在N卡、A卡或者将来的X卡上运行,那开发商当然会选择通用的。
AMD的付出的代价也小,也就是提供技术支持,指导一下程序开发。对比Nvidia的维护physx的代价就高了。
Havok与PhysX哪个好些?
游戏开发商在选择物理引擎的时候,熟悉哪个就用哪个,哪个支持的多就用哪个,也没什么特定的标准。反正都是C/C++,没啥限制,基本上 PC/XBOX/PS...上的游戏通吃
Havok的历史悠久,使用的开发商比较多,特别是游戏都是PS3XBOX360PC三版本同时出,用Havok的优势更明显(从支持Havok的游戏清单里面就能看出来)
Nvidia推广PhysX的力度比较大(比较明显,intel是否在推Havok就不清楚了)
不过对比起通用性,那就PhysX就要差一截了,千辛万苦开发出一个游戏,居然是只支持NV显卡的,首先在投资商那里就过不去。
除非nvidia开发通用版本的physX,不过那是不可能的……nvidia宁可把physX开源了,也不会给amd出一点儿力;
为什么有人讨厌N的PhysX?
最主要的就是通用性差:
游戏的开发商、投资方不喜欢:开发一个游戏居然只能用n卡?不是明摆告诉用a卡的人不要买吗。
正在用a卡的人不喜欢:肯定不会喜欢的。
相比Havok,大家的态度就是“没态度”。
既然有这么好的引擎,为什么“有物理的游戏”那么少?
用到“物理的引擎”的游戏多的是,只不过“有复杂物理场景”的游戏极少(满地的箱子一炸一大片的那种)。
玩家与NCP、玩家与环境的交换已经够复杂了。
如果还要加上玩家与动态环境、NCP与动态环境、环境与环境……太难太难了
现在游戏里面扔几个箱子,炸几个房子,飘几面旗子……已经很普及了,而且效果也不错,玩家也不会太注重物理场景的复杂度的。
4. 求在linux下安装CUDA的详细步骤
ubuntuforums.org里有,不过是英文版的,供参考。
http://ubuntuforums.org/showthread.php?t=1112317
5. TMPGEnc4XP和TMPGEnc PLUS有什么异同
小日本4 比 2.54 版胜在以下几点:
1、能够转出更多的格式,除了我们最常用的MPEG-1和MPEG-2之外,还能将视频转换编码成AVI、WMV、divx、MP4等格式。当然,我们最常用的还是转换作为视频DVD源文件的MPEG-2。
2、对视频源的设定和对输出模板的设定分开,清晰把握当前设置的环节。
3、视频源文件的设定和输出模板的设定界面均直观易读。
4、可批量添加视频文件。
5、可将多个文件批量输出合并成一个。
6、针对双核进行优化,速度是小日本2.54的两倍。
7、新版支持nVidia显卡的CUDA技术,提升特效编码速度。
6. CUDA会Shared Memory产生bank conflict的原因是什么
您好,很高兴为您解答。
见论坛:http://www.opengpu.org/forum.php?mod=viewthread&tid=1486
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~
7. 求三枝夕夏的《飞び立てない私にあなたが翼をく》歌词的罗马音!!!
一度 も 嘘 つ か ない で 一度 も 后悔 を し ない
iqido mo uso cu ka na i de iqido mo so u kai o si nai
そん な 日は あったかな
so n na hiwa a takana
あの日 あなたに 出逢 う まで
a nohi a natani de a u mate
も う ひとり ぼっち じゃ な いって
mo u hitoli bo qi ja na i te
You're the only one
思 わ せてくれたのは
omo wa setekuretanowa
そ う あなただけよ Only your heart
so u a natadakeyo
飞び立てな い 私 に あなたが 翼 を くれた
tobitatena i watasi ni a nataga cupasa o kureta
そして 私 を 自由 にしてくれたよね
sosite watasi o jiyu u nisitekuretayone
When I close my eyes, I can feel you
あなたが いるそれだけで
a nataga i rusoretakede
风 が 吹くたび 地球 が 笑 ってる気がするよ
kaze ga fukutabi qikayu u ga wara terukigasuruyo
この 街 に来て 3 年 长 いのか 短 いのか
kono maqi nikute sa n ne n naga i noka mijika i noka
わからな いよ 时 はずっと
wakarana i yo toki wazi to
止まったままだったから
toma tamamada takara
小 さ な 心 の 窓 から じゃ
qi i sa na kokolo no mato kala ja
空 の 青 さ を 知っても
sora no a o sa o si temo
空 の 広 さ を きっと 知ることはなかった
sora no hiro sa o ki to sirukotowanaka ta
My heart
飞び立てな い 私 に あなたが 翼 を くれた
tobitatena i watasi ni a nataga cupasa o kureta
そして 私 に 爱 を 教 え てくれたよね
sosite watasi ni a i o o si e tekuretayone
When I see heaven's skies in your eyes
夕 立ちの 后 の 空 に
yu u taqino a to no sora ni
笑颜 2 つ 重 ねて 大 きな 虹 が咲く
e ka o hutacu kasanete o okina niji gasaku
恋 は いつも 泥棒
ko i wa i cumo dorobo u
ノックもせず 忍 び 込み
no kumosezi sino bi komi
心 を 盗 ん で 行くよ
kokoro o nesu n de i kuyo
目の 前 に あなたが いなくても
meno ma e ni a nataga i nakutemo
目 をとじれば いつだってそばに 感 じられる
me o tojireba i cuda tesobani ka n jirareru
Fuu...
飞び立てな い 私 に あなたが 翼 を くれた
tobitatena i watasi ni a nataga cupasa o kureta
そして 私 を 自由 にしてくれたよね
sosite watasi o jiyu u nisitekuretayone
When I close my eyes, I can feel you
あなたが いるそれだけで
a nataga i rusoredakede
风 が 吹くたび 地球 が 笑 ってる気がするよ
kaze ga fukutabi qikayu u ga wara terukigasuruyo
La la la ........ You set me free
La la la .......... You take a chance
You let me fly so high
我是学日语的。但是是刚入门不久。
发音应该还没什么问题。我不认识的我也查字典了~~~
我标的应该不全是罗马拼音的标准写法。我们也没教罗马拼音。
但是我保证都是按着五十音来的。有的应该比罗马拼音看着清楚。
反正我就是这么记的。呵呵。
关于“つ っ”
つ单独读的时候读cu 应该是发 ci (次)这个音。就是看着写着大一点的。
っ这个小一点的发音和大的是一样的。但是用在句子中 就不发音 但是它也占一个拍子的位子。
类似于空了一下。
我知道的这些都告诉你了。
谢谢你还特意把这个问题在开。么~
8. 求助关于CUDA环境配置的问题
jquery.qrcode
使用phpqrcode.php可以生成二维码,当然PHP环境必须开启支持GD2。
phpqrcode.php提供了一个关键的png()方法,其中
参数$text表示生成二位的的信息文本;
参数$outfile表示是否输出二维码图片 文件,默认否;
参数$level表示容错率,也就是有被覆盖的区域还能识别,分别是 L(QR_ECLEVEL_L,7%),M(QR_ECLEVEL_M,15%),Q(QR_ECLEVEL_Q,25%),H(QR_ECLEVEL_H,30%);
参数$size表示生成图片大小,默认是3;参数$margin表示二维码周围边框空白区域间距值;
参数$saveandprint表示是否保存二维码并显示。更多问题到问题助专区。
9. 网络安全干货知识分享 - Kali Linux渗透测试 106 离线密码破解
前言
最近整理了一些 奇安信&华为大佬 的课件资料+大厂面试课题,想要的可以私信自取, 无偿赠送 给粉丝朋友~
1. 密码破解简介
1. 思路
目标系统实施了强安全措施
安装了所有补丁
无任何已知漏洞
无应用层漏洞
攻击面最小化
社会 工程学
获取目标系统用户身份
非授权用户不受信,认证用户可以访问守信资源
已知用户账号权限首先,需要提权
不会触发系统报警
2. 身份认证方法
证明你是你声称你是的那个人
你知道什么(账号密码、pin、passphrase)
你有什么(令牌、token、key、证书、密宝、手机)
你是谁(指纹、视网膜、虹膜、掌纹、声纹、面部识别)
以上方法结合使用
基于互联网的身份验证仍以账号密码为主要形式
3. 密码破解方法
人工猜解
垃圾桶工具
被动信息收集
基于字典暴力破解(主流)
键盘空间字符爆破
字典
保存有用户名和密码的文本文件
/usr/share/wordlist
/usr/share/wfuzz/wordlist
/usr/share/seclists
4. 字典
1. 简介
键盘空间字符爆破
全键盘空间字符
部分键盘空间字符(基于规则)
数字、小写字母、大写字符、符号、空格、瑞典字符、高位 ASCII 码
2. crunch 创建密码字典
无重复字符
crunch 1 1 -p 1234567890 | more
1
必须是最后一个参数
最大、最小字符长度失效,但必须存在
与 -s 参数不兼容(-s 指定起始字符串)
crunch 4 4 0123456789 -s 9990
读取文件中每行内容作为基本字符生成字典
crunch 1 1 -q read.txt
1
字典组成规则
crunch 6 6 -t @,%%^^ | more
-t:按位进行生成密码字典
@:小写字母 lalpha
,:大写字母 ualpha
%:数字 numeric
^:符号 symbols
输出文件压缩
root@kali:~# crunch 4 5 -p dog cat bird
1
-z:指定压缩格式
其他压缩格式:gzip、bzip2、lzma
7z压缩比率最大
指定字符集
root@kali:~# crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o w.txt -t @d@@ -s cdab
1
随机组合
root@kali:~# crunch 4 5 -p dog cat bird
1
crunch 5 5 abc DEF + !@# -t ,@^%,
在小写字符中使用abc范围,大写字符使用 DEF 范围,数字使用占位符,符号使用!@#
占位符
转义符(空格、符号)
占位符
root@kali:~# crunch 5 5 -t ddd%% -p dog cat bird
1
任何不同于 -p 参数指定的值都是占位符
指定特例
root@kali:~# crunch 5 5 -d 2@ -t @@@%%
1
2@:不超过两个连续相同字符
组合应用
crunch 2 4 0123456789 | aircrack-ng a.cap -e MyESSID -w -
crunch 10 10 12345 –stdout | airolib-ng testdb -import passwd -
3. CUPP 按个人信息生成其专属的密码字典
CUPP:Common User Password Profiler
git clone https://github.com/Mebus/cupp.git
python cupp.py -i
4. cewl 通过收集网站信息生成字典
cewl 1.1.1.1 -m 3 -d 3 -e -c -v -w a.txt
-m:最小单词长度
-d:爬网深度
-e:收集包含email地址信息
-c:每个单词出现次数
支持基本、摘要 身份认证
支持代理
5. 用户密码变型
基于 cewl 的结果进行密码变型
末尾增加数字串
字母大小写变化
字母与符号互相转换
字母与数字互相转换
P@$w0rd
6. 使用 John the Ripper 配置文件实现密码动态变型
2. 在线密码破解
1. hydra
简介
密码破解
Windows 密码破解
Linux 密码破解
其他服务密码破解
图形化界面
xhydra
HTTP表单身份认证
密码破解效率
密码复杂度(字典命中率)
带宽、协议、服务器性能、客户端性能
锁定阈值
单位时间最大登陆请求次数
Hydra 的缺点
稳定性差,程序时常崩溃
速度控制不好,容易触发服务屏蔽或锁死机制
每主机新建进程,每服务新建实例
大量目标破解时性能差
2. pw-inspector
Hydra 小工具 pw-inspector
按长度和字符集筛选字典
pw-inspector -i /usr/share/wordlists/nmap.lst -o p1.lst -l
pw-inspector -i /usr/share/wordlists/nmap.lst -o P2.lst -u
pw-inspector -i /usr/share/wordlists/nmap.lst -o P2.lst -u -m 3 -M 5
3. mesa
Mesa 的特点
稳定性好
速度控制得当
基于线程
支持模块少于hydra(不支持RDP)
WEB-Form 支持存在缺陷
查看支持的模块
参数
-n:非默认端口
-s:使用SSL连接
-T:并发主机数
mesa -M ftp -q
3. 离线密码破解
1. 简介
身份认证
禁止明文传输密码
每次认证使用HASH算法加密密码传输(HASH算法加密容易、解密困难)
服务器端用户数据库应加盐加密保存
破解思路
嗅探获取密码HASH
利用漏洞登陆服务器并从用户数据库获取密码HASH
识别HASH类型
长度、字符集
利用离线破解工具碰撞密码HASH
优势
离线不会触发密码锁定机制
不会产生大量登陆失败日志引起管理员注意
2. HASH 识别工具
1. hash-identifier
进行 hash 计算
结果:
进行 hash 识别
2. hashid
可能识别错误或无法识别
3. HASH 密码获取
1. sammp2
Windows HASH 获取工具
利用漏洞:Pwmp、fgmp、 mimikatz、wce
物理接触:sammp2
将待攻击主机关机
使用 Kali ISO 在线启动此主机
发现此 windows 机器安装有两块硬盘
mount /dev/sda1 /mnt
将硬盘挂载
cd /mnt/Windows/System32/config
切换目录
sammp2 SYSTEM SAM -o sam.hash
导出密码
利用 nc 传输 HASH
HASH 值:
2. syskey 工具进行密码加密
使用 syskey 进行加密(会对 SAM 数据库进行加密)
重启需要输入密码才能进一步登录
使用 kali iso live
获取到 hash 值
hashcat 很难破解
使用 bkhive 破解
使用 Bootkey 利用RC4算法加密 SAM 数据库
Bootkey 保存于 SYSTEM 文件中
bkhive
从 SYSTEM 文件中提取 bootkey
Kali 2.0 抛弃了 bkhive
编译安装 :http://http.us.debian.org/debian/pool/main/b/bkhive/
在windows的 kali live 模式下,运行
sammp2 SAM key (版本已更新,不再支持此功能)
建议使用 Kali 1.x
1. Hashcat
简介
开源多线程密码破解工具
支持80多种加密算法破解
基于CPU的计算能力破解
六种模式 (-a 0)
0 Straight:字典破解
1 Combination:将字典中密码进行组合(1 2 > 11 22 12 21)
2 Toggle case:尝试字典中所有密码的大小写字母组合
3 Brute force:指定字符集(或全部字符集)所有组合
4 Permutation:字典中密码的全部字符置换组合(12 21)
5 Table-lookup:程序为字典中所有密码自动生成掩码
hashcat -b
hashcat -m 100 hash.txt pass.lst
hashcat -m 0 hash.txt -a 3 ?l?l?l?l?l?l?l?l?d?d
结果:hashcat.pot
hashcat -m 100 -a 3 hash -i –increment-min 6 –increment-max 8 ?l?l?l?l?l?l?l?l
掩码动态生成字典
使用
生成文件
计算 hash 类型
结果 MD5
查看 MD5 代表的值
进行破解
2. oclhashcat
简介
号称世界上最快、唯一的基于GPGPU的密码破解软件
免费开源、支持多平台、支持分布式、150+hash算法
硬件支持
虚拟机中无法使用
支持 CUDA 技术的Nvidia显卡
支持 OpenCL 技术的AMD显卡
安装相应的驱动
限制
最大密码长度 55 字符
使用Unicode的最大密码长度 27 字符
关于版本
oclHashcat-plus、oclHashcat-lite 已经合并为 oclhashcat
命令
3. RainbowCrack
简介
基于时间记忆权衡技术生成彩虹表
提前计算密码的HASH值,通过比对HASH值破解密码
计算HASH的速度很慢,修改版支持CUDA GPU
https://www.freerainbowtables.com/en/download/
彩虹表
密码明文、HASH值、HASH算法、字符集、明文长度范围
KALI 中包含的 RainbowCrack 工具
rtgen:预计算,生成彩虹表,时的阶段
rtsort:对 rtgen 生成的彩虹表行排序
rcrack:查找彩虹表破解密码
以上命令必须顺序使用
rtgen
LanMan、NTLM、MD2、MD4、MD5、SHA1、SHA256、RIPEMD160
rtgen md5 loweralpha 1 5 0 10000 10000 0
计算彩虹表时间可能很长
下载彩虹表
http://www.freerainbowtables.com/en/tables/
http://rainbowtables.shmoo.com/
彩虹表排序
/usr/share/rainbowcrack
rtsort /md5_loweralpha#1-5_0_1000x1000_0.rt
密码破解
r crack *.rt -h
rcrack *.rt -l hash.txt
4. John
简介
基于 CPU
支持众多服务应用的加密破解
支持某些对称加密算法破解
模式
Wordlist:基于规则的字典破解
Single crack:默认被首先执行,使用Login/GECOS信息尝试破解
Incremental:所有或指定字符集的暴力破解
External:需要在主配配文件中用C语言子集编程
默认破解模式
Single、wordlist、incremental
主配置文件中指定默认wordlist
破解Linux系统账号密码
破解windows密码
Johnny 图形化界面的john
5. ophcrack
简介
基于彩虹表的LM、NTLM密码破解软件
彩虹表:http://ophcrack.sourceforge.net/tables.php