本文转自91ri

踩点

目标域名是XX.com

我们的目标是大站,所以主站一般都挺安全的,所以直接寻找二级目录,运气好时能找到一些开源的cms,运气更好点找到个dede啥的,那就….

我们直接枚举他域名,先看看分站,因为比较大猜测他是内网,先搞下台内网机器再说。

分析及获取分站权限

枚举了下分站还挺多的,结果看了下 10那台服务器上面有个ecshop的程序,house也在上面,随便一个ecshop弄下了。

翻下数据库文件,运气不错,是root。

 
 
 
 
 
 

Default

 
uname -a
1
uname -a

 
 
 
 
 
 

Default

 
Linux 10 2.6.32-71.el6.i686 #1 SMP Fri Nov 12 04:17:17 GMT 2010 i686 i686 i386 GNU/Linux
1
Linux 10 2.6.32-71.el6.i686 #1 SMP Fri Nov 12 04:17:17 GMT 2010 i686 i686 i386 GNU/Linux

内核存在漏洞,直接上传exp提权。

经过分析,主机都在外网而非内网,我们的目标是*.*.*.*.8,已有权限机器是 *.*.*.*10

做了个openssh的后门,也就是root双密码,管理一个密码 我们的后门一个密码,不影响管理的那个密码。(网上有公开的,可自行下载)

 
 
 
 
 
 

Default

 
cat /etc/issue
1
cat /etc/issue

CentOS Linux release 6.0 (Final)
Kernel r on an m

本想做个pam密码记录,可惜手上没有支持6.0的后门。

深入

经过分析,网站7跟8做了负载 或者rsync同步的,负载大部分都时时同步的。

查看下进程都运行了什么

 
 
 
 
 
 

Default

 
ps -aux
1
ps -aux

除了apache mysql外还运行了个

 
 
 
 
 
 

Default

 
/usr/sbin/vsftpd
1
/usr/sbin/vsftpd

开了ftp服务,本可做个ftp密码的记录,但懒得等他上线,先继续搞别的。(91ri.org注:一般情况,一个企业内负责网络维护的管理员不多的情况下,密码基本通杀,在长期的渗透中多记一些密码并进行分析往往事半功倍。)

查看管理员的历史操作,也许能找到什么敏感信息

 
 
 
 
 
 

Default

 
cat .bash_history | more
1
cat .bash_history | more

发现跟目标服务器 8 15 有过联系

 
 
 
 
 
 

Default

 
scp -rp root@x.x.x.8:/etc/httpd/conf /etc/httpd/
scp -rp root@x.x.x.15:/var/lib/mysql/appcms /var/lib/mysql
ssh x.x.x.13
1
2
3
scp -rp root@x.x.x.8:/etc/httpd/conf /etc/httpd/
scp -rp root@x.x.x.15:/var/lib/mysql/appcms /var/lib/mysql
ssh x.x.x.13

很多linux的管理员觉得linux系统本身安全,对安全反而不大在意了,都喜欢做ssh信任连接,便猜测这几台服务器之间做了信任连接

 
 
 
 
 
 

Default

 
[root@10 ~]# ls .ssh/
authorized_keys known_hosts
1
2
[root@10 ~]# ls .ssh/
authorized_keys  known_hosts

 
 
 
 
 
 

Default

 
cat .ssh/known_hosts
x.x.x.13 ssh-rsa BAAAB3NzaC1yc2EAAAABIwAAAQEAwcXCMGxzXoeiuhKhAsI9Dw9kilxxPDCsifv/EYBLE1JCkS44TljppgmEqVBVbQJ4fYtReScpgRwWoLrmaECYE17mDNezDAoRq392UCMduLg3vz4Zzkh8+9HfrNnlMbrrqpatifWwXLkUSHOIqBRV+pGF49v5VYkQyZM/01FbhTzdsCfIzSXEyL/oISuZPb2L9QzP+0xinwf1RRcv78TV2vsN74YiN47ieqifk8lMfhoEv1xA31/VkMFx8c8stMHedOMEBAFXo3WZbq/xJ5fTRRFJ1wyo06LgojGP6sVpQor8Zm8ItpDtwrG2NMwSrZC6EgOpX1yi9Cv23NXzAM/B/Q==
1
2
cat .ssh/known_hosts
x.x.x.13 ssh-rsa BAAAB3NzaC1yc2EAAAABIwAAAQEAwcXCMGxzXoeiuhKhAsI9Dw9kilxxPDCsifv/EYBLE1JCkS44TljppgmEqVBVbQJ4fYtReScpgRwWoLrmaECYE17mDNezDAoRq392UCMduLg3vz4Zzkh8+9HfrNnlMbrrqpatifWwXLkUSHOIqBRV+pGF49v5VYkQyZM/01FbhTzdsCfIzSXEyL/oISuZPb2L9QzP+0xinwf1RRcv78TV2vsN74YiN47ieqifk8lMfhoEv1xA31/VkMFx8c8stMHedOMEBAFXo3WZbq/xJ5fTRRFJ1wyo06LgojGP6sVpQor8Zm8ItpDtwrG2NMwSrZC6EgOpX1yi9Cv23NXzAM/B/Q==

