PentagonLight X1/X2
都是新版的,HA贼结实,X2上的夹子被我生生拽下来后,留下的划痕轻轻一擦就OK了 ……


原来的相机犯了病,动不动就龟缩,搞的人十分闹心
因为烧的玩具太多,所以在相机选择上一直是卡片机当道,这次在朋友推荐下买了FS20,效果还不错,家用足以,顺便拍张办公桌的角落,很乱 ……

晚上赶紧拍拍新上的PentagonLight X2 ……
官方提供了用户自定制BT4的方法,如下:
第一步,将squashfs文件释放出来
mkdir -p /root/BUILD
mv bt4.iso /root/BUILD
cd /root/BUILD/
mkdir mnt
mount -o loop bt4.iso mnt/
mkdir extract-cd
rsync –exclude=/casper/filesystem.squashfs -a mnt/ extract-cd
mkdir squashfs
mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
mkdir edit
cp -a squashfs/* edit/
cp /etc/resolv.conf edit/etc/
cp /etc/hosts edit/etc/
cp /etc/fstab edit/etc/
mount –bind /dev/ edit/dev
chroot edit
这个时候,已经进入到自己需要定制的系统,可以根据需要需求安装、删除软件
第二步,完成定制系统
自定义工作后,官方文档还建议对系统进行一次升级:
apt-get update
apt-get upgrade
apt-get clean
exit
第三步,制作ISO
umount edit/dev
chmod +w extract-cd/casper/filesystem.manifest
chroot edit dpkg-query -W –showformat=’${Package} ${Version}n’ > extract-cd/casper/filesystem.manifest
REMOVE=’ubiquity casper live-initramfs user-setup discover xresprobe os-prober libdebian-installer4′
for i in $REMOVE
do
sed -i “/${i}/d” extract-cd/casper/filesystem.manifest-desktop
done
cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
sed -i ‘/ubiquity/d’ extract-cd/casper/filesystem.manifest-desktop
rm -rf extract-cd/casper/filesystem.squashfs
mksquashfs edit extract-cd/casper/filesystem.squashfs
rm extract-cd/md5sum.txt
find /boot /usr/lib/grub/ -iname ’stage2_eltorito’ -exec cp -v {} extract-cd/boot/grub \;
cd extract-cd
mkisofs -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 \
-boot-info-table -V “BT4″ -cache-inodes -r -J -l -o ~/bt4-mod.iso .
这样,制作出的ISO文件就被放到了用户目录下,名为:bt4-mod.iso
为了方便,可以将第一步和第三部的两段代码存储为shell脚本,直接执行就可以
不过,在我几次定制过程中,使用mkisofs都会收到错误信息:
genisoimage: Directories too deep for ‘/tmp/BUILD …. ‘ (7) max is 6
狗了一下发现,原来这里使用的mkisofs并不是真正的mkisofs,而是genisoimage,看一下mkisofs和genisoimage的manual就知道了
如果需要的话,要安装cdrtools,不过这样还是比较麻烦,因为参数完全不一样,所以我做了一些简化
第一步和第二步完全不变,在第三步执行完mksquashfs后,将制作出来的squashfs复制到Windows下,然后用UltraISO打开bt4的iso文件,将capser目录的squashfs文件替换一下,然后用这个ISO重启,就进入自己定制的系统了
PentagonLight 没有surefire那种机械化的痕迹,但依然细腻,而且喷砂涂层也显得很彪悍,HA做的也非常牛逼,很结实,决定以后多多关注PentagonLight




还有帮朋友做的皮活,第一次用电吹风处理蜡油,很失败,搞的颜色不均匀,也无心再处理其他细节了,小Z同学忍了吧,哈哈 ……

本来应该是利用hydra来做SSH破解的,但是BT4中的hydra在编译的时候没有加载libssh,所有无法破解SSH(试图破解SSH时会收到如下错误消息)
Error: Compiled without LIBSSH support, module not available!
基于这样的原因,尝试一下brutessh,这个工具是python写的,利用了paramiko这个SSH库,不过测试过程中发现,brutessh有时候会破解不成功(确认密码在字典中存在),而如果测试的时候将正确的密码放在字典的第一行,破解基本上就没出现过什么问题
于是在SSH进行认证的代码部分加上一些调试信息(brutessh.py中),如下:
然后就出现了一些让人崩溃的信息:
No existing session,这信息大概是SSH上我们都知道的一个安全特性引起的:就是密码错误三次后会有个短时间的中断(具体错误几次后中断根据pam_cracklib模块的设置决定),所以我怀疑这个中断会造成这样的影响
如果是这样,解决这个问题也并不太困难,在程序中判断一下链接是否仍然存在,如果不存在,那么就sleep几秒钟,然后再从当前的密码重新开始,大概思路如此,可以开始动手了
因为BT4没有安装,只是使用LIVE CD,所以为了方便调试(BT4的vim似乎不支持语法高亮?)把brutessh打包到Windows下调试,这样,如果有人试过的话,会发现一点小问题,就是paramiko这个库在Windows下不能很好的使用,这是因为它需要pyCrypto库的支持,不过好在我以前已经做过SSH的测试,所以轻车熟路,解决问题很简单:
1、建议到pypi上搜索一下paramiko,然后直接在Windows上装一个
2、下载pyCrypto的二进制安装包(建议使用二进制安装):http://www.voidspace.org.uk/python/modules.shtml#pycrypto
上面两个东西都装好后,paramiko就能正常使用了
修改的内容不算多,我这里只是将原始的链接、认证部分拿出来单独做了一个函数,然后根据关键字(No existing session)判断当前链接是否仍然存在,如果不存在了,那么,就关闭会话、睡上3秒,然后使用当前密码重新开始,经过6次测试,修改后的程序在这6次中都成功的找到密码,而未修改的程序在6次中都没有找到口令(密码字典50行,正确口令在第37行),修改后的brutessh.py如下:
最后,需要补充一下
如果想在Windows下使用brutessh,建议在检测到正确密码口做一个log输出,因为原程序使用的terminal库在Windows下并不能实现Linux中的控制效果,如果密码过多,可能会使正确结果淹没在打印信息中
另外,这里的time.sleep(3)是我测试的时候随便写的,并不意味着3秒钟就是最短的时间,可以根据网络情况做一下测试,也许还可以将时间缩短,以此提高破解效率
这是个麻烦的问题,很多工具都支持HTTP破解,但很多人不知道HTTP的认证最为常见的至少有两种
(我这里说的是“至少”,还有一些不常见的认证,比如:kerberos)
一种是常见工具支持的Basic认证方式,另外一种则是IIS上常用的NTLM认证方式
Basic认证方式非常简单,验证信息基本上是明文的(只是经过了简单的BASE64编码而已),而这里说的NTLM和我们常见的SMB会话里的NTLM就是一回事了,认证是加密的
Apache默认使用AuthFile进行认证的时候,启用的就是HTTP Basic认证,而IIS中,如果选择了“集成Windows身份验证”,则意味着使用了HTTP NTLM认证
当然,在IIS里也可使用HTTP Basic认证,就是选择“基本身份验证”这一项就可以了,同时还可以定义一下域名
从外部去区分也不难,靠经验的话,一般IIS用NTLM认证会比较多,而Apache上则是HTTP Basic用的比较多,上面也说了破解HTTP Basic的工具很多,AppScan和WVS里都有这样的工具,单独的小工具也不想少,像是HTTP Auth Scanner
经验判断不准,所有我们还可以根据数据包进行判断,这种方法快速、简单:
这里假设目标主机为 192.168.10.28 ,端口开在了8888上,使用nc发送请求,假设需要认证的是根目录(“/”),提交如下数据
C:>nc -v 192.168.10.28 8888
XXX [192.168.10.28] 8888 (?) open
GET / HTTP/1.1
Host: 192.168.10.28
User-Agent: Mozilla/4.0 (xxx)
然后会有这样的返回信息
HTTP/1.1 401 Unauthorized
Content-Length: 1327
Content-Type: text/html
Server: Microsoft-IIS/6.0
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
X-Powered-By: ASP.NET
Date: Mon, 13 Jul 2009 02:56:31 GMT
注意红色的部分,它告诉了我们,它使用的HTTP NTLM认证
还是在IIS上,还是这台机器,改成“基本身份验证”后,提交同样的数据,返回信息变为:
HTTP/1.1 401 Unauthorized
Content-Length: 1327
Content-Type: text/html
Server: Microsoft-IIS/6.0
WWW-Authenticate: Basic realm=”192.168.10.28″
X-Powered-By: ASP.NET
Date: Mon, 13 Jul 2009 02:57:28 GMT
注意红色部分,这就是HTTP Basic认证了
如果是使用HTTP NTLM认证的话,现在没发现什么好的破解工具,目前连hydra 5.4都不支持HTTP NTLM的方式
不过还好,wget目前支持NTLM认证,还是同样一台服务器,用wget做一下测试
wget –http-user=test –http-password=abc123 http://192.168.10.28:8888/my.txt
其中用户名是test,密码则是abc123
返回的信息告诉我,已经认证成功了,而且下载my.txt成功,并确认无误
–13:27:05– http://192.168.10.28:8888/my.txt
=> `my.txt’
Connecting to 192.168.10.28:8888… connected.
HTTP request sent, awaiting response… 401 Unauthorized
Reusing existing connection to 192.168.10.28:8888.
HTTP request sent, awaiting response… 401 Unauthorized
Reusing existing connection to 192.168.10.28:8888.
HTTP request sent, awaiting response… 200 OK
Length: 46 [text/plain]
100%[=============================================]
13:27:05 (5.23 MB/s) - `my.txt’ saved [46/46]
这个时候,我们可以想象的出来的就是,利用wget来破解,做一个shell或bat,遍历两个文件来替换 –http-user=test –http-password=abc123这两个参数就可以了,不过这样比较难看
于是我就找到了一个python的模块,在这里:http://code.google.com/p/python-ntlm/
需要的话,可以svn到本地:svn checkout http://python-ntlm.googlecode.com/svn/trunk/ python-ntlm-read-only
我也已经放到了本地:http://www.room702.cn/tools/index.php?dir=Source&download=python-ntlm.tar.gz
用脚本测试一下,完全没有问题,不过要注意,我这里使用的python2.5,我不是很熟悉python2.6及3.0的特性,反正python-ntlm模块首页上的example在2.5上有点问题,就是user = ‘DOMAIN\User’这里
首先,一定要有domain字段(可以随便写),另外,在2.5上,一条斜线解决不了问题,因为模块中是这样写的:
user_parts = user.split(’\\’, 1)
DomainName = user_parts[0].upper()
UserName = user_parts[1]
所以这里需要改一下模块,或者是写成user = ‘DOMAIN\User’才可以,测试用的脚本如下(除了几个变量外,其他与example相同)
如果需要,可以加个多线程,就是个比较完美的HTTP NTLM破解工具了,不过这只是暂时解决方案,继续放狗去搜,相信网上还有已经成熟的好工具
先需要明白/etc/shells文件与ftp的关系,这个要去Google一下,有很多
今天发现Solaris默认安装后没有/etc/shells文件,也没有chsh命令,狗了一下后,看到有人说这个玩意在Solaris上是不存在的,我不信,于是看了看Solaris的文档
文档里是这样说的(版本:SunOS 5.9),Solaris默认有个shell列表,列表里包含了一堆的可用shell,而这个shell列表的作用就相当于Linux上传统意义的/etc/shells文件中的内容,但Solaris也是支持/etc/shells文件的,如果有需要,用户可以自己建立一个与Linux格式完全一样的shells文件,而这时候,/etc/shells文件的优先权将高于Solaris系统中默认的shells列表
脚本中,对系统支持shell的检查非常简单,扩展一下,就可以检查passwd中的login shell 或是 ftp 登录的情况