当前位置:网站首页 > 网络安全培训 > 正文

CTF靶场系列-De-ICE:_S1.130

freebuffreebuf 2019-03-01 285 0

本文来源:

下载地址

http://hackingdojo.com/downloads/iso/De-ICE_S1.130.iso

实战演练

原文再续,书接上文s1.100的系统

任务信息

寻找用户信息

信息收集

netdiscover发现IP是192.168.1.20

image.pngimage.pngFTP没有信息

image.pngweb的话找到一个用户名,试试用来爆破一下ssh

image.png我尝试爆破这个账号的ssh密码,发现爆破不了

telnet smtp服务器看看,其实找到用户名可以根据社会工程学去分析密码

邮箱:customerserviceadmin@nosecbank.com 手机号:1-337-133-7133 那么我们可以将这个拆分为 customer service  admin c s administrator 然后将这些组合在一起,就找到了一个用户csadmin

image.png爆破cadmin这个账号成功

image.png使用这个账号进行登录

image.png很多账号,csadmin只是普通的账号,我们看看还有没有东西

找到一个加密文件,但是加密失败

image.png邮件

image.png从邮件我们可以注意到几个点,儿子的名字叫"Donovin",邮件发送的时间,儿子的出生时间2010-12=1998,可以推测大概的密码字典

Donovin donovin 2010 1998 12 Donovindonovin Donovin2010 Donovin1998 Donovin12 donovindonovin donovin2010 donovin1998 donovin12 2010donovin 1998donovin 12donovin donovin201012 donovin20101998 donovin122010 donovin199812

爆破一下

image.png登录

image.png继续找信息

image.png猜测dbadmin的密码是databaser,但是不行

image.png但是按照上面那个思路,他的密码都是字母+数字,我们试一下加上数字

image.png爆破

image.png还是权限不够,继续找信息

image.png邮件

image.png在这封邮件里面我们看到内容加密了,使用string命令

image.png还记得我们用过三个账号不断发现邮件吗?他们有三个部分,现在将他们三个部分组合在一起看看会有什么东西

dbadmin

image.pngcsadmin

image.pngsdadmin

image.png将这些代码组合在一起

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密码

image.png登录到root账号,获取信息

image.png


转载请注明来自网盾网络安全培训,本文标题:《CTF靶场系列-De-ICE:_S1.130》

标签:CTF

关于我

欢迎关注微信公众号

关于我们

网络安全培训,黑客培训,渗透培训,ctf,攻防

标签列表