某天比较无聊,听一个朋友推荐httpscan这款工具,于是就下载下来试试。

首先对某学校网段开始进行测试。

1
 
python httpscan.py **.**.**.0/24

测试时发现有个比较特殊的标题。一般有这个,证明存在目录遍历。

目录遍历这个漏洞,说大也不大,说小也不小,但是,一般来说,存在这种目录,可以证明网站管理员比较粗心,当然也有可能会把一些敏感文件放在上面,如数据库文件,账号文件等。

尝试google搜索

1
 
 
 intitle:Index of /

可以找出好多这种例子。可以撞运气试一下有没有敏感文件泄露,然后进一步拿下一个站。

开始渗透

当时访问后,发现是以下的状况。

这个就又比较开心,看到了phpinfo。

这个文件和目录遍历漏洞性质也差不多,说大也大,说小也小。

phpinfo属于处在信息收集阶段的一个重头,当有了这些信息,可以看出服务器端调用了那些库,以及一些敏感路径,从而进行深入的漏洞挖掘。用途也是很广的。

所以建议各个站长,不要将这个文件泄露出来。

phpinfo先放一边,先点开1目录看一下,发现是一个discuz 3.2的站

尝试搜索discuz 3.2 getshell,最终发现有个后台插件配置导致getshell,但此时我们没有后台权限。

于是继续搜索,也没发现什么有价值的。

于是改变思路,想一下如何能进入后台。

尝试弱口令登录,最终admin admin 成功登录后台。

当时的心情是绝望的。

顺理成章,直接进入后台,找到好贷站长联盟 2.0.2安装,并启用。

然后进行配置,输入我们的一句话即可。

成功拿到shell

控制服务器

当然,这么简单的渗透,拿到shell肯定是不够的。

要想办法进而打开3389,成功夺取服务器权限,这样可以实现长久控制。

首先shell打开命令行,查看一下用户权限

当然,由于用的是蚁剑,已经说明了。

此时因为用的就是最高权限,所以就不用再进行提权了。

此时我们可以尝试创建新用户,并赋于其管理员权限。

1
2
 
 net user hacker 123456 /add
net localgroup Administrators hacker /add

此时再次输入net user即可查看到你创建的用户。

然后尝试3389链接,发现无法链接。

此时第一反应一定是,他改端口了。

因为毕竟是服务器,不可能不通过远程桌面连,天天抱个显示器去机房。

于是需要找到其3389端口修改后的端口。

首先查看一下端口占用情况:netstat -ano

发现果然是没有3389,此时可以猜测一下,感觉那个像就连那个,多试几次就好了。

但是,咱可是一个有抱负的技术宅,怎么可能用这种概率事件!

所以,可以通过查看一下当前运行的服务,定位pid后,到端口占用里面对比。

首先tasklist /svc然后寻找TermService,记录下中间的pid号。

然后返回之前的端口占用情况图中寻找5492,可以轻易发现,3389端口被改到了65530

然后尝试用我们账户通过 mstsc链接过去即可

最终成功拿下服务器。

做到这步的时候,已经可以说是结束了,但是!如果被管理员发现账户后删除了怎么办呢?

此时需要找一下管理员的密码。

通过一款老师推荐的软件,最终查询到了管理员的密码。

寻找管理员密码

使用工具mimikatz。

首先下载该工具,然后上传到目标机器。

按目标机器环境,使用合适的位数(32or64),直接执行。

然后在工具窗格内依次输入以下两条命令即可

   
第一条:privilege::debug //提升权限
第二条:sekurlsa::logonpasswords //抓取密码

在这里,由于隐私问题就不放截图了。

最后再说一点,这几步,虽然说实现了长久的控制,但是还是有所欠缺,毕竟管理员一旦发现有其他账号,在删掉的同时也会将自己的密码改掉。

所以一般大佬们都是直接放入自己的远控木马,进而持久控制。

漏洞威胁以及修复建议

  1. 在该服务器下发现存在teamviewer,怀疑有人已经拿下该服务器,进而实现长久控制。
  2. 该服务器大部分数据为14年左右,且网站完全没用,建议关闭该台服务器。
  3. 网站内敏感数据建议删除或备份到其他地方。
  4. 建议对服务器集群内文件实施清理,减少不必要文件泄露。

总结

这次渗透测试,比较胆战心惊,因为一环一环,犹如是一个蜜罐在引自己上钩。

但是考虑到之前老师对自己进行漏洞挖掘的支持,还是进行了下去。

感觉这台服务器之前应该是测试用的,最后忘了还跑着服务,最终导致被拿下。

转自:丶诺熙

http://blog.5am3.com/2018/05/04/web-testing-one/

