下载地址
http://hackingdojo.com/downloads/iso/De-ICE_S1.130.iso
实战演练
原文再续,书接上文s1.100的系统
任务信息
寻找用户信息
信息收集
netdiscover发现IP是192.168.1.20

FTP没有信息
web的话找到一个用户名,试试用来爆破一下ssh
我尝试爆破这个账号的ssh密码,发现爆破不了
telnet smtp服务器看看,其实找到用户名可以根据社会工程学去分析密码
邮箱:customerserviceadmin@nosecbank.com 手机号:1-337-133-7133
那么我们可以将这个拆分为
customer
service
admin
c
s
administrator
然后将这些组合在一起,就找到了一个用户csadmin
爆破cadmin这个账号成功
使用这个账号进行登录
很多账号,csadmin只是普通的账号,我们看看还有没有东西
找到一个加密文件,但是加密失败
邮件
从邮件我们可以注意到几个点,儿子的名字叫"Donovin",邮件发送的时间,儿子的出生时间2010-12=1998,可以推测大概的密码字典
Donovin
donovin
2010
1998
12
Donovindonovin
Donovin2010
Donovin1998
Donovin12
donovindonovin
donovin2010
donovin1998
donovin12
2010donovin
1998donovin
12donovin
donovin201012
donovin20101998
donovin122010
donovin199812
爆破一下
登录
继续找信息
猜测dbadmin的密码是databaser,但是不行
但是按照上面那个思路,他的密码都是字母+数字,我们试一下加上数字
爆破
还是权限不够,继续找信息
邮件
在这封邮件里面我们看到内容加密了,使用string命令
还记得我们用过三个账号不断发现邮件吗?他们有三个部分,现在将他们三个部分组合在一起看看会有什么东西
dbadmin
csadmin
sdadmin
将这些代码组合在一起
public class Decoder {
// PART 1
int[] processLoop(String input){
int strL=input.length();
int lChar=(int)input.charAt(strL-1);
int fChar=(int)input.charAt(0);
int[] encArr = new int[strL+2];
for(int i=1;i strL+1;i++){
encArr[i]=(int)input.charAt(i-1);}
encArr[0]=(int)lChar;
encArr[encArr.length-1]=(int)fChar;
encArr=backLoop(encArr);
encArr=loopBack(encArr);
encArr=loopProcess(encArr);
int j=encArr.length-1;
for(int i=0;i encArr.length;i++){
if(i==j) break;
int t=encArr[i];
encArr[i]=encArr[j];
encArr[j]=t;j--;}
return encArr;}
/*
* Note the pseudocode will be implemented with the
* root account and my account, we still need to implement it with the csadmin, sdadmin,
* and dbadmin accounts though
*/
// PART 2
int[] backLoop(int[] input){
int ref=input.length;
int a=input[1]; int b=input[ref-1];
int check=(a+b)/2;
for(int i=0;i ref;i++){
if(i%2==0) input[i]=(input[i]%check)+(ref+i);
else input[i]=(input[i]+ref+i);}
return input;}
int[] loopProcess(int[] input){
for(int i=0;i input.length;i++){
if(input[i]==40||input[i]==41) input[i]+=input.length;
else if(input[i]==45) input[i]+=20+i;}
return input;}
// PART 3
int[] loopBack(int[] input){
int ref=input.length/2;
int[] encNew =new int[input.length+ref];
int ch=0;
for(int i=(ref/2);i input.length;i++){
encNew[i]=input[ch]; ch++;}
for(int i=0;i encNew.length;i++){
if(encNew[i]=33) encNew[i]=33+(++ref*2);
else if(encNew[i] >= 126) encNew[i]=126-(--ref*2);
else{
if(i%2==0) encNew[i]-=(i%3);
else encNew[i]+=(i%2);}}
return encNew;}
public static void main(String[] args) {
Decoder d = new Decoder();
int[] c = d.processLoop(args[0]);
for (int i = 0; i c.length; i++)
System.out.print((char)c[i]);
}
}
解密到root密码
登录到root账号,获取信息
