2
栏目分类
热点资讯
6月14日游戏早报:宫崎英高支持《血源》上PC!育碧高管回应马斯克《AC影》负面评论
亲爱的玩家们,早上好!今天是2024年6月14日星期五。这里是183游戏早报,为您带来最新鲜的游戏行业动态:育碧高管回应马斯克《AC影》负面评论;宫崎英高支持《...
Dither AI中文网 你的位置:EPIK Prime中文网 > Dither AI中文网 > 密码破解不再神秘 教你搭建密码破解服务器
密码破解不再神秘 教你搭建密码破解服务器 发布日期:2025-01-03 18:25    点击次数:91
我们经常为客户做大量的密码破解工作。有时候是由于我们破解了一个系统,寻找有无密码重复使用的情况;有时候是由于我们在获取密码复杂性方面的统计数字,以证明某个观点;有时候我们只是试图破解WPA-PSK。不过,你有一套很安全的系统很要紧。我们最近改建了自己的一台密码破解服务器,下面介绍了关于其规格和配置的一些信息。 硬件规格 主板:EVGA Z68 FTW 160-SB-E689-KR Extended ATX英特尔主板   处理器:英特尔酷睿i7-2600K 3.4GHz LGA 1155 95W四核台式机处理器   海盗船(CORSAIR)CAFA50 120mm CPU散热器    电源:海盗船专业系列Gold AX1200(CMPSU-1200AX)1200W ATX12V v2.31 / EPS12V v2.92 SLI Certified 80 PLUS GOLD认证模块化主动功率因数校正(PFC)电源    机箱:酷冷至尊HAF 932 Advanced RC-932-KKN5-GP黑钢ATX全塔式伟讯机箱,带USB 3.0    存储设备:2只日立Deskstar 3TB 3.5英寸SATA 6.0Gb/s内置硬盘——裸盘    内存:海盗船XMS3 16GB(4 x 4GB)240针DDR3 SDRAM DDR3 1333台式机处理器  GPU:4块蓝宝Radeon HD 6950 Dirt3 Edition 100312-3SR 视频卡,带Eyefinity技术 共计:2629.78美元 #p# 安装 硬件改装 虽然主板上有一个插槽可以使用,但是第四块视频卡其实与其他的视频卡合不来(视频卡相互排挤),于是我们决定采用一种“独特”的方式来安装它。我确信气流/散热方面的专家对这个决定不高兴,但这又是唯一的办法。使用灵活的PCIe扩展槽,我们总算装上了该视频卡。    灵活的PCI Express扩展槽 如右图所示,我们在机箱背面上钻了几个空眼,为视频卡上的连接器留出地方,并提供一定的稳定性。       硬盘/RAID配置 3TB硬盘要求我们利用Grub2和GPT。尽可能妥善地备份这个系统也很重要,以防出现硬件故障,所以我们想要使用RAID 1来确保简单。 通过BIOS的英特尔FakeRAID——失败 最初我们想通过主板内置的英特尔RAID功能来使用RAID 1,但是它似乎无法完全得到dmraid或Ubuntu Server 10.04.3的支持。不知什么原因,它在parted中出现的只是801GB硬盘;安装不允许在该801GB中创建任何分区。于是我们放弃了它。 想了解更多信息,请访问:?p=11477517 整个磁盘的软件RAID(mdraid/mdadm)——失败 我们希望硬盘完全冗余,于是试图创建一个很大的根分区和一个交换分区,分区设置为linux_raid类型。若使用这个方法,Ubuntu安装很正常,但是grub安装失败。折腾了一番后,我们还是无法成功地将grub安装上去。于是,我们采用了一种比较传统的分区方法。 想了解更多信息,请访问:?p=11477507 根分区的软件RAID(mdraid/mdadm)——成功了! 下面介绍了我们最后如何对这两个(/dev/sda, /dev/sdb)硬驱进行分区。我们是在安装之前,通过启动到自生系统(LiveCD)完成这一步的。 root@ubuntu:~# parted /dev/sda mklabel gpt   root@ubuntu:~# parted -a cyl /dev/sda unit s mkpart grub 34 4130   root@ubuntu:~# parted -a cyl /dev/sdb set 1 bios_grub on   root@ubuntu:~# parted -a cyl /dev/sda unit s mkpart boot 4131 1052706   root@ubuntu:~# parted -a cyl /dev/sda unit s mkpart primary 1052707 5852144526   root@ubuntu:~# parted -a cyl /dev/sdb set 3 raid on   root@ubuntu:~# parted -a cyl /dev/sda unit s mkpart swap 5852144527s 5860533134s   root@ubuntu:~# parted /dev/sda unit compact print free   Model: ATA Hitachi HDS72303 (scsi)   Disk /dev/sda: 3001GB   Sector size (logical/physical): 512B/512B   Partition Table: gpt   Number Start  End   Size  File system   Name   Flags   1   17.4kB 2115kB 2098kB         grub   bios_grub   2   2115kB 539MB  537MB  ext2      boot   3   539MB  2996GB 2996GB xfs       primary raid   4   2996GB 3001GB 4295MB linux-swap(v1) swap  #p# 然后在安装过程中,我们通过mdraid为第三个分区配置了RAID1。下面是安装完成后mdadm.conf看起来的样子。 root@ubuntu:~# cat /etc/mdadm/mdadm.conf | grep ARRAY  ARRAY /dev/md0 level=raid1 metadata=1.0 num-devices=2 UUID=43dd56be:498abe6a:4421ece1:0659a71e name=0  我们在安装过程中为GDM选择了“Ubuntu Desktop”程序包。这点很重要,因为之后在GPU上,要是没有X.org服务器在运行,就无法进行破解。我们起初有一个启动脚本,就为了在后台执行xinit命令,但这使得可以实际访问系统的任何人都能访问根外壳。这是个坏主意。 一旦安装完成,grub2还是没有立即启动,于是我们再次从自生系统(LiveCD)启动,用手动方式来安装: root@ubuntu:~# mount -t xfs /dev/sda3 /mnt   root@ubuntu:~# cp /mnt/etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf   root@ubuntu:~# mdadm --assemble /dev/md0   mdadm: /dev/md0 has been started with 1 drive (out of 2).   root@ubuntu:~# umount /mnt   root@ubuntu:~# mount /dev/md0 /mnt   root@ubuntu:~# mount /dev/sda2 /mnt/boot   root@ubuntu:~# for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done   root@ubuntu:~# chroot /mnt   root@ubuntu:/# grub-mkdevicemap   root@ubuntu:/# grub-mkconfig -o /boot/grub/grub.cfg   Generating grub.cfg ...   Found linux image: /boot/vmlinuz-2.6.32-35-generic   Found initrd image: /boot/initrd.img-2.6.32-35-generic   Found memtest86+ image: /boot/memtest86+.bin   root@ubuntu:/# grub-install --no-floppy --recheck --modules='biosdisk ext2' /dev/sda   Installation finished. No error reported.   root@ubuntu:/# grub-install --no-floppy --recheck --modules='biosdisk ext2' /dev/sdb   Installation finished. No error reported.  然后重启动,现在我们看到了Ubuntu Gnome登录提示符! #p# 安装OpenCL和AMD驱动程序 接下来我们需要安装所有那些图形卡。由于这些是AMD卡,我们将安装AMD OpenCL软件开发工具包(SDK)和AMD驱动程序。 user@ubuntu:~$ mkdir AMD-APP-SDK-v2.5-lnx64 user@ubuntu:~$ cd AMD-APP-SDK-v2.5-lnx64/ user@ubuntu:~$ wget -APP-SDK-v2.5-lnx64.tgz user@ubuntu:~$ tar -zxvf AMD-APP-SDK-v2.5-lnx64.tgz user@ubuntu:~$ sudo ./Install-AMD-APP.sh 作为一种检查机制,我们可以使用HelloCL测试来确保一切工作正常: user@ubuntu:~$ cd /opt/AMDAPP/samples/opencl/bin/x86_64 user@ubuntu:/opt/AMDAPP/samples/opencl/bin/x86_64$ ./HelloCL HelloCL! Getting Platform Information No protocol specified Creating a context AMD platform Getting device info Loading and compiling CL source Running CL program Done Passed! 看起来很好,现在不妨安装驱动程序: user@ubuntu:/opt/AMDAPP/samples/opencl/bin/x86_64$ cd ~/ user@ubuntu:~$ sudo apt-get install libssl-dev build-essential python-dev libpcap-dev user@ubuntu:~$ export AMDAPPSDKROOT="/opt/AMDAPP" user@ubuntu:~$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"/opt/AMDAPP/lib/x86_64":"/opt/AMDAPP/lib/x86" user@ubuntu:~$ export ATISTREAMSDKROOT=$AMDAPPSDKROOT user@ubuntu:~$ chmod +x ati-driver-installer-11-11-x86.x86_64.run user@ubuntu:~$ sudo ./ati-driver-installer-11-11-x86.x86_64.run #p# 安装支持OpenCL的Pyrit Pyrit很出色,但是它并没有考虑到最新的AMD SDK。如果你到目前为止一直按要求来安装,应该没问题。不过,你会发现我们不得不作几处更改,以便让一切运行起来正常。 user@ubuntu:~$ wget -opencl-0.4.0.tar.gz user@ubuntu:~$ tar -zxvf cpyrit-opencl-0.4.0.tar.gz user@ubuntu:~$ cd cpyrit-opencl-0.4.0/ user@ubuntu:~/cpyrit-opencl-0.4.0$ vi setup.py 编辑setup.py,在第55行后面新建一行,添加: '/opt/AMDAPP/include', \ 一旦pyrit有了所有正确的include指令,就可以开始编译/安装了。 user@ubuntu:~/cpyrit-opencl-0.4.0$ python setup.py build user@ubuntu:~/cpyrit-opencl-0.4.0$ sudo python setup.py install user@ubuntu:~/cpyrit-opencl-0.4.0$ cd .. user@ubuntu:~$ wget -0.4.0.tar.gz user@ubuntu:~$ tar -zxvf pyrit-0.4.0.tar.gz user@ubuntu:~$ cd pyrit-0.4.0 user@ubuntu:~/pyrit-0.4.0$ python setup.py build user@ubuntu:~/pyrit-0.4.0$ sudo python setup.py install user@ubuntu:~/pyrit-0.4.0$ sudo pyrit list_cores 如果你使用一块视频卡,应该没问题;不过由于我们有四块,只好使用aticonfig实用工具来全部启用它们: user@ubuntu:~$ sudo service gdm stop user@ubuntu:~$ sudo aticonfig --adapter=all --initial user@ubuntu:~$ sudo service gdm start 我们运行了一些快速的pyrit基准测试,情况看起来很好: user@ubuntu:~$ sudo pyrit benchmark Pyrit 0.4.0 (C) 2008-2011 Lukas Lueg This code is distributed under the GNU General Public License v3+ Running benchmark (151933.5 PMKs/s)... / Computed 151933.49 PMKs/s total. #1: 'OpenCL-Device 'Cayman'': 41098.6 PMKs/s (RTT 2.7) #2: 'OpenCL-Device 'Cayman'': 38496.3 PMKs/s (RTT 2.6) #3: 'OpenCL-Device 'Cayman'': 42851.1 PMKs/s (RTT 2.6) #4: 'OpenCL-Device 'Cayman'': 43023.6 PMKs/s (RTT 2.7) #5: 'CPU-Core (SSE2)': 635.3 PMKs/s (RTT 3.5) #6: 'CPU-Core (SSE2)': 588.7 PMKs/s (RTT 3.3) #7: 'CPU-Core (SSE2)': 879.4 PMKs/s (RTT 2.8) #8: 'CPU-Core (SSE2)': 961.1 PMKs/s (RTT 2.8) #p# 安装带CAL++支持的pyrit 虽然151933.5 PMKs/s很好,但是我们知道这不是其应有的速度。所以我们决定采用使用CAL++的SVN版pyrit(0.4.1-dev),而不是使用带OpenCL的稳定版pyrit(0.4.0)。 我们要做的第一件事就是卸载pyrit(请相信我,这么做是值得的): user@ubuntu:~$ cd pyrit-0.4.0/ user@ubuntu:~/pyrit-0.4.0$ sudo python setup.py install --record files.txt; sudo rm $(cat files.txt) user@ubuntu:~pyrit-0.4.0$ cd ../cpyrit-opencl-0.4.0/ user@ubuntu:~/cpyrit-opencl-0.4.0$ sudo python setup.py install --record files.txt; sudo rm $(cat files.txt) 现在下载CAL++(),并安装它: user@ubuntu:~$ sudo apt-get install libboost-all-dev cmake user@ubuntu:~$ tar -zxvf calpp-0.90.tar.gz user@ubuntu:~$ cd calpp-0.90 CAL++需要作几个变更,以便顺利找到AMD SDK库,所以编辑CMakeLists.txt,注释掉这些行(即在每行开头添加“#”): FIND_LIBRARY( LIB_ATICALCL aticalcl PATHS "$ENV{ATISTREAMSDKROOT}/lib" ) FIND_LIBRARY( LIB_ATICALRT aticalrt PATHS "$ENV{ATISTREAMSDKROOT}/lib" ) FIND_PATH( LIB_ATICAL_INCLUDE NAMES cal.h calcl.h PATHS "$ENV{ATISTREAMSDKROOT}/include" ) 添加这些: FIND_LIBRARY( LIB_ATICALCL aticalcl PATHS "/opt/AMDAPP/lib" ) FIND_LIBRARY( LIB_ATICALRT aticalrt PATHS "/opt/AMDAPP/lib" ) FIND_PATH( LIB_ATICAL_INCLUDE NAMES cal.h calcl.h PATHS "/opt/AMDAPP/include/CAL" ) 现在我们编译,然后安装: user@ubuntu:~/calpp-0.90$ sudo make install 由于CAL++已安装,你可以下载pyrit的开发分支,完成安装的其余步骤。 user@ubuntu:~$ sudo apt-get install subversion user@ubuntu:~$ svn checkout pyrit_svn user@ubuntu:~$ cd pyrit_svn/cpyrit_calpp/ 我有没有提到这是开发版本?这意味着你得作几个变更: 编辑setup.py第28行,应该是: VERSION = '0.4.1-dev' 编辑setup.py第35行,应该是: CALPP_INC_DIR = '/opt/AMDAPP' 编辑setup.py第41行,应该是: CALPP_INC_DIRS.append(os.path.join(CALPP_INC_DIR, 'include/CAL')) 好了,我们已准备好了编译和安装: user@ubuntu:~/pyrit_svn/cpyrit_calpp$ python setup.py build user@ubuntu:~/pyrit_svn/cpyrit_calpp$ sudo python setup.py install user@ubuntu:~/pyrit_svn/cpyrit_calpp$ cd ../pyrit/ user@ubuntu:~/pyrit_svn/pyrit$ python setup.py build user@ubuntu:~/pyrit_svn/pyritsudo python setup.py install #p# 向下滚动,即可看到基准测试部分下面的结果。我们得到了额外的20,000 PMK/s! oclHashcat oclHashcat的安装极其容易。只要解压缩即可。 user@ubuntu:~$ sudo apt-get install p7zip user@ubuntu:~$ p7zip -d oclHashcat-0.26.7z john user@ubuntu:~$ wget -1.7.8-jumbo-8.tar.bz2 user@ubuntu:~$ tar -jxvf john-1.7.8-jumbo-8.tar.bz2 user@ubuntu:~$ cd john-1.7.8-jumbo-8/src/ user@ubuntu:~/john-1.7.8-jumbo-8/src$ make linux-x86-64 接下来,我们下载了KoreLogic的Defcon 10规则集,并将它们添加到我们的john.conf user@ubuntu:~/john-1.7.8-jumbo-8/src$ cd ../run user@ubuntu:~/john-1.7.8-jumbo-8/run$ wget -2010.korelogic.com/rules.txt user@ubuntu:~/john-1.7.8-jumbo-8/run$ cat rules.txt >> john.conf rcracki 较新的彩虹表(Rainbow Table)是.RTI文件,这意味着它们是索引彩虹表,运行速度应该比普通彩虹表要快。由于我们有几个这样的彩虹表,所以需要安装rcracki。 user@ubuntu:~$ wget _mt_0.6.6_src.7z user@ubuntu:~$ p7zip -d rcracki_mt_0.6.6_src.7z user@ubuntu:~$ cd rcracki_mt_0.6.6_src/ 编辑Makefile,更改OPTIMIZATION变量,应该是: OPTIMIZATION = -O3 -mtune=native 现在我们可以编译了。 user@ubuntu:~/rcracki_mt_0.6.6_src$ make user@ubuntu:~/rcracki_mt_0.6.6_src$ sudo make install user@ubuntu:~/rcracki_mt_0.6.6_src$ cd .. user@ubuntu:~$ sudo mv rcracki_mt_0.6.6_src /cracking/bin/ user@ubuntu:~$ cd /cracking/bin/rcracki_mt_0.6.6_src user@ubuntu:~/rcracki_mt_0.6.6_src$ sudo mkdir src user@ubuntu:~/rcracki_mt_0.6.6_src$ sudo mv BaseRTReader.* Cha* COPYING CrackEngine.* fast_md* global.h Hash* INSTALLING.txt lm2ntlm.* Makefile MemoryPool.* Public.* RainbowCrack.* rcrackiThread.* README.txt RT* sha1.* TODO src/ user@ubuntu:~/rcracki_mt_0.6.6_src$ sudo chmod o+w rcracki.* rcrack 为了支持比较旧的.RT彩虹表,我们可以使用标准的rcrack。版本1.5是预先编译的,所以安装其实只是下载和解压缩的过程。 user@ubuntu:~$ wget -rainbowcrack.com/rainbowcrack-1.5-linux64.zip user@ubuntu:~$ unzip rainbowcrack-1.5-linux64.zip #p# 下载 彩虹表 设想一下:没有大量彩虹表的密码破解服务器会怎样?幸好我们有一大批技术高手,所以没必要把时间花在下载上。我们拷贝了以下的彩虹表: fastlm_alpha-numeric#1-7_0 lm_all-space_1-7 lm_alpha_1-7 lm_alpha-numeric_1-7 lm_alpha-numeric-symbol32-space_1-7 ntlm-alpha-numeric-space_1-8 ntlm_alpha-space_1-9 ntlm_hybrid(loweralpha#6-6,numeric#1-3) ntlm_hybrid(loweralpha#7-7,numeric#1-3) ntlm_loweralpha-numeric-space_1-8 ntlm_loweralpha-numeric-symbol32-space_1-7_0 ntlm_loweralpha-space_1-9 ntlm_mixalpha-numeric_1-8 ntlm_mixalpha-numeric-all-space_1-6 ntlm_mixalpha-numeric-space_1-7_0 ntlm_numeric_1-12 Ophcrack_Tables-LM_Fast_Free Ophcrack_Tables-NTLM_Free sha1_loweralpha-numeric-space_1-8 wpa-h1kari_renderman wpa-Offensive WPA Tables 字列表 字列表(Wordlist)是你似乎从来不嫌多的东西之一。我们汇集了一些流行的字列表;我确信,一旦服务器进入生产环境,我们会获得其他字列表方面的许多建议。 user@ubuntu:/cracking/wordlists$ wget user@ubuntu:/cracking/wordlists$ wget user@ubuntu:/cracking/wordlists$ wget -worst-passwords.txt.bz2 user@ubuntu:/cracking/wordlists$ wget -banned.txt.bz2 user@ubuntu:/cracking/wordlists$ wget user@ubuntu:/cracking/wordlists$ bunzip2 *.bz2 user@ubuntu:/cracking/wordlists$ gunzip all.gz #p# 支持多用户环境 GPU破解 由于这个系统将由一群人来访问,我想确保没有谁干扰到别人。我写了这个简单的封装程序,那样要是有谁试图使用oclHashcat或pyrit,而别人在使用,就会被告知不许这么做。 user@ubuntu:~$ cat /cracking/bin/gpu-crack #!/bin/bash # # gpu-crack - Simple GPU cracker wrapper for multi-user #             environments # # by Brad Antoniewicz # TMPFILE="/tmp/check.tmp" ver="0.1" SUDO_EXEC=/usr/bin/sudo PYRIT_EXEC=/usr/local/bin/pyrit.real HASHCAT_EXEC=/cracking/bin/oclhash/oclHashcat64.bin isRunning=0; echo -e "\n$0 v$ver" echo "by brad a." echo -e "-------------------------------------------------\n" help() {         echo "Usage:"         echo -e "\t$0 [pyrit|hashcat] [options]\n"         echo "Define what program you want to crack with (pyrit or hashcat)"         echo "then provide the standard command line options that the cracker"         echo "supports." } checkProc() {         ps ax -o pid,user,etime,command | grep $1 | grep -v grep | grep -v $0 | sed -e 's/^ //' > $TMPFILE         NUMPROC=`wc -l $TMPFILE | cut -d" " -f 1`         if [[ $NUMPROC != 0 ]]; then                 echo -e "[!] Found $NUMPROC instance of $1 running\n"                 for ((i=1; i<=$NUMPROC; i++))                 do #                        awk NR==$i "$TMPFILE"                         PID=`awk NR==$i "$TMPFILE" | cut -d" " -f 1`                         echo -e "\tPID: $PID"                         echo -e "\tUser: `awk NR==$i "$TMPFILE" | cut -d" " -f 2`"                         echo -e "\tRunning for: `awk NR==$i "$TMPFILE" | awk '{print $3}'`"                         echo -e "\n"                         isRunning=1;                 done         else                 echo -e "[-] No instances of $1 found"         fi } launchProc() {         count=0;         for x in "$@"         do                 if [ $count != 0 ]; then                         cmdlineArgs=$cmdlineArgs" "$x                 fi                 let count++         done         echo "[+] Launching $1 with the following options"         echo -e "\t $cmdlineArgs"         if [[ $1 == "pyrit" ]]; then                 echo "[+] Running Pyrit"                 $SUDO_EXEC $PYRIT_EXEC $cmdlineArgs         elif [[ $1 == "hashcat" ]]; then                 echo "[+] Running oclHashcat"                 $SUDO_EXEC $HASHCAT_EXEC $cmdlineArgs         fi } if  [[ $# -ge 2 ]]  && [[  $1 == "pyrit"

上一篇:没有了

下一篇:红米note9