但看完后忧伤了,这台主机只有跟13有信任连接,于是便ssh到13上。虽说不是主站,但也许能搜集点管理信息直接搞到目标去。

迂回

连上目标后便又做了个后门

依旧继续看管理历史命令,顺便也可以搜索下有啥.sh文件,有的管理为了方便会写shell脚本文件,而里面总是有好东西的。

看下mysql的操作记录吧

 
 
 
 
 
 

Default

 
cat .mysql_history
1
cat .mysql_history

找到

 
 
 
 
 
 

Default

 
Grant all privileges on *.* to 'root'@'%' identified by '***vrlmm' with grant option;
flush privileges;
1
2
Grant all privileges on *.* to 'root'@'%' identified by '***vrlmm' with grant option;
flush privileges;

突然发现mysql密码都一样,猜测目标服务器也是这个密码呢,立马nmap扫描下8有没开启 3306,扫描后发现果然开启了,并且确实使用的是同一密码。(91ri.org:印证了之前说的,一个人管一台机器和管十台管一百台的做法是不一样的,毕竟总不能每连一台主机都要去翻翻密码簿吧?)

在刚开始拿下的 10服务器中发现个记录

 
 
 
 
 
 

Default

 
scp -rp root@x.x.x.8:/etc/httpd/conf /etc/httpd/
1
scp -rp root@x.x.x.8:/etc/httpd/conf /etc/httpd/

确定他apache是默认安装的 直接读取路径导shell

战果丰硕

总结

  • 当拿下一台服务器后,登录上后请立马执行export HISTFILE=/dev/null 这样我们操作的命令就不会被记录到.bash_history
  • 可以翻下 mysql_history .bash_history
  • ls -al 看下root目录下都有什么隐藏目录 例如 .ssh .vnc 等,有.vnc爽了,你懂得。
  • 可以看下 .ssh/下面的ssh连接记录等,也可以看下全局变量文件什么的。
  • find下服务器上面有什么shell脚本文件,很多有rsync同步脚本什么的
  • 查看下进程,前提是至少你懂点linux。如果主机上有rsync的话,基本上就没什么问题了。(明文密码)
  • 在内网环境中的话 不知道主站目标可以nslookup 域名 看下是否在 一个内网等。
  • 内网环境中如果有运行ftp服务做后门记录ftp密码,搜集信息,坐等管理上线。
  • 善用tcpdump
  • 留一个隐蔽的后门
  • 拿到权限做完上面的工作就可以对其他机器进行信息收集,建议可以使用nmap。

91ri.org:文章写的挺乱,稍稍整理了一下,作者的思路倒是不错,值得刚刚学习linux渗透的同学学习。顺便推荐下相关的linux渗透技巧的文章:《总结Linux的一些渗透技巧》《Nmap在实战中的高级用法