web渗透(转)的更多相关文章

  1. Kali Linux 秘籍/Web渗透秘籍/无线渗透入门

    Kali Linux 秘籍 原书:Kali Linux Cookbook 译者:飞龙 在线阅读 PDF格式 EPUB格式 MOBI格式 Github Git@OSC 目录: 第一章 安装和启动Kali ...

  2. 反向代理在Web渗透测试中的运用

    在一次Web渗透测试中,目标是M国的一个Win+Apache+PHP+MYSQL的网站,独立服务器,对外仅开80端口,网站前端的业务系统比较简单,经过几天的测试也没有找到漏洞,甚至连XSS都没有发现, ...

  3. Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码

    Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码 文/玄魂 目录 Kali Linux Web 渗透测试视频教—第二十课-利用 ...

  4. Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter

    Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter 原文链接:http://www.xuanhun521.com/Blog/7fc11b7a-b6cb-4 ...

  5. KALI LINUX WEB 渗透测试视频教程—第十九课-METASPLOIT基础

    原文链接:Kali Linux Web渗透测试视频教程—第十九课-metasploit基础 文/玄魂 目录 Kali Linux Web 渗透测试视频教程—第十九课-metasploit基础..... ...

  6. KALI LINUX WEB 渗透测试视频教程—第16课 BEEF基本使用

    Kali Linux Web 渗透测试视频教程—第16课  BeEF基本使用 文/玄魂 目录 Kali Linux Web 渗透测试视频教程—第16课  BeEF基本使用............... ...

  7. Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击

    Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击 文/玄魂 目录 Kali Linux Web 渗透测试视频教程— 第十六课-拒绝服务攻击................... ...

  8. Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗、嗅探、dns欺骗、session劫持

    Kali Linux Web 渗透测试视频教程—第十四课-arp欺骗.嗅探.dns欺骗.session劫持 文/玄魂 目录 Kali Linux Web 渗透测试—第十四课-arp欺骗.嗅探.dns欺 ...

  9. Kali Linux Web 渗透测试视频教程— 第十三课-密码破解

    Kali Linux Web 渗透测试— 第十三课-密码破解 文/玄魂 目录 Kali Linux Web 渗透测试— 第十三课-密码破解............................... ...

  10. Kali Linux Web 渗透测试— 第十二课-websploit

    Kali Linux Web 渗透测试— 第十二课-websploit 文/玄魂 目录 Kali Linux Web 渗透测试— 第十二课-websploit..................... ...

随机推荐

  1. I/O多路复用select/poll/epoll

    前言 早期操作系统通常将进程中可创建的线程数限制在一个较低的阈值,大约几百个.因此, 操作系统会提供一些高效的方法来实现多路IO,例如Unix的select和poll.现代操作系统中,线程数已经得到了 ...

  2. php设计模式之工厂方法实例代码

    实现不修改原代码,扩展新功能 <?php header("Content-type:text/html;charset=utf-8"); /** * db接口 * 实现连接数 ...

  3. Docker - ubuntu 镜像安装网络工具

    概述 给 ubuntu 镜像, 安装一些基本的网络工具 背景 尝试学习的时候, 需要检测网络的连通性 没有这些工具, 绕了不少弯路 工具们 ping ip a 环境 docker 18.09 ubun ...

  4. java基础(十一)之抽象类和抽象函数

    1.抽象函数的语法特征2.抽象类的语法特征3.抽象类的作用 抽象函数 只有函数的定义,没有函数体的函数被称为抽象函数: abstract void func(); 抽象类 使用abstract定义的类 ...

  5. c#项目调用Python模块的方法

    将Python模块用pyinstaller打包成exe程序 下载安装UPX((http://upx.sourceforge.net/)) ,并把路径加到环境变量中. UPX是开源的加壳和压缩exe的程 ...

  6. Cheapest Palindrome

    这个区间dp解的话是先知道小区间再推大区间,具体需要分类讨论当小区间已经是回文串了,下一层判断,所以一层一个呢还是一层两个呢, 下面讨论一层一个的话是什么情况,那么如果一层两个,可以在评论区写下代码供 ...

  7. 当map的key为对象时,js无法解析key的属性值

    重写对象的toString方法,按照json数据的规则 然后前台string转json 控制台打印 这个方法不需要引入其他包 如果map的key属性过多,或者key是集合,可以在后台先转json,然后 ...

  8. eclipse提示错误:save could not be completed

    原博客地址:https://blog.csdn.net/alane1986/article/details/6514000 2010年12月06日 19:20:00 alane1986 阅读数:150 ...

  9. linux shell let, expr 命令详解

    linux命令之let.exprshell程序中的操作默认都是字符串操作,在运行数学运算符的时候可能得到意想不到的答案: var=1var=$var+1echo $var 将输出 1+1从这个例子中可 ...

  10. Go包

    1. 导入包和init函数 init().main() 是 go 语言中的保留函数.我们可以在源码中,定义 init() 函数.此函数会在包被导入时执行,例如如果是在 main 中导入包,包中存在 i ...