小计一次linux下渗透方法的更多相关文章

  1. windows客户端远程访问linux下mysql方法

    windows客户端远程访问linux下mysql方法 1. 改表法.可能是你的帐号不允许从远程登陆,只能在localhost.这个时候只要在localhost的那台电脑,登入mysql后,更改 &q ...

  2. Linux下调试程序方法

    您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序.本文描述了几种可以用来调试在 Linux 上运行的程序的方法.我们将回顾四种调试问 ...

  3. LINUX下渗透提权之嗅探技术

    内网渗透在攻击层面,其实更趋向于社工和常规漏洞检测的结合,为了了解网内防护措施的设置是通过一步步的刺探和经验积累,有时判断出错,也能进入误 区.但是如果能在网内进行嗅探,则能事半功倍,处于一个对网内设 ...

  4. GitHub Linux下使用方法

    1. 在网站注册帐号,创建工程 test 进入工程,右下角会有一个项目仓库的地址.https://github.com/braverior/test.git 2.Linux下 安装github sud ...

  5. Linux下安装方法总结(源码安装)

    很久之前安装过windows下以及Mac下的node,感觉还是很方便的,不成想今天安装Linux下的坑了老半天,特此记录. 首先去官网下载代码,这里一定要注意安装分两种,一种是Source Code源 ...

  6. 记一下拷贝windows下文件到linux下的方法

    去官网下载的Putty中包含了如下文件: 其中pscp.exe是一个远程复制文件的工具. 官网:https://www.chiark.greenend.org.uk/~sgtatham/putty/l ...

  7. mysql 忘记了root的password(linux下解决方法,window同理)

    mysql 忘记了root的password的时候的解决步骤, 1: cd /etc/mysql/(进入mysql的配置文件夹) 2:vim my.cnf \skip-grant-tables(进入m ...

  8. Linux下远程cp命令scp

    2014-2.19  PS1.在用此命令cpLinux与Linux之间的数据时发现有些服务器上默认没有安装scp但用yum -y install scp提示么有这样的包 后来发现原来scp工具的安装包 ...

  9. linux下python3源码安装及卸载

    Linux下Python3的源码编译安装和卸载方法 [日期:2019-06-21] 来源:博客园  作者:wuli潇萧 [字体:大 中 小]     (一)Linux下软件的源码编译安装和卸载方法 L ...

随机推荐

  1. vue中动态循环model

    vue动态循环model与angular有所不同,angular直接定义一个数组,然后传入循环列表的index即可. 而vue不仅需要定义一个数组,还需要通过接口读出循环的数组长度,然后在create ...

  2. 10个简化Web开发者工作的HTML5开发工具

    HTML5的到来,改变了设计和开发的工作,完全改变了以前的开发方式. HTML5进行本身就是一个很简单,很快捷的开发技术并且带给开发人员很多不同的工具和功能,使他们的工作变得更加Cool.它的功能非常 ...

  3. session和xsrf

    1.pip install pycket 2.pip install redis 防止xsrf攻击只需在模板form标签加入: {% module xsrf_form_html() %} <!D ...

  4. POJ 3468.A Simple Problem with Integers-线段树(成段增减、区间查询求和)

    POJ 3468.A Simple Problem with Integers 这个题就是成段的增减以及区间查询求和操作. 代码: #include<iostream> #include& ...

  5. CF985A Chess Placing【思维】

    [链接]:CF985A [题意]:给你n和n/2个数ai,每个ai和奇数.偶数比较距离(注意选了奇数,偶数的距离就不要算了,反之同理),求最小的答案. [代码]: #include <iostr ...

  6. 51nod 1007 正整数分组【01背包变形】

    1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 ...

  7. Python的网络编程[4] -> DHCP 协议[1] -> DHCP 的 Python 实现

    DHCP实现 / DHCP Implement 目录 DHCP 服务器建立过程 DHCP 报文加码实现过程 下面介绍建立一个简单的DHCP服务器,主要用于对基本的DHCP请求进行响应,目前只提供一个I ...

  8. Xamarin XAML语言教程使用使用Progress属性设置当前进度

    Xamarin XAML语言教程使用使用Progress属性设置当前进度 开发者除了可以在XAML中使用Progress属性设置进度条的当前进度外,还可以在代码隐藏文件中使用Progress属性来设置 ...

  9. haproxy代理kibana、nginx代理kibana并实现登录验证

    在使用ELK进行日志统计的时候,由于Kibana自身并没有身份验证的功能,任何人只要知道链接地址就可以正常登录到Kibana控制界面,由于日常的查询,添加和删除日志都是在同一个web中进行,这样就有极 ...

  10. Codeforces Round #325 (Div. 2) Phillip and Trains dp

    原题连接:http://codeforces.com/contest/586/problem/D 题意: 就大家都玩过地铁奔跑这个游戏(我没玩过),然后给你个当前的地铁的状况,让你判断人是否能够出去. ...